PageSourceSearch

https://admin.cartstack.com/build/assets/Team-BBBi2M-8.js

js cartstack.com collected 2026-09-24 17:44:38 UTC 6,187 bytes, 1 lines download raw bytes

1import{b as O,e as t,j as e,t as w,H as y}from"./app-D5Bf_dbH.js";import{S as A}from"./SuperAdminLayout-Df3A_GmM.js";import{B as L}from"./Breadcrumbs-DxtGVYP8.js";import{C as E}from"./CustomerProfileNav-BUviHqlu.js";import{B as p}from"./button-BooRjUAf.js";import T from"./TeamMemberTable-qE28kUKv.js";import F from"./AddUserDialog-CMPociQ5.js";import{s as M,S as B}from"./ShareLinkDialog-M0X9TMaP.js";import{D as P,b as _,c as z,d as H,e as $,f as q,g as R}from"./dialog-BgEHdzUT.js";import{I as G}from"./input-DqZbbFgj.js";import{L as J}from"./label-Cm1tsOLE.js";import{L as K}from"./loader-circle-CNDCpqRX.js";import{M as S}from"./mail-Bw_TZjX-.js";import{L as Q}from"./link-DlugCKkK.js";import{C as V}from"./circle-plus-DSf-7Ald.js";import"./dropdown-menu-DXUwCH2H.js";import"./react-icons.esm-CCm293eC.js";import"./index-D4lci4mZ.js";import"./index-eCYNzz1C.js";import"./index-Cn72dBP_.js";import"./index-DI8WOxmI.js";import"./index-rimmKLID.js";import"./avatar-CQYHhkys.js";import"./useGlobalShortcuts-C3mPQ3zf.js";import"./react-BPWwdghM.js";import"./chevron-right-Ba0gC1l7.js";import"./createLucideIcon-CyKN5i_O.js";import"./sheet-lU-qfqG8.js";import"./index-B02_DhYT.js";import"./scroll-area-CnV8vZPq.js";import"./index-D17hSi50.js";import"./rotate-ccw-hNqG30TC.js";import"./eye-jUg7xQoe.js";import"./user-CODNnX9U.js";import"./CSLOGO_lghtbg-12-DL8MB5gQ.js";import"./spinner-CoXWKYJB.js";import"./popover-CBJwT1Kl.js";import"./badge-BdtyRZeW.js";import"./shopping-cart-BYHhTvfT.js";import"./users-jvAb0Hsa.js";import"./lock-_lQojS3k.js";import"./search-F-2nffFh.js";import"./settings-x0uW8CTG.js";import"./log-out-Cqz61TM3.js";import"./sonner-CJXwkPTZ.js";import"./file-text-Bn6-_gGR.js";import"./card-CUwjT2hB.js";import"./table-Dn41ev5Z.js";import"./DeleteUserDialog-D8iGsSMW.js";import"./ButtonSpinner2-CEhWnYe3.js";import"./user-api-qayGbN9e.js";import"./triangle-alert-Dlnfy8oB.js";import"./EditUserDialog-wTrBdA9I.js";import"./select-Ckvsxj-Q.js";import"./index-D2PwZ_9r.js";import"./team-schemas-DffhHq-a.js";import"./types-_GEfgABB.js";import"./ChangePasswordDialog-DYzhu6Ax.js";import"./switch-DHdp9Rsv.js";import"./ManageSiteAccessDialog-hBcZo0Lk.js";import"./checkbox-BZSy-2BQ.js";import"./ellipsis-QzNydO3m.js";import"./copy-BbpQtKA0.js";const W=({open:s,setOpen:u,overrideAccountId:v})=>{const{props:h}=O(),[m,d]=t.useState(""),[l,x]=t.useState(!1),[f,a]=t.useState(null),g=v||h.impersonation?.account?.id||h.auth?.account?.id,j=async r=>{if(r.preventDefault(),!m.trim()){a("Email is required");return}if(!g){a("Account not found");return}x(!0),a(null),await M(g,m.trim()).then(()=>{w.success("Invite email sent successfully"),d(""),u(!1)}).catch(b=>{a(b.message||"Failed to send invite email")}).finally(()=>{x(!1)})},N=r=>{r||(d(""),a(null)),u(r)};return e.jsx(P,{open:s,onOpenChange:N,children:e.jsxs(_,{className:"sm:max-w-md",children:[e.jsxs(z,{children:[e.jsx(H,{className:"mb-2",children:"Send Invite Email"}),e.jsx($,{children:"Enter the email address of the person you want to invite. They will receive an email with instructions to set up their account."})]}),e.jsxs("form",{onSubmit:j,children:[e.jsx("div",{className:"grid gap-4 py-4",children:e.jsxs("div",{className:"grid gap-2",children:[e.jsx(J,{htmlFor:"invite-email",children:"Email Address"}),e.jsx(G,{id:"invite-email",type:"email",placeholder:"[email protected]",value:m,onChange:r=>{d(r.target.value),a(null)},disabled:l}),f&&e.jsx("p",{className:"text-sm text-destructive",children:f})]})}),e.jsxs(q,{className:"gap-2 sm:gap-0",children:[e.jsx(R,{asChild:!0,children:e.jsx(p,{type:"button",variant:"outline",disabled:l,children:"Cancel"})}),e.jsx(p,{type:"submit",disabled:l||!m.trim(),children:l?e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"mr-2 h-4 w-4 animate-spin"}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(S,{className:"mr-2 h-4 w-4"}),"Send Invite"]})})]})]})]})})},os=({account:s,accountUsers:u})=>{const[v,h]=t.useState(!1),[m,d]=t.useState(!1),[l,x]=t.useState(!1),[f,a]=t.useState(!1),[g,j]=t.useState(!1),[N,r]=t.useState(!1),[b,c]=t.useState(u),C=t.useCallback(o=>{const n={...o,isNew:!0};c(i=>[n,...i]),setTimeout(()=>{c(i=>i.map(D=>D.id===o.id?{...D,isNew:!1}
1:D))},1200)},[]),I=t.useCallback(o=>{c(n=>n.map(i=>i.id===o.id?{...i,...o}:i))},[]),U=t.useCallback(o=>{c(n=>n.map(i=>i.id===o?{...i,isDeleting:!0}:i))},[]),k=t.useCallback(o=>{c(n=>n.filter(i=>i.id!==o))},[]);return e.jsxs(A,{header:e.jsx(L,{items:[{name:"Dashboard",link:route("sa.dashboard"),current:!1},{name:"Customers",link:route("sa.customers.index"),current:!1},{name:s.company_name||`Account ${s.id}`,link:route("sa.customers.profile",{id:s.id}),current:!1},{name:"Team",link:route("sa.customers.team",{id:s.id}),current:!0}]}),dropdownOpen:v,setDropdownOpen:h,dOpen:m,setDOpen:d,sOpen:l,setSOpen:x,children:[e.jsx(y,{title:`Team - ${s.company_name||s.id}`}),e.jsx(E,{accountId:s.id,activePage:"team",siteId:s.sites[0]?.id,accountName:s.company_name}),e.jsxs("div",{className:"container mx-auto",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-4 mb-6",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Team Members"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1",children:"Manage team members and their access permissions for this account."})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(p,{size:"sm",className:"gap-1",variant:"outline",onClick:()=>j(!0),children:[e.jsx(S,{className:"h-3.5 w-3.5"}),"Send Invite Email"]}),e.jsxs(p,{size:"sm",className:"gap-1",variant:"outline",onClick:()=>a(!0),children:[e.jsx(Q,{className:"h-3.5 w-3.5"}),"Invite Link"]}),e.jsxs(p,{size:"sm",className:"gap-1",onClick:()=>r(!0),children:[e.jsx(V,{className:"h-3.5 w-3.5"}),"Add User"]})]})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsx(T,{team:b,onUserUpdated:I,onUserDeleted:k,onUserDeleting:U,hideSiteAccess:!0,overrideAccountId:s.id,isSuperAdmin:!0})})]}),e.jsx(F,{open:N,setOpen:r,onUserCreated:C,overrideAccountId:s.id}),e.jsx(B,{open:f,setOpen:a,overrideAccountUuid:s.uuid}),e.jsx(W,{open:g,setOpen:j,overrideAccountId:s.id})]})};export{os 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.