PageSourceSearch

https://oriamarketing.com/assets/interactive-tutorial-CukyLrTj.js

js oriamarketing.com collected 2026-09-25 23:17:23 UTC 16,299 bytes, 1 lines download raw bytes

1import{a as r,j as t}from"./react-vendor-Cj4cBEvf.js";import{B as j}from"./index-BqvpdcJu.js";import{aX as A,aT as $,U as F,av as H,e as U,s as V,l as Q,c as K,ai as R,ah as X,i as Z,ch as I,p as S,X as J,A as tt,bc as et,bW as at,a1 as it,j as st}from"./icons-BolBVcAj.js";import"./fullcalendar-DxFl_for.js";import"./router-BMgApeuJ.js";import"./query-DuA8FwnC.js";import"./radix-Cu77hBNh.js";import"./charts-C3VUr0cJ.js";const h=[{id:"welcome",title:"Welcome to Oria Marketing!",description:"Let's take a quick interactive tour of your dashboard. You'll learn where everything is and how to start generating leads in minutes.",icon:A,position:"center",category:"overview"},{id:"sidebar",title:"Your Command Center",description:"The sidebar organizes all your tools into logical groups. Each section opens a full workspace — from CRM and lead intelligence to marketing and analytics.",icon:$,targetSelector:'[data-testid="admin-sidebar"]',position:"right",tip:"Collapse the sidebar anytime with the arrow button to get more screen space.",category:"overview"},{id:"leads",title:"Leads & Pipeline",description:"This is your CRM home base. Every lead flows here — from website forms, ad campaigns, permit data, and door-to-door contacts. Track each prospect through your pipeline from first touch to closed deal.",icon:F,targetSelector:'[data-testid="nav-item-leads"]',action:"leads",position:"right",tip:"Try adding a lead manually, or import a CSV to get started fast.",quickAction:{label:"Go to Leads",action:"leads"},category:"crm"},{id:"past_clients",title:"Past Client Reactivation",description:"Don't forget your previous customers. This tool helps you re-engage past clients with automated outreach — perfect for generating repeat business and referrals with zero cold-calling.",icon:H,targetSelector:'[data-testid="nav-item-past_clients"]',action:"past_clients",position:"right",category:"crm"},{id:"intelligence",title:"Lead Intelligence Suite",description:"Your competitive edge. Permit Radar finds homeowners pulling building permits. Recently Sold targets new property owners. KnockIQ builds door-knocking campaigns with contact info. Growth Center tracks all your intel in one place.",icon:U,targetSelector:'[data-testid="nav-group-intelligence"]',position:"right",tip:"Start with Permit Radar — it surfaces homeowners actively planning renovation projects in your area.",category:"intelligence"},{id:"outreach",title:"Outreach & Partners",description:"Automate outreach to real estate agents, insurance adjusters, property managers and more. The Buyer Confidence Engine pre-qualifies leads so you spend time on serious prospects only.",icon:V,targetSelector:'[data-testid="nav-group-outreach"]',position:"right",tip:"Partner Outreach connects you with 7 types of referral partners automatically.",category:"intelligence"},{id:"email",title:"Communications Hub",description:"Send email campaigns, manage your inbox, and engage leads via SMS — all tracked and tied back to your CRM. Set up automated follow-up sequences so no lead goes cold.",icon:Q,targetSelector:'[data-testid="nav-group-comms"]',position:"right",tip:"The SMS Assistant can handle initial responses while you focus on estimates and jobs.",category:"marketing"},{id:"marketing",title:"Marketing & SEO Engine",description:"Your complete marketing command center. Auto-generate SEO blog posts, manage Google Business Profile, run AI-powered ads across Google and Meta, and track your online authority against competitors.",icon:K,targetSelector:'[data-testid="nav-group-marketing"]',position:"right",tip:"SEO Content auto-publishes optimized blog posts monthly — set it and forget it.",quickAction:{label:"View SEO Content",action:"seo"},category:"marketing"},{id:"domination",title:"90-Day Domination Plan",description:"Your personalized roadmap to market dominance. This AI-generated plan breaks your first 90 days into actionable weekly tasks — from setup to generating your first leads to scaling campaigns.",icon:R,targetSelector:'[data-testid="nav-item-domination"]',action:"domination",position:"right",quickAction:{label:"View Your Plan",action:"domination"},category:"overview"},{id:"settings",title:"Settings & Team",description:"Configure your branding (logo, colors, tagline), manage team members and seats, connect integrations (Twilio, Resend, Google Ads), set up lead scoring rules, and manage your subscription.",icon:X,targetSelector:'[data-testid="nav-item-tenant_settings"]',action:"tenant_settings",position:"right",tip:"Set up your company branding first — it customizes all your outgoing emails and landing pages.",quickAction:{label:"Open Settings",action:"tenant_settings"},category:"tools"},{id:"ai_assistant",title:"AI-Powered Help",description:'Your always-available assistant lives in the bottom-right corner. Ask it anything: "How do I set up Permit Radar?", "Show me growth tips", "Write me an email template", or "What should I do first?"',icon:Z,targetSelector:'[data-testid="button-ai-assistant-open"]',position:"left",tip:"The AI assistant knows your account data — ask it for personalized recommendations.",category:"tools"},{id:"complete",title:"You're Ready to Go!",description:"You've seen the essentials. Here's your quick-start checklist:",icon:I,position:"center",category:"overview"}],rt=["welcome","sidebar","leads","intelligence","marketing","settings","ai_assistant","complete"];function pt({onComplete:x,onNavigate:n}){const[l,N]=r.useState("choose"),[o,b]=r.useState(0),[a,f]=r.useState(null),[M,C]=r.useState(!1),[z,P]=r.useState(new Set),[c,T]=r.useState(h),L=r.useRef(null),i=c[o],y=o===0,d=o===c.length-1,m=i.position==="center",u=r.useCallback(()=>
1{if(!i.targetSelector){f(null);return}const e=document.querySelector(i.targetSelector);if(e){const s=e.getBoundingClientRect();f(s),e.scrollIntoView({behavior:"smooth",block:"center"})}else f(null)},[i.targetSelector]);r.useEffect(()=>{if(l!=="tour")return;u();const e=setTimeout(u,300);return window.addEventListener("resize",u),()=>{clearTimeout(e),window.removeEventListener("resize",u)}},[u,l]),r.useEffect(()=>{l==="tour"&&i.action&&n&&n(i.action)},[i.action,n,l]);const w=e=>{C(!0),P(s=>new Set([...s,c[o].id])),setTimeout(()=>{b(e),C(!1)},150)},v=()=>{d?x():w(o+1)},E=()=>{y||w(o-1)},g=()=>{x()},q=e=>{n&&n(e),v()},k=r.useCallback(e=>{l==="tour"&&(e.key==="Escape"&&g(),(e.key==="ArrowRight"||e.key==="Enter")&&v(),e.key==="ArrowLeft"&&E())},[o,l]);r.useEffect(()=>(window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)),[k]);const _=()=>{if(m||!a)return{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)"};const e=16,s=380,B=window.innerHeight-380,p=G=>Math.max(e,Math.min(G,B));switch(i.position){case"right":return{position:"fixed",top:p(a.top),left:Math.min(a.right+e,window.innerWidth-s-e)};case"left":return{position:"fixed",top:p(a.top),left:Math.max(e,a.left-s-e)};case"bottom":return{position:"fixed",top:p(a.bottom+e),left:Math.max(e,a.left+a.width/2-s/2)};
1case"top":return{position:"fixed",top:p(a.top-e-280),left:Math.max(e,a.left+a.width/2-s/2)};default:return{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}}},O=i.icon,Y={overview:"bg-blue-50 text-blue-600",crm:"bg-emerald-50 text-emerald-600",intelligence:"bg-purple-50 text-purple-600",marketing:"bg-amber-50 text-amber-600",tools:"bg-gray-100 text-gray-600"},D={overview:"Overview",crm:"CRM",intelligence:"Intelligence",marketing:"Marketing",tools:"Tools"};if(l==="choose")return t.jsxs("div",{className:"fixed inset-0 z-[9999]","data-testid":"interactive-tutorial",children:[t.jsx("div",{className:"fixed inset-0 bg-black/60"}),t.jsxs("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white rounded-2xl shadow-2xl border border-gray-200 w-[440px] max-w-[calc(100vw-32px)] overflow-hidden",style:{zIndex:10001},children:[t.jsxs("div",{className:"bg-gradient-to-br from-gray-900 via-gray-800 to-gray-900 px-6 py-8 text-center",children:[t.jsx("div",{className:"w-14 h-14 rounded-2xl bg-white/10 backdrop-blur flex items-center justify-center mx-auto mb-4",children:t.jsx(A,{className:"w-7 h-7 text-amber-400"})}),t.jsx("h2",{className:"text-xl font-bold text-white mb-2","data-testid":"text-tutorial-welcome-title",children:"Welcome to Your Dashboard"}),t.jsx("p",{className:"text-sm text-gray-300 leading-relaxed",children:"Let's get you familiar with the tools that will help grow your business."})]}),t.jsxs("div",{className:"p-6 space-y-3",children:[t.jsxs("button",{onClick:()=>{T(h),b(0),N("tour")},className:"w-full flex items-center gap-4 p-4 rounded-xl border-2 border-gray-200 hover:border-amber-400 hover:bg-amber-50/50 transition-all group text-left","data-testid":"button-tutorial-full-tour",children:[t.jsx("div",{className:"w-10 h-10 rounded-lg bg-amber-100 flex items-center justify-center shrink-0 group-hover:bg-amber-200 transition-colors",children:t.jsx(I,{className:"w-5 h-5 text-amber-600"})}),t.jsxs("div",{children:[t.jsx("p",{className:"font-semibold text-gray-900 text-sm",children:"Full Interactive Tour"}),t.jsxs("p",{className:"text-xs text-gray-500 mt-0.5",children:["~3 min — Walk through all ",h.length," features with tips & shortcuts"]})]}),t.jsx(S,{className:"w-4 h-4 text-gray-400 ml-auto shrink-0 group-hover:text-amber-500"})]}),t.jsxs("button",{onClick:()=>{const e=h.filter(s=>rt.includes(s.id));T(e),b(0),N("tour")},className:"w-full flex items-center gap-4 p-4 rounded-xl border-2 border-gray-200 hover:border-amber-400 hover:bg-amber-50/30 transition-all group text-left","data-testid":"button-tutorial-quick-tour",children:[t.jsx("div",{className:"w-10 h-10 rounded-lg bg-blue-100 flex items-center justify-center shrink-0 group-hover:bg-blue-200 transition-colors",children:t.jsx(R,{className:"w-5 h-5 text-blue-600"})}),t.jsxs("div",{children:[t.jsx("p",{className:"font-semibold text-gray-900 text-sm",children:"Quick Start"}),t.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:"~1 min — See the essentials and jump right in"})]}),t.jsx(S,{className:"w-4 h-4 text-gray-400 ml-auto shrink-0 group-hover:text-blue-500"})]}),t.jsx("button",{onClick:g,className:"w-full text-center py-2 text-xs text-gray-400 hover:text-gray-600 transition-colors","data-testid":"button-tutorial-skip-all",children:"I'll explore on my own"})]})]})]});const W=[{label:"Set up your branding",action:"tenant_settings"},{label:"Import or add your first lead",action:"leads"},{label:"View your 90-Day Plan",action:"domination"},{label:"Explore your SEO engine",action:"seo"}];return t.jsxs("div",{className:"fixed inset-0 z-[9999]","data-testid":"interactive-tutorial",children:[t.jsxs("svg",{className:"fixed inset-0 w-full h-full",style:{pointerEvents:"none"},children:[t.jsx("defs",{children:t.jsxs("mask",{id:"tutorial-spotlight-mask",children:[t.jsx("rect",{width:"100%",height:"100%",fill:"white"}),a&&!m&&t.jsx("rect",{x:a.left-8,y:a.top-8,width:a.width+16,height:a.height+16,rx:"10",fill:"black"})]})}),t.jsx("rect",{width:"100%",height:"100%",fill:"rgba(0,0,0,0.55)",mask:"url(#tutorial-spotlight-mask)",style:{pointerEvents:"auto"},onClick:e=>e.stopPropagation()})]}),a&&!m&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"fixed rounded-xl pointer-events-none",style:{left:a.left-8,top:a.top-8,width:a.width+16,height:a.height+16,boxShadow:"0 0 0 3px rgba(245,158,11,0.5), 0 0 24px rgba(245,158,11,0.2)",zIndex:1e4}}),t.jsx("div",{className:"fixed rounded-xl pointer-events-none animate-ping",style:{left:a.left-8,top:a.top-8,width:a.width+16,height:a.height+16,boxShadow:"0 0 0 3px rgba(245,158,11,0.3)",zIndex:9999,animationDuration:"2s"}})]}),t.jsxs("div",{ref:L,className:`bg-white rounded-2xl shadow-2xl border border-gray-100 w-[380px] max-w-[calc(100vw-32px)] transition-opacity duration-150 ${M?"opacity-0":"opacity-100"}`,style:{..._(),zIndex:10001},"data-testid":"tutorial-tooltip",children:[i.category&&!m&&t.jsx("div",{className:"px-5 pt-4 pb-0",children:t.jsx("span",{className:`text-[10px] font-semibold uppercase tracking-wider px-2 py-0.5 rounded-full ${Y[i.category]||""}`,children:D[i.category]||""})}),t.jsxs("div",{className:"p-5 pt-3",children:[t.jsxs("div",{className:"flex items-start justify-between mb-2",children:[t.jsxs("div",{className:"flex items-center gap-2.5",children:[t.jsx("div",{className:"w-9 h-9 rounded-xl bg-amber-50 flex items-center justify-center shrink-0",children:t.jsx(O,{className:"w-5 h-5 text-amber-600"})}),t.jsx("h3",{className:"text-base font-bold text-gray-900","data-testid":"text-tutorial-title",children:i.title})]}),t.jsx("button",{onClick:g,className:"p-1.5 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-lg transition-all shrink-0","data-testid":"button-tutorial-skip",title:"Exit tutorial",children:t.jsx(J,{className:"w-4 h-4"})})]}),t.jsx("p",{className:"text-sm text-gray-600 leading-relaxed mb-3","data-testid":"text-tutorial-description",children:i.description}),d&&t.jsx("div",{className:"mb-4 space-y-2",children:W.map((e,s)=>t.jsxs("button",{onClick:()=>{e.action&&n&&n(e.action),x()},className:"w-full flex items-center gap-2.5 p-2.5 rounded-lg border border-gray-100 hover:border-amber-300 hover:bg-amber-50/50 transition-all text-left group","data-testid":`button-checklist-${s}`,children:[t.jsx("div",{className:"w-5 h-5 rounded-full border-2 border-gray-300 group-hover:border-amber-400 flex items-center justify-center shrink-0 transition-colors",children:t.jsx("span",{className:"text-[10px] font-bold text-gray-400 group-hover:text-amber-500",children:s+1})}),t.jsx("span",{className:"text-sm text-gray-700 group-hover:text-gray-900 font-medium",children:e.label}),t.jsx(tt,{className:"w-3.5 h-3.5 text-gray-300 ml-auto group-hover:text-amber-500 transition-colors"})]},s))}),i.tip&&t.jsxs("div",{className:"flex items-start gap-2 p-2.5 rounded-lg bg-amber-50 border border-amber-100 mb-3","data-testid":"text-tutorial-tip",children:[t.jsx(et,{className:"w-3.5 h-3.5 text-amber-500 mt-0.5 shrink-0"}),t.jsx("p",{className:"text-xs text-amber-800 leading-relaxed",children:i.tip})]}),i.quickAction&&!d&&t.jsxs("button",{onClick:()=>q(i.quickAction.action),className:"w-full flex items-center justify-center gap-1.5 p-2 rounded-lg border border-dashed border-gray-300 hover:border-amber-400 hover:bg-amber-50 text-xs text-gray-500 hover:text-amber-700 transition-all mb-3","data-testid":`button-tutorial-action-${i.id}`,children:[t.jsx(at,{className:"w-3.5 h-3.5"}),i.quickAction.label]}),t.jsx("div",{className:"flex items-center gap-1 mb-3 justify-center",children:c.map((e,s)=>t.jsx("button",{onClick:()=>w(s),className:`rounded-full transition-all ${s===o?"w-6 h-1.5 bg-amber-500":z.has(e.id)||s<o?"w-1.5 h-1.5 bg-amber-300 hover:bg-amber-400 cursor-pointer":"w-1.5 h-1.5 bg-gray-200 hover:bg-gray-300 cursor-pointer"}`,"data-testid":`tutorial-dot-${s}`},s))}),t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"text-xs text-gray-400 font-medium tabular-nums",children:[o+1," / ",c.length]}),t.jsxs("div",{className:"flex items-center gap-2",children:[!y&&t.jsxs(j,{variant:"outline",size:"sm",onClick:E,className:"text-xs h-8 px-3","data-testid":"button-tutorial-prev",children:[t.jsx(it,{className:"w-3.5 h-3.5 mr-0.5"}),"Back"]}),y&&t.jsx(j,{variant:"ghost",size:"sm",onClick:g,className:"text-xs text-gray-500 h-8","data-testid":"button-tutorial-skip-text",children:"Skip Tour"}),t.jsx(j,{size:"sm",onClick:v,className:"bg-amber-500 hover:bg-amber-600 text-white text-xs h-8 px-4 shadow-sm","data-testid":"button-tutorial-next",children:d?t.jsxs(t.Fragment,{children:[t.jsx(st,{className:"w-3.5 h-3.5 mr-1"}),"Start Building"]}):t.jsxs(t.Fragment,{children:["Next",t.jsx(S,{className:"w-3.5 h-3.5 ml-0.5"})]})})]})]})]}),!m&&!d&&t.jsx("div",{className:"px-5 pb-3 pt-0",children:t.jsxs("p",{className:"text-[10px] text-gray-400 text-center",children:["Press ",t.jsx("kbd",{className:"px-1 py-0.5 rounded border bg-gray-50 font-mono text-[9px]",children:"→"})," for next · ",t.jsx("kbd",{className:"px-1 py-0.5 rounded border bg-gray-50 font-mono text-[9px]",children:"←"})," for back · ",t.jsx("kbd",{className:"px-1 py-0.5 rounded border bg-gray-50 font-mono text-[9px]",children:"Esc"})," to exit"]})})]})]})}export{pt 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.