1import{r,j as e,L as p}from"./vendor-react-Dqm4a0k5.js";import{i as f,j as w,k as v,A as h,x}from"./index-BR-ShKyk.js";import{X as k,q as j,R as N,A as m}from"./vendor-icons-Dv6Y7wXg.js";import"./vendor-supabase-RijQlDjE.js";import"./vendor-utils-KLhAiGEE.js";import"./vendor-query-BQV4-hhd.js";import"./radix-react-slot-CrO6XSQS.js";import"./radix-react-compose-refs-IIetlP92.js";const n=[{image:"/demo/v7-step-01.webp",page:"Dashboard",title:"Start here by adding tools",body:"Your first stop is adding tools. The DealKeep Chrome extension imports your whole AppSumo library in one click â purchase dates, license tier and refund windows included. CSV or Excel upload, a pasted URL and team stacks cover every other marketplace.",x:34.8,y:43.1},{image:"/demo/v7-step-02.webp",page:"Tools",title:"Every deal in one place",body:"Every tool arrives with its status, purchase date and an automatic refund countdown, so nothing quietly expires on you. AI Search reads your whole library and answers in plain English.",x:85.2,y:71.9},{image:"/demo/v7-step-03.webp",page:"Watchlist",title:"Check a deal before you buy",body:"Save the AppSumo deals you are considering. Watchlist keeps each oneâs price and deadline in view, emails you before a price rises or a deal ends, and on paid plans flags when you already own the tool, or something that does the same job, so you never pay for it twice.",x:26.4,y:56.6},{image:"/demo/v7-step-04.webp",page:"Smart Stacks",title:"Group tools by workflow",body:"One-click templates built from what you already own â or tell the Stack Agent what you need in plain words and let it build, dedupe and organize the stack for you.",x:29.7,y:20},{image:"/demo/v7-step-05.webp",page:"Founder Track",title:"Never get burned",body:"Founder Track matches your tools against a database of failed lifetime deals and alerts you the moment one looks like it is shutting down â so you can claim a refund before itâs too late.",x:20.1,y:58.3},{image:"/demo/v7-step-06.webp",page:"Analytics",title:"Know what your stack is worth",body:"Spending trends, ROI by category and portfolio health â so you always know what your stack is worth, and what it is costing you.",x:22.7,y:17.3},{image:"/demo/v7-step-07.webp",page:"Earn from Your Stack",title:"Your stack pays you back",body:"Attach your own affiliate link to tools you already own, share them, and keep the commission. DealKeep shows which of your tools have a program and what each one pays â and leads with the best-paying one, so you know where to start.",x:40.7,y:25.9},{image:"/demo/v7-step-08.webp",page:"MCP",title:"Ask Claude or ChatGPT about your stack",body:"Connect DealKeep to Claude or ChatGPT in one click. Ask what you own for a job, check a purchase for duplicates before you buy, or find closing refund windows â read-only, on your own library.",x:28.2,y:50.8},{image:"/demo/v7-step-09.webp",page:"Support Center",title:"Help when you need it",body:"Guides, FAQs and a direct line to the team â the Support Center typically answers within 24 hours.",x:88,y:13.6},{image:"/demo/v7-step-10.webp",page:"Feature Requests",title:"Shape what comes next",body:"Share an idea and follow it from open to in progress to shipped. Bug reports go to the Support Center; ideas live here.",x:78.1,y:35.4},{image:"/demo/v7-step-11.webp",page:"Settings",title:"Make it yours",body:"Profile, appearance, notification channels, team, billing, security and data export â every preference in one place.",x:83.7,y:33.3},{image:"/demo/v7-step-12.webp",page:"Plans & Pricing",title:"Pay once. Keep it forever.",body:"Free Forever for a small library, or a one-time Starter or Pro plan â no subscription, no renewals. Every account starts with a 7-day full trial, no credit card needed.",x:73.8,y:51.3}];function P(){const[a,d]=r.useState(0),s=n[a],l=a===n.length-1;r.useEffect(()=>{f()},[]),r.useEffect(()=>{const t=window.location.origin,o=document.title;document.title="Interactive Demo â See DealKeep in Action | DealKeep";const y=[w("description","Click through the real DealKeep app in 2 minutes: one-click AppSumo import, refund countdowns, Smart Stacks, Founder Track, analytics, Earn from Your Stack, Claude & ChatGPT and pricing. No signup needed."),v(`${t}/demo`)];return()=>
1{document.title=o,y.forEach(b=>b())}},[]),r.useEffect(()=>{const t=n[a+1];if(t){const o=new Image;o.src=t.image}},[a]);const i=r.useCallback(()=>d(t=>Math.min(t+1,n.length-1)),[]),c=r.useCallback(()=>d(t=>Math.max(t-1,0)),[]);r.useEffect(()=>{const t=o=>{o.key==="ArrowRight"&&i(),o.key==="ArrowLeft"&&c()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[i,c]);const g=r.useMemo(()=>{const t={};return s.x>55?t.right=`${100-s.x+3}%`:t.left=`${s.x+3}%`,s.y>55?t.bottom=`${100-s.y+5}%`:t.top=`${s.y+5}%`,t},[s]);return e.jsxs("div",{className:"min-h-screen w-full bg-v2-bg text-v2-ink flex flex-col",children:[e.jsx("header",{className:"border-b border-v2-line bg-[rgba(14,17,23,0.6)] backdrop-blur sticky top-0 z-20",children:e.jsxs("div",{className:"max-w-[1280px] mx-auto px-4 sm:px-6 h-14 flex items-center justify-between gap-4",children:[e.jsxs(p,{to:"/",className:"flex items-center gap-2 shrink-0","aria-label":"Back to DealKeep home",children:[e.jsx("img",{src:"/favicon-source.png",alt:"",className:"h-7 w-7","aria-hidden":!0}),e.jsxs("span",{className:"font-display font-bold tracking-tight text-v2-ink hidden sm:inline",children:["DEAL",e.jsx("span",{className:"text-v2-mint",children:"KEEP"})]})]}),e.jsxs("div",{className:"flex-1 max-w-md flex items-center gap-3","aria-label":`Step ${a+1} of ${n.length}`,children:[e.jsxs("span",{className:"text-v2-xs text-v2-muted whitespace-nowrap",children:["Step ",a+1," of ",n.length]}),e.jsx("div",{className:"h-1.5 flex-1 rounded-full bg-v2-line overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full bg-v2-mint transition-all duration-300",style:{width:`${(a+1)/n.length*100}%`}})})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[!l&&e.jsx(h,{to:"/signup",onClick:()=>x({cta_location:"demo_header"}),className:"inline-flex items-center gap-1.5 rounded-full bg-v2-mint px-3 py-1.5 text-v2-xs font-semibold text-[#00302a] hover:brightness-105 transition-all",children:"Start free trial"}),e.jsxs(p,{to:"/",className:"inline-flex items-center gap-1.5 text-v2-xs text-v2-muted hover:text-v2-ink transition-colors",children:[e.jsx(k,{className:"h-3.5 w-3.5","aria-hidden":!0})," Exit"]})]})]})}),e.jsxs("main",{className:"flex-1 w-full max-w-[1280px] mx-auto px-4 sm:px-6 py-6 sm:py-10 flex flex-col",children:[e.jsx("h1",{className:"sr-only",children:"See DealKeep in action â interactive product demo"}),e.jsx("p",{className:"text-v2-xs uppercase tracking-[0.12em] text-v2-muted mb-3",children:s.page}),e.jsxs("div",{className:"relative rounded-xl overflow-hidden border border-v2-line shadow-2xl bg-v2-bg-2 select-none",children:[e.jsx("img",{src:s.image,alt:`DealKeep â ${s.page}`,width:1600,height:900,className:"block w-full h-auto",decoding:"async"}),e.jsx("button",{type:"button",onClick:l?void 0:i,"aria-label":l?s.title:`Next: ${n[a+1].page}`,className:"absolute z-10 -translate-x-1/2 -translate-y-1/2 h-7 w-7 rounded-full bg-v2-mint ring-[10px] ring-[rgba(46,234,204,0.45)] shadow-[0_0_0_2px_rgba(0,48,42,0.9),0_0_28px_6px_rgba(46,234,204,0.55)] animate-pulse cursor-pointer",style:{left:`${s.x}%`,top:`${s.y}%`}}),e.jsx("div",{className:"hidden sm:block absolute z-10 w-[340px] max-w-[42%] rounded-xl bg-white text-slate-900 shadow-2xl p-4",style:g,children:e.jsx(u,{step:a,isLast:l,goBack:c,goNext:i})})]}),e.jsx("div",{className:"sm:hidden mt-4 rounded-xl bg-white text-slate-900 shadow-xl p-4",children:e.jsx(u,{step:a,isLast:l,goBack:c,goNext:i})}),e.jsx("nav",{className:"mt-6 flex items-center justify-center gap-2","aria-label":"Tour steps",children:n.map((t,o)=>e.jsx("button",{type:"button",onClick:()=>d(o),"aria-label":`Go to step ${o+1}: ${t.page}`,"aria-current":o===a?"step":void 0,className:o===a?"h-2 w-6 rounded-full bg-v2-mint transition-all":"h-2 w-2 rounded-full bg-v2-line hover:bg-v2-muted transition-all"},t.image))})]})]})}function u({step:a,isLast:d,goBack:s,goNext:l}){const i=n[a];return e.jsxs(e.Fragment,{children:[e.jsx("h2",{className:"font-semibold text-base mb-1.5",style:{color:"#0f355d"},children:i.title}),e.jsx("p",{className:"text-sm leading-relaxed text-slate-600 mb-3",children:i.body}),e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a>0?e.jsxs("button",{type:"button",onClick:s,className:"inline-flex items-center gap-1 text-sm font-medium text-slate-500 hover:text-slate-800 transition-colors",children:[e.jsx(j,{className:"h-4 w-4","aria-hidden":!0})," Back"]}):e.jsx("span",{}),d?e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("button",{type:"button",onClick:()=>window.location.assign("/demo"),title:"Restart the tour",className:"inline-flex items-center gap-1 text-sm font-medium text-slate-500 hover:text-slate-800 transition-colors",children:[e.jsx(N,{className:"h-4 w-4","aria-hidden":!0})," Replay"]}),e.jsxs(h,{to:"/signup",onClick:()=>x({cta_location:"final"}),className:"inline-flex items-center gap-2 px-4 py-2.5 rounded-full bg-v2-mint text-[#00302a] font-semibold text-sm hover:brightness-105 transition-all",children:["Start free trial ",e.jsx(m,{className:"h-4 w-4","aria-hidden":!0})]})]}):e.jsxs("button",{type:"button",onClick:l,className:"inline-flex items-center gap-1.5 px-4 py-2 rounded-full text-white font-semibold text-sm hover:brightness-110 transition-all",style:{backgroundColor:"#0f355d"},children:["Next ",e.jsx(m,{className:"h-4 w-4","aria-hidden":!0})]})]})]})}export{P 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.