1import{_ as z}from"./index-CdFf6ajF.js";import{C as ee}from"./check-BPFsxgot.js";import{d as R,o as n,c as l,i as s,t as C,f as d,u as a,a as f,w as h,b as I,g as _,m as te,F as b,r as k,e as N,j as v}from"./runtime-core.esm-bundler-BUvReHWE.js";import{O as oe,_ as ne}from"./OnboardingLayout-BCEjp-4k.js";import{_ as se}from"./Input-O8KQDvSY.js";import{_ as ae}from"./Skeleton-D5rDHAwK.js";import{_ as V}from"./Spinner-Dx9SFV09.js";import{u as le}from"./usePostHog-XsMEpZmC.js";import{a as re,h as ie}from"./index.esm-DEpV9LmX.js";import{a as F}from"./index-C44AX5GR.js";import{S as ce}from"./search-D-yEvsaU.js";import{S as ue}from"./shield-check-CiahDSk4.js";import{_ as de}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./utils-CbKt2VT1.js";import"./index-DbCWOK1g.js";import"./index-C_ruiPkq.js";import"./Primitive-Df2ZtYIB.js";import"./index-BHQBzW9e.js";import"./loader-circle-BAWv281s.js";import"./createLucideIcon-CccRPEsi.js";import"./runtime-dom.esm-bundler-DF9jAoLn.js";import"./onboarding-silk-SVzu9SzE.js";import"./Sonner-aBveEqPT.js";import"./index-DwAqpwV7.js";import"./x-9b06GRG8.js";import"./triangle-alert-QxDeVQre.js";import"./info-gsN3FbMr.js";import"./circle-check-BIsXtuSU.js";/* empty css */import"./index-CKGhAOWA.js";import"./module-MjcYinXY.js";import"./_commonjsHelpers-DsqdWQfm.js";const me={class:"flex items-center gap-3 rounded-lg border border-amy-border-default bg-amy-bg-card p-3"},pe={class:"flex size-9 shrink-0 items-center justify-center overflow-hidden rounded-[10px] border border-amy-border-default bg-white"},fe=["src","alt"],ge={key:1,class:"text-sm font-medium text-amy-fg-secondary","aria-hidden":"true"},ye={class:"min-w-0 flex-1 truncate text-sm font-medium text-amy-fg-primary"},be={key:0,class:"inline-flex shrink-0 items-center gap-1.5"},ve={class:"flex size-4 items-center justify-center rounded-full bg-[#DCC9A8] text-[#212319]","aria-hidden":"true"},B=R({__name:"integration-connect-row",props:{label:{},logoUrl:{},connected:{type:Boolean}},emits:["connect"],setup(r){const S=r,m=_(()=>S.label.trim().charAt(0).toUpperCase()||"?");return(i,c)=>(n(),l("div",me,[s("span",pe,[r.logoUrl?(n(),l("img",{key:0,src:r.logoUrl,alt:`${r.label} logo`,class:"size-5 object-contain"},null,8,fe)):(n(),l("span",ge,C(m.value),1))]),s("span",ye,C(r.label),1),r.connected?(n(),l("span",be,[s("span",ve,[d(a(ee),{class:"size-2.5","stroke-width":"3"})]),c[1]||(c[1]=s("span",{class:"text-sm font-medium text-amy-fg-primary"},"Connected",-1))])):(n(),f(a(z),{key:1,type:"button",variant:"outline",size:"sm",class:"shrink-0",onClick:c[0]||(c[0]=L=>i.$emit("connect"))},{default:h(()=>[...c[2]||(c[2]=[I(" Connect ",-1)])]),_:1}))]))}}),he={class:"flex flex-col gap-8 pb-8"},_e={class:"onb-enter -mt-4",style:{"--i":"0"}},xe={class:"relative mt-3"},ke={class:"mt-3 flex flex-wrap gap-2"},Ce=["onClick"],Se={key:0,class:"mt-4 grid gap-3 sm:grid-cols-2"},we={key:1,class:"mt-4 text-sm text-amy-fg-tertiary"},Ae={class:"onb-enter flex flex-col gap-3",style:{"--i":"1"}},$e={class:"grid gap-3 sm:grid-cols-2"},Ue={class:"onb-enter flex items-start gap-3 rounded-2xl bg-[#DCC9A8]/10 p-5",style:{"--i":"2"}},Ne={class:"flex w-full items-center gap-3 lg:contents"},M=3e4,ze=R({layout:oe,__name:"Tools",props:{step:{},curatedSlugs:{}},setup(r){const S=r,{trackEvent:m}=le();function i(e){if(typeof e!="string")return;const t=e.trim();return t===""?void 0:t}function c(e){return e.charAt(0).toUpperCase()+e.slice(1)}const L={gmail:"Gmail",outlook:"Outlook",googlecalendar:"Google Calendar",notion:"Notion",hubspot:"HubSpot",salesforce:"Salesforce",attio:"Attio",pipedrive:"Pipedrive"};function w(e){return L[e]??c(e)}function D(e){if(typeof e!="object"||e===null)return null;const t=e,o=i(t.app_name)??i(t.slug);return o?{slug:o,label:i(t.label)??i(t.name)??w(o),logoUrl:i(t.logo_url)??i(t.logo)??null}:null}function G(e){if(!(typeof e!="object"||e===null))return i(e.app_name)}function H(e){return e!==null}function J(e){return e!==void 0}const A=v(!0),$=v([]),u=v(new Set);async function P(){const[e,t]=await Promise.allSettled([F.get(route("assistant.integrations.catalog"),{headers:{Accept:"application/json"},timeout:M}),F.get(route("assistant.integrations.connected"),{headers:{Accept:"application/json"},timeout:M})]);if(e.status==="fulfilled"){const o=e.value.data?.integrations;$.value=Array.isArray(o)?o.map(D).filter(H):[]}if(t.status==="fulfilled"){const o=t.value.data?.connections;u.value=new Set(Array.isArray(o)?o.map(G).filter(J):[])}A.value=!1,q()}function q(){const e=sessionStorage.getItem("onb-tools-connected-snapshot");if(e){sessionStorage.removeItem("onb-tools-connected-snapshot");try{const t=new Set(JSON.parse(e));for(const o of u.value)t.has(o)||m("onboarding_tool_connected",{tool:o})}catch{}}}const g=_(()=>u.value.size),Y=_(()=>{const e=new Map;for(const t of $.value)e.set(t.slug,{label:t.label,logoUrl:t.logoUrl,connected:u.value.has(t.slug)});for(const t of S.curatedSlugs)e.has(t)||e.set(t,{label:w(t),logoUrl:null,connected:u.value.has(t)});return e});function U(e){return Y.value.get(e)??{label:w(e),logoUrl:null,connected:u.value.has(e)}}function T(e){m("onboarding_tool_connect_clicked",{tool:e}),sessionStorage.setItem("onb-tools-connected-snapshot",JSON.stringify([...u.value])),window.location.href=route("assistant.integrations.auth.initiate",{integrationAppName:e})+"?return_url="+encodeURIComponent("/onboarding/tools")}const y=v(""),K=["Slack","Linear","GitHub","Google Sheets","Jira"],E=_(()=>{const e=y.value.trim().toLowerCase();return e?$.value.filter(t=>t.label.toLowerCase().includes(e)||t.slug.toLowerCase().includes(e)).slice(0,8).map(t=>({slug:t.slug,label:t.label,logoUrl:t.logoUrl,connected:u.value.has(t.slug)})):[]});function Q(e){y.value=e}const p=re({}),W=_(()=>g.value===0?"Continue":`Continue, ${g.value} tool${g.value===1?"":"s"} connected`),x=v(null);function O(e){if(p.processing)return;x.value=e;const t=g.value;p.post(route("assistant.onboarding.tools.advance"),{onSuccess:()=>{m("onboarding_step_completed",{step:"tools",tools_connected:t})},onFinish:()=>{x.value=null}})}function X(){O("advance")}function Z(){O("skip")}return te(()=>{m("onboarding_step_viewed",{step:"tools"}),P()}),(e,t)=>(n(),l(b,null,[d(a(ie),{title:"Connect Amy to your tools"}),d(ne,{title:"Connect Amy to your tools",subtitle:"Tool connections turn Amy into a super powerful team mate you can delegate real work to."},{footer:h(()=>[s("div",Ne,[d(a(z),{type:"button",variant:"outline",class:"h-11 flex-none px-5 text-amy-fg-secondary hover:text-amy-fg-primary lg:order-first lg:h-10 lg:px-4",disabled:a(p).processing,onClick:Z},{default:h(()=>[a(p).processing&&x.value==="skip"?(n(),f(a(V),{key:0,class:"mr-2 size-4"})):N("",!0),t[4]||(t[4]=I(" Skip ",-1))]),_:1},8,["disabled"]),d(a(z),{type:"button",class:"h-11 flex-1 bg-[var(--btn-primary-bg)] text-[var(--btn-primary-text)] hover:bg-[var(--btn-primary-hover)] disabled:cursor-not-allowed disabled:opacity-50 lg:ml-auto lg:h-10 lg:flex-none lg:px-8",disabled:g.value===0||a(p).processing,onClick:X},{default:h(()=>[a(p).processing&&x.value==="advance"?(n(),f(a(V),{key:0,class:"mr-2 size-4"})):N("",!0),I(" "+C(W.value),1)]),_:1},8,["disabled"])])]),default:h(()=>
1[s("div",he,[s("div",_e,[t[1]||(t[1]=s("p",{class:"text-sm font-medium text-amy-fg-primary"}," Amy connects with 1,000+ tools ",-1)),s("div",xe,[d(a(ce),{class:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-amy-fg-muted","aria-hidden":"true"}),d(a(se),{modelValue:y.value,"onUpdate:modelValue":t[0]||(t[0]=o=>y.value=o),placeholder:"Search for a tool: Notion, Slack, Linear...",class:"pl-9"},null,8,["modelValue"])]),s("div",ke,[(n(),l(b,null,k(K,o=>s("button",{key:o,type:"button",class:"cursor-pointer rounded-full border border-amy-border-default bg-amy-bg-card-solid px-3 py-1.5 text-sm text-amy-fg-secondary transition-colors hover:border-amy-fg-tertiary hover:text-amy-fg-primary focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none",onClick:j=>Q(o)},C(o),9,Ce)),64))]),E.value.length?(n(),l("div",Se,[(n(!0),l(b,null,k(E.value,o=>(n(),f(B,{key:o.slug,label:o.label,"logo-url":o.logoUrl,connected:o.connected,onConnect:j=>T(o.slug)},null,8,["label","logo-url","connected","onConnect"]))),128))])):!A.value&&y.value.trim()!==""?(n(),l("p",we," No tools match your search. ")):N("",!0)]),s("section",Ae,[t[2]||(t[2]=s("p",{class:"text-sm font-medium text-amy-fg-primary"}," Most popular ",-1)),s("div",$e,[A.value?(n(!0),l(b,{key:0},k(r.curatedSlugs.length,o=>(n(),f(a(ae),{key:o,class:"h-[60px] rounded-lg"}))),128)):(n(!0),l(b,{key:1},k(r.curatedSlugs,o=>(n(),f(B,{key:o,label:U(o).label,"logo-url":U(o).logoUrl,connected:U(o).connected,onConnect:j=>T(o)},null,8,["label","logo-url","connected","onConnect"]))),128))])]),s("div",Ue,[d(a(ue),{class:"mt-0.5 size-4 shrink-0 text-[#8a7a54]","aria-hidden":"true"}),t[3]||(t[3]=s("p",{class:"text-sm text-amy-fg-secondary"}," Amy never sees your passwords, and uses secure OAuth connections. You can revoke a tool connection at any time. Amy is SOC 2 Type II compliant. ",-1))])])]),_:1})],64))}}),ct=de(ze,[["__scopeId","data-v-6f6e70fd"]]);export{ct 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.