1import{a as e}from"./rolldown-runtime-CCT_m2FY.js";import{_ as s}from"./react-Fyjr9G8a.js";import{At as t,I as a,O as r,Ot as i,V as l,_ as n,at as d,et as c,ft as o,gt as m,n as x,nt as p,s as u,st as h,ut as b,x as j}from"./lucide-Du5NTjuW.js";import{l as f}from"./motion-DIT2RfQy.js";import{n as g}from"./dist-BVbUjs3x.js";import{t as N}from"./page-spinner-BYrX_ere.js";import{t as y}from"./page-header-DdcYubPZ.js";import{r as v}from"./shimmer-BNQTmbds.js";import{f as w,s as z}from"./api-CDoApT6I.js";var k=e(t(),1),L=e(s(),1),C=f();function S({tracking:e,onClose:s,onUpdated:t}){const[r,i]=(0,k.useState)(!1),[n,d]=(0,k.useState)(!1),c=[...e.slpEvents].reverse();(0,k.useEffect)(()=>{const e=e=>{"Escape"===e.key&&s()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[s]);const o=e.slpDelivered?"Delivered":c.length>0?"In Transit":e.trackingNumber?"Dispatched":"Pending",u=e.slpDelivered?"bg-emerald-50 text-emerald-600 border-emerald-100":c.length>0?"bg-amber-50 text-amber-600 border-amber-100":"bg-primary/5 text-primary border-primary/10";return(0,L.createPortal)((0,C.jsx)("div",{className:"fixed inset-0 z-[120] flex items-center justify-center p-4 bg-black/40 backdrop-blur-sm",onClick:s,children:(0,C.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Parcel Tracking",className:"w-full max-w-lg bg-white rounded-3xl shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-200",onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,C.jsx)("div",{className:"px-6 pt-6 pb-4 border-b border-slate-100",children:(0,C.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,C.jsxs)("div",{className:"space-y-1 min-w-0",children:[(0,C.jsx)("p",{className:"text-[10px] font-semibold text-slate-400 uppercase tracking-widest",children:"Parcel Tracking"}),(0,C.jsxs)("div",{className:"flex items-center gap-2",children:[(0,C.jsx)("p",{className:"text-xl font-semibold text-primary truncate",children:e.trackingNumber}),(0,C.jsx)("button",{type:"button",onClick:()=>{return s=e.trackingNumber??"",navigator.clipboard.writeText(s),i(!0),void setTimeout(()=>i(!1),2e3);var s},className:"size-7 rounded-lg bg-slate-50 border border-slate-200 flex items-center justify-center text-slate-400 hover:text-primary hover:border-primary/20 active:scale-95 transition-all shrink-0",title:"Copy tracking number",children:r?(0,C.jsx)(m,{className:"size-3.5 text-primary"}):(0,C.jsx)(p,{className:"size-3.5"})})]}),(e.courierName||e.dispatchedAt)&&(0,C.jsx)("p",{className:"text-[10px] font-semibold text-slate-400",children:[e.courierName,e.dispatchedAt?new Date(e.dispatchedAt).toLocaleDateString("en-LK",{month:"short",day:"numeric",year:"numeric"}):null].filter(Boolean).join(" · ")})]}),(0,C.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,C.jsx)("span",{className:`px-2.5 py-1 rounded-lg text-[9px] font-semibold border ${u}`,children:o}),(0,C.jsx)("button",{type:"button",onClick:s,className:"size-8 rounded-xl bg-slate-50 border border-slate-200 flex items-center justify-center text-slate-400 hover:text-slate-700 active:scale-95 transition-all",children:(0,C.jsx)(x,{className:"size-4"})})]})]})}),(0,C.jsx)("div",{className:"px-6 py-4 max-h-72 overflow-y-auto",children:0===c.length?(0,C.jsxs)("div",{className:"py-8 text-center text-slate-400 text-sm font-medium",children:["No tracking events yet.",(0,C.jsx)("br",{}),(0,C.jsx)("span",{className:"text-xs text-slate-300",children:"Hit Refresh to check Sri Lanka Post."})]}):(0,C.jsxs)("div",{className:"relative",children:[(0,C.jsx)("div",{className:"absolute left-2 top-2 bottom-2 w-px bg-slate-100"}),(0,C.jsx)("div",{className:"space-y-5",children:c.map((e,s)=>(0,C.jsxs)("div",{className:"relative flex gap-4 pl-7",children:[(0,C.jsx)("div",{className:"absolute left-0 top-1 size-4 rounded-full border-2 flex items-center justify-center "+(0===s?"border-primary bg-primary/10":"border-slate-200 bg-white"),children:(0,C.jsx)("div",{className:"size-1.5 rounded-full "+(0===s?"bg-primary":"bg-slate-300")})}),(0,C.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,C.jsx)("p",{className:"text-sm font-semibold text-slate-800 leading-snug",children:e.event}),(0,C.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-0.5 mt-0.5",children:[(0,C.jsx)("span",{className:"text-[10px] font-semibold text-slate-400",children:e.datetime}),e.location&&(0,C.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-semibold text-slate-400",children:[(0,C.jsx)(a,{className:"size-2.5"}),e.location]})]})]})]},e.id??`${e.datetime}-${s}`))})]})}),(0,C.jsxs)("div",{className:"px-6 py-4 border-t border-slate-100 flex items-center justify-between",children:[(0,C.jsx)("p",{className:"text-[10px] font-semibold text-slate-400",children:e.slpCachedAt?`Updated ${new Date(e.slpCachedAt).toLocaleStr
1ing("en-LK",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}`:"Not yet fetched from SLP"}),(0,C.jsxs)("button",{type:"button",onClick:async()=>{d(!0);try{t((await w.refreshSlp(e.id)).tracking)}catch(s){}finally{d(!1)}},disabled:n,className:"flex items-center gap-2 px-4 py-2 rounded-2xl bg-primary text-white text-xs font-semibold hover:opacity-90 active:scale-[0.98] disabled:opacity-60 transition-all",children:[n?(0,C.jsx)(l,{className:"size-3.5 animate-spin"}):(0,C.jsx)(j,{className:"size-3.5"}),"Refresh"]})]})]})}),document.body)}function A({payments:e}){const[s,t]=(0,k.useState)(!1),[a,l]=(0,k.useState)([]),[n,o]=(0,k.useState)(!0),[x,h]=(0,k.useState)(!1),j=e[0]??null;(0,k.useEffect)(()=>{w.list().then(e=>l(e.trackings)).catch(()=>l([])).finally(()=>o(!1))},[]);const f=a.filter(e=>e.trackingNumber).sort((e,s)=>{const t=e.dispatchedAt?new Date(e.dispatchedAt).getTime():0;return(s.dispatchedAt?new Date(s.dispatchedAt).getTime():0)-t})[0]??null;return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6",children:[(0,C.jsxs)("div",{className:"relative overflow-hidden bg-white rounded-3xl border border-gray-200 p-6 md:p-10 flex flex-col justify-between h-[220px] md:h-[260px] group transition-all duration-500 hover:border-primary/40",children:[(0,C.jsx)("div",{className:"absolute right-0 top-0 translate-x-1/4 -translate-y-1/4 pointer-events-none opacity-[0.06]",children:(0,C.jsxs)("div",{className:"relative flex items-center justify-center",children:[(0,C.jsx)("div",{className:"absolute size-40 md:size-56 rounded-full border-[1.5px] border-gray-200"}),(0,C.jsx)("div",{className:"absolute size-64 md:size-[20rem] rounded-full border-[1.5px] border-gray-200"}),(0,C.jsx)("div",{className:"absolute size-80 md:size-[28rem] rounded-full border-[1.5px] border-gray-200"})]})}),(0,C.jsxs)("div",{className:"flex justify-between items-start relative z-10",children:[(0,C.jsxs)("div",{className:"space-y-1",children:[(0,C.jsxs)("div",{className:"flex items-center gap-2",children:[(0,C.jsx)("div",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),(0,C.jsx)("h2",{className:"text-sm md:text-lg font-semibold text-slate-900 tracking-tight",children:"Recent Payment"})]}),(0,C.jsx)("p",{className:"text-[9px] md:text-[10px] font-semibold text-slate-400 uppercase tracking-widest",children:"Transaction"})]}),(0,C.jsx)("div",{className:"size-10 md:size-14 rounded-2xl bg-primary/5 flex items-center justify-center text-primary border border-primary/10 group-hover:scale-105 transition-transform duration-500",children:(0,C.jsx)(c,{className:"size-5 md:size-7"})})]}),j?(0,C.jsxs)("div",{className:"space-y-4 md:space-y-6 relative z-10",children:[(0,C.jsxs)("div",{className:"space-y-0.5",children:[(0,C.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,C.jsx)("p",{className:"text-3xl md:text-5xl font-semibold text-primary tracking-tighter leading-none",children:(N=j.amount,0===N?"Free":`Rs. ${N.toLocaleString("en-LK")}`)}),j.amount>0&&(0,C.jsx)("span",{className:"text-[10px] md:text-xs font-semibold text-slate-400 uppercase tracking-tighter",children:"LKR"})]}),(0,C.jsx)("p",{className:"text-[9px] md:text-[10px] font-semibold text-slate-400 uppercase tracking-widest",children:(g=j.submittedAt,new Date(g).toLocaleDateString("en-LK",{month:"long",day:"numeric",year:"numeric"}))})]}),(0,C.jsxs)("div",{className:"flex items-center gap-3",children:[(0,C.jsxs)("div",{className:"px-2.5 py-1 rounded-lg text-[9px] md:text-[10px] font-semibold border flex items-center gap-1.5 "+("activated"===j.status?"bg-emerald-50 text-emerald-600 border-emerald-100":"pending"===j.status?"bg-amber-50 text-amber-600 border-amber-100":"bg-rose-50 text-rose-600 border-rose-100"),children:["activated"===j.status?(0,C.jsx)(b,{className:"size-3"}):(0,C.jsx)(d,{className:"size-3"}),j.status.toUpperCase()]}),j.className&&(0,C.jsxs)("div",{className:"hidden sm:flex items-center gap-1.5 text-slate-400 text-[9px] md:text-[10px] font-semibold uppercase tracking-wider truncate max-w-[120px]",children:[(0,C.jsx)("span",{className:"truncate",children:j.className}),(0,C.jsx)(i,{className:"size-2.5 shrink-0"})]})]})]}):(0,C.jsx)("div",{className:"relative z-10",children:(0,C.jsx)("p",{className:"text-slate-400 text-sm font-medium",children:"No payments yet"})})]}),(0,C.jsxs)("div",{className:"relative overflow-hidden bg-white rounded-3xl border border-gray-200 p-6 md:p-10 flex flex-col justify-between h-[220px] md:h-[260px] group transition-all duration-500 hover:border-primary/40",children:[(0,C.jsx)("div",{className:"absolute right-0 top-0 translate-x-1/4 -translate-y-1/4 pointer-events-none opacity-[0.06]",children:(0,C.jsxs)("div",{className:"relative flex items-center justify-center",children:[(0,C.jsx)("div",{className:"absolute size-40 md:size-56 rounded-full border-[1.5px] border-gray-200"}),(0,C.jsx)("div",{className:"absolute size-64 md:size-[20rem] rounded-full border-[1.5px] border-gray-200"}),(0,C.jsx)("div",{className:"absolute size-80 md:size-[28rem] rounded-full border-[1.5px] border-gray-200"})]})}),(0,C.jsxs)("div",{className:"flex justify-between items-start relative z-10",children:[(0,C.jsxs)("div",{className:"space-y-1",children:[(0,C.jsxs)("div",{className:"flex items-center gap-2",children:[(0,C.jsx)("div",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),(0,C.jsx)("h2",{className:"text-sm md:text-lg font-semibold text-slate-900 tracking-tight",children:"Tracking Number"})]}),(0,C.jsx)("p",{className:"text-[9px] md:text-[10px] font-semibold text-slate-400 uppercase tracking-widest",children:"Latest parcel tracking"})]}),(0,C.jsx)("div",{className:"size-10 md:size-14 rounded-2xl bg-primary/5 flex items-center justify-center text-primary border border-primary/10 group-hover:scale-105 transition-transform duration-500",children:(0,C.jsx)(r,{className:"size-5 md:size-7"})})]}),n?(0,C.jsxs)("div",{className:"space-y-4 relative z-10",children:[(0,C.jsxs)("div",{className:"space-y-2",children:[(0,C.jsxs)("div",{className:"flex items-center gap-3",children:[(0,C.jsx)(v,{className:"h-8 w-44 rounded-xl"}),(0,C.jsx)(v,{className:"size-8 rounded-lg"})]}),(0,C.jsx)(v,{className:"h-2.5 w-32 rounded"})]}),(0,C.jsx)(v,{className:"h-8 w-28 rounded-2xl"})]}):f?.trackingNumber?(0,C.jsxs)("div",{className:"space-y-4 md:space-y-6 relative z-10",children:[(0,C.jsxs)("div",{className:"space-y-1.5",children:[(0,C.jsxs)("div",{className:"flex items-center gap-3",children:[(0,C.jsx)("p",{className:"text-xl md:text-3xl font-semibold text-primary tracking-tight leading-none truncate",children:f.trackingNumber}),(0,C.jsx)("button",{type:"button",onClick:()=>{return e=f.trackingNumber??"",navigator.clipboard.writeText(e),t(!0),void setTimeout(()=>t(!1),2e3);var e},className:"size-7 md:size-9 rounded-lg bg-slate-50 border border-slate-200 flex items-center justify-center text-slate-400 hover:text-primary hover:border-primary/20 active:scale-95 transition-all shadow-sm shrink-0",title:"Copy Tracking Number",children:s?(0,C.jsx)(m,{className:"size-3.5 text-primary"}):(0,C.jsx)(p,{className:"size-3.5"})})]}),(0,C.jsx)("p",{className:"text-[9px] md:text-[10px] font-semibold text-slate-400 uppercase tracking-widest",children:f.courierName?`${f.courierName}
1${f.dispatchedAt?` · ${new Date(f.dispatchedAt).toLocaleDateString("en-LK",{month:"short",day:"numeric",year:"numeric"})}`:""}`:"Parcel ID"})]}),(0,C.jsxs)("button",{type:"button",onClick:()=>h(!0),className:"self-start flex items-center gap-2 px-4 py-2 rounded-2xl bg-primary text-white text-[11px] font-semibold shadow-sm shadow-primary/30 hover:opacity-90 active:scale-[0.97] transition-all",children:[(0,C.jsx)(u,{className:"size-3.5"}),"Live Track"]})]}):(0,C.jsx)("div",{className:"relative z-10",children:(0,C.jsx)("p",{className:"text-slate-400 text-sm font-medium",children:"No parcel dispatched yet"})})]})]}),x&&f&&(0,C.jsx)(S,{tracking:f,onClose:()=>h(!1),onUpdated:e=>{l(s=>s.map(s=>s.id===e.id?e:s))}})]});var g,N}var D={activated:"bg-emerald-50 text-emerald-600 border-emerald-100",pending:"bg-amber-50 text-amber-600 border-amber-100",rejected:"bg-rose-50 text-rose-600 border-rose-100"},T={activated:b,pending:d,rejected:h},P={activated:"Activated",pending:"Pending",rejected:"Rejected"};function $(e){return new Date(e).toLocaleDateString("en-GB",{day:"2-digit",month:"2-digit",year:"numeric"})}function K({payments:e}){const[s,t]=(0,k.useState)(""),a=e.filter(e=>""===s||(e.className??"").toLowerCase().includes(s.toLowerCase())||(e.referenceNumber??"").toLowerCase().includes(s.toLowerCase()));return(0,C.jsxs)("div",{className:"bg-white rounded-3xl border border-gray-200 overflow-hidden",children:[(0,C.jsx)("div",{className:"p-4 md:p-8 border-b border-slate-100 flex flex-col md:flex-row md:items-center justify-between gap-4",children:(0,C.jsxs)("div",{className:"relative group w-full md:w-80",children:[(0,C.jsx)(n,{className:"absolute left-4 top-1/2 -translate-y-1/2 size-4 text-slate-400 group-focus-within:text-primary transition-colors"}),(0,C.jsx)("input",{value:s,onChange:e=>t(e.target.value),placeholder:"Search class payments...",className:"w-full pl-11 pr-6 py-3 rounded-2xl bg-slate-50 border-none focus:ring-4 focus:ring-primary/5 outline-none text-sm font-semibold transition-all"})]})}),0===a.length?(0,C.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 text-slate-400 gap-2",children:[(0,C.jsx)("p",{className:"font-semibold text-sm",children:"No payments found"}),(0,C.jsx)("p",{className:"text-xs",children:"Your payment history will appear here."})]}):(0,C.jsx)("div",{className:"w-full overflow-x-auto",children:(0,C.jsxs)("table",{className:"w-full text-left border-collapse",children:[(0,C.jsx)("thead",{children:(0,C.jsxs)("tr",{className:"bg-slate-50/50",children:[(0,C.jsx)("th",{className:"px-6 md:px-8 py-5 text-[10px] font-semibold uppercase tracking-widest text-slate-400",children:"Class Name"}),(0,C.jsx)("th",{className:"px-6 py-5 text-[10px] font-semibold uppercase tracking-widest text-slate-400 text-center",children:"Price"}),(0,C.jsx)("th",{className:"hidden sm:table-cell px-6 py-5 text-[10px] font-semibold uppercase tracking-widest text-slate-400 text-center",children:"Date"}),(0,C.jsx)("th",{className:"px-6 py-5 text-[10px] font-semibold uppercase tracking-widest text-slate-400 text-right",children:"Status"})]})}),(0,C.jsx)("tbody",{className:"divide-y divide-slate-100",children:a.map(e=>{const s=T[e.status];return(0,C.jsxs)("tr",{className:"group hover:bg-slate-50/50 transition-colors",children:[(0,C.jsx)("td",{className:"px-6 md:px-8 py-6",children:(0,C.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,C.jsx)("span",{className:"text-sm md:text-base font-semibold text-slate-900 group-hover:text-primary transition-colors",children:e.className??"â"}),e.referenceNumber&&(0,C.jsxs)("span",{className:"text-[10px] font-mono text-slate-400",children:["Ref: ",e.referenceNumber]}),(0,C.jsx)("div",{className:"sm:hidden flex items-center gap-2 mt-1 text-[10px] font-semibold text-slate-400",children:(0,C.jsx)("span",{children:$(e.submittedAt)})})]})}),(0,C.jsx)("td",{className:"px-6 py-6 text-center",children:(0,C.jsx)("span",{className:"text-sm md:text-base font-semibold text-slate-700",children:(t=e.amount,0===t?"Free":`Rs. ${t.toLocaleString("en-LK")}`)})}),(0,C.jsx)("td",{className:"hidden sm:table-cell px-6 py-6 text-center",children:(0,C.jsx)("span",{className:"text-sm md:text-base font-semibold text-slate-400",children:$(e.submittedAt)})}),(0,C.jsx)("td",{className:"px-6 py-6 text-right",children:(0,C.jsxs)("div",{className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl text-[10px] md:text-xs font-semibold border ${D[e.status]}`,children:[(0,C.jsx)(s,{className:"size-3.5"}),P[e.status]]})})]},e._id);var t})})]})})]})}function R(){const[e,s]=(0,k.useState)([]),[t,a]=(0,k.useState)(!0),[r,i]=(0,k.useState)(null),l=(0,k.useCallback)(()=>{i(null),a(!0),z.list().then(e=>s(e.payments)).catch(e=>{i(e.message??"Failed to load payments"),g.error("Failed to load payments",{description:"Check your connection and try again."})}).finally(()=>a(!1))},[]);return(0,k.useEffect)(()=>
1{l()},[l]),(0,C.jsxs)("div",{className:"space-y-10 animate-in fade-in duration-150 motion-reduce:animate-none pb-10",children:[(0,C.jsx)("div",{className:"space-y-6",children:(0,C.jsx)(y,{title:"Payment Ledger"})}),t?(0,C.jsx)(N,{}):r?(0,C.jsxs)("div",{className:"flex flex-col items-center justify-center py-24 gap-4 text-center",children:[(0,C.jsx)("div",{className:"size-14 rounded-2xl bg-rose-50 flex items-center justify-center",children:(0,C.jsx)(o,{className:"size-7 text-rose-400"})}),(0,C.jsxs)("div",{children:[(0,C.jsx)("p",{className:"font-semibold text-gray-700",children:"Failed to load payments"}),(0,C.jsx)("p",{className:"text-sm text-gray-400 mt-1",children:r})]}),(0,C.jsxs)("button",{type:"button",onClick:l,className:"flex items-center gap-2 px-5 py-2.5 rounded-2xl bg-primary text-white text-sm font-semibold hover:opacity-90 active:scale-[0.98] transition-all",children:[(0,C.jsx)(j,{className:"size-4"}),"Try Again"]})]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(A,{payments:e}),(0,C.jsx)(K,{payments:e})]})]})}export{R 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.