PageSourceSearch

https://dyzo.ai/assets/InvoiceList-xCgk0RqF.js

js dyzo.ai collected 2026-10-02 00:43:51 UTC 27,066 bytes, 1 lines download raw bytes

1import{j as e}from"./vendor-editor-YezxlIi6.js";import{d as t,cv as s,cw as a,cx as l,cy as r,v as i,cz as d,cA as n,r as o}from"./index-COu_gDVE.js";import{u as c,i as x,r as m}from"./vendor-react-Bi4a4EiF.js";import{I as p}from"./Icon-DVBR0hTE.js";import{B as h}from"./Button-DGIAEpSt.js";import{S as u,b,q as g}from"./vendor-ui-32IHAVAn.js";import{D as j}from"./DateRangeDropdown-XJ3XYg-6.js";import{E as k,u as f}from"./vendor-redux-wb1HQVsL.js";import{D as v}from"./DeletePopup-By7fD5ux.js";import"./vendor-date-DycrGX6G.js";const N=()=>{const N=t.c(122),T=c(),$=k(),[F]=x();let E;N[0]!==F?(E=F.get("tab"),N[0]=F,N[1]=E):E=N[1];const R=E,z=f(w),[L,O]=m.useState(R||"all-invoices"),{data:q,status:M,needsRefresh:V,pagination:U,stats:G}=f(y);let H;N[2]!==q?(H=void 0===q?[]:q,N[2]=q,N[3]=H):H=N[3];const J=H;let K;N[4]!==G?(K=void 0===G?{}:G,N[4]=G,N[5]=K):K=N[5];const Q=K,{data:W,status:X,needsRefresh:Y,pagination:Z}=f(P),ee=void 0===W?[]:W,te="loading"===M||"loading"===X||"idle"===M||"idle"===X,[se,ae]=m.useState(!1),[le,re]=m.useState(null),[ie,de]=m.useState(!1),[ne,oe]=m.useState(null),[ce,xe]=m.useState(!1),[me,pe]=m.useState(""),[he,ue]=m.useState(""),[be,ge]=m.useState(""),[je,ke]=m.useState(""),[fe,ve]=m.useState(""),[Ne,we]=m.useState(!0);let ye,Pe;N[6]!==R?(ye=()=>{R&&O(R)},Pe=[R],N[6]=R,N[7]=ye,N[8]=Pe):(ye=N[7],Pe=N[8]),m.useEffect(ye,Pe);const Ce=f(C);let Se;N[9]!==Ce?(Se=Ce.map(S),N[9]=Ce,N[10]=Se):Se=N[10];const _e=Se;let Ie,De,Be,Ae;N[11]!==Y||N[12]!==Z?.currentPage||N[13]!==Z?.itemsPerPage||N[14]!==X||N[15]!==$||N[16]!==he||N[17]!==fe||N[18]!==me||N[19]!==je||N[20]!==be||N[21]!==V||N[22]!==U?.currentPage||N[23]!==U?.itemsPerPage||N[24]!==M||N[25]!==z?.companyId?(Ie=()=>{const e=z?.companyId||2;(V||"idle"===M)&&$(l({companyId:e,page:U?.currentPage||1,limit:U?.itemsPerPage||10,projectId:me,clientId:he,status:be,startDate:je,endDate:fe})),(Y||"idle"===X)&&$(r({companyId:e,page:Z?.currentPage||1,limit:Z?.itemsPerPage||20}))},N[11]=Y,N[12]=Z?.currentPage,N[13]=Z?.itemsPerPage,N[14]=X,N[15]=$,N[16]=he,N[17]=fe,N[18]=me,N[19]=je,N[20]=be,N[21]=V,N[22]=U?.currentPage,N[23]=U?.itemsPerPage,N[24]=M,N[25]=z?.companyId,N[26]=Ie):Ie=N[26],N[27]!==Y||N[28]!==Z||N[29]!==X||N[30]!==$||N[31]!==he||N[32]!==fe||N[33]!==me||N[34]!==je||N[35]!==be||N[36]!==V||N[37]!==U||N[38]!==M||N[39]!==z?(De=[$,z,V,M,Y,X,U,Z,me,he,be,je,fe],N[27]=Y,N[28]=Z,N[29]=X,N[30]=$,N[31]=he,N[32]=fe,N[33]=me,N[34]=je,N[35]=be,N[36]=V,N[37]=U,N[38]=M,N[39]=z,N[40]=De):De=N[40],m.useEffect(Ie,De),N[41]!==$||N[42]!==Ne?(Be=()=>{Ne?we(!1):$(s(1))},N[41]=$,N[42]=Ne,N[43]=Be):Be=N[43],N[44]!==$||N[45]!==he||N[46]!==fe||N[47]!==me||N[48]!==je||N[49]!==be?(Ae=[me,he,be,je,fe,$],N[44]=$,N[45]=he,N[46]=fe,N[47]=me,N[48]=je,N[49]=be,N[50]=Ae):Ae=N[50],m.useEffect(Be,Ae);const Te=Q.totalInvoices||0,$e=Q.totalSent||0,Fe=Q.totalPaid||0,Ee=Q.totalDue||0,Re=Q.totalOverdue||0,ze=_;let Le;N[51]!==le||N[52]!==$?(Le=async()=>{if(!le)return;const e=le._id||le.id;try{await fetchAuthDelete(`https://api.dyzo.ai/api/clients/${e}/`),i.success("Client deleted successfully!"),$(d(!0))}catch(t){i.error("Failed to delete client (Local Demo Mode fallback logic removed)")}},N[51]=le,N[52]=$,N[53]=Le):Le=N[53];const Oe=Le;let qe;N[54]!==Ce?(qe=e=>e&&0!==e.length?e.map(e=>{const t=Ce.find(t=>(t._id||t.id)===e);return t?{name:t.name,color:t.projectColor||"#CBD5E1"}:null}).filter(Boolean):[{name:"No projects assigned",color:"#9CA3AF"}],N[54]=Ce,N[55]=qe):qe=N[55];const Me=qe;let Ve;N[56]!==$||N[57]!==J?(Ve=async(e,t,s)=>{e.stopPropagation();const a=J.find(e=>e.id===t),l=a?a.status:"draft";$(n({id:t,status:s,oldStatus:l}));try{await o(`https://api.dyzo.ai/api/invoices/${t}/`,{body:{status:s}})}catch(r){$(n({id:t,status:l,oldStatus:s})),i.error("Failed to update status")}},N[56]=$,N[57]=J,N[58]=Ve):Ve=N[58];const Ue=Ve,Ge=ee.map(I);let He;N[59]===Symbol.for("react.memo_cache_sentinel")?(He=[{value:"draft",label:"Draft"},{value:"sent",label:"Sent"},{value:"paid",label:"Paid"},{value:"overdue",label:"Overdue"},{value:"void",label:"Void"}],N[59]=He):He=N[59];const Je=He,Ke=je||fe;let Qe;N[60]!==he||N[61]!==me||N[62]!==be||N[63]!==Ke?(Qe=[he,me,be,Ke].filter(
1Boolean),N[60]=he,N[61]=me,N[62]=be,N[63]=Ke,N[64]=Qe):Qe=N[64];const We=Qe.length;let Xe,Ye,Ze;N[65]===Symbol.for("react.memo_cache_sentinel")?(Xe=e.jsx("div",{children:e.jsx("h1",{className:"text-base font-bold text-slate-900 dark:text-white",children:"Invoice"})}),N[65]=Xe):Xe=N[65],N[66]!==L||N[67]!==T?(Ye=e.jsxs("div",{className:"flex flex-wrap justify-between items-center gap-4 border-b border-slate-200 dark:border-slate-700 pb-4",children:[Xe,e.jsx("div",{className:"flex items-center gap-3",children:"clients"===L?e.jsx(h,{onClick:()=>T("/invoice/client/create"),className:"py-1 px-3 rounded-md flex items-center border font-normal border-solid transition-all duration-150 bg-white dark:bg-electricBlue-50 dark:border-slate-700 text-electricBlue-100 dark:text-white border-neutral-50 hover:bg-purple-50 dark:hover:bg-slate-700/60 cursor-pointer text-sm shadow-sm h-8",icon:"heroicons-outline:plus",iconClass:"text-lg mr-1 text-electricBlue-100 dark:text-white",text:"Add Client"}):e.jsx(h,{onClick:()=>T("/invoice/create"),className:"py-1 px-3 rounded-md flex items-center border font-normal border-solid transition-all duration-150 bg-white dark:bg-electricBlue-50 dark:border-slate-700 text-electricBlue-100 dark:text-white border-neutral-50 hover:bg-purple-50 dark:hover:bg-slate-700/60 cursor-pointer text-sm shadow-sm h-8",icon:"heroicons-outline:document-text",iconClass:"text-lg mr-1 text-electricBlue-100 dark:text-white",text:"Create Invoice"})})]}),N[66]=L,N[67]=T,N[68]=Ye):Ye=N[68],N[69]===Symbol.for("react.memo_cache_sentinel")?(Ze=()=>O("all-invoices"),N[69]=Ze):Ze=N[69];const et="pb-3 border-b-2 transition-colors "+("all-invoices"===L?"border-purple-600 text-purple-600 dark:text-purple-400":"border-transparent text-slate-500 hover:text-slate-800 dark:hover:text-slate-200");let tt,st;N[70]!==et?(tt=e.jsx("button",{onClick:Ze,className:et,children:"All Invoices"}),N[70]=et,N[71]=tt):tt=N[71],N[72]===Symbol.for("react.memo_cache_sentinel")?(st=()=>O("clients"),N[72]=st):st=N[72];const at="pb-3 border-b-2 transition-colors "+("clients"===L?"border-purple-600 text-purple-600 dark:text-purple-400":"border-transparent text-slate-500 hover:text-slate-800 dark:hover:text-slate-200");let lt,rt,it,dt;N[73]!==at?(lt=e.jsx("button",{onClick:st,className:at,children:"Clients"}),N[73]=at,N[74]=lt):lt=N[74],N[75]!==tt||N[76]!==lt?(rt=e.jsxs("div",{className:"flex space-x-6 text-sm font-semibold",children:[tt,lt]}),N[75]=tt,N[76]=lt,N[77]=rt):rt=N[77],N[78]!==We||N[79]!==L||N[80]!==ce?(it="all-invoices"===L&&e.jsxs("button",{onClick:()=>xe(!ce),className:"relative p-2 mb-2 rounded-full transition-colors "+(ce?"bg-purple-100 text-purple-600 dark:bg-purple-900/30":"bg-slate-100 text-slate-600 hover:bg-slate-200 dark:bg-slate-800 dark:hover:bg-slate-700 dark:text-slate-300"),title:"Toggle Filters",children:[e.jsx(p,{icon:"fluent:filter-12-regular",className:"w-5 h-5"}),We>0&&e.jsx("span",{className:"absolute top-0 right-0 -mt-1 -mr-1 flex h-4 w-4 items-center justify-center rounded-full bg-electricBlue-50 text-[10px] font-bold text-white shadow-sm ring-2 ring-white dark:ring-slate-900",children:We})]}),N[78]=We,N[79]=L,N[80]=ce,N[81]=it):it=N[81],N[82]!==rt||N[83]!==it?(dt=e.jsxs("div",{className:"flex justify-between items-center border-b border-slate-200 dark:border-slate-700 !mt-2",children:[rt,it]}),N[82]=rt,N[83]=it,N[84]=dt):dt=N[84];const nt="all-invoices"===L&&ce&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4 animate-fade-in-up",children:[e.jsx("div",{children:e.jsx(u,{value:Ge.find(e=>String(e.value)===String(he))||null,onChange:e=>ue(e?e.value:""),options:Ge,className:"text-sm",classNamePrefix:"select",placeholder:"All Clients",isSearchable:!0,isClearable:!0})}),e.jsx("div",{children:e.jsx(u,{value:_e.find(e=>e.value===me)||null,onChange:e=>pe(e?e.value:""),options:_e,className:"text-sm",classNamePrefix:"select",placeholder:"All Projects",isSearchable:!0,isClearable:!0})}),e.jsx("div",{children:e.jsx(u,{value:Je.find(e=>e.value===be)||null,onChange:e=>ge(e?e.value:""),options:Je,className:"text-sm",classNamePrefix:"select",placeholder:"All Statuses",isSearchable:!1,isClearable:!0})}),e.jsx("div",{className:"relative",children:e.jsx(j,{align:"right",value:{start:je,end:fe},onChange:e=>{ke(e?.start||""),ve(e?.end||"")},renderTrigger:t=>e.jsxs("button",{type:"button",className:"w-full h-[38px] px-3 flex gap-2 items-center justify-between bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-700 rounded-md hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors text-slate-700 dark:text-slate-300 text-sm",children:[e.jsx("span",{children:je&&fe?`${je} - ${fe}`:je||"Select Date Range"}),e.jsx(p,{icon:"heroicons:calendar-days",className:"w-4 h-4 text-slate-400"})]})})})]});let ot,ct,xt,mt;return N[85]!==L||N[86]!==Z||N[87]!==ee||N[88]!==$||N[89]!==ze||N[90]!==Ue||N[91]!==U||N[92]!==J||N[93]!==te||N[94]!==T||N[95]!==re||N[96]!==ae||N[97]!==oe||N[98]!==Ee||N[99]!==Te||N[100]!==Re||N[101]!==Fe||N[102]!==$e?(
1ot=te?e.jsxs("div",{className:"p-20 text-center flex flex-col items-center justify-center space-y-3",children:[e.jsx("div",{className:"animate-spin rounded-full h-10 w-10 border-b-2 border-purple-600"}),e.jsx("p",{className:"text-slate-500 dark:text-slate-400",children:"Loading module details..."})]}):e.jsxs(e.Fragment,{children:["all-invoices"===L&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4",children:[e.jsxs("div",{className:"bg-white dark:bg-slate-800 p-4 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-purple-50 dark:bg-purple-900/20 text-purple-600 dark:text-purple-400 rounded-lg",children:e.jsx(p,{icon:"heroicons-outline:document-text",className:"w-6 h-6"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-slate-400 dark:text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"Total Invoices"}),e.jsx("p",{className:"text-slate-900 dark:text-white text-lg font-bold",children:Te}),e.jsx("p",{className:"text-slate-450 text-[10px] mt-0.5",children:"All time"})]})]}),e.jsxs("div",{className:"bg-white dark:bg-slate-800 p-4 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-indigo-50 dark:bg-indigo-900/20 text-indigo-600 dark:text-indigo-400 rounded-lg",children:e.jsx(p,{icon:"heroicons-outline:paper-airplane",className:"w-6 h-6"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-slate-400 dark:text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"Total Sent"}),e.jsx("p",{className:"text-slate-900 dark:text-white text-lg font-bold",children:ze($e)}),e.jsxs("p",{className:"text-slate-450 text-[10px] mt-0.5",children:[J.filter(D).length," invoices"]})]})]}),e.jsxs("div",{className:"bg-white dark:bg-slate-800 p-4 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-emerald-50 dark:bg-emerald-900/20 text-emerald-600 dark:text-emerald-400 rounded-lg",children:e.jsx(p,{icon:"heroicons-outline:check-circle",className:"w-6 h-6"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-slate-400 dark:text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"Total Paid"}),e.jsx("p",{className:"text-slate-900 dark:text-white text-lg font-bold",children:ze(Fe)}),e.jsx("p",{className:"text-slate-450 text-[10px] mt-0.5",children:"Cleared billing"})]})]}),e.jsxs("div",{className:"bg-white dark:bg-slate-800 p-4 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400 rounded-lg",children:e.jsx(p,{icon:"heroicons-outline:clock",className:"w-6 h-6"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-slate-400 dark:text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"Total Due"}),e.jsx("p",{className:"text-slate-900 dark:text-white text-lg font-bold",children:ze(Ee)}),e.jsx("p",{className:"text-slate-450 text-[10px] mt-0.5",children:"Pending clearance"})]})]}),e.jsxs("div",{className:"bg-white dark:bg-slate-800 p-4 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-rose-50 dark:bg-rose-900/20 text-rose-600 dar
1k:text-rose-400 rounded-lg",children:e.jsx(p,{icon:"heroicons-outline:exclamation-circle",className:"w-6 h-6"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-slate-400 dark:text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"Overdue"}),e.jsx("p",{className:"text-slate-900 dark:text-white text-lg font-bold text-rose-600 dark:text-rose-450",children:ze(Re)}),e.jsx("p",{className:"text-rose-500 text-[10px] mt-0.5 font-semibold",children:"Immediate action"})]})]})]}),e.jsxs("div",{className:"bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm",children:[e.jsx("div",{className:"w-full",children:e.jsxs("table",{className:"w-full text-left border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-slate-50 dark:bg-slate-900/50 border-b border-slate-200 dark:border-slate-700 text-xs font-semibold text-slate-450 dark:text-slate-550 uppercase tracking-wider",children:[e.jsx("th",{className:"px-6 py-4",children:"Invoice No."}),e.jsx("th",{className:"px-6 py-4",children:"Project"}),e.jsx("th",{className:"px-6 py-4",children:"Client"}),e.jsx("th",{className:"px-6 py-4",children:"Issue Date"}),e.jsx("th",{className:"px-6 py-4",children:"Due Date"}),e.jsx("th",{className:"px-6 py-4 text-center",children:"Status"}),e.jsx("th",{className:"px-6 py-4 text-right",children:"Amount"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-200 dark:divide-slate-700 text-sm",children:J.map((t,s)=>e.jsxs("tr",{onClick:()=>T(`/invoice/view/${t.id}`),className:"group hover:bg-slate-50/50 dark:hover:bg-slate-700/30 transition-colors text-slate-700 dark:text-slate-300 cursor-pointer",children:[e.jsx("td",{className:"px-6 py-4 font-semibold text-purple-600 dark:text-purple-400",children:t.invoice_number||t.id}),e.jsx("td",{className:"px-6 py-4 font-medium",children:t.project_name}),e.jsx("td",{className:"px-6 py-4",children:t.client_name}),e.jsx("td",{className:"px-6 py-4 text-slate-500",children:t.issue_date}),e.jsx("td",{className:"px-6 py-4 text-slate-500",children:t.due_date}),e.jsx("td",{className:"px-6 py-4 text-center",onClick:B,children:e.jsxs(b,{as:"div",className:"relative inline-block text-left",children:[e.jsxs(b.Button,{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-md border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-700 dark:text-slate-300 font-medium text-sm capitalize hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors",children:[t.status||"Draft",e.jsx(p,{icon:"heroicons-outline:chevron-down",className:"w-3.5 h-3.5 opacity-70"})]}),e.jsx(g,{as:m.Fragment,enter:"transition ease-out duration-100",enterFrom:"transform opacity-0 scale-95",enterTo:"transform opacity-100 scale-100",leave:"transition ease-in duration-75",leaveFrom:"transform opacity-100 scale-100",leaveTo:"transform opacity-0 scale-95",children:e.jsx(b.Items,{className:"absolute right-1/2 translate-x-1/2 mt-2 w-32 origin-top rounded-lg bg-white dark:bg-slate-800 shadow-lg ring-1 ring-slate-900/5 dark:ring-white/10 focus:outline-none z-10 overflow-hidden",children:e.jsx("div",{className:"py-1",children:["draft","sent","paid","overdue","void"].map(s=>{const a=t.status?.toLowerCase()===s;return e.jsx(b.Item,{children:l=>{const{active:r}=l;return e.jsxs("button",{onClick:e=>Ue(e,t.id,s),className:`${r?"bg-slate-50 dark:bg-slate-700/50":""} flex w-full items-center justify-between px-4 py-2 text-sm capitalize ${a?"text-electricBlue-100 dark:text-electricBlue-50 font-semibold bg-electricBlue-50/10":"text-slate-600 dark:text-slate-300 font-medium"}`,children:[s,a&&e.jsx(p,{icon:"heroicons-solid:check",className:"w-4 h-4 text-electricBlue-100 dark:text-electricBlue-50"})]})}},s)})})})})]})}),e.jsx("td",{className:"px-6 py-4 text-right font-bold text-slate-900 dark:text-white",children:ze(t.total_amount,t.currency)})]},t.id||s))})]})}),U&&U.totalPages>1&&e.jsxs("div",{className:"px-6 py-4 border-t border-slate-200 dark:border-slate-700 flex items-center justify-between bg-slate-50 dark:bg-slate-900/50",children:[e.jsxs("span",{className:"text-sm text-slate-500 dark:text-slate-400",children:["Showing page ",U.currentPage," of ",U.totalPages," (",U.totalItems," total)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(h,{text:"Previous",className:"btn-outline-dark btn-sm",disabled:1===U.currentPage,onClick:()=>$(s(U.currentPage-1))}),e.jsx(h,{text:"Next",className:"btn-outline-dark btn-sm",disabled:U.currentPage===U.totalPages,onClick:()=>$(s(U.currentPage+1))})]})]})]})]}),"clients"===L&&e.jsxs("div",{className:"bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-xl shadow-sm overflow-hidden",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-left border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-slate-50 dark:bg-slate-900/50 border-b border-slate-200 dark:border-slate-700 text-xs font-semibold text-slate-450 dark:text-slate-550 uppercase tracking-wider",children:[e.jsx("th",{className:"px-6 py-4",children:"Client Name"}),e.jsx("th",{className:"px-6 py-4",children:"Email"}),e.jsx("th",{className:"px-6 py-4",children:"Phone"}),e.jsx("th",{className:"px-6 py-4 w-32 text-center",children:"Action"})]})}),e.jsx("tbody",{className:"divide-y divide-slate-200 dark:divide-slate-700 text-sm",children:ee.map(t=>e.jsxs("tr",{className:"group hover:bg-slate-50/50 dark:hover:bg-slate-700/30 transition-colors text-slate-700 dark:text-slate-300",children:[e.jsx("td",{className:"px-6 py-4 font-semibold text-slate-900 dark:text-white",children:t.clientName}),e.jsx("td",{className:"px-6 py-4 text-slate-500",children:t.email}),e.jsx("td",{className:"px-6 py-4 text-slate-500",children:t.phone||"-"}),e.jsx("td",{className:"px-6 py-4 text-center",children:e.jsxs("div",{className:"inline-flex rounded-lg border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 divide-x divide-slate-200 dark:divide-slate-700 overflow-hidden opacity-0 group-hover:opacity-100 transition-all duration-150 shadow-sm",children:[e.jsx("button",{onClick:()=>oe(t),className:"p-2 text-slate-500 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-200 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors flex items-center justify-center",title:"View Client",children:e.jsx(p,{icon:"heroicons-outline:eye",className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>T(`/invoice/client/create?id=${t.id||t._id}`),className:"p-2 text-indigo-600 hover:text-indigo-800 dark:text-indigo-400 dark:hover:text-indigo-300 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors flex items-center justify-center",title:"Edit Client",children:e.jsx(p,{icon:"heroicons-outline:pencil-square",className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>{re(t),ae(!0)},className:"p-2 text-rose-600 hover:text-rose-800 dark:text-rose-450 dark:hover:text-rose-400 hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors flex items-center justify-center",title:"Delete Client",children:e.jsx(p,{icon:"heroicons-outline:trash",className:"w-4 h-4"})})]})})]},t._id||t.id))})]})}),Z&&Z.totalPages>1&&e.jsxs("div",{className:"px-6 py-4 border-t border-slate-200 dark:border-slate-700 flex items-center justify-between bg-slate-50 dark:bg-slate-900/50",children:[e.jsxs("span",{className:"text-sm text-slate-500 dark:text-slate-400",children:["Showing page ",Z.currentPage," of ",Z.totalPages," (",Z.totalItems," total)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(h,{text:"Previous",className:"btn-outline-dark btn-sm",disabled:1===Z.currentPage,onClick:()=>$(a(Z.currentPage-1))}),e.jsx(h,{text:"Next",className:"btn-outline-dark btn-sm",disabled:Z.currentPage===Z.totalPages,onClick:()=>$(a(Z.currentPage+1))})]})]})]})]}),N[85]=L,N[86]=Z,N[87]=ee,N[88]=$,N[89]=ze,N[90]=Ue,N[91]=U,N[92]=J,N[93]=te,N[94]=T,N[95]=re,N[96]=ae,N[97]=oe,N[98]=Ee,N[99]=Te,N[100]=Re,N[101]=Fe,N[102]=$e,N[103]=ot):ot=N[103],N[104]!==Me||N[105]!==oe||N[106]!==ne?
1(ct=ne&&e.jsxs("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4",children:[e.jsx("div",{className:"fixed inset-0 bg-slate-900/60 backdrop-blur-sm",onClick:()=>oe(null)}),e.jsxs("div",{className:"relative bg-white dark:bg-slate-800 rounded-2xl shadow-2xl w-full max-w-lg max-h-[90vh] flex flex-col overflow-hidden",children:[e.jsxs("div",{className:"px-6 py-4 border-b border-slate-100 dark:border-slate-700 flex items-center justify-between bg-slate-50 dark:bg-slate-950/20",children:[e.jsxs("h3",{className:"text-base font-bold text-slate-900 dark:text-white flex items-center gap-2",children:[e.jsx(p,{icon:"heroicons-outline:user",className:"text-purple-500 w-5 h-5"}),"Client Details"]}),e.jsx("button",{onClick:()=>oe(null),className:"text-slate-400 hover:text-slate-600 dark:hover:text-slate-350 transition-colors p-1 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-700",children:e.jsx(p,{icon:"heroicons-outline:x-mark",className:"w-5 h-5"})})]}),e.jsxs("div",{className:"p-6 overflow-y-auto space-y-5 text-sm",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Client Name"}),e.jsx("span",{className:"font-semibold text-slate-900 dark:text-white",children:ne.clientName})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Email Address"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-350 font-medium break-all",children:ne.email})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Phone Number"}),e.jsx("span",{className:"text-slate-700 dark:text-slate-350 font-medium",children:ne.phone||"-"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Preferred Currency"}),e.jsx("span",{className:"text-slate-900 dark:text-white font-semibold",children:ne.default_currency||"INR"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Billing Type"}),e.jsx("span",{className:"text-slate-750 dark:text-slate-300 font-medium",children:ne.default_billing_type||"Time & Material"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Default Rate"}),e.jsx("span",{className:"text-slate-750 dark:text-slate-300 font-medium",children:ne.default_billing_rate?`${ne.default_currency||"INR"} ${ne.default_billing_rate}`:"-"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-0.5",children:"Tax Percentage"}),e.jsxs("span",{className:"text-slate-750 dark:text-slate-300 font-medium",children:[ne.default_tax_percentage,"%"]})]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-1",children:"Billing Address"}),e.jsx("p",{className:"text-slate-800 dark:text-slate-200 bg-slate-50 dark:bg-slate-900/30 p-3 rounded-lg border border-slate-100 dark:border-slate-700/50 leading-relaxed text-sm",children:ne.address||"No address provided."})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-1",children:"Default Notes"}),e.jsx("p",{className:"text-slate-850 dark:text-slate-200 bg-slate-50 dark:bg-slate-900/30 p-3 rounded-lg border border-slate-100 dark:border-slate-700/50 leading-relaxed italic text-sm",children:ne.default_notes||"No notes provided."})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-semibold text-slate-400 dark:text-slate-500 uppercase tracking-wider block mb-2",children:"Associated Projects"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Me(ne.project_ids).map(A)})]})]}),e.jsx("div",{className:"px-6 py-3.5 border-t border-slate-100 dar
1k:border-slate-700 flex justify-end bg-slate-50 dark:bg-slate-950/20",children:e.jsx("button",{onClick:()=>oe(null),className:"bg-gray-200 hover:bg-gray-300 text-gray-900 font-medium rounded-md px-5 h-8 flex items-center justify-center text-sm focus:outline-none transition-all active:scale-95",children:"Close"})})]})]}),N[104]=Me,N[105]=oe,N[106]=ne,N[107]=ct):ct=N[107],N[108]!==le?.clientName||N[109]!==ie||N[110]!==Oe||N[111]!==de||N[112]!==ae||N[113]!==se?(xt=se&&e.jsx(v,{title:"Delete Client",description:`Are you sure you want to delete client "${le?.clientName||""}"? This action cannot be undone.`,setOpen:ae,setLoading:de,loading:ie,onConfirm:Oe}),N[108]=le?.clientName,N[109]=ie,N[110]=Oe,N[111]=de,N[112]=ae,N[113]=se,N[114]=xt):xt=N[114],N[115]!==Ye||N[116]!==dt||N[117]!==nt||N[118]!==ot||N[119]!==ct||N[120]!==xt?(mt=e.jsxs("div",{className:"space-y-4 p-4 min-h-screen bg-white dark:bg-slate-900",children:[Ye,dt,nt,ot,ct,xt]}),N[115]=Ye,N[116]=dt,N[117]=nt,N[118]=ot,N[119]=ct,N[120]=xt,N[121]=mt):mt=N[121],mt};function w(e){return e.auth.user}function y(e){return e.invoices}function P(e){return e.clients}function C(e){return e.projects.projects||[]}function S(e){return{value:e.id||e._id,label:e.name}}function _(e,t){const s=void 0===t?"INR":t,a=s&&3===s.length?s:"INR";return new Intl.NumberFormat("en-IN",{style:"currency",currency:a,maximumFractionDigits:0}).format(e)}function I(e){return{value:e.id||e._id,label:e.clientName||e.name||"Unknown Client"}}function D(e){const t=e.status?.toLowerCase();return"draft"!==t&&"void"!==t}function B(e){return e.stopPropagation()}function A(t,s){return e.jsxs("span",{className:"text-sm font-semibold px-2.5 py-1 rounded-md flex items-center gap-2 "+("No projects assigned"===t.name?"bg-slate-100 dark:bg-slate-700 text-slate-550":"bg-slate-50 dark:bg-slate-900/30 text-slate-700 dark:text-slate-350 border border-slate-200 dark:border-slate-700"),children:["No projects assigned"!==t.name&&e.jsx("span",{className:"w-2.5 h-2.5 rounded-[3px] flex-shrink-0",style:{backgroundColor:t.color}}),t.name]},s)}export{N 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.