1import{j as e}from"./vendor-query-HJumQY92.js";import{r as i,f as _e,L as te}from"./vendor-react-CtGcEs0k.js";import{C as Ce}from"./ClientLayout-B0OR7g2e.js";import{u as Se}from"./useClientBookings-B4E845iH.js";import{u as Pe}from"./useBookingRequests-D7dZgg8_.js";import{u as Ie,a5 as Te,a7 as ze,ai as Re,aj as Be,dD as De,d_ as Ae,o as _,e as k,ac as I,B as c,bt as pe,n as R,k as j,b as Ee,bw as re,au as ne,as as Fe,av as Me,aw as ke,ax as Le,by as N,bl as qe,I as $e,bo as He,s as le,ay as ie,az as ce,z as Ue,be as de,aF as Oe,g as Ye,j as Qe,h as Ve,cL as We}from"./index-Cuw8tnyl.js";import{T as Ke,a as Ge,b as L,c as q}from"./tabs-BMC-_ZUv.js";import{T as ue}from"./textarea-YdJNz20Q.js";import{u as Xe,a as Je}from"./useBookingsInquiryStatus-B0HdwI-u.js";import{C as Ze,S as es,a as ss,b as as,c as ts,d as $}from"./select-By6uuDLM.js";import{f as rs}from"./booking-time-DBSKhCTB.js";import{u as me}from"./useHighlightFromUrl-B4BmvxU9.js";import{T as ns}from"./tag-CQxYRhvy.js";import{C as ls}from"./clock-exMkIB7y.js";import{C as is}from"./circle-x-DkOktrwk.js";import"./usePinnedNav-C_KKfSbm.js";import"./pin-MSbXwAlC.js";import"./lightbulb-Coq7xX79.js";import"./AppFooter-CTyLQ_AP.js";import"./vendor-supabase-B7Px3hk-.js";import"./index-SxEMGEwj.js";const cs=({open:o,onOpenChange:u,bookingId:B,bookingRef:h,counterpartyName:D,role:C})=>{const{user:b}=Ie(),{messages:y,isLoading:v,sendMessage:m}=Xe(B,C),[x,g]=i.useState(""),f=i.useRef(null);i.useEffect(()=>{f.current&&(f.current.scrollTop=f.current.scrollHeight)},[y.length]);const n=async()=>{x.trim()&&(await m.mutateAsync(x),g(""))};return e.jsx(Te,{open:o,onOpenChange:u,children:e.jsxs(ze,{side:"right",className:"w-[85vw] sm:max-w-md flex flex-col p-0",children:[e.jsxs(Re,{className:"px-5 pt-5 pb-3 border-b",children:[e.jsxs(Be,{className:"text-lg",children:["Inquiry ",h?`· ${h}`:""]}),e.jsxs(De,{children:["Conversation with ",D||(C==="artist"?"client":"artist")]})]}),e.jsx(Ae,{className:"flex-1 px-5 py-4",children:e.jsxs("div",{ref:f,className:"space-y-3",children:[v&&e.jsx("div",{className:"flex justify-center py-6",children:e.jsx(_,{className:"w-5 h-5 animate-spin text-muted-foreground"})}),!v&&y.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground text-center py-8",children:"No messages yet. Start the conversation below."}),y.map(d=>{const w=d.sender_id===(b==null?void 0:b.id);return e.jsx("div",{className:k("flex",w?"justify-end":"justify-start"),children:e.jsxs("div",{className:k("max-w-[80%] rounded-2xl px-3.5 py-2 text-sm whitespace-pre-wrap break-words",w?"bg-primary text-primary-foreground":"bg-muted text-foreground"),children:[e.jsx("p",{children:d.body}),e.jsx("p",{className:k("text-[10px] mt-1 opacity-70",w?"text-right":"text-left"),children:I(new Date(d.created_at),"HH:mm")})]})},d.id)})]})}),e.jsxs("div",{className:"border-t p-3 flex gap-2 items-end pb-[calc(0.75rem+env(safe-area-inset-bottom))]",children:[e.jsx(ue,{value:x,onChange:d=>g(d.target.value),placeholder:"Type a message...",rows:2,className:"resize-none flex-1 text-sm",onKeyDown:d=>{d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),n())}}),e.jsx(c,{type:"button",size:"icon",onClick:n,disabled:!x.trim()||m.isPending,children:m.isPending?e.jsx(_,{className:"w-4 h-4 animate-spin"}):e.jsx(pe,{className:"w-4 h-4"})})]})]})})},oe={open:{label:"ðµ Open",className:"bg-blue-100 text-blue-800 border-blue-200"},quoted:{label:"ð¬ Quoted",className:"bg-violet-100 text-violet-800 border-violet-200"},accepted:{label:"â Accepted",className:"bg-emerald-100 text-emerald-800 border-emerald-200"},expired:{label:"â° Expired",className:"bg-gray-100 text-gray-600 border-gray-200"},cancelled:{label:"â Cancelled",className:"bg-red-100 text-red-800 border-red-200"}},xe={pending:{label:"â³ Pending",className:"bg-amber-100 text-amber-800 border-amber-200"},accepted:{label:"â Accepted",className:"bg-emerald-100 text-emerald-800 border-emerald-200"},rejected:{label:"â Declined",className:"bg-red-100 text-red-800 border-red-200"},expired:{label:"â° Expired",className:"bg-gray-100 text-gray-600 border-gray-200"},closed_not_selected:{label:"Not selected",className:"bg-gray-100 text-gray-600 border-gray-200"}},zs=()=>{var J;const{upcomingBookings:o,pastBookings:u,isLoading:B}=Se(),{requests:h,isLoading:D,acceptQuote:C,rejectQuote:b,cancelRequest:y,sendInquiry:v}=Pe(),[m,x]=_e(),[g,f]=i.useState(null),[n,d]=i.useState(null),[w,H]=i.useState(""),[he,
1U]=i.useState(null),[O,Y]=i.useState(null),[T,Q]=i.useState(""),[V,ge]=i.useState("special_request"),[p,A]=i.useState(null),z=me("client-booking-",[]),E=me("client-request-",[]),[fe,S]=i.useState(()=>m.get("tab")||"upcoming");i.useEffect(()=>{E&&(U(E),S(s=>s==="past"?"past":"requests"))},[E]),i.useEffect(()=>{z&&((o||[]).some(s=>s.id===z)?S("upcoming"):(u||[]).some(s=>s.id===z)&&S("past"))},[z,o,u]),i.useEffect(()=>{const s=m.get("tab");s&&["upcoming","requests","past"].includes(s)&&S(s)},[m]),i.useEffect(()=>{const s=m.get("payment");s==="success"?(R.success("Payment successful! Your booking is confirmed."),x({},{replace:!0})):s==="cancelled"&&(R.info("Payment was cancelled. You can try again anytime."),x({},{replace:!0}))},[m,x]),i.useEffect(()=>{const s=m.get("openMessages");if(!s)return;const a=[...o||[],...u||[]].find(l=>l.id===s);if(a){A(a);const l=new URLSearchParams(m);l.delete("openMessages"),x(l,{replace:!0})}},[m,o,u,x]);const je=async(s,r)=>{f(s);try{const{data:a,error:l}=await le.functions.invoke("create-booking-payment",{body:{booking_id:s,promo_code:(r==null?void 0:r.trim())||void 0}});if(l){const t=(a==null?void 0:a.error)||l.message;throw new Error(t)}if(a!=null&&a.error)throw new Error(a.error);a!=null&&a.url&&(window.location.href=a.url)}catch(a){R.error("Payment failed",{description:a.message})}finally{f(null)}},Ne=async s=>{f(s);try{const{data:r,error:a}=await le.functions.invoke("create-booking-payment",{body:{booking_id:s,payment_kind:"remainder"}});if(a)throw a;if(r!=null&&r.error)throw new Error(r.error);r!=null&&r.url&&(window.location.href=r.url)}catch(r){R.error("Balance payment failed",{description:r.message})}finally{f(null)}},be=(s,r)=>{T.trim()&&v.mutate({quoteId:s,requestId:r,inquiryType:V,message:T},{onSuccess:()=>{Q(""),Y(null)}})},ye=s=>{const a={approved:{label:"â Confirmed",className:"bg-emerald-100 text-emerald-800 border-emerald-200"},pending:{label:"â³ Pending",className:"bg-amber-100 text-amber-800 border-amber-200"},completed:{label:"â Completed",className:"bg-sky-100 text-sky-800 border-sky-200"},cancelled:{label:"â Cancelled",className:"bg-red-100 text-red-800 border-red-200"},declined:{label:"â Declined",className:"bg-red-100 text-red-800 border-red-200"},change_requested:{label:"â» Change requested",className:"bg-amber-100 text-amber-800 border-amber-200"},no_show:{label:"â No show",className:"bg-zinc-100 text-zinc-700 border-zinc-200"}}[s]||{label:s,className:""};return e.jsx(j,{variant:"secondary",className:a.className,children:a.label})},F=(h==null?void 0:h.filter(s=>["open","quoted"].includes(s.status)))||[],W=(h==null?void 0:h.filter(s=>["accepted","expired","cancelled"].includes(s.status)))||[],K=F.length,ve=[...o||[],...u||[]].map(s=>s.id),we=Je(ve,"client"),G=s=>{var P;const r=s.booking_status==="approved"&&s.artist_charges_enabled===!0,a=s.payment_status==="deposit_only"&&Number(s.remainder_amount||0)>0,l=we[s.id],t=(l==null?void 0:l.status)==="sent";return e.jsx(ie,{id:`client-booking-${s.id}`,className:"mb-3 scroll-mt-24",children:e.jsxs(ce,{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-medium",children:s.service_name}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ne,{className:"h-3.5 w-3.5"}),I(new Date(s.booking_date),"PPP")]}),s.start_time&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(ls,{className:"h-3.5 w-3.5"}),rs(s.start_time)]}),((P=s.artist)==null?void 0:P.full_name)&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Ue,{className:"h-3.5 w-3.5"}),s.artist.full_name]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted-foreground pt-1",children:[e.jsxs("span",{children:[s.number_of_clients||1," ",(s.number_of_clients||1)===1?"client":"clients"]}),s.occasion_type&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"â¢"}),e.jsx("span",{className:"capitalize",children:s.occasion_type})]}),s.service_mode&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"â¢"}),e.jsx("span",{className:"capitalize",children:s.service_mode})]})]}
1),s.total_price&&e.jsxs("p",{className:"text-sm font-medium mt-1",children:["£",Number(s.total_price).toFixed(2)]}),s.notes&&e.jsxs("div",{className:"mt-2 rounded-xl border border-border/60 bg-muted/30 px-3 py-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground mb-0.5",children:"Your notes"}),e.jsxs("p",{className:"text-xs italic text-foreground/80 whitespace-pre-wrap",children:['"',s.notes,'"']})]})]}),e.jsxs("div",{className:"flex flex-col items-end gap-2",children:[ye(s.booking_status||""),s.booking_serial&&e.jsx(j,{variant:"outline",className:"text-[10px] font-mono",children:s.booking_serial}),r&&(s.payment_link_url?e.jsxs(c,{size:"sm",className:"gap-1.5",onClick:()=>window.open(s.payment_link_url,"_blank","noopener,noreferrer"),children:[e.jsx(N,{className:"h-3.5 w-3.5"}),"Pay Now"]}):e.jsxs(c,{size:"sm",className:"gap-1.5",onClick:()=>{H(""),d(s)},disabled:g===s.id,children:[g===s.id?e.jsx(_,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(N,{className:"h-3.5 w-3.5"}),"Pay Now"]})),a&&(s.remainder_payment_link?e.jsxs(c,{size:"sm",className:"gap-1.5",onClick:()=>window.open(s.remainder_payment_link,"_blank","noopener,noreferrer"),children:[e.jsx(N,{className:"h-3.5 w-3.5"}),"Pay Balance"]}):e.jsxs(c,{size:"sm",className:"gap-1.5",onClick:()=>Ne(s.id),disabled:g===s.id,children:[g===s.id?e.jsx(_,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(N,{className:"h-3.5 w-3.5"}),"Pay Balance"]})),e.jsxs(c,{size:"sm",variant:t?"default":"ghost",className:"gap-1.5 h-8",onClick:()=>A(s),children:[e.jsx(de,{className:"h-3.5 w-3.5"}),t?"Reply to artist":l?"Open thread":"Message artist"]})]})]}),t&&e.jsxs("div",{className:"mt-3 rounded-xl border border-amber-100 bg-amber-50/70 px-3 py-2 text-[12px] text-amber-800",children:["Your artist has a question about booking ",s.booking_serial||"",". Reply to continue."]}),r&&s.payment_link_url&&e.jsxs("div",{className:"mt-3 rounded-xl border border-primary/20 bg-primary/5 px-3 py-2 text-[12px] text-foreground/80 flex items-center gap-2",children:[e.jsx(N,{className:"h-3.5 w-3.5 text-primary"}),e.jsxs("span",{children:["Payment requested",s.payment_type==="deposit"&&s.deposit_amount?` â deposit £${Number(s.deposit_amount).toFixed(2)}`:"",s.payment_deadline_at?` · pay by ${I(new Date(s.payment_deadline_at),"PPp")}`:""]})]}),a&&e.jsxs("div",{className:"mt-3 rounded-xl border border-amber-100 bg-amber-50/70 px-3 py-2 text-[12px] text-amber-900 flex items-center gap-2",children:[e.jsx(re,{className:"h-3.5 w-3.5 text-amber-700"}),e.jsxs("span",{children:["Final invoice ready â balance due £",Number(s.remainder_amount||0).toFixed(2)]})]})]})},s.id)},X=s=>{const r=he===s.id,a=oe[s.status]||oe.open,l=s.quotes||[];return e.jsx(ie,{id:`client-request-${s.id}`,className:"mb-3 scroll-mt-24",children:e.jsxs(ce,{className:"p-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx(j,{variant:"outline",className:"text-xs font-mono",children:s.reference_number||"â"}),e.jsx(j,{variant:"secondary",className:a.className,children:a.label})]}),e.jsx("p",{className:"font-medium mt-1 capitalize",children:s.service_type}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[I(new Date(s.preferred_date),"MMM d, yyyy")," · ",s.location_city,s.occasion_type&&` · ${s.occasion_type}`]}),l.length>0&&e.jsxs("p",{className:"text-sm text-muted-foreground mt-1",children:[l.length," quote",l.length!==1?"s":""," received"]})]}),e.jsx(c,{variant:"ghost",size:"icon",onClick:()=>U(r?null:s.id),children:r?e.jsx(Ze,{className:"h-4 w-4"}):e.jsx(Oe,{className:"h-4 w-4"})})]}),r&&e.jsxs("div",{className:"mt-4 space-y-3 border-t pt-4",children:[l.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-4",children:"No quotes received yet. Artists will respond soon."}):l.map(t=>{var Z,ee,se,ae;const P=xe[t.status]||xe.pending;return e.jsxs("div",{className:"p-3 rounded-lg border bg-muted/30 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(Ye,{className:"h-8 w-8",children:[e.jsx(Qe,{src:(Z=t.artist)==null?void 0:Z.avatar_url}),e.jsx(Ve,{children:((se=(ee=t.artist)==null?void 0:ee.full_name)==null?void 0:se[0])||"A"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:((ae=t.artist)==null?void 0:ae.full_name)||"Artist"}),t.reference_number&&e.jsx(j,{variant:"outline",className:"text-xs font-mono",children:t.reference_number})]})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("p",{className:"font-semibold",children:["£",t.proposed_price]}),e.jsx(j,{variant:"secondary",className:P.className,children:P.label})]})]}),t.message&&e.jsx("p",{className:"text-sm text-muted-foreground",children:t.message}),t.proposed_date&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Proposed: ",I(new Date(t.proposed_date),"MMM d, yyyy"),t.proposed_time&&` at ${t.proposed_time}`]}),t.status==="pending"&&e.jsxs("div",{className:"flex gap-2 pt-1",children:[e.jsxs(c,{size:"sm",onClick:()=>C.mutate(t.id),disabled:C.isPending,children:[e.jsx(We,{className:"h-4 w-4 mr-1"})," Accept"]}),e.jsxs(c,{size:"sm",variant:"destructive",onClick:()=>b.mutate(t.id),disabled:b.isPending,children:[e.jsx(is,{className:"h-4 w-4 mr-1"})," Decline"]}),e.jsxs(c,{size:"sm",variant:"outline",onClick:()=>Y(O===t.id?null:t.id),children:[e.jsx(de,{className:"h-4 w-4 mr-1"})," Inquiry"]})]}),O===t.id&&e.jsxs("div",{className:"space-y-2 pt-2 border-t",children:[e.jsxs(es,{value:V,onValueChange:M=>ge(M),children:[e.jsx(ss,{className:"h-9",children:e.jsx(as,{})}),e.jsxs(ts,{children:[e.jsx($,{value:"change_time",children:"Change Time"}),e.jsx($,{value:"change_location",children:"Change Location"}),e.jsx($,{value:"special_request",children:"Special Request"})]})]}),e.jsx(ue,{value:T,onChange:M=>Q(M.target.value),placeholder:"Write your inquiry...",rows:2}),e.jsxs(c,{size:"sm",onClick:()=>be(t.id,s.id),disabled:v.isPending||!T.trim(),children:[v.isPending?e.jsx(_,{className:"h-4 w-4 animate-spin mr-1"}):e.jsx(pe,{className:"h-4 w-4 mr-1"}),"Send"]})]})]},t.id)}),["open","quoted"].includes(s.status)&&e.jsx(c,{variant:"ghost",size:"sm",className:"text-destructive",onClick:()=>y.mutate(s.id),disabled:y.isPending,children:"Cancel Request"})]})]})},s.id)};return e.jsx(Ce,{children:e.jsxs("div",{className:"space-y-5",children:[e.jsx("div",{children:e.jsx("h1",{className:"text-2xl font-serif font-bold",children:"My Appointments"})}),e.jsxs(Ke,{value:fe,onValueChange:S,children:[e.jsxs(Ge,{className:"grid w-full grid-cols-3",children:[e.jsxs(L,{value:"upcoming",className:"flex items-center gap-1.5",children:["Upcoming",o.length>0&&e.jsx(j,{variant:"secondary",className:"ml-1 h-5 min-w-5 px-1.5 text-xs rounded-full",children:o.length})]}),e.jsxs(L,{value:"requests",className:"flex items-center gap-1.5",children:["Requests",K>0&&e.jsx(j,{variant:"destructive",className:"ml-1 h-5 min-w-5 px-1.5 text-xs rounded-full",children:K})]}),e.jsx(L,{value:"past",className:"flex items-center gap-1.5",children:"Past"})]}),e.jsx(q,{value:"upcoming",className:"mt-4",children:B?e.jsx("div",{className:"space-y-3",children:[1,2].map(s=>e.jsx("div",{className:"h-24 bg-muted animate-pulse rounded-lg"},s))}):o.length===0?e.jsxs("div",{className:"rounded-3xl border border-border/40 bg-gradient-to-br from-primary/5 via-card to-accent/5 px-6 py-14 text-center shadow-sm",children:[e.jsx("div",{className:"mx-auto h-16 w-16 rounded-full bg-primary/10 flex items-center justify-center mb-5",children:e.jsx(Ee,{className:"h-8 w-8 text-primary"})}),e.jsx("h3",{className:"font-serif text-xl font-semibold",children:"Ready for your next appointment? â¨"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2 max-w-xs mx-auto",children:"Discover trusted beauty professionals near you."}),e.jsx(c,{className:"mt-6 rounded-full px-6",asChild:!0,children:e.jsx(te,{to:"/beauty-directory",children:"Discover Artists"})})]}):o.map(G)}),e.jsx(q,{value:"requests",className:"mt-4",children:D?e.jsx("div",{className:"space-y-3",children:[1,2].map(s=>e.jsx("div",{className:"h-24 bg-muted animate-pulse rounded-lg"},s))}):F.length===0?e.jsxs("div",{className:"rounded-3xl border border-border/40 bg-card px-6 py-12 text-center shadow-sm",children:[e.jsx(re,{className:"h-10 w-10 mx-auto text-muted-foreground
1/40 mb-3"}),e.jsx("p",{className:"font-medium",children:"No pending requests"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Your booking requests and quotes will appear here."}),e.jsx(c,{variant:"outline",className:"mt-5 rounded-full",asChild:!0,children:e.jsx(te,{to:"/client/request-booking",children:"Request a booking"})})]}):F.map(X)}),e.jsx(q,{value:"past",className:"mt-4 space-y-3",children:u.length===0&&W.length===0?e.jsxs("div",{className:"rounded-3xl border border-border/40 bg-card px-6 py-12 text-center shadow-sm",children:[e.jsx(ne,{className:"h-10 w-10 mx-auto text-muted-foreground/40 mb-3"}),e.jsx("p",{className:"text-muted-foreground",children:"No past appointments yet"})]}):e.jsxs(e.Fragment,{children:[u.map(G),W.map(X)]})})]}),e.jsx(cs,{open:!!p,onOpenChange:s=>!s&&A(null),bookingId:(p==null?void 0:p.id)??null,bookingRef:(p==null?void 0:p.booking_serial)??null,counterpartyName:((J=p==null?void 0:p.artist)==null?void 0:J.full_name)??null,role:"client"}),e.jsx(Fe,{open:!!n,onOpenChange:s=>!s&&d(null),children:e.jsxs(Me,{className:"max-w-sm",children:[e.jsxs(ke,{children:[e.jsxs(Le,{className:"font-serif flex items-center gap-2",children:[e.jsx(N,{className:"h-5 w-5 text-muted-foreground"}),"Pay for your booking"]}),e.jsxs(qe,{children:[n==null?void 0:n.service_name,n!=null&&n.total_price?` â £${Number(n.total_price).toFixed(2)}`:""]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("label",{className:"text-sm font-medium flex items-center gap-1.5",children:[e.jsx(ns,{className:"h-3.5 w-3.5 text-muted-foreground"}),"Promo code ",e.jsx("span",{className:"text-muted-foreground font-normal",children:"(optional)"})]}),e.jsx($e,{placeholder:"e.g. FIRSTGLOW15",value:w,onChange:s=>H(s.target.value.toUpperCase()),className:"uppercase"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Applied as a discount on your Stripe receipt."})]}),e.jsxs(He,{className:"gap-2",children:[e.jsx(c,{variant:"outline",onClick:()=>d(null),children:"Cancel"}),e.jsxs(c,{onClick:()=>{if(!n)return;const s=n.id;d(null),je(s,w)},disabled:g===(n==null?void 0:n.id),children:[g===(n==null?void 0:n.id)?e.jsx(_,{className:"h-4 w-4 animate-spin mr-2"}):e.jsx(N,{className:"h-4 w-4 mr-2"}),"Continue to Pay"]})]})]})})]})})};export{zs 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.