PageSourceSearch

https://stocksnap-mobile-veh-eie0.bolt.host/assets/PrepJobDetail-D5V6GPrx.js

js stocksnap-mobile-veh-eie0.bolt.host collected 2026-10-03 03:10:53 UTC 20,499 bytes, 20 lines download raw bytes

1import{c as I,j as e,r as m,t as j,s as w,X as J,C as O,m as B,a as E,u as U,e as V}from"./index-CBU1gvjz.js";import{f as F,d as D,W as A,D as C,g as z,H as W}from"./DashboardLayout-CEk5UOw6.js";import{c as R,e as G,d as X,M as K,g as L,P as Q,J as Y,W as Z,a as M,f as P}from"./timeUtils-CPqjECGD.js";import{f as S}from"./format-By3ZcJR3.js";import{M as q}from"./users-DUibIWtz.js";import{C as T}from"./car-Cr_g8hvT.js";import{T as ee}from"./trash-2-P5ywTYeB.js";import"./chevron-down-D9NaxQnF.js";import"./differenceInCalendarDays-Bn9S06uV.js";/**
2 * @license lucide-react v0.344.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const se=I("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
7 * @license lucide-react v0.344.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const $=I("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]),te={awaiting:"Awaiting",mechanical:"Mechanical",parts:"Parts",paint:"Paint",valet:"Valet",pdi_check:"PDI Check",accessories:"Accessories",complete:"Complete"};function ae({history:c,currentStage:u}){const l=[...c].sort((s,d)=>new Date(d.requested_at).getTime()-new Date(s.requested_at).getTime()),t=s=>s?S(new Date(s),"MMM d, HH:mm"):null,i=s=>{var d;return s?`${s.first_name} ${((d=s.last_name)==null?void 0:d[0])||""}.`:null};return e.jsxs("div",{className:"space-y-0",children:[l.map((s,d)=>{const r=!!s.completed_at,o=s.stage===u&&!r,a=d===0;return e.jsxs("div",{className:"relative flex gap-4",children:[!a&&e.jsx("div",{className:"absolute left-[11px] -top-4 w-0.5 h-4 bg-surface-200 dark:bg-surface-700"}),e.jsx("div",{className:"flex-shrink-0 mt-1",children:r?e.jsx("div",{className:"w-6 h-6 rounded-full bg-green-500 flex items-center justify-center",children:e.jsx(F,{className:"w-4 h-4 text-white"})}):o?e.jsx("div",{className:"w-6 h-6 rounded-full bg-blue-500 flex items-center justify-center",children:e.jsx(D,{className:"w-4 h-4 text-white"})}):e.jsx("div",{className:"w-6 h-6 rounded-full border-2 border-surface-300 dark:border-surface-600 flex items-center justify-center",children:e.jsx(se,{className:"w-3 h-3 text-surface-300 dark:text-surface-600"})})}),e.jsxs("div",{className:"flex-1 pb-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{children:[e.jsx("h4",{className:`font-medium ${r?"text-surface-900 dark:text-white":o?"text-blue-600 dark:text-blue-400":"text-surface-400 dark:text-surface-500"}`,children:te[s.stage]}),s.location&&e.jsxs("p",{className:"text-xs text-surface-500 dark:text-surface-400",children:[s.location.name,s.sublocation&&` / ${s.sublocation.name}`]})]}),e.jsx("div",{className:"text-right text-xs text-surface-500 dark:text-surface-400",children:r?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:t(s.completed_at)}),s.completed_by_user&&e.jsx("p",{children:i(s.completed_by_user)}),s.started_at&&s.completed_at&&e.jsxs("p",{className:"flex items-center justify-end gap-1 mt-1 text-green-600 dark:text-green-400",children:[e.jsx($,{className:"w-3 h-3"}),R(s.started_at,s.completed_at)]})]}):o?e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Started ",t(s.started_at||s.requested_at)]}),s.started_by_user&&e.jsx("p",{children:i(s.started_by_user)}),(s.started_at||s.requested_at)&&e.jsxs("p",{className:"flex items-center justify-end gap-1 mt-1 text-blue-600 dark:text-blue-400",children:[e.jsx($,{className:"w-3 h-3"}),G(s.started_at||s.requested_at)," so far"]})]}):e.jsx("p",{children:"Pending"})})]}),s.notes&&e.jsx("p",{className:"mt-1 text-sm text-surface-600 dark:text-surface-400 bg-surface-50 dark:bg-surface-800 rounded p-2",children:s.notes})]})]},s.id)}),l.length===0&&e.jsx("p",{className:"text-sm text-surface-500 dark:text-surface-400 text-center py-4",children:"No history yet"})]})}const re={awaiting:"Awaiting",mechanical:"Mechanical",parts:"Parts",paint:"Paint",valet:"Valet",pdi_check:"PDI Check",accessories:"Accessories",complete:"Complete"},ce={awaiting:"⏳",mechanical:"⚙️",parts:"🔩",paint:"🎨",pdi_check:"✅",accessories:"🏷️",valet:"✨",complete:"🏁"},H={used_car:["mechanical","paint","valet"],new_car_pdi:["pdi_check","accessories","valet"]};function le({job:c,onUpdate:u,userId:l}){const[t,i]=m.useState(null),[s,d]=m.useState(!1),[r,o]=m.useState(c.notes||""),a=c.completed_stages||[],k=H[c.workflow]||H.used_car,_=async(n,h)=>{if(!(t||c.is_complete)){i(n);try{let b=[...a];h?b=b.filter(p=>p!==n):b.push(n);const f=k.every(p=>b.includes(p)),x={completed_stages:b,current_stage:n,updated_at:new Date().toISOString()};f&&!c.is_complete?(x.is_complete=!0,x.current_stage="complete",x.completed_at=new Date().toISOString(),x.completed_by=l,j.success("All stages complete!")):!f&&c.is_complete&&(x.is_complete=!1,x.current_stage=n,x.completed_at=null,x.completed_by=null),h||await w.from("prep_stage_history").insert({prep_job_id:c.id,stage:n,location_id:c.current_location_id||null,sublocation_id:c.current_sublocation_id||null,requested_at:new Date().toISOString(),requested_by:l,started_at:new Date().toISOString(),started_by:l,completed_at:new Date().toISOString(),completed_by:l});const{error:N}
11=await w.from("prep_jobs").update(x).eq("id",c.id);if(N)throw N;u()}catch{j.error("Failed to update stage")}finally{i(null)}}},y=async()=>{d(!0);try{const{error:n}=await w.from("prep_jobs").update({notes:r||null}).eq("id",c.id);if(n)throw n;j.success("Notes saved"),u()}catch{j.error("Failed to save notes")}finally{d(!1)}};return e.jsxs("div",{className:"card overflow-hidden",children:[e.jsx("div",{className:"bg-surface-50 dark:bg-surface-800/50 p-4 border-b border-surface-200 dark:border-surface-700",children:e.jsx("h3",{className:"font-bold text-surface-900 dark:text-white uppercase tracking-wider text-sm",children:"Prep Checklist"})}),e.jsx("div",{className:"p-4 space-y-2",children:k.map(n=>{var N;const h=a.includes(n),b=t===n,f=((N=c.stage_history)==null?void 0:N.filter(p=>p.stage===n&&p.completed_at))||[];let x="";if(f.length>0){const p=f[f.length-1];if(p.started_at&&p.completed_at){const g=X(new Date(p.completed_at),new Date(p.started_at));g>0?x=`${g}h`:x="< 1h"}}return e.jsxs("div",{className:`flex items-center justify-between p-3 rounded-xl border transition-all ${h?"bg-green-50/50 dark:bg-green-900/10 border-green-200 dark:border-green-800/50":"bg-white dark:bg-surface-900 border-surface-200 dark:border-surface-700 hover:border-brand-300 dark:hover:border-brand-700"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 cursor-pointer",onClick:()=>_(n,h),children:[e.jsx("div",{className:`flex items-center justify-center w-6 h-6 rounded-md transition-colors flex-shrink-0 ${h?"bg-green-500 text-white":"bg-surface-100 dark:bg-surface-800 border-2 border-surface-300 dark:border-surface-600 text-transparent"}`,children:b?e.jsx("span",{className:"w-3.5 h-3.5 border-2 border-current border-r-transparent rounded-full animate-spin text-brand-500"}):e.jsx(F,{className:`w-4 h-4 ${h?"text-white":""}`})}),e.jsx("div",{children:e.jsxs("h4",{className:`font-semibold text-sm ${h?"text-surface-900 dark:text-white line-through opacity-70":"text-surface-900 dark:text-white"}`,children:[e.jsx("span",{className:"mr-2 opacity-80",children:ce[n]}),re[n]]})})]}),h&&x&&e.jsx("span",{className:"text-xs font-semibold text-surface-400 dark:text-surface-500 bg-surface-100 dark:bg-surface-800 px-2 py-1 rounded-md",children:x})]},n)})}),e.jsxs("div",{className:"border-t border-surface-200 dark:border-surface-700 p-4 bg-surface-50/50 dark:bg-surface-800/30",children:[e.jsxs("h4",{className:"flex items-center gap-2 font-semibold text-sm text-surface-700 dark:text-surface-300 mb-3",children:[e.jsx(K,{className:"w-4 h-4 text-surface-400"}),"General Notes"]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("textarea",{value:r,onChange:n=>o(n.target.value),placeholder:"Add notes about work completed, parts needed, or hold reasons...",rows:2,className:"w-full px-3 py-2 bg-white dark:bg-surface-900 border border-surface-300 dark:border-surface-600 rounded-lg focus:ring-2 focus:ring-brand-500 focus:border-transparent outline-none resize-none text-sm"}),r!==(c.notes||"")&&e.jsx("button",{onClick:y,disabled:s,className:"self-end px-4 py-1.5 bg-brand-500 text-white text-xs font-bold uppercase tracking-wider rounded-lg hover:bg-brand-600 transition-colors disabled:opacity-50",children:s?"Saving...":"Save Notes"})]})]})]})}function ne({registration:c,onClose:u}){const[l,t]=m.useState([]),[i,s]=m.useState([]),[d,r]=m.useState(!0);m.useEffect(()=>{const a=c.toUpperCase();r(!0),Promise.all([w.from("vehicle_records").select("id, registration, timestamp, make, colour, location:locations(name), sublocation:sublocations(name), created_by_user:users!created_by(first_name, last_name)").eq("registration",a).eq("is_deleted",!1).order("timestamp",{ascending:!1}).limit(50),w.from("prep_jobs").select("id, registration, created_at, completed_at, current_stage, is_complete, workflow, current_location:locations(name)").eq("registration",a).order("created_at",{ascending:!1}).limit(20)]).then(([k,_])=>{t(k.data||[]),s(_.data||[]),r(!1)})},[c]);const o=l.length+i.length;return e.jsx("div",{className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/60 backdrop-blur-sm",children:e.jsxs("div",{className:"bg-white dark:bg-surface-900 rounded-2xl shadow-2xl w-full max-w-lg max-h-[85vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-5 border-b border-surface-200 dark:border-surface-700 flex-shrink-0",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-bold text-surface-900 dark:text-white uppercase tracking-wide",children:c}),e.jsxs("p",{className:"text-sm text-surface-500 dark:text-surface-400 mt-0.5",children:[o," event",o!==1?"s":""," in history"]})]}),e.jsx("button",{onClick:u,className:"p-2 text-surface-400 hover:text-surface-600 dar
11k:hover:text-surface-300 rounded-lg hover:bg-surface-100 dark:hover:bg-surface-800 transition-colors",children:e.jsx(J,{className:"w-5 h-5"})})]}),e.jsx("div",{className:"overflow-y-auto flex-1 p-5 space-y-6",children:d?e.jsxs("div",{className:"text-center py-8",children:[e.jsx("div",{className:"inline-block h-6 w-6 animate-spin rounded-full border-4 border-brand-500 border-r-transparent"}),e.jsx("p",{className:"mt-3 text-sm text-surface-500",children:"Loading history…"})]}):o===0?e.jsx("div",{className:"text-center py-8 text-surface-500 dark:text-surface-400",children:"No history found for this vehicle."}):e.jsxs(e.Fragment,{children:[i.length>0&&e.jsxs("section",{children:[e.jsxs("h3",{className:"text-xs font-semibold uppercase tracking-wider text-surface-400 dark:text-surface-500 mb-3 flex items-center gap-2",children:[e.jsx(A,{className:"w-3.5 h-3.5"}),"Prep Jobs (",i.length,")"]}),e.jsx("div",{className:"space-y-2",children:i.map(a=>e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-xl bg-surface-50 dark:bg-surface-800",children:[e.jsx("div",{className:`w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 ${a.is_complete?"bg-green-100 dark:bg-green-900/30":"bg-blue-100 dark:bg-blue-900/30"}`,children:a.is_complete?e.jsx(O,{className:"w-4 h-4 text-green-600 dark:text-green-400"}):e.jsx(A,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-surface-900 dark:text-white",children:a.workflow==="new_car_pdi"?"New Car PDI":"Used Car Prep"}),e.jsx(L,{stage:a.current_stage,size:"sm"})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-xs text-surface-500 dark:text-surface-400",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(D,{className:"w-3 h-3"}),S(new Date(a.created_at),"dd MMM yyyy")]}),a.completed_at&&e.jsxs("span",{children:["→ ",S(new Date(a.completed_at),"dd MMM yyyy")]}),a.current_location&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(q,{className:"w-3 h-3"}),a.current_location.name]})]})]})]},a.id))})]}),l.length>0&&e.jsxs("section",{children:[e.jsxs("h3",{className:"text-xs font-semibold uppercase tracking-wider text-surface-400 dark:text-surface-500 mb-3 flex items-center gap-2",children:[e.jsx(T,{className:"w-3.5 h-3.5"}),"Stock Checks (",l.length,")"]}),e.jsx("div",{className:"space-y-2",children:l.map(a=>e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-xl bg-surface-50 dark:bg-surface-800",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-purple-100 dark:bg-purple-900/30 flex items-center justify-center flex-shrink-0",children:e.jsx(T,{className:"w-4 h-4 text-purple-600 dark:text-purple-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-sm font-medium text-surface-900 dark:text-white",children:["Stock Check",a.make&&e.jsxs("span",{className:"text-surface-500 font-normal ml-1",children:["— ",a.make,a.colour&&` ${a.colour}`]})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-xs text-surface-500 dark:text-surface-400 flex-wrap",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(D,{className:"w-3 h-3"}),S(new Date(a.timestamp),"dd MMM yyyy HH:mm")]}),a.location&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(q,{className:"w-3 h-3"}),a.location.name,a.sublocation&&` / ${a.sublocation.name}`]}),a.created_by_user&&e.jsxs("span",{children:["by ",a.created_by_user.first_name," ",a.created_by_user.last_name]})]})]})]},a.id))})]})]})})]})})}function be(){const{id:c}=B(),u=E(),{user:l}=U(),[t,i]=m.useState(null),[s,d]=m.useState(!0),r=(l==null?void 0:l.role)==="admin",o=(l==null?void 0:l.role)==="checker",a=!o&&l!==null,[k,_]=m.useState(!1),[y,n]=m.useState(!1),[h,b]=m.useState(!1),f=m.useCallback(async()=>{if(c)try{d(!0);const{data:g,error:v}=await w.from("prep_jobs").select(`
12          *,
13          locations ( id, name ),
14          sublocations ( id, name ),
15          prep_stage_history (
16            *,
17            locations ( id, name ),
18            sublocations ( id, name )
19          )
20        `).eq("id",c).single();if(v)throw v;i(g)}catch{j.error("Failed to load prep job"),u("/prep")}finally{d(!1)}},[c,u]);m.useEffect(()=>{f()},[f]),m.useEffect(()=>{f()},[f]);const x=async()=>{if(!(!t||!r)&&confirm("Are you sure you want to delete this prep job?"))try{const{error:g}=await w.from("prep_jobs").delete().eq("id",t.id);if(g)throw g;j.success("Prep job deleted"),u("/prep")}catch{j.error("Failed to delete prep job")}},N=async g=>{if(!(!t||!l||!a||h||g===t.job_status)){b(!0);try{const{error:v}=await w.from("prep_jobs").update({job_status:g}).eq("id",t.id);if(v)throw v;j.success("Status updated"),f()}catch{j.error("Failed to update status")}finally{b(!1),n(!1)}}};if(s)return e.jsx(C,{children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs("div",{className:"card p-12 text-center",children:[e.jsx("div",{className:"inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-brand-500 border-r-transparent"}),e.jsx("p",{className:"mt-4 text-surface-600 dark:text-surface-400",children:"Loading prep job..."})]})})});if(!t)return e.jsx(C,{children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx("div",{className:"card p-8 text-center text-surface-500",children:"Prep job not found"})})});const p=z(new Date(t.created_at),{addSuffix:!1});return e.jsxs(C,{children:[e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs("button",{onClick:()=>u("/prep"),className:"flex items-center gap-2 text-surface-500 hover:text-surface-700 dark:hover:text-surface-300 mb-4",children:[e.jsx(V,{className:"w-5 h-5"}),"Back to Prep Manager"]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx("h1",{className:"text-3xl font-bold text-surface-900 dark:text-white uppercase",children:t.registration}),e.jsx(Q,{priority:t.priority,size:"md"})]}),e.jsxs("p",{className:"text-surface-600 dark:text-surface-400",children:[[t.make,t.model].filter(Boolean).join(" ")||"Unknown",t.colour&&` • ${t.colour}`]}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-surface-500 dark:text-surface-400",children:[t.current_location&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(q,{className:"w-4 h-4"}),t.current_location.name,t.current_sublocation&&` / ${t.current_sublocation.name}`]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(D,{className:"w-4 h-4"}),p," in prep"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Y,{status:t.job_status,canManage:a&&!t.is_complete,updating:h,showMenu:y,onToggleMenu:()=>n(!y),onSelectStatus:N}),e.jsx(Z,{workflow:t.workflow,size:"md"}),e.jsx(L,{stage:t.current_stage}),e.jsx("button",{onClick:()=>_(!0),className:"p-2 text-surface-500 hover:bg-surface-100 dark:hover:bg-surface-800 rounded-lg transition-colors",title:"View vehicle history",children:e.jsx(W,{className:"w-5 h-5"})}),r&&e.jsx("button",{onClick:x,className:"p-2 text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 rounded-lg transition-colors",title:"Delete prep job",children:e.jsx(ee,{className:"w-5 h-5"})})]})]})]}),o&&e.jsxs("div",{className:"mb-4 rounded-xl border border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-900/20 px-4 py-3 text-sm text-amber-800 dark:text-amber-300 flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold",children:"View-Only"}),e.jsx("span",{children:"Auditors can view prep job details but cannot make changes."})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[l&&!o&&e.jsx(le,{job:t,onUpdate:f,userId:l.id}),o&&e.jsx("div",{className:"card p-8 text-center text-surface-500",children:"Read only mode active. Checklist hidden."})]}),e.jsxs("div",{className:"lg:col-span-1 space-y-4",children:[e.jsx(ie,{history:t.stage_history||[],createdAt:t.created_at}),e.jsxs("div",{className:"card p-4",children:[e.jsx("h3",{className:"font-semibold text-surface-900 dark:text-white mb-4",children:"Timeline"}),e.jsx(ae,{history:t.stage_history||[],currentStage:t.current_stage})]})]})]})]}),k&&e.jsx(ne,{registration:t.registration,onClose:()=>_(!1)})]})}function ie({history:c,createdAt:u}){const l=M(new Date,new Date(u)),t=c.filter(r=>r.started_at&&r.completed_at).map(r=>({stage:r.stage,duration:M(new Date(r.completed_at),new Date(r.started_at))})),i=c.find(r=>r.started_at&&!r.completed_at),s=i?M(new Date,new Date(i.started_at)):0,d={awaiting:"Awaiting",mechanical:"Mechanical",parts:"Parts",paint:"Paint",valet:"Valet",pdi_check:"PDI Check",accessories:"Accessories",complete:"Complete"};return e.jsxs("div",{className:"card p-4",children:[e.jsxs("h3",{className:"font-semibold text-surface-900 dark:text-white mb-3 flex items-center gap-2",children:[e.jsx($,{className:"w-5 h-5 text-blue-500"}),"Duration"]}),e.jsxs("div",{className:"mb-4 pb-3 border-b border-surface-200 dark:border-surface-700",children:[e.jsx("p",{className:"text-2xl font-bold text-surface-900 dark:text-white",children:P(l)}),e.jsx("p",{className:"text-sm text-surface-500 dark:text-surface-400",children:"Total time in prep"})]}),e.jsxs("div",{className:"space-y-2",children:[t.map((r,o)=>e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-surface-600 dar
20k:text-surface-400",children:d[r.stage]}),e.jsx("span",{className:"font-medium text-surface-900 dark:text-white",children:P(r.duration)})]},o)),i&&e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsxs("span",{className:"text-blue-600 dark:text-blue-400 flex items-center gap-1",children:[d[i.stage],e.jsx("span",{className:"text-xs",children:"(current)"})]}),e.jsx("span",{className:"font-medium text-blue-600 dark:text-blue-400",children:P(s)})]}),t.length===0&&!i&&e.jsx("p",{className:"text-sm text-surface-400 dark:text-surface-500 text-center py-2",children:"No stage history yet"})]})]})}export{be as PrepJobDetail};

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.