PageSourceSearch

https://docs.jackofalltrades.vip/assets/Docs-DcMuRwXr.js

js jackofalltrades.vip collected 2026-10-05 23:20:26 UTC 74,267 bytes, 26 lines download raw bytes

1import{E as oe,r as x,j as e,ab as te,ac as $,ad as H,ae as R,af as le,ag as z,ah as ce,ai as de,aj as he,ak as xe,al as ue,am as me,an as se,ao as pe,ap as ge,aq as fe,ar as je,as as we,at as ye,au as be,av as ve,aw as ke,ax as Ne,H as Se,ay as Ae,G as ae,az as Ce,aA as Te,a3 as _,aB as G,F as Ie,X as Ee}from"./react-vendor-BgvAkfnX.js";import{a as Fe,s as re,u as Pe,b as De,g as Y,m as g,A as X,c as Le,d as Oe,B,W as Me}from"./index-B3VS6zto.js";import{B as J}from"./badge-DJDNkmCG.js";import{S as Re,a as We,b as qe,c as Be}from"./sheet-ZREPdRom.js";import{j as ne}from"./joat-logo-nobg-BDWovSEz.js";import{u as $e}from"./useCatalogCounts-aG0ZHKJY.js";import"./radix-vendor-BA32w1ww.js";import"./query-vendor-DH5fvvGG.js";function ze(s){s.values.forEach(i=>i.stop())}function U(s,i){[...i].reverse().forEach(o=>{const d=s.getVariant(o);d&&re(s,d),s.variantChildren&&s.variantChildren.forEach(l=>{U(l,i)})})}function Ue(s,i){if(Array.isArray(i))return U(s,i);if(typeof i=="string")return U(s,[i]);re(s,i)}function Je(){const s=new Set,i={subscribe(c){return s.add(c),()=>void s.delete(c)},start(c,o){const d=[];return s.forEach(l=>{d.push(Fe(l,c,{transitionOverride:o}))}),Promise.all(d)},set(c){return s.forEach(o=>{Ue(o,c)})},stop(){s.forEach(c=>{ze(c)})},mount(){return()=>{i.stop()}}};return i}function Q(){const s=Pe(Je);return De(s.mount,[]),s}const w=[.2,.65,.3,.9],L="'Space Grotesk', sans-serif",P=[{label:"Overview",href:"#home"},{label:"Features",href:"#tools-showcase"},{label:"Pricing",href:"#pricing"},{label:"FAQ",href:"#faq"},{label:"Discord",href:"#discord"}];function V(s){const[i,c]=x.useState(s),o=x.useRef(0),d=x.useRef(null),l=x.useRef(!1),k=x.useCallback(()=>{d.current!==null&&(cancelAnimationFrame(d.current),d.current=null),l.current=!1,c(s)},[s]),j=x.useCallback(()=>{if(l.current)return;l.current=!0,o.current=0;const p=21,S=7,y=s.replace(/ /g,"").split(""),T=()=>{const N=o.current;if(N>=p){c(s),l.current=!1,d.current=null;return}if(N%S===0){const A=s.split("").map(I=>I===" "?" ":y[Math.floor(Math.random()*y.length)]).join("");c(A)}o.current=N+1,d.current=requestAnimationFrame(T)};d.current=requestAnimationFrame(T)},[s]);return x.useEffect(()=>()=>{d.current!==null&&cancelAnimationFrame(d.current)},[]),{display:i,start:j,stop:k}}const ie=({text:s,display:i})=>e.jsxs("span",{className:"relative inline-block",children:[e.jsx("span",{className:"invisible","aria-hidden":"true",children:s}),e.jsx("span",{className:"absolute inset-0 whitespace-nowrap",style:{fontVariantLigatures:"none"},children:i})]}),Ve=({label:s,onClick:i})=>e.jsxs("button",{onClick:i,className:"group relative px-3.5 py-1.5 text-[13px] font-medium text-white/50 transition-colors duration-300 ease-out hover:text-white rounded-lg",children:[e.jsx("span",{className:"relative transition-[text-shadow] duration-300 group-hover:[text-shadow:0_0_12px_rgba(255,255,255,0.35)]",children:s}),e.jsx("span",{"aria-hidden":"true",className:"pointer-events-none absolute bottom-0 left-1/2 h-px w-[60%] -translate-x-1/2 scale-x-0 opacity-0 transition-all duration-300 ease-out group-hover:scale-x-100 group-hover:opacity-100",style:{background:"linear-gradient(90deg, transparent 0%, rgba(245,158,11,0.9) 50%, transparent 100%)",boxShadow:"0 0 8px rgba(245,158,11,0.5)"}})]}),He=({label:s,onClick:i})=>{const{display:c,start:o,stop:d}=V(s);return e.jsxs("button",{onClick:i,onMouseEnter:o,onMouseLeave:d,onFocus:o,onBlur:d,className:"group relative hidden sm:inline-flex items-center px-2 py-1.5 text-[12.5px] font-medium text-white/50 transition-colors duration-300 hover:text-white",style:{fontFamily:L},children:[e.jsx(ie,{text:s,display:c}),e.jsx("span",{"aria-hidden":"true",className:"pointer-events-none absolute bottom-0.5 left-1/2 h-px w-[70%] -translate-x-1/2 scale-x-0 opacity-0 transition-all duration-300 ease-out group-hover:scale-x-100 group-hover:opacity-100",style:{background:"linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.7) 50%, transparent 100%)"}})]})},_e=()=>{const s="Get Access",{display:i,start:c,stop:o}=V(s),d=()=>{const l=window.location.hostname;if(!(l==="jackofalltrades.vip"||l==="www.jackofalltrades.vip")){window.location.assign("https://jackofalltrades.vip/#pricing");return}const j=document.querySelector("#pricing");j&&j.scrollIntoView({behavior:"smooth",block:"start"})};return e.jsxs("button",{onClick:d,onMouseEnter:c,onMouseLeave:o,onFocus:c,onBlur:o,className:"group relative inline-flex items-center gap-1.5 rounded-lg px-5 py-2 text-[13px] font-semibold text-black transition-all duration-300 hover:shadow-[0_6px_28px_rgba(245,158,11,0.45)]",style:{background:"linear-gradient(135deg, #f59e0b, #d97706)",boxShadow:"0 2px 12px rgba(245,158,11,0.2)",fontFamily:L},children:[e.jsx("span",{className:"relative",children:e.jsx(ie,{text:s,display:i})}),e.jsx(R,{className:"h-3.5 w-3.5 transition-transform duration-400 ease-out group-hover:rotate-45",strokeWidth:2.5})]})},Ge=()=>{const s=oe(),[i,c]=x.useState(!1),[o,d]=x.useState(!1),[l,k]=x.useState(()=>typeof window<"u"?Y():null),j=!!l,[p,S]=x.useState(!1),y=x.useRef(null),T=x.useRef(null),N=x.useRef(null),A=Q(),I=Q(),C=V("Jack Of All Trades");x.useEffect(()=>{const a=()=>c(window.scrollY>20);return window.addEventListener("scroll",a,{passive:!0}),()=>window.removeEventListener("scroll",a)},[]),x.useEffect(()=>{const a=()=>k(Y());return window.addEventListener("joat:session:update",a),()=>window.removeEventListener("joat:session:update",a)},[]),x.useEffect(()=>{if(!p)return;const a=u=>{y.current&&!y.current.contains(u.target)&&S(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[p]);const O=async()=>{S(!1);try{await Le("/api/logout",{method:"POST"})}catch{}Oe(null),k(null)};x.useLayoutEffect(()=>{if(!T.current||!N.current)return;const a=T.current.getBoundingClientRect(),u=N.current.getBoundingClientRect(),f=a.left+a.width/2,b=u.left+u.width/2,E=(f-b)*.3;let F=!1;return(async()=>{await A.set({x:E,scale:.4,opacity:0}
1),await I.set({opacity:0,clipPath:"inset(0 100% 0 0)"}),await new Promise(q=>setTimeout(q,850)),!F&&(await A.start({opacity:1,scale:1.15,transition:{duration:.55,ease:w}}),!F&&(await new Promise(q=>setTimeout(q,180)),!F&&(await A.start({x:0,scale:1,transition:{duration:.7,ease:w}}),!F&&await I.start({opacity:1,clipPath:"inset(0 0% 0 0)",transition:{duration:.55,ease:w}}))))})(),()=>{F=!0}},[A,I]);const M=a=>{d(!1);const u=window.location.hostname;if(!(u==="jackofalltrades.vip"||u==="www.jackofalltrades.vip")){window.location.assign(`https://jackofalltrades.vip/${a}`);return}if(a==="#home"){window.scrollTo({top:0,behavior:"smooth"});return}const b=document.querySelector(a);b&&b.scrollIntoView({behavior:"smooth",block:"start"})};return x.useEffect(()=>{if(o){const a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=a}}},[o]),e.jsxs("nav",{ref:T,className:"fixed top-0 left-0 right-0 z-50",style:{fontFamily:L},children:[e.jsxs("div",{className:`relative mt-3 mx-6 h-12 max-w-5xl rounded-xl sm:mx-auto sm:rounded-full flex items-center justify-between px-4 sm:px-7 border backdrop-blur-xl ${i?"border-white/[0.08] bg-background/70 shadow-[0_10px_40px_-12px_rgba(0,0,0,0.6)]":"border-transparent bg-transparent shadow-none backdrop-blur-0"}`,style:{transitionProperty:"background-color, border-color, box-shadow, backdrop-filter",transitionDuration:"400ms",transitionTimingFunction:"cubic-bezier(0.2,0.65,0.3,0.9)"},children:[e.jsx("span",{"aria-hidden":"true",className:`pointer-events-none absolute left-[8%] right-[8%] top-0 h-px transition-opacity duration-[600ms] ease-[cubic-bezier(0.2,0.65,0.3,0.9)] ${i?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(90deg, transparent 0%, rgba(245,158,11,0.9) 50%, transparent 100%)",boxShadow:"0 0 14px rgba(245,158,11,0.55), 0 0 28px rgba(245,158,11,0.25)"}}),e.jsxs(g.div,{ref:N,className:"group/logo flex items-center gap-3 cursor-pointer",onClick:()=>M("#home"),onMouseEnter:C.start,onMouseLeave:C.stop,onFocus:C.start,onBlur:C.stop,role:"button",tabIndex:0,animate:A,initial:{opacity:0,scale:.4},style:{transformOrigin:"center center"},children:[e.jsx(g.img,{src:ne,alt:"JOAT",className:`object-contain transition-all duration-400 ease-out group-hover/logo:scale-[1.08] group-hover/logo:rotate-[-6deg] ${i?"h-8 w-8":"h-10 w-10"}`,style:{filter:"drop-shadow(0 0 14px rgba(245,158,11,0.35))"},whileHover:{filter:"drop-shadow(0 0 22px rgba(245,158,11,0.75))",transition:{duration:.4,ease:w}}}),e.jsxs(g.span,{className:"hidden sm:inline overflow-hidden",animate:I,initial:{opacity:0,clipPath:"inset(0 100% 0 0)"},style:{fontFamily:L,fontSize:"clamp(0.82rem, 1.3vw, 0.98rem)",fontWeight:600,letterSpacing:"-0.02em",display:"inline-block",whiteSpace:"nowrap"},children:[e.jsxs("span",{className:"relative inline-block",children:[e.jsx("span",{className:"invisible joat-shine-text","aria-hidden":"true",children:"Jack Of All Trades"}),e.jsx("span",{className:"joat-shine-text absolute inset-0 whitespace-nowrap",style:{fontVariantLigatures:"none"},children:C.display})]}),e.jsx("style",{children:`
2              .joat-shine-text {
3                background: linear-gradient(
4                  110deg,
5                  rgba(255,255,255,0.88) 0%,
6                  rgba(255,255,255,0.88) 38%,
7                  #ffffff 48%,
8                  rgba(255,255,255,1) 52%,
9                  rgba(255,255,255,0.88) 62%,
10                  rgba(255,255,255,0.88) 100%
11                );
12                background-size: 220% 100%;
13                background-position: 100% 0;
14                -webkit-background-clip: text;
15                background-clip: text;
16                color: transparent;
17                transition: background-position 0ms;
18              }
19              .group\\/logo:hover .joat-shine-text {
20                animation: joat-shine-sweep 1.1s cubic-bezier(0.2,0.65,0.3,0.9);
21              }
22              @keyframes joat-shine-sweep {
23                0%   { background-position: 100% 0; }
24                100% { background-position: -120% 0; }
25              }
26            `})]})]}),e.jsx("div",{className:"pointer-events-none absolute left-1/2 top-1/2 hidden -translate-x-1/2 -translate-y-1/2 md:flex items-center gap-0.5",children:e.jsx("div",{className:"pointer-events-auto flex items-center gap-0.5",children:P.map(a=>e.jsx(Ve,{label:a.label,onClick:()=>M(a.href)},a.href))})}),e.jsx("div",{className:"hidden md:flex items-center gap-2 sm:gap-4",children:j&&l?e.jsxs("div",{ref:y,className:"relative",children:[e.jsxs("button",{onClick:()=>S(a=>!a),className:"group flex items-center gap-2 rounded-full border border-white/[0.08] bg-white/[0.03] py-1.5 pl-1.5 pr-3 transition-all duration-300 hover:border-amber-500/25 hover:bg-white/[0.06]",children:[e.jsxs("div",{className:"relative flex h-6 w-6 items-center justify-center rounded-full bg-amber-500/20",children:[(l.avatarUrl||l.discordAvatarUrl)&&e.jsx("img",{src:l.avatarUrl||l.discordAvatarUrl,alt:"",className:"absolute inset-0 h-full w-full rounded-full object-cover",onError:a=>{a.currentTarget.style.display="none"}}),e.jsx("span",{className:"text-[10px] font-bold text-amber-400",children:(l.username||"U")[0].toUpperCase()})]}),e.jsx("span",{className:"max-w-[100px] truncate text-[12.5px] font-medium text-white/70 transition-colors group-hover:text-white",style:{fontFamily:L},children:l.username}),e.jsx(te,{className:`h-3 w-3 text-white/30 transition-transform duration-200 ${p?"rotate-180":""}`})]}),e.jsx(X,{children:p&&e.jsx(g.div,{initial:{opacity:0,y:-4,scale:.97}
26,animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.97},transition:{duration:.15,ease:w},className:"absolute right-0 top-full mt-2 w-48 overflow-hidden rounded-xl border border-white/[0.08] bg-[#0c0c10]/95 backdrop-blur-xl shadow-[0_16px_48px_-12px_rgba(0,0,0,0.8)]",style:{fontFamily:L},children:e.jsxs("div",{className:"p-1.5",children:[e.jsxs("button",{onClick:()=>{S(!1),s("/dashboard")},className:"flex w-full items-center gap-2.5 rounded-lg px-3 py-2.5 text-[13px] font-medium text-white/70 transition-colors hover:bg-white/[0.06] hover:text-white",children:[e.jsx($,{className:"h-3.5 w-3.5 text-amber-400/70"}),"Dashboard"]}),e.jsxs("button",{onClick:O,className:"flex w-full items-center gap-2.5 rounded-lg px-3 py-2.5 text-[13px] font-medium text-white/40 transition-colors hover:bg-white/[0.06] hover:text-red-400",children:[e.jsx(H,{className:"h-3.5 w-3.5"}),"Log out"]})]})})})]}):e.jsxs(e.Fragment,{children:[e.jsx(He,{label:"Login",onClick:()=>s("/signin")}),e.jsx(_e,{})]})}),e.jsx("button",{type:"button","aria-label":o?"Close menu":"Open menu","aria-expanded":o,onClick:()=>d(a=>!a),className:"md:hidden relative flex h-10 w-10 items-center justify-center rounded-lg border border-white/10 bg-white/[0.03] backdrop-blur-sm transition-colors hover:border-amber-500/40 hover:bg-amber-500/[0.08] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-500/60",children:e.jsxs("span",{className:"relative block h-[14px] w-[18px]",children:[e.jsx("span",{className:`absolute left-0 right-0 top-0 h-[1.5px] rounded-full bg-white transition-all duration-300 ease-out ${o?"top-[6px] rotate-45":""}`}),e.jsx("span",{className:`absolute left-0 right-0 top-[6px] h-[1.5px] rounded-full bg-white transition-all duration-200 ease-out ${o?"opacity-0":"opacity-100"}`}),e.jsx("span",{className:`absolute left-0 right-0 bottom-0 h-[1.5px] rounded-full bg-white transition-all duration-300 ease-out ${o?"bottom-[6px] -rotate-45":""}`})]})})]}),e.jsxs(X,{children:[o&&e.jsx(g.div,{initial:{opacity:0}
26,animate:{opacity:1},exit:{opacity:0},transition:{duration:.2,ease:w},onClick:()=>d(!1),className:"md:hidden fixed inset-0 top-[64px] z-[48] bg-black/40 backdrop-blur-[2px]","aria-hidden":"true"},"mobile-menu-backdrop"),o&&e.jsx(g.div,{initial:{opacity:0,y:-8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.22,ease:w},className:"md:hidden fixed inset-x-0 top-[64px] z-[49] px-4",style:{fontFamily:L},children:e.jsxs("div",{className:"mx-auto max-w-sm overflow-hidden rounded-2xl border border-white/10 bg-[#0a0a0a]/95 backdrop-blur-xl shadow-[0_20px_60px_-16px_rgba(0,0,0,0.8)]",style:{boxShadow:"0 20px 60px -16px rgba(0,0,0,0.8), 0 0 0 1px rgba(245,158,11,0.08) inset"},children:[e.jsx("div",{"aria-hidden":"true",className:"h-px w-full",style:{background:"linear-gradient(90deg, transparent 0%, rgba(245,158,11,0.9) 50%, transparent 100%)"}}),e.jsxs("div",{className:"flex flex-col p-2",children:[P.map((a,u)=>e.jsxs(g.button,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05+u*.04,duration:.3,ease:w},onClick:()=>M(a.href),className:"flex items-center justify-between rounded-lg px-4 py-3.5 text-left text-[15px] font-medium text-white/80 transition-colors hover:bg-white/[0.04] hover:text-white",children:[e.jsx("span",{children:a.label}),e.jsx(R,{className:"h-4 w-4 text-white/30",strokeWidth:2})]},a.href)),e.jsx("div",{className:"my-2 h-px w-full bg-white/[0.06]"}),j&&l?e.jsxs(e.Fragment,{children:[e.jsxs(g.div,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05+P.length*.04,duration:.3,ease:w},className:"flex items-center gap-3 px-4 py-3",children:[e.jsxs("div",{className:"relative flex h-8 w-8 items-center justify-center rounded-full bg-amber-500/20",children:[(l.avatarUrl||l.discordAvatarUrl)&&e.jsx("img",{src:l.avatarUrl||l.discordAvatarUrl,alt:"",className:"absolute inset-0 h-full w-full rounded-full object-cover",onError:a=>{a.currentTarget.style.display="none"}}),e.jsx("span",{className:"text-xs font-bold text-amber-400",children:(l.username||"U")[0].toUpperCase()})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-[14px] font-medium text-white/90",children:l.username}),e.jsxs("span",{className:"text-[11px] text-white/35",children:[(()=>{const a=l.plan||"Basic";return a==="Free"||a==="Core"?"Basic":a==="Pro"||a==="Blackjack"?"Elite":a})()," plan"]})]})]}),e.jsxs(g.button,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05+(P.length+1)*.04,duration:.3,ease:w},onClick:()=>{d(!1),s("/dashboard")},className:"flex items-center justify-between rounded-lg px-4 py-3.5 text-left text-[15px] font-medium text-white/80 transition-colors hover:bg-white/[0.04] hover:text-white",children:[e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx($,{className:"h-4 w-4 text-amber-400/70"}),"Dashboard"]}),e.jsx(R,{className:"h-4 w-4 text-white/30",strokeWidth:2})]}),e.jsx(g.button,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05+(P.length+3)*.04,duration:.3,ease:w},onClick:()=>{d(!1),O()},className:"flex items-center justify-between rounded-lg px-4 py-3.5 text-left text-[15px] font-medium text-white/40 transition-colors hover:bg-white/[0.04] hover:text-red-400",children:e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx(H,{className:"h-4 w-4"}),"Log out"]})})]}):e.jsxs(e.Fragment,{children:[e.jsxs(g.button,{initial:{opacity:0,x:-8},animate:{opacity:1,x:0},transition:{delay:.05+P.length*.04,duration:.3,ease:w},onClick:()=>{d(!1),s("/signin")},className:"flex items-center justify-between rounded-lg px-4 py-3.5 text-left text-[15px] font-medium text-white/80 transition-colors hover:bg-white/[0.04] hover:text-white",children:[e.jsx("span",{children:"Login"}),e.jsx(R,{className:"h-4 w-4 text-white/30",strokeWidth:2})]}),e.jsxs(g.button,{onClick:()=>{d(!1);const a=window.location.hostname;if(!(a==="jackofalltrades.vip"||a==="www.jackofalltrades.vip")){window.location.assign("https://jackofalltrades.vip/#pricing");return}const f=document.querySelector("#pricing");f&&f.scrollIntoView({behavior:"smooth",block:"start"})},initial:{opacity:0,y:8}
26,animate:{opacity:1,y:0},transition:{delay:.05+(P.length+1)*.04,duration:.35,ease:w},className:"mt-1 flex items-center justify-center gap-1.5 rounded-lg px-4 py-3.5 text-[14px] font-semibold text-black",style:{background:"linear-gradient(135deg, #f59e0b, #d97706)",boxShadow:"0 6px 24px -6px rgba(245,158,11,0.55)"},children:["Get Access",e.jsx(R,{className:"h-4 w-4",strokeWidth:2.5})]})]})]})]})},"mobile-menu")]})]})},Ye=({className:s})=>e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:s,"aria-hidden":!0,children:[e.jsx("path",{d:"M2 12c2.5 0 4-1 6-1s3.5 1 6 1 4-1.5 6-1.5"}),e.jsx("path",{d:"M20 10.5v2c0 2-1 4-3 5.5-2 1.5-4 2-6 2s-4-.5-6-2C3 16.5 2 14.5 2 12.5v-2"}),e.jsx("circle",{cx:"20",cy:"10",r:"1.5"})]}),Xe={hidden:{opacity:0,y:16},visible:{opacity:1,y:0,transition:{duration:.3,ease:[.2,.65,.3,.9]}}};function m({children:s}){return e.jsx("h2",{className:"text-lg font-semibold text-white/95 mb-4",children:s})}function r({children:s}){return e.jsx("h3",{className:"text-base font-medium text-white/85 mt-6 mb-2",children:s})}function n({children:s}){return e.jsx("p",{className:"text-sm text-white/60 leading-relaxed mb-3",children:s})}function h({children:s}){return e.jsx("ul",{className:"space-y-1.5 mb-4 ml-1",children:s})}function t({children:s}){return e.jsxs("li",{className:"flex items-start gap-2 text-sm text-white/60",children:[e.jsx(ae,{className:"h-3.5 w-3.5 mt-0.5 shrink-0 text-primary/70"}),e.jsx("span",{children:s})]})}function v(){return e.jsx(J,{className:"ml-2 bg-amber-500/15 text-amber-400 border-amber-500/20 text-[10px] font-medium px-1.5 py-0 leading-4 hover:bg-amber-500/15",children:"Elite"})}function W(){return e.jsx(J,{className:"ml-2 bg-emerald-500/15 text-emerald-400 border-emerald-500/20 text-[10px] font-medium px-1.5 py-0 leading-4 hover:bg-emerald-500/15",children:"All Plans"})}function D({children:s}){return e.jsx("div",{className:"rounded-lg border border-primary/15 bg-primary/5 px-4 py-3 text-sm text-primary/80/80 mb-4",children:s})}function Qe({indicators:s,strategies:i}){return[{feature:"Community Discord",basic:!0,elite:!0},{feature:"Indicators Library",basic:"Free ones",elite:`${s}+ Indicators`},{feature:"Watchlist (Crypto, Stocks, Forex)",basic:!1,elite:!0},{feature:"Price Alerts",basic:!1,elite:"Unlimited"},{feature:"Market News + Sentiment",basic:!1,elite:!0},{feature:"Crypto Market Screener (Prices)",basic:!1,elite:!0},{feature:"Trading Signals (Crypto, Stock, Forex, Futures)",basic:!1,elite:!0},{feature:"Options Flow (Sweeps, Blocks, Splits)",basic:!1,elite:!0},{feature:"AI Market Analysis",basic:!1,elite:"Free demo + unlimited"},{feature:"AI Trading Mentor",basic:!1,elite:!0},{feature:"Whale Tracker + Wallet Search",basic:!1,elite:!0},{feature:"Big Transactions Live Tape ($1M+)",basic:!1,elite:!0},{feature:"AI Screener (Stocks, Crypto, Futures, Forex)",basic:!1,elite:"30 scans/hr"},{feature:"Volume Profile (POC + value area)",basic:!1,elite:!0},{feature:"Economic Calendar + Macro Reminders",basic:!1,elite:!0},{feature:"Trading Journal + Analytics",basic:!1,elite:!0},{feature:"Jack Of All Codes (Pine Script V6)",basic:!1,elite:!0},{feature:"Strategies Library",basic:!1,elite:`${i}+ Strategies`},{feature:"Trading Academy & Quizzes",basic:!1,elite:!0},{feature:"Live Community Calls",basic:!1,elite:!0},{feature:"Discord DM Alerts",basic:!1,elite:!0},{feature:"Priority Support",basic:!1,elite:!0}]}function Z({value:s}){return typeof s=="boolean"?s?e.jsx(Ie,{className:"h-4 w-4 text-emerald-400"}):e.jsx(Ee,{className:"h-4 w-4 text-white/20"}):e.jsx("span",{className:"text-sm text-white/70",children:s})}const Ze=[{q:"What is JOAT?",a:"JOAT (Jack Of All Trades) is an AI-powered trading platform with 165+ tools under one subscription — real-time signals for crypto/stocks/forex/futures, AI chart analysis, stock options flow, whale wallet tracking, a Pine Script AI code generator, an AI mentor, 400+ TradingView indicators, 45+ strategies, and a full trading academy."},{q:"Do I need Discord to use JOAT?",a:"No. Discord is optional. Your email account is the primary login. Connect Discord in Account settings to receive DM alerts and join the community server — but every feature works without it."},{q:"What assets are covered?",a:"Signals cover crypto, stocks, forex, and futures. Options Flow covers US stock options. Whale Tracker covers on-chain crypto wallets across major chains. Watchlist supports crypto, stocks, and forex."},{q:"How do signals work?",a:"AI-generated signals are delivered in real-time via the dashboard (WebSocket) and optionally through Discord DMs. Each signal includes symbol, direction (BUY/SELL), entry price range, stop loss, multiple take-profit targets, R:R ratio, confidence score, chart screenshot, and reasoning."},{q:"Can I cancel my subscription anytime?",a:"Yes. Subscriptions are managed through Whop — upgrade, downgrade, or cancel at any time from your Whop dashboard. No long-term contracts."},{q:"Can I try JOAT for free?",a:"Yes — a free account gets you into the JOAT Discord: the daily results recap, free indicators, giveaways and the community, no card required. You can see the signal channels from the free side, but the calls posted in them are for members, and the dashboard itself is members-only. Answer three quick questions on the site and you get a plan recommendation plus a personal discount code that's yours for 24 hours."},{q:"What's the difference between Free, Indicators and Elite?",a:"Free is the Discord community. Indicators is TradingView invite access to the 400+ indicators and 45+ strategies, without the dashboard. Elite unlocks everything: AI Signals, Options Flow, Market Analysis, AI Screener, Volume Profile, AI Mentor, Whale Tracker, Big Transactions live tape, Economic Calendar with Discord reminders, Trading Journ
26al with full analytics, Jack Of All Codes, 400+ Indicators, 45+ Strategies, Academy, Live Community Calls, Discord DM alerts, and priority support."},{q:"Is my Trading Journal data private?",a:"Yes. Every trade, note, and screenshot is scoped to your account on the server -- nobody else can read or list them, even with the URL. Screenshots are stored under unguessable per-user URLs, EXIF metadata is stripped on upload, and all data lives in your dedicated row-level slice of our Postgres database."},{q:"How do I get support?",a:"Use the feedback form on the Account page inside the dashboard, reach out in the Discord community, or email [email protected]."}];function Ke({indicators:s,strategies:i}){const c=Qe({indicators:s,strategies:i});return[{id:"getting-started",title:"Getting Started",icon:ce,content:e.jsxs(e.Fragment,{children:[e.jsx(m,{children:"Getting Started"}),e.jsx(n,{children:"JOAT (Jack Of All Trades) is an AI-powered trading platform — 165+ tools under one subscription. Real-time signals across crypto, stocks, forex and futures. AI chart analysis. Stock options flow. Whale wallet tracking. A Pine Script AI code generator. A personalized AI mentor. 400+ TradingView indicators and 45+ strategies. A full trading academy. All in one dashboard."}),e.jsx(r,{children:"Plans"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Free"})," -- The JOAT Discord: the daily results recap, free indicators, giveaways and the community. The signal channels are visible, but the calls inside them are for members. No card required. The dashboard is members-only."]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Indicators ($59.99/month or $249.99/year)"})," -- TradingView invite access to all 400+ indicators and 45+ strategies. No dashboard."]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Elite ($84.99/month or $550/year — save 46%)"})," -- The full dashboard: AI Trading Signals, Options Flow, AI Market Analysis, AI Trading Mentor, Whale Tracker, Jack Of All Codes, 400+ Indicators, 45+ Strategies, Academy & Quizzes, Live Community Calls, Discord DM alerts, and priority support."]}
26)]}),e.jsx(r,{children:"How to sign up"}),e.jsxs(n,{children:["Start at"," ",e.jsx("a",{href:"https://jackofalltrades.vip",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:text-primary/80 underline underline-offset-2",children:"jackofalltrades.vip"})," ","with Google or email: three quick questions, your recommended plan, a personal discount code, and checkout right there. Already a member? Sign in at app.jackofalltrades.vip. Change or cancel your plan anytime through Whop."]}),e.jsxs(D,{children:["Your dashboard lives at ",e.jsx("strong",{children:"app.jackofalltrades.vip"}),". Bookmark it for quick access."]})]})},{id:"dashboard-overview",title:"Dashboard Overview",icon:$,content:e.jsxs(e.Fragment,{children:[e.jsx(m,{children:"Dashboard Overview"}),e.jsx(n,{children:"The Overview page is your home screen. It shows a summary of key metrics and quick actions to help you start your trading day."}),e.jsx(r,{children:"What you will see"}),e.jsxs(h,{children:[e.jsx(t,{children:"Win rate and average return across recent signals (Elite)"}),e.jsx(t,{children:"Latest AI signals and news (Free sees blurred previews with unlock prompts)"}),e.jsx(t,{children:"Live market data with top movers and trending tickers"}),e.jsx(t,{children:"Active price alerts and account security status"}),e.jsx(t,{children:"Daily AI quiz with XP and streak tracking"})]}),e.jsx(r,{children:"Navigation"}),e.jsx(n,{children:"The sidebar organizes features into four groups:"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"AI Trading Tools"})," -- Signals, Options, Alerts, Watchlist, Prices, News, Big Transactions"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"AI Analysis & Engines"})," -- Market Analysis, AI Screener, Volume Profile, Jack Of All Codes, Whale Tracker"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"AI Learning"})," -- AI Mentor, Trading Journal, Economic Calendar, Academy, Strategies, Indicators"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Account"})," -- Settings, Notifications, Account, Admin (admins only)"]})]})]})},{id:"trading-signals",title:"Trading Signals",icon:de,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Trading Signals ",e.jsx(v,{})]}),e.jsx(n,{children:"AI-generated trade signals across four asset classes, delivered in real-time via WebSocket to your dashboard and optionally to Discord DMs."}),e.jsx(r,{children:"Asset coverage"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Crypto"})," -- BTC, ETH, SOL, and hundreds more"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Stocks (Equity)"})," -- US equities across all major exchanges"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Forex"})," -- Major and minor currency pairs"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Futures"})," -- Indices, commodities, and energy"]})]}),e.jsx(r,{children:"What each signal includes"}),e.jsxs(h,{children:[e.jsx(t,{children:"Symbol, asset class, and direction (BUY/SELL)"}),e.jsx(t,{children:"Entry price range (low–high) and current market context"}),e.jsx(t,{children:"Stop loss level and multiple take-profit targets (TP1, TP2, TP3)"}),e.jsx(t,{children:"Risk/Reward (R:R) ratio and signal strength"}),e.jsx(t,{children:"Confidence score and difficulty level"}),e.jsx(t,{children:"Chart screenshot with levels drawn + TradingView link"}),e.jsx(t,{children:"Key support/resistance levels, confluence highlights, and narrative reasoning"}),e.jsx(t,{children:"Performance tracking (Open, Win, Loss) with win-rate stats per asset"})]}),e.jsx(r,{children:"Filters & views"}),e.jsx(n,{children:"Filter by asset type, status (active/closed/completed), or symbol search. Group signals by symbol or browse chronologically. Open any signal in a detail panel for the full breakdown."}),e.jsx(r,{children:"Delivery"}),e.jsx(n,{children:"Signals appear instantly on the Signals page via WebSocket. If your Discord account is linked, signals are also delivered as DMs and posted in the JOAT community server — each asset class has its own notification role you can opt into."}),e.jsx(r,{children:"Asset logos"}),e.jsx(n,{children:"Logos are resolved via a multi-provider fallback chain: FMP → Public → Parqet → CoinGecko → styled text fallback. Ensures every symbol renders with a recognizable icon."})]})},{id:"options",title:"Options",icon:he,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Options ",e.jsx(v,{})]}),e.jsxs(n,{children:["Track institutional ",e.jsx("strong",{className:"text-white/80",children:"US stock options"})," activity as it happens. Powered by Jack Of All Options (JOAO), the page surfaces sweeps, block trades, and split orders that often precede large price moves — with AI playbook recommendations on each."]}),e.jsx(r,{children:"What each entry shows"}),e.jsxs(h,{children:[e.jsx(t,{children:"Symbol, option type (Call/Put), strike price, and expiration date"}),e.jsx(t,{children:"Notional value (USD), contract size, and venue count"}),e.jsx(t,{children:"Flow type -- Sweep, Block, or Split"}),e.jsx(t,{children:"Sentiment classification (bullish, bearish, neutral)"}),e.jsx(t,{children:"Confidence score, aggressiveness score, and taker rate"}),e.jsx(t,{children:"Technical indicators (RSI, MACD) on the underlying"}),e.jsx(t,{children:"Underlying flow score and directional bias"}),e.jsx(t,{children:"Position type (new position vs. add-on)"}),e.jsx(t,{children:"AI playbook recommendation and rationale"})]}),e.jsx(r,{children:"Filters & summary"}),e.jsxs(h,{children:[e.jsx(t,{children:"Filter by option type (All/Calls/Puts) or sweep type (Sweep/Block/Split)"}),e.jsx(t,{children:"Search by symbol or summary text"}),e.jsx(t,{children:"Live summary bar: total flow (USD), call/put counts, sentiment split, average confidence"})]}),e.jsx(r,{children:"Ticker tape & refresh"}),e.jsx(n,{children:"A scrolling ticker tape at the top of the page surfaces the latest entries in real-time for a quick-glance view. Data auto-refreshes every 45 seconds."})]})},{id:"price-alerts",title:"Price Alerts",icon:xe,content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Price Alerts ",e.jsx(W,{})]}),e.jsx(n,{children:"Set alerts on any asset -- crypto, stocks, or forex -- and get notified when your conditions are met."}),e.jsx(r,{children:"Alert types"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Price alert"})," -- triggers when an asset crosses above or below a specific price."]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Percentage change alert"})," -- triggers when an asset moves by a specified percentage within a time window."]})]}),e.jsx(r,{children:"Configurable rules"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Cooldowns"})," -- silence an alert for N minutes after it triggers"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Time windows"})," -- restrict percentage-change alerts to a rolling window (e.g. last 1h, 4h, 24h)"]}),e.jsx(t,{children:"Pause, edit, or delete any alert at any time"})]}),e.jsx(r,{children:"Limits"}),e.jsx(h,{children:e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Elite:"})," Unlimited alerts. Alerts are part of the members’ dashboard."]})}),e.jsx(r,{children:"Notifications"}),e.jsx(n,{children:"Alerts trigger in-app notifications on the dashboard in real time. If your Discord account is connected (El
26ite), you also receive a Discord DM the moment your condition fires."})]})},{id:"ai-mentor",title:"AI Mentor",icon:ue,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["AI Mentor ",e.jsx(v,{})]}),e.jsxs(n,{children:["Your personalized AI trading mentor — trained on every JOAT indicator, every strategy, every signal the platform has issued, and tailored to ",e.jsx("em",{children:"your"})," watchlist, trading style, and goals. It's not a generic chatbot. It knows the platform and it knows you."]}),e.jsx(r,{children:"Capabilities"}),e.jsxs(h,{children:[e.jsx(t,{children:"Analyze specific coins or stocks with price action, structure, and key levels"}),e.jsx(t,{children:"Multi-coin context — pull live context for up to 5 assets at once"}),e.jsx(t,{children:"Get market insights, macro context, and sector rotation reads"}),e.jsx(t,{children:"Review your own trade setups and explain why one worked or stopped out"}),e.jsx(t,{children:'Build custom strategies ("make me a breakout plan for SOL") and alerts on the fly'}),e.jsx(t,{children:"Learn trading concepts from basics to advanced — with inline charts and metrics"})]}),e.jsx(r,{children:"Personalization"}),e.jsx(n,{children:"Mentor reads your watchlist, active strategies, and trading profile automatically. Conversations are contextual — it remembers your prior questions within a session and adapts explanations to your experience level."}),e.jsx(r,{children:"Interface"}),e.jsxs(h,{children:[e.jsx(t,{children:"Premade quick prompts to get started instantly"}),e.jsx(t,{children:"Thinking stages show progress while the mentor reasons through complex questions"}),e.jsx(t,{children:"Inline charts and metrics cards rendered directly in the chat"}),e.jsx(t,{children:"No usage limits for Elite members"})]})]})},{id:"market-analysis",title:"Market Analysis",icon:me,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Market Analysis ",e.jsx(v,{})]}),e.jsx(n,{children:"Drop any chart screenshot -- any symbol, any timeframe, any exchange -- and get a full AI trade plan in seconds. Every new account gets a free demo on the first run so you can try it before upgrading."}),e.jsx(r,{children:"What the analysis includes"}),e.jsxs(h,{children:[e.jsx(t,{children:"Directional bias (long / short / neutral) with confidence score"}),e.jsx(t,{children:"Entry zone with reasoning grounded in price action"}),e.jsx(t,{children:"Stop loss placement and multiple take-profit targets"}),e.jsx(t,{children:"Risk / reward ratio calculated for each target"}),e.jsx(t,{children:"Market structure: trend, support and resistance, confluence zones"}),e.jsx(t,{children:"Volume context and momentum read"}),e.jsx(t,{children:"Plain-language summary you can act on immediately"})]}),e.jsx(r,{children:"How to use it"}),e.jsxs(h,{children:[e.jsx(t,{children:"Drag-and-drop, paste from clipboard, or upload a chart image"}),e.jsx(t,{children:"Works with TradingView, exchange charts, or any screenshot"}),e.jsx(t,{children:"Analyses are saved to your history so you can revisit every trade plan"})]}),e.jsx(r,{children:"Sharing"}),e.jsx(n,{children:"Each trade plan generates a unique public link. The shared page renders the original chart with annotations, the full analysis, and every target level -- ideal for posting ideas to the community or discussing setups with other traders."})]})},{id:"screener",title:"AI Screener",icon:se,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["AI Screener ",e.jsx(v,{})]}),e.jsx(n,{children:`Describe what you're looking for in plain English -- "oversold large-cap stocks with rising volume" or "crypto under $10 with a golden cross" -- and Screener translates it into a real filter spec, scans the entire market, and ranks the best matches. No filter syntax to learn.`}),e.jsx(r,{children:"Asset coverage"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Stocks"})," -- US equities across major exchanges"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Crypto"})," -- top coins by market cap"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Futures"})," -- indices, commodities, energy"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Forex"})," -- major and minor currency pairs"]}),e.jsxs(t,{children:["Or scan ",e.jsx("strong",{className:"text-white/80",children:"all four"})," at once"]})]}),e.jsx(r,{children:"Filter fields you can target"}),e.jsx(n,{children:"Price, market cap, volume, relative volume, sector, industry, exchange, RSI, % change, distance from 52-week high / low, P/E, EPS, dividend yield, and SMA crosses (golden / death). Combine any of these via n
26atural language or pick them manually as filter chips."}),e.jsx(r,{children:"Smart Scan presets"}),e.jsx(n,{children:"One-click presets find liquid, moving assets right now without typing anything: top movers (all markets), top stocks by momentum, top crypto by 24h move, most-active futures, FX pairs with momentum. Use them as a starting point and refine."}),e.jsx(r,{children:"Results"}),e.jsxs(h,{children:[e.jsx(t,{children:"Up to 50 ranked matches with logos, price, % change, volume, and sparkline"}),e.jsx(t,{children:"Movement-weighted ranking surfaces real movers when markets are active"}),e.jsx(t,{children:"30-second rotation so the same top names don't always win cap-ties"}),e.jsx(t,{children:"Click any row to open a detail drawer with extended stats and an embedded TradingView chart"})]}),e.jsx(r,{children:"AI summary + trade setup"}),e.jsx(n,{children:"After each scan, the AI writes a 2-3 sentence summary of what the results mean and proposes a trade setup on the strongest pick -- direction, entry, stop, take-profit, R:R ratio, conviction, and a short rationale."}),e.jsx(r,{children:"Saved screens"}),e.jsx(n,{children:"Save any scan with a name and re-run it with one click. Saved screens persist across sessions and show your last run time + last result count so you can spot when a setup is heating up again."}),e.jsx(D,{children:"Scans are rate-limited to 30 per hour per user (only one in-flight at a time). On weekends or after-hours, technical filters auto-relax so you still see liquidity-ranked candidates instead of an empty list."})]})},{id:"volume-profile",title:"Volume Profile",icon:pe,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Volume Profile ",e.jsx(v,{})]}),e.jsx(n,{children:"A normal chart shows you where price went. Volume Profile shows you where the money actually traded -- how much volume changed hands at every price level. That's how you find real support and resistance instead of drawing lines and hoping."}),e.jsx(r,{children:"How to read it"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Long bars"})," -- heavy trading at that price. Price tends to stall or bounce there"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Point of Control (POC)"})," -- the single most-traded price, marked in amber. Acts like a magnet"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Value Area"}),' -- the green band holding 70% of all volume. This is "fair value"']}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Short grey bars"})," -- barely any trading. Price moves through these fast"]})]}),e.jsx(r,{children:"Using it in a trade"}),e.jsx(n,{children:"When price sits inside the value area the market is balanced -- the edges (VAH / VAL) are where fades tend to work. When price breaks out of the value area and holds, that's a genuine move rather than noise. Thin, low-volume pockets are where you get the fast runs."}),e.jsx(r,{children:"Markets & timeframes"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Crypto"})," -- live Binance data"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Stocks, Forex, Futures"})," -- live Yahoo Finance data"]}),e.jsx(t,{children:"Five timeframes: 5M, 15M, 1H, 4H, 1D"}),e.jsx(t,{children:"Search any symbol with autocomplete, or use the preset chips"})]}),e.jsx(D,{children:"The profile is built from real exchange volume -- each bar's volume is distributed across the price range it actually traded through. Nothing is estimated or simulated."})]})},{id:"codes",title:"Jack Of All Codes",icon:ge,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Jack Of All Codes ",e.jsx(v,{})]}),e.jsx(n,{children:"A split-pane AI IDE for Pine Script v6. Chat on one side, a full Monaco editor on the other -- build, debug, and refine TradingView indicators and strategies without writing a single line by hand."}),e.jsx(r,{children:"What's in the box"}),e.jsxs(h,{children:[e.jsx(t,{children:"Split-pane layout: AI chat + Monaco code editor with syntax highlighting"}),e.jsx(t,{children:"10+ starter blueprints: FVG Map, MA Crossover, Order Blocks, SMC Dashboard, RSI Divergence, and more"}),e.jsx(t,{children:"Attach chart screenshots to your prompt so the AI can reference what you're looking at"}),e.jsx(t,{children:"Version history -- every generation is saved, roll back whenever you need to"})]}),e.jsx(r,{children:"Six code actions"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Generate"})," -- create a new script from a prompt or blueprint"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Edit"})," -- make targeted changes to the current script"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Refine"})," -- polish style, naming, and structure"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Debug"})," -- fix errors and compile issues"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Optimize"})," -- improve performance and reduce repaints"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Explain"})," -- walk through what the code does line by line"]})]}),e.jsx(D,{children:"Powered by GPT-5.4 with GPT-5.3 fallback. Generated code targets Pine Script v6 and is compatible with all TradingView chart types."})]})},{id:"watchlist",title:"Watchlist",icon:fe,content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Watchlist ",e.jsx(W,{})]}),e.jsx(n,{children:"Track any crypto, stock, or forex asset in a personalized watchlist with live data."}),e.jsx(r,{children:"Features"}),e.jsxs(h,{children:[e.jsx(t,{children:"Live prices with 24-hour and 7-day change percentages"}),e.jsx(t,{children:"Sparkline mini-charts for quick trend visualization"}),e.jsx(t,{children:"Drag and drop to reorder your list"}),e.jsx(t,{children:"Import and export via CSV"}),e.jsx(t,{children:"Market cap data where available"})]}),e.jsx(r,{children:"Adding assets"}),e.jsx(n,{children:"Use the search dialog to find any asset by name or ticker symbol. The search covers crypto (via CoinGecko), stocks, forex pairs, and futures."})]})},{id:"news",title:"News",icon:je,content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["News ",e.jsx(W,{})]}),e.jsx(n,{children:"A real-time crypto and markets news feed with ticker detection, sentiment tagging, and source attribution so you can see which headlines actually matter to your portfolio."}),e.jsx(r,{children:"What it does"}),e.jsxs(h,{children:[e.jsx(t,{children:"Live feed from multiple vetted sources -- updated continuously"}),e.jsx(t,{children:"Automatic ticker detection so news is tagged to the assets it affects"}),e.jsx(t,{children:"Sentiment hint (bullish / bearish / neutral) on each headline"}),e.jsx(t,{children:"Filter by asset, source, or sentiment"}),e.jsx(t,{children:"Click through to the original article for the full story"})]}),e.jsx(n,{children:"News is cross-referenced with whale flow and signal activity so you can quickly see the context behind a move."})]})},{id:"economic-calendar",title:"Economic Calendar",icon:we,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Economic Calendar ",e.jsx(v,{})]}),e.jsx(n,{children:"A curated macro calendar for traders -- only the events that actually move markets. Roughly 20 high-impact prints per week (CPI, NFP, FOMC, GDP, PMI, central-bank rate decisions, etc.) instead of a 700-row firehose of every municipal data release."}),e.jsx(r,{children:"Three views"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Today"}),` -- vertical timeline of today's events with a live "now" line. Default on mobile.`]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Week"})," -- 7-day grid with compact event cards. Default on desktop."]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Month"})," -- 6-week overview grid with event counts per day."]})]}),e.jsx(r,{children:"Event detail panel"}),e.jsx(n,{children:"Click any event for a full deterministic breakdown -- no AI required:"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Sentiment Panel"})," -- directional reaction map across currency, risk assets, bonds, and gold"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Trade Plan"})," -- 5 scenario pills (huge beat / beat / inline / miss / huge miss), bullish + bearish trade setups, alternative trades, market implications, summary"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Historical Reaction"})," -- how markets reacted to the last several prints of this same event"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"AI Read"})," -- one-sentence narrative summary of how this print is likely to play out"]}),e.jsx(t,{children:"Previous, forecast, and actual values -- with beat / miss pill once released"})]}),e.jsx(r,{children:"Filters"}),e.jsxs(h,{children:[e.jsx(t,{children:"Impact (high / medium / low)"}),e.jsx(t,{children:"Country (US / EU / GB / JP / CN / DE / CA / AU / NZ / CH)"}),e.jsx(t,{children:"Currency (USD, EUR, GBP, JPY, etc.)"}),e.jsx(t,{children:"Category (rates, inflation, employment, growth, sentiment, housing)"}),e.jsx(t,{children:"Starred-only -- show just the events you've added to your watchlist"})]}),e.jsx(r,{children:"Live countdown + Just-Released"}),e.jsx(n,{children:"A persistent countdown ticks down to the next high-impact print. When a value drops, the card pulses cyan for 3 minutes so you spot the release at a glance even if you weren't watching the page."}),e.jsx(r,{children:"Watchlist + Discord reminders"}),e.jsx(n,{children:"Star any event to add it to your watchlist. If your Discord account is linked, you'll receive a DM 30 minutes before the release fires -- so you have time to position before the move."}),e.jsx(D,{children:"Auto-refreshes every 60 seconds. Volatility Index badges on each event show the historical magnitude of the post-release move (1-5 dots). Source: FMP economic calendar API."})]})}
26,{id:"prices",title:"Prices",icon:ye,content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Prices ",e.jsx(W,{})]}),e.jsx(n,{children:"A full crypto market screener -- sortable, searchable, and live. See the entire market at a glance without leaving the dashboard."}),e.jsx(r,{children:"Features"}),e.jsxs(h,{children:[e.jsx(t,{children:"Live prices for hundreds of coins with 1h / 24h / 7d changes"}),e.jsx(t,{children:"Sort by market cap, volume, price change, or any column"}),e.jsx(t,{children:"Search by name or ticker"}),e.jsx(t,{children:"Favorite assets to pin them to the top"}),e.jsx(t,{children:"Click any row to open a detail view with chart and key metrics"})]}),e.jsx(n,{children:"Data is sourced from CoinGecko and refreshed continuously."})]})},{id:"whale-tracking",title:"Whale Tracking",icon:Ye,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Whale Tracking ",e.jsx(v,{})]}),e.jsx(n,{children:"Track the wallets that actually move markets. Whales is split into two tabs -- Flow Intelligence (on-chain crypto) and Institutional Intel (13F filings) -- so you can see both what DeFi whales and Wall Street funds are doing in one place."}),e.jsx(r,{children:"Flow Intelligence"}),e.jsxs(h,{children:[e.jsx(t,{children:"Live feed of $1M+ whale transactions across 16+ tracked coins"}),e.jsx(t,{children:"Volume charts, net flow, and top sending / receiving entities"}),e.jsx(t,{children:"Wallet search -- look up any address and see its history, balance, and recent moves"}),e.jsx(t,{children:"Top Ethereum wallet leaderboard with live balance changes"}),e.jsx(t,{children:"AI analysis of whale movement patterns and what they likely mean for price"}),e.jsx(t,{children:"Integrated crypto news feed so you can correlate flow with headlines"})]}),e.jsx(r,{children:"Institutional Intel"}),e.jsxs(h,{children:[e.jsx(t,{children:"13F portfolio analysis for major funds and asset managers"}),e.jsx(t,{children:"Position changes quarter over quarter -- new buys, add-ons, sells, exits"}),e.jsx(t,{children:"Side-by-side portfolio comparison across multiple institutions"}),e.jsx(t,{children:"Top holdings breakdown with weight and market value"})]}),e.jsx(n,{children:"Whale data is sourced from on-chain monitoring and SEC filings, updated continuously. Large transactions often front-run volatility -- use this page to stay ahead of the move, not behind it."})]})},{id:"transactions",title:"Big Transactions",icon:be,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Big Transactions ",e.jsx(v,{})]}),e.jsx(n,{children:"A live tape of every $1M+ on-chain crypto transaction -- streaming in real-time across Bitcoin, Ethereum, Tron, Solana, Ripple, BNB Chain, and 10+ more. Sibling page to Whale Tracking: Whales is for wallet research, Transactions is the firehose."}),e.jsx(r,{children:"Severity tiers"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Large"})," -- $1M to $10M"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-amber-300",children:"Huge"})," -- $10M to $100M"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-red-300",children:"Insane"})," -- $100M+"]})]}),e.jsx(r,{children:"Direction classification"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Buy / Sell"})," -- DEX-confirmed trades"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Deposit"})," -- wallet → exchange (often precedes selling)"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Withdraw"})," -- exchange → wallet (often precedes accumulation)"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Transfer"})," -- wallet to wallet"]})]}),e.jsx(r,{children:"Special-event detection"}),e.jsxs(n,{children:["Goes beyond simple transfers -- automatically identifies ",e.jsx("strong",{className:"text-white/80",children:"mints"}),",",e.jsx("strong",{className:"text-white/80",children:" burns"}),", ",e.jsx("strong",{className:"text-white/80",children:"XRP escrow locks / unlocks"}),', and treasury moves that are semantically meaningful but get flattened into "transfer" on raw feeds.']}),e.jsx(r,{children:"Filters & UI"}),e.jsxs(h,{children:[e.jsx(t,{children:"Min-value slider ($1M to $1B)"}
26),e.jsx(t,{children:"Quick chain filter (All / BTC / ETH / TRX / SOL / XRP / BNB)"}),e.jsx(t,{children:"Severity filter (All / Large / Huge / Insane)"}),e.jsx(t,{children:"Auto-scrolling ticker tape across the top -- pause on hover"}),e.jsx(t,{children:"Click any row for full detail: addresses, exchange labels, on-chain explorer link"}),e.jsx(t,{children:"Last view persisted in local storage -- comes back exactly how you left it"})]}),e.jsx(r,{children:"Discord DM alerts"}),e.jsx(n,{children:"Set a per-user alert: get DM'd when any transaction above your threshold lands (or filtered to a specific coin). Throttled to one DM per 5 minutes per user so insane-hour bursts don't spam you. Requires a linked Discord account."}),e.jsx(D,{children:"Live via Server-Sent Events (max 3 concurrent streams per user) with a 12-second polling fallback. Data source: Whale Alert -- general firehose plus per-coin calls for ETH / USDC / SOL / XRP / ADA so non-BTC/USDT moves still show up."})]})},{id:"academy",title:"Academy",icon:ve,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Academy ",e.jsx(v,{})]}),e.jsx(n,{children:"A structured learning system with 14 pathways covering every aspect of trading, from beginner fundamentals to advanced market microstructure."}),e.jsx(r,{children:"Learning pathways"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 mb-4",children:["Trading Foundations","Chart Patterns","Risk Management","Trading Psychology","Technical Indicators","Advanced Patterns","Crypto & DeFi","JOAT Platform","Options Trading","Scalping","Swing Trading","Forex","Portfolio Management","Market Microstructure"].map(o=>e.jsxs("div",{className:"flex items-center gap-2 text-sm text-white/60 py-1",children:[e.jsx(ae,{className:"h-3 w-3 text-primary/60 shrink-0"}),o]},o))}),e.jsx(r,{children:"Quizzes"}),e.jsx(n,{children:"Each pathway includes AI-generated quizzes to test your understanding. A daily pop quiz appears on the Overview page with streak tracking to keep you consistent."})]})},{id:"journal",title:"Trading Journal",icon:ke,badge:"Elite",content:e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:["Trading Journal ",e.jsx(v,{})]}),e.jsx(n,{children:"A full-featured trade log for serious traders -- log every position, attach chart screenshots, tag setups and emotions, and let the analytics surface what's actually working in your trading. Built around the simple truth: you can't improve what you don't measure."}),e.jsx(r,{children:"Logging trades"}),e.jsxs(h,{children:[e.jsx(t,{children:"One dialog covers all asset classes -- stocks, options, crypto, forex, futures"}),e.jsx(t,{children:"Required: ticker, asset class, side (long / short), entry price, qty, opened-at"}),e.jsx(t,{children:"Optional: stop, target, fees, risk amount ($), setup tag, conviction (1-5), notes"}),e.jsx(t,{children:"Tag with up to 8 emotion tags + 8 mistake tags so you can pattern-match later"}),e.jsx(t,{children:"Attach a screenshot (8MB max) -- auto-converted to webp and stored privately"}),e.jsx(t,{children:"Mark as Open or Closed; closed trades require exit price + closed-at timestamp"})]}),e.jsx(r,{children:"The KPI strip"}),e.jsx(n,{children:"Across the top of the page: total trades, wins, losses, win rate, average win, average loss, profit factor, expectancy, average R-multiple, total PnL, and max drawdown. PnL and R are computed live from your fee policy -- no migrations required when the formula evolves."}),e.jsx(r,{children:"Analytics"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Equity Curve"})," -- cumulative PnL over time, area chart"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Calendar Heatmap"})," -- daily PnL on a calendar grid; click any day for the full breakdown"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Hourly + Monthly bars"})," -- find your best hours and months"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Setup Performance grid"})," -- win rate, total PnL, and avg R per setup tag"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Streak strip"})," -- current and longest win / loss streaks"]})]}),e.jsx(r,{children:"Trades table + filters"}),e.jsxs(h,{children:[e.jsx(t,{children:"Filter by status (open / closed), asset class, date range (7D / 30D / 90D / YTD / All)"}),e.jsx(t,{children:"Free-text search across ticker + notes"}),e.jsx(t,{children:"Tag filter -- match emotion / mistake / setup tags"}),e.jsx(t,{children:"Click any trade for the full detail dialog (edit + delete from there)"})]}
26),e.jsx(r,{children:"Daily Notes"}),e.jsx(n,{children:"One free-form note per day -- pre-market plan, post-market recap, lessons, screenshots-of-the-day. Click a calendar cell to jump to that day's note. Treated as a journaling layer on top of the trade log itself."}),e.jsx(r,{children:"Import & export"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"CSV import"})," -- bring in up to 500 trades at once. Per-row validation; a report tells you exactly which rows didn't parse."]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"CSV export"})," -- download your filtered trades for spreadsheets / tax / external tooling"]})]}),e.jsx(D,{children:"All trades and screenshots are scoped to your account -- you're the only one who can see them. Screenshots are stored under unguessable URLs and stripped of EXIF metadata on upload."})]})},{id:"plans-billing",title:"Plans & Billing",icon:Ne,content:e.jsxs(e.Fragment,{children:[e.jsx(m,{children:"Plans & Billing"}),e.jsx(n,{children:"The dashboard is members-only. A free account is the JOAT Discord — the free indicators, the daily results recap, giveaways and the community — and nothing in here. The signal channels are visible from the free side; the calls posted in them are not."}),e.jsx("div",{className:"rounded-lg border border-white/[0.06] overflow-hidden mb-6",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-white/[0.06] bg-white/[0.02]",children:[e.jsx("th",{className:"text-left py-2.5 px-4 text-white/50 font-medium",children:"Feature"}),e.jsx("th",{className:"text-center py-2.5 px-4 text-white/50 font-medium w-24",children:"Free"}),e.jsx("th",{className:"text-center py-2.5 px-4 text-amber-400/80 font-medium w-24",children:"Elite"})]})}),e.jsx("tbody",{children:c.map((o,d)=>e.jsxs("tr",{className:d<c.length-1?"border-b border-white/[0.04]":"",children:[e.jsx("td",{className:"py-2 px-4 text-white/60",children:o.feature}),e.jsx("td",{className:"py-2 px-4 text-center",children:e.jsx("span",{className:"inline-flex justify-center",children:e.jsx(Z,{value:o.basic})})}),e.jsx("td",{className:"py-2 px-4 text-center",children:e.jsx("span",{className:"inline-flex justify-center",children:e.jsx(Z,{value:o.elite})})})]},o.feature))})]})}),e.jsx(r,{children:"Pricing"}),e.jsxs(h,{children:[e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Elite:"})," $84.99/month, or $550/year (46% savings -- about $45.83/month)"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Indicators:"})," $59.99/month, or $249.99/year"]}),e.jsxs(t,{children:[e.jsx("strong",{className:"text-white/80",children:"Your personal code:"})," minted when you answer the three questions on the site -- one use, 24 hours, applied automatically at checkout."]})]}),e.jsx(r,{children:"Managing your subscription"}),e.jsxs(n,{children:["Subscriptions are managed through"," ",e.jsx("a",{href:"https://whop.com/jack-of-all-trades-official",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:text-primary/80 underline underline-offset-2",children:"Whop"}),". You can upgrade, downgrade, or cancel at any time from your Whop dashboard. There are no refunds."]})]})},{id:"discord-connection",title:"Discord Connection",icon:Se,content:e.jsxs(e.Fragment,{children:[e.jsx(m,{children:"Discord Connection"}),e.jsxs(n,{children:["Discord is ",e.jsx("strong",{className:"text-white/80",children:"optional"}),". You do not need a Discord account to use any feature on the JOAT dashboard."]}),e.jsx(r,{children:"What connecting Discord gives you"}),e.jsxs(h,{children:[e.jsx(t,{children:"DM notifications for triggered price alerts"}),e.jsx(t,{children:"Access to the JOAT community Discord server"}),e.jsx(t,{children:"Signal notifications in Discord channels"})]}),e.jsx(r,{children:"How to connect"}),e.jsxs(n,{children:["Go to ",e.jsx("strong",{className:"text-white/80",children:"Account > Settings"}),' in the dashboard and click "Connect Discord." You will be redirected to Discord to authorize, then returned to the dashboard.']}),e.jsxs(n,{children:["Community server invite:"," ",e.jsx("a",{href:"https://discord.gg/sjsJ
26wdZPew",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:text-primary/80 underline underline-offset-2",children:"discord.gg/sjsJwdZPew"})]})]})},{id:"faq",title:"FAQ",icon:Ae,content:e.jsxs(e.Fragment,{children:[e.jsx(m,{children:"Frequently Asked Questions"}),e.jsx("div",{className:"space-y-4",children:Ze.map((o,d)=>e.jsx(et,{q:o.q,a:o.a},d))}),e.jsx("div",{className:"mt-6 rounded-lg border border-white/[0.06] bg-white/[0.02] px-4 py-3",children:e.jsxs("p",{className:"text-sm text-white/50",children:["Still have questions? Reach out at"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:text-primary/80 underline underline-offset-2",children:"[email protected]"})," ","or in the"," ",e.jsx("a",{href:"https://discord.gg/sjsJwdZPew",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:text-primary/80 underline underline-offset-2",children:"Discord community"}),"."]})})]})}]}function et({q:s,a:i}){const[c,o]=x.useState(!1);return e.jsxs("div",{className:"border border-white/[0.06] rounded-lg overflow-hidden",children:[e.jsxs("button",{type:"button",className:"w-full flex items-center justify-between px-4 py-3 text-left text-sm font-medium text-white/80 hover:bg-white/[0.02] transition-colors",onClick:()=>o(!c),"aria-expanded":c,children:[s,e.jsx(te,{className:`h-4 w-4 shrink-0 text-white/40 transition-transform duration-200 ${c?"rotate-180":""}`})]}),e.jsx("div",{className:`overflow-hidden transition-all duration-200 ${c?"max-h-40 opacity-100":"max-h-0 opacity-0"}`,children:e.jsx("div",{className:"px-4 pb-3 text-sm text-white/55 leading-relaxed",children:i})})]})}function tt({section:s,isActive:i,collapsed:c,onClick:o}){const d=s.icon;return e.jsxs("button",{type:"button",onClick:o,title:c?s.title:void 0,className:`group relative w-full flex items-center rounded-md text-left text-sm transition-colors ${c?"justify-center px-0 py-2":"gap-2.5 px-3 py-1.5"} ${i?"bg-primary/10 text-primary font-medium":"text-white/50 hover:text-white/75 hover:bg-white/[0.04]"}`,"aria-current":i?"true":void 0,children:[i&&!c&&e.jsx("span",{className:"absolute left-0 top-1/2 h-4 w-0.5 -translate-y-1/2 rounded-r-full bg-primary/80","aria-hidden":!0}),e.jsx(d,{className:"h-4 w-4 shrink-0"}),!c&&e.jsx("span",{className:"truncate",children:s.title}),!c&&s.badge&&e.jsx(J,{className:"ml-auto bg-amber-500/10 text-amber-400/70 border-amber-500/15 text-[9px] font-normal px-1 py-0 leading-3 hover:bg-amber-500/10",children:s.badge})]})}function K({sections:s,activeId:i,search:c,onSearchChange:o,onNavigate:d,collapsed:l=!1,onToggleCollapse:k}){const j=s.filter(p=>p.title.toLowerCase().includes(c.toLowerCase()));return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:`flex items-center ${l?"flex-col gap-3 px-2 pt-2 pb-3":"gap-3 px-4 pt-3 pb-4"}`,children:[e.jsx("div",{className:"relative overflow-hidden rounded-xl flex-shrink-0",children:e.jsx("div",{className:"h-8 w-8 rounded-xl ring-1 ring-white/10 overflow-hidden bg-background/50 shadow-sm",children:e.jsx("img",{src:ne,alt:"JOAT",className:"h-full w-full object-cover scale-110"})})}),!l&&e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-semibold text-white/90 leading-tight",children:"JOAT"}),e.jsx("p",{className:"text-[11px] text-white/40 leading-tight",children:"Documentation"})]}),k&&e.jsx("button",{type:"button",onClick:k,title:l?"Expand sidebar":"Collapse sidebar","aria-label":l?"Expand sidebar":"Collapse sidebar",className:"flex items-center justify-center h-7 w-7 rounded-md text-white/40 hover:text-white/80 hover:bg-white/[0.05] transition-colors",children:l?e.jsx(Ce,{className:"h-4 w-4"}):e.jsx(Te,{className:"h-4 w-4"})})]}),!l&&e.jsx("div",{className:"px-3 pb-3",children:e.jsxs("div",{className:"relative",children:[e.jsx(se,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-white/30"}),e.jsx("input",{type:"text",value:c,onChange:p=>o(p.target.value),placeholder:"Search docs...",className:"w-full rounded-md border border-white/[0.06] bg-white/[0.03] pl-8 pr-3 py-1.5 text-xs text-white/80 placeholder:text-white/25 focus:outline-none focus:ring-1 focus:ring-primary/30 focus:border-primary/20 transition-colors","aria-label":"Search documentation"})]})}),e.jsx("div",{className:`h-px bg-white/[0.06] mb-2 ${l?"mx-2":"mx-3"}`}),e.jsxs("nav",{className:`flex-1 overflow-y-auto pb-4 space-y-0.5 ${l?"px-1.5":"px-2"}`,"aria-label":"Documentation sections",children:[j.length===0&&!l&&e.jsx("p",{className:"px-3 py-4 text-xs text-white/30 text-center",children:"No matching sections"}),j.map(p=>e.jsx(tt,{section:p,isActive:i===p.id,collapsed:l,onClick:()=>d(p.id)},p.id))]}),e.jsx("div",{className:`border-t border-white/[0.06] py-3 space-y-1.5 ${l?"px-2":"px-4"}`,children:l?e.jsxs(e.Fragment,{children:[e.jsx(_,{to:"/",title:"Back to home",className:"flex items-center justify-center h-8 w-full rounded-md text-white/40 hover:text-white/70 hover:bg-white/[0.04] transition-colors",children:e.jsx(z,{className:"h-3.5 w-3.5"})}),e.jsx("a",{href:"https://app.jackofalltrades.vip",target:"_blank",rel:"noopener noreferrer",title:"Open dashboard",className:"flex items-center justify-center h-8 w-full rounded-md text-white/40 hover:text-white/70 hover:bg-white/[0.04] transition-colors",children:e.jsx(G,{className:"h-3.5 w-3.5"})})]}):e.jsxs(e.Fragment,{children:[e.jsxs(_,{to:"/",className:"flex items-center gap-2 text-xs text-white/40 hover:text-white/60 transition-colors",children:[e.jsx(z,{className:"h-3 w-3"}),"Back to home"]}),e.jsxs("a",{href:"https://app.jackofalltrades.vip",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-xs text-white/40 hover:text-white/60 transition-colors",children:[e.jsx(G,{className:"h-3 w-3"}),"Open dashboard"]})]})})]})}
26function st(){return e.jsxs("div",{"aria-hidden":!0,className:"pointer-events-none fixed inset-0 z-0 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(to right, rgba(255,255,255,0.6) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,0.6) 1px, transparent 1px)",backgroundSize:"48px 48px",maskImage:"radial-gradient(ellipse at center, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 75%)",WebkitMaskImage:"radial-gradient(ellipse at center, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 75%)"}}),e.jsx(g.div,{className:"absolute -top-40 -left-40 h-[520px] w-[520px] rounded-full",style:{background:"radial-gradient(circle at center, rgba(245,158,11,0.20) 0%, rgba(245,158,11,0.08) 35%, rgba(245,158,11,0) 70%)",filter:"blur(40px)"},animate:{x:[0,60,-30,0],y:[0,40,-20,0]},transition:{duration:22,repeat:1/0,ease:"easeInOut"}}),e.jsx(g.div,{className:"absolute -bottom-40 -right-40 h-[560px] w-[560px] rounded-full",style:{background:"radial-gradient(circle at center, rgba(59,130,246,0.12) 0%, rgba(59,130,246,0.05) 40%, rgba(59,130,246,0) 70%)",filter:"blur(50px)"},animate:{x:[0,-50,30,0],y:[0,-30,50,0]},transition:{duration:28,repeat:1/0,ease:"easeInOut"}}),e.jsx(g.div,{className:"absolute top-1/3 left-1/2 h-[680px] w-[680px] -translate-x-1/2 -translate-y-1/2 rounded-full",style:{background:"radial-gradient(circle at center, rgba(245,158,11,0.06) 0%, rgba(245,158,11,0) 60%)",filter:"blur(60px)"},animate:{opacity:[.6,1,.6]},transition:{duration:12,repeat:1/0,ease:"easeInOut"}}),e.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(to bottom, hsla(220,40%,6%,0.6) 0%, transparent 20%, transparent 80%, hsla(220,40%,6%,0.8) 100%)"}})]})}const ee="joat.docs.sidebarCollapsed",xt=()=>{const s=$e(),i=x.useMemo(()=>Ke({indicators:s.indicators,strategies:s.strategies}),[s.indicators,s.strategies]),[c,o]=x.useState(i[0].id),[d,l]=x.useState(!1),[k,j]=x.useState(""),[p,S]=x.useState(!1),[y,T]=x.useState(80),[N,A]=x.useState(()=>{try{return window.localStorage.getItem(ee)==="1"}catch{return!1}}),I=x.useCallback(()=>{A(a=>{const u=!a;try{window.localStorage.setItem(ee,u?"1":"0")}catch{}return u})},[]);x.useEffect(()=>{const a=()=>{const u=document.querySelector("nav");u&&T(u.getBoundingClientRect().height)};return a(),window.addEventListener("scroll",a),window.addEventListener("resize",a),()=>{window.removeEventListener("scroll",a),window.removeEventListener("resize",a)}},[]);const C=x.useRef(new Map),O=x.useCallback(a=>{const u=C.current.get(a);if(u){const f=y+16,b=u.getBoundingClientRect().top+window.scrollY-f;window.scrollTo({top:b,behavior:"smooth"})}S(!1)},[y]);x.useEffect(()=>{const a=[],u=f=>{const b=f.filter(E=>E.isIntersecting).sort((E,F)=>E.boundingClientRect.top-F.boundingClientRect.top);if(b.length>0){const E=b[0].target.getAttribute("data-section-id");E&&o(E)}};return C.current.forEach(f=>{const b=new IntersectionObserver(u,{rootMargin:"-80px 0px -60% 0px",threshold:0});b.observe(f),a.push(b)}),()=>{a.forEach(f=>f.disconnect())}},[i]);const M=x.useCallback((a,u)=>{u&&C.current.set(a,u)},[]);return e.jsxs("div",{className:"relative min-h-screen",style:{background:"hsl(220, 40%, 6%)"},children:[e.jsx(st,{}),e.jsx(Ge,{}),e.jsx("div",{style:{height:`${y}px`}}),e.jsx("div",{className:"lg:hidden sticky z-40",style:{top:`${y}px`},children:e.jsxs("div",{className:"flex items-center justify-between px-4 py-2",children:[e.jsx("span",{className:"text-xs text-white/50",children:"Documentation"}),e.jsxs(Re,{open:p,onOpenChange:S,children:[e.jsx(We,{asChild:!0,children:e.jsxs(B,{variant:"ghost",size:"sm",className:"h-7 px-2 text-white/50 hover:text-white/80 hover:bg-white/[0.05]",children:[e.jsx(le,{className:"h-4 w-4 mr-1.5"}),e.jsx("span",{className:"text-xs",children:"Sections"})]})}),e.jsxs(qe,{side:"left",className:"w-72 p-0 border-r border-white/[0.06] backdrop-blur-xl",style:{background:"hsla(220, 40%, 6%, 0.92)"},children:[e.jsx(Be,{className:"sr-only",children:"Documentation navigation"}),e.jsx(K,{sections:i,activeId:c,search:k,onSearchChange:j,onNavigate:O})]})]})]})}),e.jsxs("div",{className:"relative flex",children:[e.jsx("aside",{className:`hidden lg:flex flex-col fixed left-0 top-0 bottom-0 border-r border-white/[0.06] backdrop-blur-xl z-30 transition-[width] duration-300 ease-[
26cubic-bezier(0.2,0.65,0.3,0.9)] ${N?"w-16":"w-64"}`,style:{background:"hsla(220, 40%, 6%, 0.72)",paddingTop:`${Math.max(y-28,12)}px`},children:e.jsx(K,{sections:i,activeId:c,search:k,onSearchChange:j,onNavigate:O,collapsed:N,onToggleCollapse:I})}),e.jsx("main",{className:`relative flex-1 min-h-[calc(100vh-80px)] transition-[margin-left] duration-300 ease-[cubic-bezier(0.2,0.65,0.3,0.9)] ${N?"lg:ml-16":"lg:ml-64"}`,children:e.jsxs("div",{className:"max-w-3xl mx-auto px-4 sm:px-8 py-6 sm:py-8 lg:py-12",children:[e.jsxs(g.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.3,ease:[.2,.65,.3,.9]},className:"mb-10",children:[e.jsx("h1",{className:"text-2xl font-semibold text-white/95 mb-2",children:"Documentation"}),e.jsx("p",{className:"text-sm text-white/45",children:"Everything you need to know about the JOAT trading platform."})]}),i.map((a,u)=>e.jsxs(g.section,{ref:f=>M(a.id,f),"data-section-id":a.id,variants:Xe,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-40px"},className:"mb-12 scroll-mt-24",children:[u>0&&e.jsx("div",{className:"h-px bg-white/[0.04] mb-8"}),a.content]},a.id)),e.jsxs("div",{className:"mt-16 mb-12 rounded-lg border border-white/[0.06] bg-white/[0.02] p-6 text-center",children:[e.jsx("h3",{className:"text-base font-medium text-white/85 mb-2",children:"Ready to start trading?"}),e.jsx("p",{className:"text-sm text-white/45 mb-4",children:"Create your free account and explore the dashboard today."}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-3",children:[e.jsx(B,{asChild:!0,size:"sm",className:"bg-primary hover:bg-primary/90 text-white font-medium px-6",children:e.jsx("a",{href:"https://app.jackofalltrades.vip",target:"_blank",rel:"noopener noreferrer",children:"Open Dashboard"})}),e.jsxs(B,{variant:"outline",size:"sm",className:"border-white/[0.1] text-white/60 hover:text-white/80 hover:bg-white/[0.04] px-6",onClick:()=>l(!0),children:["Get Elite",e.jsx(z,{className:"ml-1.5 h-3 w-3"})]})]})]})]})})]}),e.jsx(Me,{open:d,onOpenChange:l})]})};export{xt 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.