1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="65f63f83-0aa1-d2f0-1398-d43806673b5f")}catch(e){}}(); 2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,153247,e=>{"use strict";var t=e.i(312578),r=e.i(190258),a=e.i(961413),i=e.i(570772),o=e.i(580118),n=e.i(99806),s=e.i(747687),l=e.i(613341),d=e.i(137034),c=e.i(387875),p=e.i(604482),y=e.i(619356),x=e.i(804816),g=e.i(450294),b=e.i(893816),u=e.i(308771),h=e.i(444424),f=e.i(308450);let m=["All","Builds","Bookings","Inventory","Payments","Messages","Quotes","AI","Membership","System"],v=["All","Unread","Read"],j=["Today","This Week","This Month","All Time"],k={All:void 0,Builds:"build",Bookings:"booking",Inventory:"inventory",Payments:"payment",Messages:"message",Quotes:"quote",AI:"ai",Membership:"membership",System:"system"},S={info:"var(--bay-success)",warning:"var(--bay-warning)",success:"var(--bay-success)",error:"var(--bay-danger)"},C={build:i.Wrench,booking:o.Calendar,inventory:n.Package,payment:s.CurrencyDollar,message:l.ChatText,quote:d.FileText,ai:y.Lightbulb,membership:p.Users,system:c.Warning},w=[{key:"build_updates",label:"Build Updates"},{key:"booking_alerts",label:"Booking Alerts"},{key:"inventory_alerts",label:"Inventory Alerts"},{key:"payment_alerts",label:"Payment Alerts"},{key:"message_alerts",label:"Message Alerts"},{key:"quote_alerts",label:"Quote Alerts"},{key:"employee_alerts",label:"Employee Alerts"},{key:"ai_alerts",label:"AI Alerts"},{key:"membership_alerts",label:"Membership Alerts"},{key:"system_alerts",label:"System Alerts"}],T={build_updates:!0,booking_alerts:!0,inventory_alerts:!0,payment_alerts:!0,message_alerts:!0,quote_alerts:!0,employee_alerts:!0,ai_alerts:!0,membership_alerts:!0,system_alerts:!0,sound:!0},A={backgroundColor:"var(--bay-accent)",color:"var(--bay-on-accent)",border:"none",borderRadius:"6px",padding:"8px 16px",fontSize:"13px",fontWeight:600,cursor:"pointer",fontFamily:"inherit"},z={background:"none",border:"none",color:"var(--bay-text-secondary)",cursor:"pointer",padding:"6px",borderRadius:"6px",display:"flex",alignItems:"center",justifyContent:"center"};e.s(["default",0,function(){let{employee:e,organization:i}=(0,h.useAuth)(),o=i?.id,n=(0,r.useRef)(null),[s,l]=(0,r.useState)([]),[d,c]=(0,r.useState)(0),[p,y]=(0,r.useState)(0),[I,M]=(0,r.useState)(!0),[R,W]=(0,r.useState)(!1),[_,D]=(0,r.useState)(0),[B,F]=(0,r.useState)("All"),[L,P]=(0,r.useState)("All"),[O,U]=(0,r.useState)("All Time"),[N,E]=(0,r.useState)(T),[$,J]=(0,r.useState)(!0),[Y,q]=(0,r.useState)(!1),[Q,G]=(0,r.useState)(!1),H=(0,r.useCallback)(async(t=!0)=>{if(!o||!e)return;let r=t?0:_;t?M(!0):W(!0);try{let a=new URLSearchParams({orgId:o,employeeId:e.id,role:e.role??"",limit:String(20),offset:String(r)}),i=k[B];i&&a.set("category",i),"Unread"===L&&a.set("unreadOnly","true"),"Read"===L&&a.set("readOnly","true");let n=await (0,f.apiFetch)(`/api/notifications?${a.toString()}`);if(!n.ok)throw Error("Failed to fetch notifications");let s=await n.json();t?(l(s.notifications),D(20)):(l(e=>[...e,...s.notifications]),D(e=>e+20)),c(s.total),y(s.unread)}catch{}finally{M(!1),W(!1)}},[o,e,B,L,_]),K=(0,r.useCallback)(async()=>{if(e&&o){J(!0);try{let t=await (0,f.apiFetch)(`/api/notifications/preferences?employeeId=${e.id}&orgId=${o}`);if(t.ok){let e=await t.json();E({...T,...e})}}catch{}finally{J(!1)}}},[e,o]);(0,r.useEffect)(()=>{H(!0)},[o,e?.id,B,L]),(0,r.useEffect)(()=>{K()},[K]);let V=async()=>{if(o&&e){G(!0);try{await (0,f.apiFetch)("/api/notifications/read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({orgId:o,employeeId:e.id,role:e.role,all:!0})}),l(e=>e.map(e=>({...e,read:!0}))),y(0)}catch{}finally{G(!1)}}},X=async t=>{if(e)try{await (0,f.apiFetch)("/api/notifications/read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({notificationId:t,employeeId:e.id})}),l(e=>e.map(e=>e.id===t?{...e,read:!0}:e)),y(e=>Math.max(0,e-1))}catch{}},Z=async e=>{try{await (0,f.apiFetch)("/api/notifications/dismiss",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({notificationId:e})}),l(t=>t.filter(t=>t.id!==e)),c(e=>e-1)}catch{}},ee=async t=>{if(!e||!o)return;let r={...N,[t]:!N[t]};E(r),q(!0);try{await (0,f.apiFetch)("/api/notifications/preferences",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({employeeId:e.id,orgId:o,...r})})}catch{E(N)}finally{q(!1)}},et=function(e){let t=new Date;if("Today"===e)return new Date(t.getFullYear(),t.getMonth(),t.getDate());if("This Week"===e){let e=t.getDay(),r=t.getDate()-e;return new Date(t.getFullYear(),t.getMonth(),r)}return"This Month"===e?new Date(t.getFullYear(),t.getMonth(),1):null}(O),er=et?s.filter(e=>new Date(e.created_at)>=et):s,ea=s.length<d;function ei(e,r,a){return(0,t.jsx)("div",{style:{display:"flex",gap:"4px",flexWrap:"wrap"},children:e.map(e=>{let i=r===e;return(0,t.jsx)("button",{onClick:()=>a(e),style:{padding:"6px 12px",borderRadius:"6px",border:"1px solid",borderColor:i?"var(--bay-accent)":"var(--bay-border)",backgroundColor:i?"rgba(4, 106, 255, 0.12)":"transparent",color:i?"var(--bay-success)":"var(--bay-text-secondary)",fontSize:"12px",fontWeight:i?600:400,cursor:"pointer",fontFamily:"inherit",transition:"all 100ms",whiteSpace:"nowrap"},onMouseEnter:e=>{i||(e.currentTarget.style.borderColor="var(--bay-text-muted)",e.currentTarget.style.color="var(--bay-text)")},onMouseLeave:e=>{i||(e.currentTarget.style.borderColor="var(--bay-border)",e.currentTarget.style.color="var(--bay-text-secondary)")},children:e},e)})})}function eo(e,r,a){return(0,t.jsx)("button",{onClick:r,disabled:a,style:{width:"36px",height:"20px",borderRadius:"10px",border:"none",backgroundColor:e?"var(--bay-accent)":"var(--bay-border)",position:"relative",curs
2or:a?"default":"pointer",transition:"background-color 150ms",flexShrink:0,opacity:a?.5:1},children:(0,t.jsx)("div",{style:{width:"16px",height:"16px",borderRadius:"50%",backgroundColor:"#fff",position:"absolute",top:"2px",left:e?"18px":"2px",transition:"left 150ms"}})})}return(0,t.jsxs)("div",{style:{maxWidth:"100%",opacity:I&&0===s.length?.5:1,transition:"opacity 200ms"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"24px",flexWrap:"wrap",gap:"12px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[(0,t.jsx)("h1",{style:{fontSize:"24px",fontWeight:600,color:"var(--bay-text)",margin:0},children:"Notifications"}),p>0&&(0,t.jsx)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:"22px",height:"22px",borderRadius:"11px",backgroundColor:"var(--bay-accent)",color:"var(--bay-on-accent)",fontSize:"11px",fontWeight:700,padding:"0 6px"},children:p>99?"99+":p})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,t.jsxs)("button",{onClick:V,disabled:Q||0===p,style:{...A,opacity:Q||0===p?.5:1,cursor:Q||0===p?"default":"pointer",display:"flex",alignItems:"center",gap:"6px"},children:[(0,t.jsx)(g.Check,{size:14}),Q?"Marking...":"Mark All Read"]}),(0,t.jsx)("button",{onClick:()=>{n.current?.scrollIntoView({behavior:"smooth"})},style:{...z,width:"36px",height:"36px",border:"1px solid var(--bay-border)",borderRadius:"6px"},title:"Notification preferences",children:(0,t.jsx)(b.Gear,{size:18})})]})]}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px",marginBottom:"20px",padding:"16px",backgroundColor:"var(--bay-card)",border:"1px solid var(--bay-border)",borderRadius:"8px"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{fontSize:"11px",fontWeight:500,color:"var(--bay-text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"6px",display:"block"},children:"Category"}),ei(m,B,F)]}),(0,t.jsxs)("div",{style:{display:"flex",gap:"24px",flexWrap:"wrap"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{fontSize:"11px",fontWeight:500,color:"var(--bay-text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"6px",display:"block"},children:"Status"}),ei(v,L,P)]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{fontSize:"11px",fontWeight:500,color:"var(--bay-text-muted)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"6px",display:"block"},children:"Date Range"}),ei(j,O,U)]})]})]}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr",gap:"24px",alignItems:"start"},children:[(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:I&&0===s.length?Array.from({length:5}).map((e,r)=>(0,t.jsx)("div",{style:{height:"96px",backgroundColor:"var(--bay-card)",border:"1px solid var(--bay-border)",borderRadius:"8px",borderLeft:"4px solid var(--bay-border)",animation:"pulse 1.5s ease-in-out infinite"}},r)):0===er.length?(0,t.jsxs)("div",{style:{padding:"64px 24px",textAlign:"center",backgroundColor:"var(--bay-card)",border:"1px solid var(--bay-border)",borderRadius:"8px"},children:[(0,t.jsx)(a.Bell,{size:40,style:{color:"var(--bay-text-muted)",marginBottom:"12px"}}),(0,t.jsx)("p",{style:{fontSize:"15px",fontWeight:500,color:"var(--bay-text-secondary)",margin:"0 0 4px"},children:"No notifications"}),(0,t.jsx)("p",{style:{fontSize:"13px",color:"var(--bay-text-muted)",margin:0},children:"Unread"===L?"You're all caught up.":"Nothing to show for the selected filters."})]}):(0,t.jsxs)(t.Fragment,{children:[er.map(function(e){let r=S[e.severity]??S.info,i=C[e.category]??a.Bell;return(0,t.jsxs)("div",{style:{display:"flex",gap:"14px",padding:"16px",backgroundColor:e.read?"var(--bay-card)":"var(--bay-surface)",border:"1px solid var(--bay-border)",borderRadius:"8px",borderLeft:`4px solid ${r}`,transition:"background-color 150ms"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="var(--bay-hover)"},onMouseLeave:t=>{t.currentTarget.style.backgroundColor=e.read?"var(--bay-card)":"var(--bay-surface)"},children:[(0,t.jsx)("div",{style:{width:"36px",height:"36px",borderRadius:"8px",backgroundColor:`color-mix(in srgb, ${r} 9%, transparent)`,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,t.jsx)(i,{size:18,color:r})}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"8px",marginBottom:"4px"},children:[(0,t.jsxs)("h3",{style:{fontSize:"14px",fontWeight:600,color:"var(--bay-text)",margin:0,lineHeight:1.4},children:[!e.read&&(0,t.jsx)("span",{style:{display:"inline-block",width:"7px",height:"7px",borderRadius:"50%",backgroundColor:"var(--bay-accent)",marginRight:"8px",verticalAlign:"middle"}}),e.title]}),(0,t.jsx)("span",{style:{fontSize:"11px",color:"var(--bay-text-muted)",whiteSpace:"nowrap",flexShrink:0,marginTop:"2px"},children:function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"Just now";if(t<60)return`${t}m ago`;let r=Math.floor(t/60);if(r<24)return`${r}h ago`;let a=Math.floor(r/24);return 1===a?"Yesterday":a<7?`${a}d ago`:new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}(e.created_at)})]}),(0,t.jsx)("p",{style:{fontSize:"13px",color:"var(--bay-text-secondary)",margin:"0 0 10px",lineHeight:1.5},children:e.body}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.action_url&&(0,t.jsx)("a",{href:e.action_url,style:{fontSize:"12px",fontWeight:600,color:"var(--bay-success)",textDecoration:"none",padding:"4px 10px",borderRadius:"4px",border:"1px solid rgba(4, 106, 255, 0.3)",backgroundColor:"rgba(4, 106, 255, 0.08)",transition:"background-color 100ms"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="rgba(4, 106, 255, 0.16)"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="rgba(4, 106, 255, 0.08)"},children:"View Details"}),!e.read&&(0,t.jsxs)("button",{onClick:()=>X(e.id),style:{...z,fontSize:"12px",color:"var(--bay-text-muted)",display:"flex",alignItems:"center",gap:"4px",padding:"4px 8px"},title:"Mark as read",children:[(0,t.jsx)(g.Check,{size:14}),(0,t.jsx)("span",{children:"Read"})]}),(0,t.jsx)("button",{onClick:()=>Z(e.id),style:{...z,marginLeft:"auto",padding:"4px"},title:"Dismiss",children:(0,t.jsx)(x.X,{size:16})})]})]})]},e.id)}),ea&&(0,t.jsx)("div",{style:{textAlign:"center",padding:"12px 0"},children:(0,t.jsxs)("button",{onClick:()=>{H(!1)},disabled:R,style:{padding:"10px 24px",backgroundColor:"transparent",border:"1px solid var(--bay-border)",borderRadius:"6px",color:"var(--bay-text-secondary)",fontSize:"13px",fontWeight:500,cursor:R?"default":"pointer",fontFamily:"inherit",display:"inline-flex",alignItems:"center",gap:"6px",opacity:R?.6:1,transition:"all 100ms"},onMouseEnter:e=>{R||(e.currentTarget.style.borderColor="var(--bay-text-muted)",e.currentTarget.style.color="var(--bay-text)")},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--bay-border)",e.currentTarget.style.color="var(--bay-text-secondary)"},children:[(0,t.jsx)(u.CaretDown,{size:14}),R?"Loading...":"Load More"]})}),(0,t.jsxs)("p",{style:{fontSize:"12px",color:"var(--bay-text-muted)",textAlign:"center",margin:"4px 0 0"},children:["Showing ",er.length," of ",d," notification",1!==d?"s":""]})]})}),(0,t.jsxs)("div",{ref:n,style:{padding:"20px",backgroundColor:"var(--bay-card)",border:"1px solid var(--bay-border)",borderRadius:"8px",position:"sticky",top:"80px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"20px"},children:[(0,t.jsx)(b.Gear,{size:16,color:"var(--bay-text-secondary)"}),(0,t.jsx)("h2",{style:{fontSize:"15px",fontWeight:600,color:"var(--bay-text)",margin:0},children:"Notification Preferences"})]}),$?(0,t.jsx)("div",{style:{padding:"24px 0",textAlign:"center",fontSize:"13px",color:"var(--bay-text-muted)"},children:"Loading preferences..."}):(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0"},children:[w.map(({key:e,label:r})=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 0",borderBottom:"1px solid var(--bay-border-subtle, var(--bay-border))"},children:[(0,t.jsx)("span",{style:{fontSize:"13px",color:"var(--bay-text)",fontWeight:400},children:r}),eo(N[e],()=>ee(e),Y)]},e)),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 0",marginTop:"8px",borderTop:"1px solid var(--bay-border)"},children:[(0,t.jsx)("span",{style:{fontSize:"13px",color:"var(--bay-text)",fontWeight:500},children:"Sound"}),eo(N.sound,()=>ee("sound"),Y)]}),Y&&(0,t.jsx)("p",{style:{fontSize:"11px",color:"var(--bay-success)",margin:"8px 0 0",textAlign:"center"},children:"Saving..."})]})]})]}),(0,t.jsx)("style",{children:` 3 @keyframes pulse { 4 0%, 100% { opacity: 1; } 5 50% { opacity: 0.5; } 6 } 7 @media (max-width: 900px) { 8 /* Stack layout on smaller screens */ 9 } 10 `})]})}])}]); 11 12//# debugId=65f63f83-0aa1-d2f0-1398-d43806673b5f
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.