PageSourceSearch

https://trakkr.ai/assets/OnboardingChecklist-C99hZcQq.js

js trakkr.ai collected 2026-09-28 08:31:36 UTC 11,612 bytes, 22 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/activation-ChnJnqsj.js","assets/index-1YQNuixL.js","assets/vendor-query-DvnPdOMX.js","assets/vendor-react-woJBpfBI.js","assets/vendor-supabase-DaZXgOw0.js","assets/vendor-utils-BNe0Xlio.js","assets/vendor-icons-BLMEbmRV.js","assets/vendor-motion-ZmH_6coE.js","assets/index-BzPGyuP6.css"])))=>i.map(i=>d[i]);
2import{u as ee,j as e}from"./vendor-query-DvnPdOMX.js";import{j as te,u as se,r as n,c as ie}from"./vendor-react-woJBpfBI.js";import{v as ne,de as ae,aF as re,a6 as oe,aa as ce,j8 as le,_ as H,j9 as de,ja as me,bs as f}from"./index-1YQNuixL.js";import{u as ue}from"./useFirstReportStatus-BwKiCf5w.js";import{g as pe}from"./crawlerConnections-oOIsObEO.js";import{i as he}from"./connectionHealth-C0aW7Oe9.js";import{i as fe,d as xe,C as ge,I as U,h as W,b as A,c as q}from"./onboarding-constants-C9DI2pcf.js";import{m,A as K}from"./vendor-motion-ZmH_6coE.js";import{g as be,o as ke,X as Ce}from"./vendor-icons-BLMEbmRV.js";import"./vendor-supabase-DaZXgOw0.js";import"./vendor-utils-BNe0Xlio.js";import"./useReportSubscription-CEvvKQks.js";import"./useUserActivity-kKUC7DRe.js";const je={"/prompts":"prompts","/citations":"citations","/competitors":"competitors","/optimize":"siteAudit","/traffic/crawler":"crawlerTracking"},we={prompts:"viewed_prompts",citations:"viewed_citations",competitors:"viewed_competitors",siteAudit:"viewed_optimize",crawlerTracking:"connected_crawler"},$=new Set(["citations","competitors"]),ve=new Set(["crawlerTracking"]),ye=2500,R={visible:!1,items:A,state:U,completedCount:0,totalCount:A.length,isCollapsed:!1,isCelebrating:!1,isAwaitingReport:!1,toggleCollapse:()=>{},dismiss:()=>{},navigateToItem:()=>{},isItemCompleted:()=>!1,isItemLocked:()=>!1};function F(){try{const s=localStorage.getItem(q);return s?JSON.parse(s):null}catch{return null}}function Ae(s){try{localStorage.setItem(q,JSON.stringify(s))}catch{}}function Ne(){const{user:s}=ne(),{brand:l}=ae(),{isClientPortal:o}=re(),{getPath:u}=oe(),{hasCompletedReports:p,isAwaitingFirstReport:x}=ue(l?.id),h=te(),N=se(),v=n.useRef(null),b=n.useRef(null),k=n.useRef(null),y=n.useRef(!1),r=n.useMemo(()=>!(!s||!fe(s.createdAt)||o||xe(s.createdAt)>ge),[s,o]),S=!!F()?.items.crawlerTracking?.completedAt,{data:D}=ee({queryKey:["crawler-connections",l?.id],queryFn:()=>pe(l.id),enabled:r&&!S&&!!l?.id,staleTime:300*1e3,retry:!1}),M=n.useMemo(()=>D?.some(he)??!1,[D]),[C,_]=n.useState(()=>F()??U),d=s?.onboardingChecklist,a=n.useMemo(()=>{if(!r||!d||!(d.dismissedAt||d.completedAt||Object.values(d.items).some(c=>!!c.completedAt)))return C;const i={...C.items};for(const c of Object.keys(d.items))d.items[c]?.completedAt&&!i[c]?.completedAt&&(i[c]=d.items[c]);return{items:i,collapsed:C.collapsed,dismissedAt:C.dismissedAt||d.dismissedAt,completedAt:C.completedAt||d.completedAt}},[r,d,C]),E=s?.id,g=n.useCallback(t=>{Ae(t),v.current&&clearTimeout(v.current),v.current=setTimeout(async()=>{if(E)try{await ce.from("users").update({onboarding_checklist:t}).eq("id",E)}catch{}},500)},[E]),w=s?.createdAt,I=n.useCallback(t=>{_(i=>{if(i.dismissedAt||i.completedAt||i.items[t]?.completedAt)return i;const c=new Date().toISOString(),z={...i,items:{...i.items,[t]:{completedAt:c}}};g(z),w&&le({item:t,time_since_signup_hours:W(w)});const B=we[t];return B&&H(()=>import("./activation-ChnJnqsj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(Z=>Z.trackActivationMilestone?.(B)).catch(()=>{}),z})},[g,w]),j=je[h.pathname],P=j?!!a.items[j]?.completedAt:!0,L=!!a.dismissedAt,T=L||!!a.completedAt;n.useEffect(()=>{if(!(!r||T||!j||P)&&!($.has(j)&&!p)&&!ve.has(j))return b.current=setTimeout(()=>{I(j)},2e3),()=>{b.current&&clearTimeout(b.current)}},[j,r,P,p,I,T]),n.useEffect(()=>{!r||T||M&&(a.items.crawlerTracking?.completedAt||I("crawlerTracking"))},[r,T,M,a.items.crawlerTracking?.completedAt,I]);const O=n.useMemo(()=>Object.values(a.items).every(t=>!!t.completedAt),[a.items])&&!a.completedAt&&!L;n.useEffect(()=>{if(O)return!y.current&&w&&(y.current=!0,de({time_since_signup_hours:W(w)}),H(()=>import("./activation-ChnJnqsj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8])).then(t=>t.trackActivationMilestone?.("checklist_completed")).catch(()=>{})),k.current=setTimeout(()=>{_(t=>{const i={...t,completedAt:new Date().toISOString()};return g(i),i})},ye),()=>{k.current&&clearTimeout(k.current)}},[O,g,w]);const V=n.useCallback(()=>{_(t=>{const i={...t,collapsed:!t.collapsed};return g(i),i})},[g]),Y=n.useCallback(()=>{b.current&&clearTimeout(b.current),k.current&&clearTimeout(k.current),_(i=>{const c={...i,dismissedAt:new Date().toISOString()};return g(c),c});const t=Object.values(a.items).filter(i=>!!i.completedAt).length;me({completed_count:t+2,total_count:A.length})},[g,a.items]),G=n.useCallback(t=>{N(u(t))},[N,u]),J=n.useMemo(()=>2+Object.values(a.items).filter(t=>!!t.completedAt).length,[a.items]),X=n.useCallback(t=>!!a.items[t]?.completedAt,[a.items]),Q=n.useCallback(t=>$.has(t)&&!p,[p]);return!r||L||a.completedAt?R:{visible:!0,items:A,state:a,completedCount:J,totalCount:A.length,isCollapsed:a.collapsed,isCelebrating:O,isAwaitingReport:x,toggleCollapse:V,dismiss:Y,navigateToItem:G,
2isItemCompleted:X,isItemLocked:Q}}function _e({animate:s}){return e.jsxs("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",className:"flex-shrink-0",children:[e.jsx(m.circle,{cx:8,cy:8,r:7,className:"fill-accent/10 stroke-accent",strokeWidth:1.5,initial:s?{scale:.8,opacity:0}:!1,animate:{scale:1,opacity:1},transition:{duration:f.enter.duration/1e3,ease:[.16,1,.3,1]}}),e.jsx(m.path,{d:"M5 8.2L7.2 10.4L11 5.6",className:"stroke-accent",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",fill:"none",initial:s?{pathLength:0}:{pathLength:1},animate:{pathLength:1},transition:{duration:f.emphasis.duration/1e3,ease:[.34,1.56,.64,1],delay:s?.1:0}})]})}function Ie(){return e.jsx("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",className:"flex-shrink-0",children:e.jsx("circle",{cx:8,cy:8,r:7,className:"stroke-default",strokeWidth:1.5})})}function Te({item:s,isCompleted:l,isLocked:o,index:u,onNavigate:p}){const x=s.preChecked,h=!x&&!l&&!o&&s.route;return e.jsx(m.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:f.enter.duration/1e3,ease:[.16,1,.3,1],delay:u*(f.stagger/1e3)},children:e.jsxs("button",{onClick:()=>h&&s.route&&p(s.route),disabled:!h,className:`
3          w-full flex items-center gap-3 py-2 px-3 rounded text-left
4          transition-colors duration-250
5          ${h?"hover:bg-muted cursor-pointer":"cursor-default"}
6        `,children:[e.jsx("div",{className:"flex-shrink-0",children:l||x?e.jsx(_e,{animate:!x}):o?e.jsx("div",{className:"w-4 h-4 flex items-center justify-center",children:e.jsx(be,{size:12,className:"text-muted"})}):e.jsx(Ie,{})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:`
7              text-[13px] leading-tight block
8              transition-colors duration-250
9              ${l||x?"text-muted line-through decoration-default":o?"text-muted":"text-primary"}
10            `,children:s.label}),o&&e.jsx("span",{className:"text-[11px] text-muted mt-0.5 block",children:"Ready when your first report lands"})]}),h&&e.jsx("svg",{width:12,height:12,viewBox:"0 0 12 12",className:"text-muted flex-shrink-0",children:e.jsx("path",{d:"M4.5 2.5L8 6L4.5 9.5",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})]})})}function Se(){return e.jsx(m.div,{className:"absolute inset-0 flex items-center justify-center bg-white/95 rounded-md",initial:{opacity:0}
10,animate:{opacity:1},transition:{duration:f.enter.duration/1e3,ease:[.16,1,.3,1]},children:e.jsxs(m.div,{className:"flex flex-col items-center gap-2",initial:{scale:.9,opacity:0},animate:{scale:1,opacity:1},transition:{duration:f.emphasis.duration/1e3,ease:[.34,1.56,.64,1],delay:.1},children:[e.jsx("div",{className:"w-7 h-7 rounded-full bg-accent/10 flex items-center justify-center",children:e.jsx("svg",{width:14,height:14,viewBox:"0 0 16 16",fill:"none",children:e.jsx(m.path,{d:"M4 8.5L7 11L12 5",className:"stroke-accent",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",fill:"none",initial:{pathLength:0},animate:{pathLength:1},transition:{duration:f.emphasis.duration/1e3,ease:[.34,1.56,.64,1],delay:.2}})})}),e.jsx("span",{className:"text-[13px] font-medium text-primary",children:"All set"})]})})}function Ue(){const{visible:s,items:l,completedCount:o,totalCount:u,isCollapsed:p,isCelebrating:x,toggleCollapse:h,dismiss:N,navigateToItem:v,isItemCompleted:b,isItemLocked:k}=Ne(),y=o/u*100;return ie.createPortal(e.jsx("div",{className:"fixed bottom-4 right-4 md:bottom-6 md:right-6 z-[90] pointer-events-none",children:e.jsxs(K,{mode:"wait",children:[s&&p&&e.jsxs(m.button,{onClick:h,className:`
11              pointer-events-auto
12              flex items-center gap-2.5 px-3 h-8
13              bg-white border border-default rounded
14              shadow-[0_1px_3px_0_rgba(0,0,0,0.04)]
15              hover:border-hover transition-colors duration-250
16            `,initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:8},transition:{duration:f.enter.duration/1e3,ease:[.16,1,.3,1]},"aria-label":`Getting started: ${o} of ${u} complete`,children:[e.jsx("span",{className:"text-[12px] font-medium text-primary",children:"Setup"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-10 h-1 rounded-sm bg-default overflow-hidden",children:e.jsx(m.div,{className:"h-full bg-accent rounded-sm",initial:{width:0},animate:{width:`${y}%`},transition:{duration:.6,ease:[.16,1,.3,1]}})}),e.jsxs("span",{className:"text-[11px] text-muted tabular-nums font-medium",children:[o,"/",u]})]})]},"collapsed"),s&&!p&&e.jsxs(m.div,{className:`
17              pointer-events-auto
18              w-[320px] max-w-[calc(100vw-32px)]
19              bg-white rounded-md border border-default
20              shadow-[0_2px_8px_-2px_rgba(0,0,0,0.06)]
21              overflow-hidden relative
22            `,initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:8,transition:{duration:.15,ease:[.16,1,.3,1]}},transition:{duration:f.enter.duration/1e3,ease:[.16,1,.3,1]},children:[e.jsx("div",{className:"h-[2px] bg-default",children:e.jsx(m.div,{className:"h-full bg-accent",initial:{width:0},animate:{width:`${y}%`},transition:{duration:.8,ease:[.16,1,.3,1]}})}),e.jsxs("div",{className:"px-4 pt-3 pb-2 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[13px] font-medium text-primary",children:"Getting started"}),e.jsxs("span",{className:"text-[11px] text-muted tabular-nums",children:[o,"/",u]})]}),e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsx("button",{onClick:h,className:"w-6 h-6 flex items-center justify-center rounded hover:bg-muted transition-colors duration-250 text-muted hover:text-secondary","aria-label":"Minimize",children:e.jsx(ke,{size:14,strokeWidth:1.5})}),e.jsx("button",{onClick:N,className:"w-6 h-6 flex items-center justify-center rounded hover:bg-muted transition-colors duration-250 text-muted hover:text-secondary","aria-label":"Dismiss getting started",children:e.jsx(Ce,{size:14,strokeWidth:1.5})})]})]}),e.jsx("div",{className:"mx-4 border-t border-subtle"}),e.jsx("div",{className:"px-1 py-1.5",children:l.map((r,S)=>e.jsx(Te,{item:r,isCompleted:r.preChecked||(r.trackableId?b(r.trackableId):!1),isLocked:r.trackableId?k(r.trackableId):!1,index:S,onNavigate:v},r.id))}),e.jsx(K,{children:x&&e.jsx(Se,{})})]},"expanded")]})}),document.body)}export{Ue as OnboardingChecklist};

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.