jinn-cli 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/engines/claude.d.ts.map +1 -1
- package/dist/src/engines/claude.js +9 -0
- package/dist/src/engines/claude.js.map +1 -1
- package/dist/src/gateway/__tests__/api-last-n.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/api-last-n.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/api-last-n.test.js +32 -0
- package/dist/src/gateway/__tests__/api-last-n.test.js.map +1 -0
- package/dist/src/gateway/api.d.ts.map +1 -1
- package/dist/src/gateway/api.js +30 -0
- package/dist/src/gateway/api.js.map +1 -1
- package/dist/src/gateway/lifecycle.d.ts.map +1 -1
- package/dist/src/gateway/lifecycle.js +1 -0
- package/dist/src/gateway/lifecycle.js.map +1 -1
- package/dist/src/sessions/__tests__/callbacks.test.d.ts +2 -0
- package/dist/src/sessions/__tests__/callbacks.test.d.ts.map +1 -0
- package/dist/src/sessions/__tests__/callbacks.test.js +118 -0
- package/dist/src/sessions/__tests__/callbacks.test.js.map +1 -0
- package/dist/src/sessions/callbacks.d.ts +1 -1
- package/dist/src/sessions/callbacks.js +4 -4
- package/dist/src/sessions/callbacks.js.map +1 -1
- package/dist/src/sessions/manager.d.ts.map +1 -1
- package/dist/src/sessions/manager.js +21 -3
- package/dist/src/sessions/manager.js.map +1 -1
- package/dist/src/shared/__tests__/rateLimit.test.d.ts +2 -0
- package/dist/src/shared/__tests__/rateLimit.test.d.ts.map +1 -0
- package/dist/src/shared/__tests__/rateLimit.test.js +108 -0
- package/dist/src/shared/__tests__/rateLimit.test.js.map +1 -0
- package/dist/src/shared/__tests__/usageAwareness.test.d.ts +2 -0
- package/dist/src/shared/__tests__/usageAwareness.test.d.ts.map +1 -0
- package/dist/src/shared/__tests__/usageAwareness.test.js +58 -0
- package/dist/src/shared/__tests__/usageAwareness.test.js.map +1 -0
- package/dist/src/shared/rateLimit.d.ts +7 -0
- package/dist/src/shared/rateLimit.d.ts.map +1 -1
- package/dist/src/shared/rateLimit.js +31 -0
- package/dist/src/shared/rateLimit.js.map +1 -1
- package/dist/src/shared/usageAwareness.d.ts.map +1 -1
- package/dist/src/shared/usageAwareness.js +7 -0
- package/dist/src/shared/usageAwareness.js.map +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/_next/static/chunks/{155-592ad81a5c00a38a.js → 155-277bf3022d16e74f.js} +1 -1
- package/dist/web/_next/static/chunks/{192-bd69b67fd03b9f3d.js → 192-3064c98adfeef88c.js} +1 -1
- package/dist/web/_next/static/chunks/{51-ea7256657692ba90.js → 51-43ce350b707e6b06.js} +1 -1
- package/dist/web/_next/static/chunks/app/_not-found/page-1a2952195ec2c3fa.js +1 -0
- package/dist/web/_next/static/chunks/app/chat/{page-83a714baeb382ffb.js → page-d9b12d7effe66c59.js} +1 -1
- package/dist/web/_next/static/chunks/app/cron/page-03f6c20a2336f185.js +1 -0
- package/dist/web/_next/static/chunks/app/kanban/{page-0e1b2a66378b8a6b.js → page-0aa74ece5109e58f.js} +1 -1
- package/dist/web/_next/static/chunks/app/{layout-ab9ba2b24a88513d.js → layout-45d8b9cc84f9443f.js} +1 -1
- package/dist/web/_next/static/chunks/app/logs/{page-b2ea0e6b92c54706.js → page-0f2b58794d9a97ce.js} +1 -1
- package/dist/web/_next/static/chunks/app/org/{page-05c8d33b3bf07d3d.js → page-e51ef93389a23de8.js} +1 -1
- package/dist/web/_next/static/chunks/app/{page-57dcf41f8ef011a7.js → page-16b78d2823b60898.js} +1 -1
- package/dist/web/_next/static/chunks/app/settings/{page-2903a5e9b8b0fc4a.js → page-8d1048b944663524.js} +1 -1
- package/dist/web/_next/static/chunks/app/skills/page-6d9c1d5b03aa86bb.js +1 -0
- package/dist/web/_next/static/chunks/{main-app-72a2d12a170701ef.js → main-app-637478e5d2259005.js} +1 -1
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +3 -3
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +3 -3
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +3 -3
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +3 -3
- package/dist/web/logs.html +2 -2
- package/dist/web/logs.txt +3 -3
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +3 -3
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +2 -2
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +3 -3
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +3 -3
- package/package.json +1 -1
- package/template/AGENTS.md +21 -0
- package/template/CLAUDE.md +21 -0
- package/dist/web/_next/static/chunks/app/_not-found/page-22b69e9fb96ef3fc.js +0 -1
- package/dist/web/_next/static/chunks/app/cron/page-4ede68bcdb3e76ca.js +0 -1
- package/dist/web/_next/static/chunks/app/skills/page-971feac69b3a1383.js +0 -1
- /package/dist/web/_next/static/{4OBIVkP7CCBmCjhg6p9Id → astVwZfaNwQEC0C3qtVHe}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{4OBIVkP7CCBmCjhg6p9Id → astVwZfaNwQEC0C3qtVHe}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[271],{3685:(e,t,a)=>{Promise.resolve().then(a.bind(a,4031))},4031:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>N});var r=a(4130),n=a(7946),s=a(6654);let l=["Sundays","Mondays","Tuesdays","Wednesdays","Thursdays","Fridays","Saturdays"];function i(e){if(!e||!e.trim())return"";let t=e.trim().split(/\s+/);if(5!==t.length)return e;let[a,r,n,,s]=t;if("*"===a&&"*"===r&&"*"===n&&"*"===s)return"Every minute";if(a.startsWith("*/")&&"*"===r&&"*"===n&&"*"===s){let e=parseInt(a.slice(2),10);if(!isNaN(e))return"Every ".concat(e," minutes")}if("*"!==a&&"*"===r&&"*"===n&&"*"===s)return"Every hour";let i=parseInt(r,10),o=parseInt(a,10);if(isNaN(i)||isNaN(o))return e;let c=0===o?function(e,t){let a=0===t?"":":".concat(String(t).padStart(2,"0"));return"".concat(e%12||12).concat(a," ").concat(e<12?"AM":"PM")}(i,o):"".concat(i%12||12,":").concat(String(o).padStart(2,"0")," ").concat(i<12?"AM":"PM");if(n.startsWith("*/")&&"*"===s){let e=parseInt(n.slice(2),10);if(!isNaN(e))return"Every ".concat(e," days at ").concat(c)}if("*"!==n&&"*"===s){let e=parseInt(n,10);if(!isNaN(e))return"Monthly on the ".concat(e).concat(1===e?"st":2===e?"nd":3===e?"rd":"th"," at ").concat(c)}if("*"===n&&"1-5"===s)return"Weekdays at ".concat(c);if("*"===n){let e=parseInt(s,10);if(!isNaN(e)&&e>=0&&e<=6)return"".concat(l[e]," at ").concat(c)}return"*"===n&&"*"===s?"Daily at ".concat(c):e}var o=a(7192),c=a(8565),d=a(9664),x=a(6063);function u(e){let{className:t,width:a,height:n,style:s,...l}=e;return(0,r.jsx)("div",{className:(0,x.cn)("animate-shimmer rounded-md",t),style:{background:"linear-gradient(90deg, var(--fill-secondary) 25%, var(--fill-tertiary) 50%, var(--fill-secondary) 75%)",backgroundSize:"200% 100%",width:a,height:n,...s},...l})}let v=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],p=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],m={1:0,2:1,3:2,4:3,5:4,6:5,0:6};function h(e){let{slot:t,rect:a,containerRect:n}=e,s=t.cron.enabled?"var(--system-green)":"var(--text-tertiary)",l=a.top-n.top-8,o=a.left-n.left+a.width/2;return(0,r.jsxs)("div",{className:"absolute pointer-events-none z-[100] min-w-[200px] max-w-[300px] bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-caption1)] text-[var(--text-primary)]",style:{top:l,left:o,transform:"translate(-50%, -100%)",boxShadow:"0 8px 24px rgba(0,0,0,0.4), 0 2px 8px rgba(0,0,0,0.2)"},children:[(0,r.jsx)("div",{className:"absolute w-2.5 h-2.5 bg-[var(--material-regular)] border-r border-b border-[var(--separator)]",style:{bottom:-5,left:"50%",transform:"translateX(-50%) rotate(45deg)"}}),(0,r.jsx)("div",{className:"font-bold text-[length:var(--text-footnote)] mb-[var(--space-1)] pl-[var(--space-2)]",style:{borderLeft:"3px solid ".concat(s)},children:t.cron.name}),(0,r.jsx)("div",{className:"text-[var(--text-secondary)] text-[length:var(--text-caption1)] mb-[var(--space-2)]",children:i(t.cron.schedule)}),(0,r.jsx)("div",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:t.cron.schedule}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] text-[length:var(--text-caption1)]",children:[(0,r.jsx)("span",{className:"w-[7px] h-[7px] rounded-full shrink-0",style:{background:t.cron.enabled?"var(--system-green)":"var(--text-tertiary)"}}),(0,r.jsx)("span",{className:"font-medium",style:{color:t.cron.enabled?"var(--system-green)":"var(--text-tertiary)"},children:t.cron.enabled?"Enabled":"Disabled"}),t.cron.employee&&(0,r.jsx)("span",{className:"text-[var(--text-tertiary)] ml-[var(--space-1)]",children:t.cron.employee})]})]})}function g(e){let{crons:t}=e,[a,s]=(0,n.useState)(null),l=(0,n.useRef)(null),[o,c]=(0,n.useState)(null),d=(0,n.useCallback)(()=>{l.current&&c(l.current.getBoundingClientRect())},[]);(0,n.useEffect)(()=>{if(d(),l.current)return window.addEventListener("resize",d,{passive:!0}),()=>{window.removeEventListener("resize",d)}},[d]);let{slotsByDayHour:x,activeHours:u}=(0,n.useMemo)(()=>{let e=new Map,a=new Set;for(let r of t){if(!r.enabled)continue;let t=function(e){let t;if(!e||!e.trim())return null;let a=e.trim().split(/\s+/);if(5!==a.length)return null;let[r,n,,,s]=a,l=parseInt(r,10),i=parseInt(n,10);if(isNaN(l)||isNaN(i))return null;if("*"===s)t=[0,1,2,3,4,5,6];else if("1-5"===s)t=[1,2,3,4,5];else if("0-6"===s||"0,1,2,3,4,5,6"===s)t=[0,1,2,3,4,5,6];else if(s.includes(",")){if(0===(t=s.split(",").map(Number).filter(e=>!isNaN(e)&&e>=0&&e<=6)).length)return null}else{let e=parseInt(s,10);if(isNaN(e)||e<0||e>6)return null;t=[e]}return{hour:i,minute:l,days:t}}(r.schedule);if(t)for(let n of t.days){let s=m[n];if(void 0===s)continue;let l="".concat(s,"-").concat(t.hour),i=e.get(l)||[];i.push({cron:r,hour:t.hour,minute:t.minute,col:s}),e.set(l,i),a.add(t.hour)}}for(let[t,a]of e)e.set(t,a.sort((e,t)=>e.minute-t.minute||e.cron.name.localeCompare(t.cron.name)));return{slotsByDayHour:e,activeHours:Array.from(a).sort((e,t)=>e-t)}},[t]),g=new Date,b=m[g.getDay()],f=g.getHours(),y=g.getMinutes()/60,j=(0,n.useMemo)(()=>{let e=new Map;for(let a of u){let r=0;for(let e=0;e<7;e++){var t;let n="".concat(e,"-").concat(a),s=(null==(t=x.get(n))?void 0:t.length)||0;s>r&&(r=s)}e.set(a,r)}return e},[u,x]);return((0,n.useEffect)(()=>{if(!a)return;let e=()=>s(null);return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[a]),0===u.length)?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-[200px] text-[var(--text-secondary)] gap-[var(--space-2)]",children:[(0,r.jsxs)("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-[var(--text-tertiary)] mb-[var(--space-2)]",children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,r.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,r.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,r.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-subheadline)] font-medium",children:"No scheduled jobs to display"}),(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:"Enable some cron jobs to see the weekly schedule"})]}):(0,r.jsxs)("div",{ref:l,className:"relative",onClick:()=>s(null),children:[(0,r.jsxs)("div",{className:"grid grid-cols-[56px_repeat(7,1fr)] bg-[var(--material-regular)] rounded-[var(--radius-md)] border border-[var(--separator)] overflow-hidden",children:[(0,r.jsx)("div",{className:"p-[var(--space-3)_var(--space-2)] border-b border-[var(--separator)] bg-[var(--material-thick)]"}),v.map((e,t)=>{let a=t===b;return(0,r.jsxs)("div",{className:"relative p-[var(--space-3)_var(--space-2)] text-center border-b border-l border-[var(--separator)]",style:{background:a?"var(--accent-fill)":"var(--material-thick)"},children:[(0,r.jsx)("div",{title:p[t],className:"text-[length:var(--text-footnote)] tracking-[0.02em]",style:{fontWeight:a?700:600,color:a?"var(--accent)":"var(--text-primary)"},children:e}),a&&(0,r.jsx)("div",{className:"absolute -bottom-[3px] left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full bg-[var(--accent)] z-[2]"})]},e)}),u.map((e,t)=>{let n=j.get(e)||1,l=8+28*n+(n-1)*4,o=e===f,c=t===u.length-1;return(0,r.jsxs)("div",{className:"contents",children:[(0,r.jsx)("div",{className:"p-[var(--space-2)] flex items-start justify-end relative",style:{borderBottom:c?"none":"1px solid var(--separator)",minHeight:l,background:o?"var(--accent-fill)":void 0},children:(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[family-name:var(--font-mono)] leading-[1.2] whitespace-nowrap pt-0.5",style:{color:o?"var(--accent)":"var(--text-tertiary)",fontWeight:o?600:400},title:0===e||24===e?"12 AM":12===e?"12 PM":e<12?"".concat(e," AM"):"".concat(e-12," PM"),children:0===e||24===e?"12a":12===e?"12p":e<12?"".concat(e,"a"):"".concat(e-12,"p")})}),Array.from({length:7},(t,n)=>{let u="".concat(n,"-").concat(e),v=x.get(u)||[],p=n===b,m=p&&o;return(0,r.jsxs)("div",{className:"flex flex-col relative border-l border-[var(--separator)]",style:{padding:"".concat(4,"px 4px"),borderBottom:c?"none":"1px solid var(--separator)",minHeight:l,gap:4,background:m?"color-mix(in srgb, var(--accent) 6%, transparent)":p?"color-mix(in srgb, var(--accent) 3%, transparent)":void 0},children:[m&&(0,r.jsx)("div",{className:"absolute left-0 right-0 h-0.5 bg-[var(--system-red)] opacity-80 z-[3] rounded-[1px]",style:{top:"".concat((100*y).toFixed(1),"%")}}),v.map((e,t)=>{let n=e.cron.enabled?"var(--system-green)":"var(--text-tertiary)",l=(null==a?void 0:a.slot.cron.id)===e.cron.id&&(null==a?void 0:a.slot.col)===e.col&&(null==a?void 0:a.slot.hour)===e.hour;return(0,r.jsxs)("button",{type:"button",title:"".concat(e.cron.name," - ").concat(i(e.cron.schedule)),onClick:t=>{t.stopPropagation();let a=t.currentTarget.getBoundingClientRect();d(),l?s(null):s({slot:e,rect:a})},onMouseEnter:t=>(function(e,t){let a=t.currentTarget.getBoundingClientRect();d(),s({slot:e,rect:a})})(e,t),onMouseLeave:()=>s(null),className:"flex items-center gap-[5px] px-1.5 rounded-[var(--radius-sm)] border-none cursor-pointer w-full min-w-0 text-left relative overflow-hidden transition-[background,box-shadow] duration-150 ease-in-out",style:{height:28,background:l?"color-mix(in srgb, ".concat(n," 25%, transparent)"):"color-mix(in srgb, ".concat(n," 12%, transparent)"),borderLeft:"3px solid ".concat(n),boxShadow:l?"0 0 0 1px color-mix(in srgb, ".concat(n," 40%, transparent)"):"none"},children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:e.cron.enabled?"var(--system-green)":"var(--text-tertiary)"}}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--text-tertiary)] shrink-0 leading-none",children:":".concat(String(e.minute).padStart(2,"0"))}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-semibold overflow-hidden text-ellipsis whitespace-nowrap min-w-0 flex-1 leading-none",style:{color:n},children:e.cron.name})]},"".concat(u,"-").concat(t))}),0===v.length&&(0,r.jsx)("div",{className:"flex-1"})]},u)})]},e)})]}),a&&o&&(0,r.jsx)(h,{slot:a.slot,rect:a.rect,containerRect:o})]})}function b(e){let{crons:t}=e;if(0===t.length)return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] px-6 py-8 text-center",children:[(0,r.jsx)("div",{className:"text-sm font-bold text-[var(--text-primary)] mb-2",children:"No cron jobs configured"}),(0,r.jsx)("div",{className:"text-xs text-[var(--text-secondary)] max-w-[480px] mx-auto leading-[1.6]",children:"Cron jobs will appear here as cards once configured."})]});let a=t.filter(e=>e.enabled),n=t.filter(e=>!e.enabled);return(0,r.jsxs)("div",{children:[a.length>0&&(0,r.jsx)(f,{crons:a,label:"Enabled"}),n.length>0&&(0,r.jsx)(f,{crons:n,label:"Disabled"})]})}function f(e){let{crons:t,label:a}=e;return(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsxs)("div",{className:"text-[13px] font-bold text-[var(--text-secondary)] mb-3",children:[a," (",t.length,")"]}),(0,r.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-2.5",children:t.map(e=>{let t=e.enabled?"var(--system-green)":"var(--text-tertiary)";return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] rounded-[var(--radius-md)] border border-[var(--separator)] px-3.5 py-2.5",style:{borderLeft:"3px solid ".concat(t)},children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,r.jsx)("div",{className:"w-[7px] h-[7px] rounded-full shrink-0 ".concat(e.enabled?"bg-[var(--system-green)]":"bg-[var(--text-tertiary)]")}),(0,r.jsx)("div",{className:"text-xs font-semibold text-[var(--text-primary)] whitespace-nowrap overflow-hidden text-ellipsis",children:e.name})]}),(0,r.jsx)("div",{className:"text-[10px] text-[var(--text-secondary)] mb-0.5",children:i(e.schedule)}),(0,r.jsx)("div",{className:"text-[10px] font-[var(--font-mono)] text-[var(--text-tertiary)] mb-1",children:e.schedule}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.employee&&(0,r.jsx)("span",{className:"inline-block text-[9px] px-1.5 py-px rounded text-[var(--system-blue)]",style:{background:"color-mix(in srgb, var(--system-blue) 15%, transparent)"},children:e.employee}),e.engine&&(0,r.jsx)("span",{className:"inline-block text-[9px] px-1.5 py-px rounded bg-[var(--fill-tertiary)] text-[var(--text-tertiary)]",children:e.engine})]})]},e.id)})})]})}function y(e){if(!e)return"never";let t=new Date(e);if(isNaN(t.getTime()))return"—";let a=Date.now()-t.getTime(),r=Math.floor(a/6e4),n=Math.floor(a/36e5),s=Math.floor(a/864e5);return r<1?"just now":r<60?"".concat(r,"m ago"):n<24?"".concat(n,"h ago"):"".concat(s,"d ago")}function j(e){let{jobId:t}=e,[a,l]=(0,n.useState)(null),[i,o]=(0,n.useState)(!0);return((0,n.useEffect)(()=>{s.F.getCronRuns(t).then(e=>{l(e.slice(0,5)),o(!1)}).catch(()=>{l([]),o(!1)})},[t]),i)?(0,r.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-semibold mb-[var(--space-2)]",children:"Recent Runs"}),[1,2,3].map(e=>(0,r.jsx)(u,{className:"h-4 mb-1 w-4/5"},e))]}):a&&0!==a.length?(0,r.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-semibold mb-[var(--space-2)]",children:"Recent Runs"}),(0,r.jsx)("div",{className:"flex flex-col gap-1",children:a.map((e,t)=>{let a=e.ts||e.startedAt||"",n=e.status||"unknown",s=y(a),l=null!=e.durationMs?function(e){if(e<0||!Number.isFinite(e))return"—";let t=Math.round(e/1e3);if(t<60)return"".concat(t,"s");let a=Math.floor(t/60),r=t%60;if(a<60)return r>0?"".concat(a,"m ").concat(r,"s"):"".concat(a,"m");let n=Math.floor(a/60);return"".concat(n,"h ").concat(a%60,"m")}(e.durationMs):"—";return(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] text-[length:var(--text-caption2)] min-h-[22px] py-0.5",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:"success"===n||"ok"===n?"var(--system-green)":"error"===n||"failed"===n?"var(--system-red)":"var(--text-tertiary)"}}),(0,r.jsx)("span",{className:"text-[var(--text-tertiary)] min-w-[52px] shrink-0",children:s}),(0,r.jsx)("span",{className:"text-[var(--text-secondary)] min-w-[52px] shrink-0",children:l}),(0,r.jsx)("span",{className:"text-[var(--text-secondary)] capitalize",children:n}),e.error&&(0,r.jsx)("span",{className:"truncate text-[var(--system-red)] min-w-0 flex-1",children:e.error})]},"".concat(a,"-").concat(t))})})]}):(0,r.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-semibold mb-[var(--space-2)]",children:"Recent Runs"}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"No run history"})]})}function N(){(0,c.i)([{label:"Cron"}]);let[e,t]=(0,n.useState)([]),[a,l]=(0,n.useState)(!0),[x,v]=(0,n.useState)(null),[p,m]=(0,n.useState)("all"),[h,f]=(0,n.useState)(null),[N,k]=(0,n.useState)("just now"),[M,C]=(0,n.useState)(new Date),[S,E]=(0,n.useState)(null),I=(0,n.useCallback)(()=>{v(null),s.F.getCronJobs().then(e=>{t(e),C(new Date)}).catch(e=>v(e instanceof Error?e.message:"Unknown error")).finally(()=>l(!1))},[]);(0,n.useEffect)(()=>{I();let e=setInterval(I,6e4);return()=>clearInterval(e)},[I]),(0,n.useEffect)(()=>{let e=()=>k(y(M.toISOString()));e();let t=setInterval(e,3e4);return()=>clearInterval(t)},[M]);let R=e.filter(e=>e.enabled).length,D=e.filter(e=>!e.enabled).length,T=e.filter(e=>"enabled"===p?e.enabled:"disabled"!==p||!e.enabled);return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"h-full flex flex-col overflow-hidden bg-[var(--bg)]",children:[(0,r.jsx)("header",{className:"flex-shrink-0 bg-[var(--material-regular)] border-b border-[var(--separator)] px-[var(--space-6)] py-[var(--space-4)]",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-[length:var(--text-title1)] font-bold text-[var(--text-primary)] tracking-tight leading-[1.2]",children:"Cron Jobs"}),!a&&(0,r.jsxs)("p",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] mt-[var(--space-1)]",children:[e.length," total \xb7 ",R," enabled \xb7 ",D," disabled"]})]}),(0,r.jsx)(o.v,{children:(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)]",children:[(0,r.jsxs)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["Updated ",N]}),(0,r.jsx)("button",{onClick:I,"aria-label":"Refresh cron data",className:"w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)] border-none bg-transparent text-[var(--text-tertiary)] cursor-pointer",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M21 2v6h-6"}),(0,r.jsx)("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),(0,r.jsx)("path",{d:"M3 22v-6h6"}),(0,r.jsx)("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]})})]})})]})}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto px-[var(--space-6)] pt-[var(--space-4)] pb-[var(--space-6)]",children:x&&0===e.length?(0,r.jsxs)("div",{className:"bg-[rgba(255,69,58,0.06)] border border-[var(--system-red)] rounded-[var(--radius-md)] p-[var(--space-4)] text-[var(--system-red)] text-[length:var(--text-footnote)] mb-[var(--space-4)]",children:["Failed to load cron jobs: ",x,(0,r.jsx)("button",{onClick:I,className:"ml-[var(--space-3)] underline bg-none border-none text-inherit cursor-pointer text-[length:inherit]",children:"Retry"})]}):a?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"grid grid-cols-3 gap-[var(--space-3)] mb-[var(--space-4)]",children:[1,2,3].map(e=>(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] p-[var(--space-4)]",children:[(0,r.jsx)(u,{className:"w-[60px] h-2.5 mb-2"}),(0,r.jsx)(u,{className:"w-20 h-3.5"})]},e))}),[1,2,3,4].map(e=>(0,r.jsx)(u,{className:"h-12 mb-1 rounded-[var(--radius-sm)]"},e))]}):(0,r.jsxs)(d.tU,{defaultValue:"overview",children:[(0,r.jsxs)(d.j7,{variant:"line",children:[(0,r.jsx)(d.Xi,{value:"overview",children:"Overview"}),(0,r.jsx)(d.Xi,{value:"schedule",children:"Schedule"}),(0,r.jsx)(d.Xi,{value:"pipelines",children:"Pipelines"})]}),(0,r.jsxs)(d.av,{value:"overview",children:[(0,r.jsxs)("div",{className:"grid grid-cols-3 gap-[var(--space-3)] mb-[var(--space-4)] mt-[var(--space-4)]",children:[(0,r.jsx)(w,{label:"Total Jobs",value:e.length}),(0,r.jsx)(w,{label:"Enabled",value:R,color:"var(--system-green)"}),(0,r.jsx)(w,{label:"Disabled",value:D,color:"var(--text-tertiary)"})]}),(0,r.jsx)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-3)]",children:["all","enabled","disabled"].map(t=>{let a=p===t,n="all"===t?e.length:"enabled"===t?R:D;return(0,r.jsxs)("button",{onClick:()=>m(t),className:"rounded-[20px] px-3.5 py-1.5 text-[length:var(--text-footnote)] font-medium border-none cursor-pointer transition-all duration-200 ease-in-out",style:{background:a?"var(--accent-fill)":"var(--fill-secondary)",color:a?"var(--accent)":"var(--text-primary)"},children:[t.charAt(0).toUpperCase()+t.slice(1)," (",n,")"]},t)})}),0===T.length?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-[200px] text-[var(--text-secondary)] gap-[var(--space-2)]",children:[(0,r.jsxs)("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-[var(--text-tertiary)] mb-[var(--space-2)]",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-subheadline)] font-medium",children:0===e.length?"No cron jobs configured":"No jobs match this filter"})]}):(0,r.jsx)("div",{className:"rounded-[var(--radius-md)] overflow-hidden bg-[var(--material-regular)] border border-[var(--separator)]",children:T.map((e,a)=>{let n=h===e.id;return(0,r.jsxs)("div",{children:[a>0&&(0,r.jsx)("div",{className:"h-px bg-[var(--separator)] mx-[var(--space-4)]"}),(0,r.jsxs)("div",{role:"button",tabIndex:0,"aria-expanded":n,onClick:()=>f(n?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),f(n?null:e.id))},className:"flex items-center cursor-pointer min-h-[48px] px-[var(--space-4)] transition-[background] duration-150 ease-in-out",style:{borderLeft:"3px solid ".concat(e.enabled?"var(--system-green)":"transparent")},onMouseEnter:e=>{e.currentTarget.style.background="var(--fill-secondary)"},onMouseLeave:e=>{e.currentTarget.style.background=""},children:[(0,r.jsx)("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:e.enabled?"var(--system-green)":"var(--text-tertiary)"}}),(0,r.jsxs)("div",{className:"min-w-0 flex-1 ml-3 flex flex-col",children:[(0,r.jsx)("span",{className:"truncate text-[length:var(--text-footnote)] font-semibold text-[var(--text-primary)]",children:e.name}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:i(e.schedule)})]}),(0,r.jsxs)("div",{className:"flex items-center shrink-0 gap-[var(--space-2)] ml-auto",children:[e.employee&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] px-2 py-px rounded-xl bg-[color-mix(in_srgb,var(--system-blue)_15%,transparent)] text-[var(--system-blue)]",children:e.employee}),e.engine&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] px-2 py-px rounded-xl bg-[var(--fill-tertiary)] text-[var(--text-tertiary)]",children:e.engine}),(0,r.jsx)("button",{onClick:a=>{a.stopPropagation();let r=!e.enabled;s.F.updateCronJob(e.id,{enabled:r}).then(()=>{t(t=>t.map(t=>t.id===e.id?{...t,enabled:r}:t))}).catch(()=>{})},"aria-label":e.enabled?"Disable job":"Enable job",className:"relative inline-flex items-center w-9 h-5 rounded-[10px] border-none cursor-pointer shrink-0 transition-[background] duration-200 ease-in-out",style:{background:e.enabled?"var(--system-green)":"var(--fill-tertiary)"},children:(0,r.jsx)("span",{className:"block w-3.5 h-3.5 rounded-full bg-white transition-transform duration-200 ease-in-out",style:{transform:e.enabled?"translateX(18px)":"translateX(3px)"}})}),(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] text-[var(--text-tertiary)] transition-transform duration-200 ease-in-out inline-block",style:{transform:n?"rotate(90deg)":"rotate(0deg)"},children:"›"})]})]}),n&&(0,r.jsxs)("div",{className:"px-[var(--space-4)] pb-[var(--space-4)] ml-[3px]",children:[(0,r.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-[var(--space-4)] gap-y-[var(--space-1)] mt-[var(--space-2)] mb-[var(--space-3)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Schedule"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)]",children:i(e.schedule)}),(0,r.jsxs)("div",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--text-tertiary)] mt-0.5",children:[e.schedule,e.timezone&&(0,r.jsxs)("span",{className:"ml-2",children:["(",e.timezone,")"]})]})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Status"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-medium",style:{color:e.enabled?"var(--system-green)":"var(--text-tertiary)"},children:e.enabled?"Enabled":"Disabled"}),e.engine&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Engine"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)]",children:e.engine})]}),e.model&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Model"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)] font-[family-name:var(--font-mono)]",children:e.model})]}),e.employee&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Employee"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)]",children:e.employee})]})]}),(0,r.jsx)("div",{className:"mb-[var(--space-3)]",children:(0,r.jsx)("button",{onClick:t=>{t.stopPropagation(),E(e.id),s.F.triggerCronJob(e.id).then(()=>{setTimeout(I,2e3)}).catch(()=>{}).finally(()=>{setTimeout(()=>E(null),2e3)})},disabled:S===e.id,className:"inline-flex items-center gap-1.5 px-3.5 py-1.5 rounded-[var(--radius-sm)] border border-[var(--separator)] text-[length:var(--text-caption1)] font-semibold transition-all duration-200 ease-in-out",style:{background:S===e.id?"var(--fill-tertiary)":"var(--material-regular)",color:S===e.id?"var(--system-green)":"var(--text-secondary)",cursor:S===e.id?"default":"pointer"},children:S===e.id?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-sm",children:"✓"}),"Triggered"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",children:(0,r.jsx)("polygon",{points:"5,3 19,12 5,21"})}),"Run Now"]})})}),(0,r.jsx)(j,{jobId:e.id})]})]},e.id)})})]}),(0,r.jsx)(d.av,{value:"schedule",children:(0,r.jsx)("div",{className:"mt-[var(--space-4)]",children:(0,r.jsx)(g,{crons:e})})}),(0,r.jsx)(d.av,{value:"pipelines",children:(0,r.jsx)("div",{className:"mt-[var(--space-4)]",children:(0,r.jsx)(b,{crons:e})})})]})})]})})}function w(e){let{label:t,value:a,color:n}=e;return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] p-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-medium mb-[var(--space-1)]",children:t}),(0,r.jsx)("div",{className:"text-[length:var(--text-title2)] font-bold",style:{color:n||"var(--text-primary)"},children:a})]})}},9664:(e,t,a)=>{"use strict";a.d(t,{tU:()=>R,av:()=>L,j7:()=>T,Xi:()=>F});var r=a(4130),n=a(7946),s=a(4322),l=a(3397),i=a(5773),o=a(9458),c=a(4127),d=a(5822),x=a(7058),u=a(4068),v=a(5380),p="Tabs",[m,h]=(0,i.A)(p,[o.RG]),g=(0,o.RG)(),[b,f]=m(p),y=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,onValueChange:s,defaultValue:l,orientation:i="horizontal",dir:o,activationMode:c="automatic",...m}=e,h=(0,x.jH)(o),[g,f]=(0,u.i)({prop:n,onChange:s,defaultProp:null!=l?l:"",caller:p});return(0,r.jsx)(b,{scope:a,baseId:(0,v.B)(),value:g,onValueChange:f,orientation:i,dir:h,activationMode:c,children:(0,r.jsx)(d.sG.div,{dir:h,"data-orientation":i,...m,ref:t})})});y.displayName=p;var j="TabsList",N=n.forwardRef((e,t)=>{let{__scopeTabs:a,loop:n=!0,...s}=e,l=f(j,a),i=g(a);return(0,r.jsx)(o.bL,{asChild:!0,...i,orientation:l.orientation,dir:l.dir,loop:n,children:(0,r.jsx)(d.sG.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:t})})});N.displayName=j;var w="TabsTrigger",k=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,disabled:s=!1,...i}=e,c=f(w,a),x=g(a),u=S(c.baseId,n),v=E(c.baseId,n),p=n===c.value;return(0,r.jsx)(o.q7,{asChild:!0,...x,focusable:!s,active:p,children:(0,r.jsx)(d.sG.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":v,"data-state":p?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:u,...i,ref:t,onMouseDown:(0,l.mK)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,l.mK)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,l.mK)(e.onFocus,()=>{let e="manual"!==c.activationMode;p||s||!e||c.onValueChange(n)})})})});k.displayName=w;var M="TabsContent",C=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,forceMount:l,children:i,...o}=e,x=f(M,a),u=S(x.baseId,s),v=E(x.baseId,s),p=s===x.value,m=n.useRef(p);return n.useEffect(()=>{let e=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.jsx)(c.C,{present:l||p,children:a=>{let{present:n}=a;return(0,r.jsx)(d.sG.div,{"data-state":p?"active":"inactive","data-orientation":x.orientation,role:"tabpanel","aria-labelledby":u,hidden:!n,id:v,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0},children:n&&i})}})});function S(e,t){return"".concat(e,"-trigger-").concat(t)}function E(e,t){return"".concat(e,"-content-").concat(t)}C.displayName=M;var I=a(6063);function R(e){let{className:t,orientation:a="horizontal",...n}=e;return(0,r.jsx)(y,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,I.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...n})}let D=(0,s.F)("rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function T(e){let{className:t,variant:a="default",...n}=e;return(0,r.jsx)(N,{"data-slot":"tabs-list","data-variant":a,className:(0,I.cn)(D({variant:a}),t),...n})}function F(e){let{className:t,...a}=e;return(0,r.jsx)(k,{"data-slot":"tabs-trigger",className:(0,I.cn)("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground","after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...a})}function L(e){let{className:t,...a}=e;return(0,r.jsx)(C,{"data-slot":"tabs-content",className:(0,I.cn)("flex-1 outline-none",t),...a})}}},e=>{e.O(0,[625,51,458,155,192,344,144,358],()=>e(e.s=3685)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[636],{1234:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>A});var r=a(4130),n=a(7946),s=a(841),i=a(6654);function l(e,t,a){let r=e[t];return r?{...e,[t]:{...r,...a,updatedAt:Date.now()}}:e}var o=a(7192),d=a(7632);let c=[{id:"backlog",title:"Backlog"},{id:"todo",title:"To Do"},{id:"in-progress",title:"In Progress"},{id:"review",title:"Review"},{id:"done",title:"Done"}],p={low:"var(--system-green)",medium:"var(--system-orange)",high:"var(--system-red)"};function x(e){let{column:t,tickets:a,onDrop:i,onCreateTicket:l,renderTicket:o}=e,[d,c]=(0,n.useState)(!1);return(0,r.jsxs)("div",{onDragOver:function(e){e.preventDefault(),e.dataTransfer.dropEffect="move",c(!0)},onDragLeave:function(e){e.currentTarget.contains(e.relatedTarget)||c(!1)},onDrop:function(e){e.preventDefault(),c(!1);let a=e.dataTransfer.getData("text/plain");a&&i(a,t.id)},className:"flex flex-col min-w-[280px] max-w-[320px] flex-[1_0_280px] h-full rounded-[var(--radius-lg)] transition-[background,border-color] duration-200 ease-[var(--ease-smooth)]",style:{background:d?"var(--fill-secondary)":"var(--fill-tertiary)",border:d?"2px dashed var(--accent)":"2px dashed transparent"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-[var(--space-3)_var(--space-4)] shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)] tracking-[-0.01em]",children:t.title}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-medium)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] py-px px-1.5 min-w-[20px] text-center",children:a.length})]}),"backlog"===t.id&&l&&(0,r.jsx)("button",{onClick:l,"aria-label":"Create new ticket",className:"flex items-center justify-center w-6 h-6 rounded-[var(--radius-sm)] border-none bg-transparent text-[var(--text-secondary)] cursor-pointer p-0 transition-colors duration-150 ease-[var(--ease-smooth)]",children:(0,r.jsx)(s.A,{size:16})})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-[var(--space-2)] pb-[var(--space-2)] flex flex-col gap-[var(--space-2)]",children:[a.map(e=>(0,r.jsx)("div",{children:o(e)},e.id)),0===a.length&&(0,r.jsx)("div",{className:"py-[var(--space-8)] px-[var(--space-4)] text-center text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"No tickets"})]})]})}var v=a(8574);let u={low:"Low",medium:"Med",high:"High"};function m(e){let{ticket:t,assigneeName:a,onClick:s,onDelete:i}=e,[l,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(!1);return(0,r.jsxs)("div",{draggable:!0,onDragStart:function(e){e.dataTransfer.setData("text/plain",t.id),e.dataTransfer.effectAllowed="move",o(!0)},onDragEnd:function(){o(!1)},onClick:s,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),s())},className:"relative bg-[var(--material-regular)] rounded-[var(--radius-md)] p-[var(--space-3)] border border-[var(--separator)] flex flex-col gap-[var(--space-2)] select-none transition-opacity duration-150 ease-[var(--ease-smooth)]",style:{cursor:l?"grabbing":"grab",opacity:l?.6:1,borderLeft:"3px solid ".concat(p[t.priority])},children:[d&&i&&(0,r.jsx)("button",{onClick:e=>{e.stopPropagation(),i()},"aria-label":"Delete ticket",title:"Delete ticket",className:"absolute top-1.5 right-1.5 w-6 h-6 rounded-[var(--radius-sm)] flex items-center justify-center text-[var(--system-red)] border-none cursor-pointer p-0 z-[1]",style:{background:"color-mix(in srgb, var(--system-red) 12%, transparent)"},children:(0,r.jsx)(v.A,{size:13})}),(0,r.jsxs)("div",{className:"flex items-start gap-[var(--space-2)]",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-[3px] text-[length:var(--text-caption2)] font-semibold shrink-0 mt-0.5",style:{color:p[t.priority]},children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:p[t.priority]}}),u[t.priority]]}),(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)] leading-[1.3] line-clamp-2 overflow-hidden break-words",children:t.title})]}),t.description&&(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] leading-[1.4] line-clamp-2 overflow-hidden break-words",children:t.description}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] flex-wrap",children:[a&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-medium)] text-[var(--text-secondary)] bg-[var(--fill-tertiary)] rounded-[var(--radius-sm)] py-px px-[var(--space-2)] leading-[1.5]",children:a}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] ml-auto",title:new Date(t.createdAt).toLocaleString(),children:function(e){let t=Math.floor((Date.now()-e)/6e4);if(t<1)return"just now";if(t<60)return"".concat(t,"m ago");let a=Math.floor(t/60);if(a<24)return"".concat(a,"h ago");let r=Math.floor(a/24);return r<30?"".concat(r,"d ago"):"".concat(Math.floor(r/30),"mo ago")}(t.createdAt)})]})]})}function h(e){let{tickets:t,employees:a,onTicketClick:n,onMoveTicket:s,onCreateTicket:i,onDeleteTicket:l,filterEmployeeId:o}=e;return(0,r.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",height:"100%",overflowX:"auto",overflowY:"hidden",padding:"var(--space-2) 0",WebkitOverflowScrolling:"touch"},children:c.map(e=>{var d;let c=(d=e.id,Object.values(t).filter(e=>e.status===d).sort((e,t)=>t.updatedAt-e.updatedAt)),p=o?c.filter(e=>e.assigneeId===o):c;return(0,r.jsx)(x,{column:e,tickets:p,onDrop:s,onCreateTicket:"backlog"===e.id?i:void 0,renderTicket:e=>{var t;let s=a.find(t=>t.name===e.assigneeId);return(0,r.jsx)(m,{ticket:e,assigneeName:null!=(t=null==s?void 0:s.displayName)?t:null,onClick:()=>n(e),onDelete:l?()=>l(e):void 0})}},e.id)})})}let f={executive:"Exec",manager:"Mgr",senior:"Sr",employee:""};function g(e){var t;let{employees:a,value:s,onChange:i}=e,[l,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(""),[p,x]=(0,n.useState)(0),v=(0,n.useRef)(null),u=(0,n.useRef)(null),m=(0,n.useRef)(null),h=null!=(t=a.find(e=>e.name===s))?t:null,g=d.trim()?a.filter(e=>{let t=d.toLowerCase();return e.name.toLowerCase().includes(t)||e.displayName.toLowerCase().includes(t)||e.department.toLowerCase().includes(t)}):a,y=!d.trim()||"unassigned".includes(d.toLowerCase());(0,n.useEffect)(()=>{x(0)},[d]),(0,n.useEffect)(()=>{l?setTimeout(()=>{var e;return null==(e=u.current)?void 0:e.focus()},0):c("")},[l]),(0,n.useEffect)(()=>{if(l)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){v.current&&!v.current.contains(e.target)&&o(!1)}},[l]),(0,n.useEffect)(()=>{if(!l||!m.current)return;let e=m.current.querySelectorAll("[data-employee-option]")[p];e&&e.scrollIntoView({block:"nearest"})},[p,l]);let b=+!!y+g.length,j=(0,n.useCallback)(e=>{if(!l){("Enter"===e.key||" "===e.key||"ArrowDown"===e.key)&&(e.preventDefault(),o(!0));return}if("Escape"===e.key){e.preventDefault(),o(!1);return}if("ArrowDown"===e.key)e.preventDefault(),x(e=>Math.min(e+1,b-1));else if("ArrowUp"===e.key)e.preventDefault(),x(e=>Math.max(e-1,0));else if("Enter"===e.key){if(e.preventDefault(),y&&0===p)i("");else{let e=y?p-1:p;g[e]&&i(g[e].name)}o(!1)}},[l,p,b,y,g,i]);return(0,r.jsxs)("div",{ref:v,className:"relative",onKeyDown:j,children:[(0,r.jsx)("button",{type:"button",onClick:()=>o(!l),"aria-haspopup":"listbox","aria-expanded":l,className:"w-full flex items-center gap-[var(--space-2)] py-2 pl-3 pr-9 text-[length:var(--text-body)] cursor-pointer text-left border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] bg-[url(\"data:image/svg+xml,%3Csvg_xmlns='http://www.w3.org/2000/svg'_width='12'_height='12'_viewBox='0_0_24_24'_fill='none'_stroke='%23888'_stroke-width='2'_stroke-linecap='round'_stroke-linejoin='round'%3E%3Cpath_d='m6_9_6_6_6-6'/%3E%3C/svg%3E\")] bg-no-repeat bg-[position:right_12px_center] min-h-[40px] font-[inherit] ".concat(h?"text-[var(--text-primary)]":"text-[var(--text-tertiary)]"),children:h?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"font-[var(--weight-medium)]",children:h.displayName}),f[h.rank]&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1.5 py-px",children:f[h.rank]})]}):(0,r.jsx)("span",{children:"Unassigned"})}),l&&(0,r.jsxs)("div",{className:"absolute top-full left-0 right-0 mt-1 z-50 bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[0_8px_32px_rgba(0,0,0,0.3)] overflow-hidden",children:[(0,r.jsx)("div",{className:"pt-2 px-2 pb-1",children:(0,r.jsx)("input",{ref:u,type:"text",placeholder:"Search employees...",value:d,onChange:e=>c(e.target.value),className:"w-full py-1.5 px-2.5 text-[length:var(--text-footnote)] border border-[var(--separator)] rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] outline-none font-[inherit]"})}),(0,r.jsxs)("div",{ref:m,role:"listbox",className:"max-h-[280px] overflow-y-auto p-1",children:[y&&(0,r.jsxs)("div",{"data-employee-option":!0,role:"option","aria-selected":""===s,onClick:()=>{i(""),o(!1)},className:"flex items-center gap-[var(--space-2)] py-2 px-2.5 rounded-[var(--radius-sm)] cursor-pointer transition-[background] duration-100 ".concat(0===p?"bg-[var(--fill-secondary)]":"bg-transparent"),onMouseEnter:()=>x(0),children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--fill-tertiary)] flex items-center justify-center text-sm text-[var(--text-tertiary)] shrink-0",children:"—"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[length:var(--text-footnote)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Unassigned"}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"No employee assigned"})]}),""===s&&(0,r.jsx)("span",{className:"ml-auto text-[var(--accent)] text-[13px] shrink-0",children:"✓"})]}),g.map((e,t)=>{let a=y?t+1:t,n=p===a,l=s===e.name;return(0,r.jsxs)("div",{"data-employee-option":!0,role:"option","aria-selected":l,onClick:()=>{i(e.name),o(!1)},onMouseEnter:()=>x(a),className:"flex items-center gap-[var(--space-2)] py-2 px-2.5 rounded-[var(--radius-sm)] cursor-pointer transition-[background] duration-100 ".concat(n?"bg-[var(--fill-secondary)]":"bg-transparent"),children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--accent)] flex items-center justify-center text-sm text-white font-semibold shrink-0",children:e.displayName.charAt(0).toUpperCase()}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-1)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.displayName}),f[e.rank]&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1 shrink-0",children:f[e.rank]})]}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.department||e.name})]}),l&&(0,r.jsx)("span",{className:"text-[var(--accent)] text-[13px] shrink-0",children:"✓"})]},e.name)}),0===g.length&&!y&&(0,r.jsxs)("div",{className:"p-[var(--space-4)] text-center text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:["No employees match “",d,"”"]})]})]})]})}let y=["low","medium","high"],b={low:"Low",medium:"Medium",high:"High"},j={title:"",description:"",priority:"medium",assigneeId:""};function w(e){let{open:t,onOpenChange:a,employees:i,onSubmit:l}=e,[o,c]=(0,n.useState)(j),x=(0,n.useCallback)(()=>{c(j)},[]);return(0,r.jsx)(d.lG,{open:t,onOpenChange:function(e){e||x(),a(e)},children:(0,r.jsxs)(d.Cf,{showCloseButton:!0,className:"bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-lg)] shadow-[var(--shadow-card)] max-w-[480px]",children:[(0,r.jsxs)(d.c7,{children:[(0,r.jsx)(d.L3,{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)]",children:"Create Ticket"}),(0,r.jsx)(d.rr,{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Add a new ticket to the backlog."})]}),(0,r.jsxs)("form",{onSubmit:function(e){e.preventDefault(),o.title.trim()&&(l({title:o.title.trim(),description:o.description.trim(),priority:o.priority,assigneeId:o.assigneeId||null}),x(),a(!1))},className:"flex flex-col gap-[var(--space-4)]",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)]",children:[(0,r.jsx)("label",{htmlFor:"ticket-title",className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Title"}),(0,r.jsx)("input",{id:"ticket-title",type:"text",placeholder:"What needs to be done?",value:o.title,onChange:e=>c(t=>({...t,title:e.target.value})),required:!0,autoFocus:!0,className:"text-[length:var(--text-body)] text-[var(--text-primary)] py-2 px-3 border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] outline-none font-[inherit]"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)]",children:[(0,r.jsx)("label",{htmlFor:"ticket-description",className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Description"}),(0,r.jsx)("textarea",{id:"ticket-description",placeholder:"Add details...",rows:3,value:o.description,onChange:e=>c(t=>({...t,description:e.target.value})),className:"text-[length:var(--text-body)] text-[var(--text-primary)] resize-y min-h-[72px] py-2 px-3 border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] outline-none font-[inherit]"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Priority"}),(0,r.jsx)("div",{className:"flex gap-[var(--space-2)]",children:y.map(e=>{let t=o.priority===e;return(0,r.jsxs)("button",{type:"button",onClick:()=>c(t=>({...t,priority:e})),className:"flex-1 flex items-center justify-center gap-[var(--space-1)] py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-md)] cursor-pointer text-[length:var(--text-caption1)] font-[var(--weight-medium)] transition-all duration-150 ease-[var(--ease-smooth)]",style:{border:t?"2px solid ".concat(p[e]):"2px solid var(--separator)",background:t?"var(--fill-tertiary)":"transparent",color:t?"var(--text-primary)":"var(--text-tertiary)"},children:[(0,r.jsx)("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:p[e]}}),b[e]]},e)})})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)]",children:[(0,r.jsx)("label",{className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Assignee"}),(0,r.jsx)(g,{employees:i,value:o.assigneeId,onChange:e=>c(t=>({...t,assigneeId:e}))})]}),(0,r.jsxs)("button",{type:"submit",disabled:!o.title.trim(),className:"rounded-[var(--radius-md)] py-3 px-5 w-full text-[length:var(--text-body)] font-[var(--weight-semibold)] border-none flex items-center justify-center gap-[var(--space-2)] mt-[var(--space-2)] bg-[var(--accent)] text-white transition-opacity duration-150 ease-linear",style:{cursor:o.title.trim()?"pointer":"default",opacity:o.title.trim()?1:.5},children:[(0,r.jsx)(s.A,{size:16}),"Create Ticket"]})]})]})})}function k(e){let{priority:t}=e;return(0,r.jsxs)("span",{className:"inline-flex items-center gap-[var(--space-1)] text-[length:var(--text-caption2)] font-semibold uppercase tracking-[0.5px]",style:{color:p[t]},children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:p[t]}}),t]})}function N(e){var t,a;let{status:n}=e,s=null!=(a=null==(t=c.find(e=>e.id===n))?void 0:t.title)?a:n;return(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-semibold text-[var(--text-secondary)] bg-[var(--fill-tertiary)] px-[var(--space-2)] py-[2px] rounded-[var(--radius-sm)] uppercase tracking-[0.3px]",children:s})}function C(e){var t,a;let{ticket:s,employees:i,onClose:l,onStatusChange:o,onAssigneeChange:d,onDelete:p}=e,x=(0,n.useRef)(null);(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&l()}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l]),(0,n.useEffect)(()=>{var e;null==(e=x.current)||e.focus()},[]);let v=null!=(t=i.find(e=>e.name===s.assigneeId))?t:null;return(0,r.jsx)("div",{className:"absolute top-0 right-0 bottom-0 z-30",children:(0,r.jsxs)("div",{className:"w-[420px] max-w-[100vw] h-full bg-[var(--material-regular)] shadow-[-4px_0_24px_rgba(0,0,0,0.25)] flex flex-col",children:[(0,r.jsx)("div",{className:"h-[3px] bg-[var(--accent)] shrink-0"}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,r.jsx)("div",{className:"pt-[var(--space-4)] px-[var(--space-5)] pb-0 flex justify-end gap-[var(--space-2)]",children:(0,r.jsx)("button",{ref:x,onClick:l,"aria-label":"Close detail panel",className:"w-7 h-7 rounded-full flex items-center justify-center bg-[var(--fill-secondary)] text-[var(--text-secondary)] border-none cursor-pointer text-[length:var(--text-footnote)] transition-all duration-150 ease-[var(--ease-spring)]",children:"✕"})}),(0,r.jsxs)("div",{className:"pt-[var(--space-2)] px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("h2",{className:"text-[length:var(--text-title3)] font-bold tracking-[-0.3px] text-[var(--text-primary)] m-0 leading-[1.25]",children:s.title}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)] mt-[var(--space-2)]",children:[(0,r.jsx)(N,{status:s.status}),(0,r.jsx)(k,{priority:s.priority})]}),v?(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mt-[var(--space-3)] text-[length:var(--text-footnote)] text-[var(--text-secondary)]",children:[(0,r.jsx)("span",{children:v.displayName}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1",children:v.rank})]}):(0,r.jsx)("div",{className:"mt-[var(--space-3)] text-[length:var(--text-footnote)] text-[var(--text-tertiary)] italic",children:"Unassigned"})]}),(0,r.jsxs)("div",{className:"px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-tertiary)] uppercase tracking-[0.5px] mb-[var(--space-2)]",children:"Move to"}),(0,r.jsx)("div",{className:"flex gap-[var(--space-1)] flex-wrap",children:c.map(e=>{let t=e.id===s.status;return(0,r.jsx)("button",{onClick:()=>{t||o(e.id)},disabled:t,className:"text-[length:var(--text-caption2)] font-semibold py-[3px] px-[var(--space-2)] rounded-[var(--radius-sm)] border-none transition-all duration-[120ms] ease-linear",style:{cursor:t?"default":"pointer",background:t?"var(--accent)":"var(--fill-tertiary)",color:t?"#fff":"var(--text-secondary)",opacity:t?1:.8},children:e.title},e.id)})})]}),(0,r.jsxs)("div",{className:"px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-tertiary)] uppercase tracking-[0.5px] mb-[var(--space-2)]",children:"Assignee"}),(0,r.jsx)(g,{employees:i,value:null!=(a=s.assigneeId)?a:"",onChange:e=>d(e||null)})]}),s.description&&(0,r.jsxs)("div",{className:"px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"h-px bg-[var(--separator)] mb-[var(--space-3)]"}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-tertiary)] uppercase tracking-[0.5px] mb-[var(--space-2)]",children:"Description"}),(0,r.jsx)("div",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] leading-[1.5] whitespace-pre-wrap",children:s.description})]})]}),(0,r.jsx)("div",{className:"shrink-0 py-[var(--space-2)] px-[var(--space-5)] pb-[var(--space-4)] border-t border-[var(--separator)]",children:(0,r.jsx)("button",{onClick:function(){p()},className:"w-full py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-md)] border border-[var(--system-red)] bg-transparent text-[var(--system-red)] text-[length:var(--text-footnote)] font-semibold cursor-pointer transition-all duration-[120ms] ease-linear",children:"Delete Ticket"})})]})})}function D(e){let{ticket:t,onConfirm:a,onCancel:n}=e;return(0,r.jsx)(d.lG,{open:!0,onOpenChange:e=>{e||n()},children:(0,r.jsxs)(d.Cf,{showCloseButton:!1,className:"bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-lg)] shadow-[var(--shadow-card)] max-w-[400px]",children:[(0,r.jsxs)(d.c7,{children:[(0,r.jsx)(d.L3,{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)]",children:"Delete Ticket"}),(0,r.jsxs)(d.rr,{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] leading-[1.5]",children:["Are you sure you want to delete “",t.title,"”? This cannot be undone."]})]}),(0,r.jsxs)(d.Es,{children:[(0,r.jsx)("button",{onClick:n,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border border-[var(--separator)] bg-transparent text-[var(--text-secondary)] text-[length:var(--text-footnote)] font-semibold cursor-pointer",children:"Cancel"}),(0,r.jsx)("button",{onClick:a,autoFocus:!0,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border-none bg-[var(--system-red)] text-white text-[length:var(--text-footnote)] font-semibold cursor-pointer",children:"Delete"})]})]})})}function A(){let[e,t]=(0,n.useState)({}),[a,d]=(0,n.useState)([]),[c,p]=(0,n.useState)([]),[x,v]=(0,n.useState)(!0),[u,m]=(0,n.useState)(null),[f,g]=(0,n.useState)(!1),[y,b]=(0,n.useState)(null),[j,k]=(0,n.useState)(null),[N,A]=(0,n.useState)(null);(0,n.useCallback)(async e=>{let t={};for(let a of Object.values(e)){let e=a.department;e&&(t[e]||(t[e]=[]),t[e].push({id:a.id,title:a.title,description:a.description||void 0,status:a.status,priority:a.priority,assignee:a.assigneeId||void 0,createdAt:new Date(a.createdAt).toISOString(),updatedAt:new Date(a.updatedAt).toISOString()}))}let a=Array.from(new Set([...Object.keys(t),...c])).map(async e=>{try{await i.F.updateDepartmentBoard(e,t[e]||[])}catch(e){}});await Promise.all(a)},[c]);let S=(0,n.useCallback)(()=>{v(!0),m(null),i.F.getOrg().then(async e=>{d(await Promise.all(e.employees.map(async e=>{try{return await i.F.getEmployee(e)}catch(t){return{name:e,displayName:e,department:"",rank:"employee",engine:"unknown",model:"unknown",persona:""}}}))),p(e.departments);let a={};for(let t of e.departments)try{let e=await i.F.getDepartmentBoard(t);if(Array.isArray(e))for(let r of e){let e={todo:"todo",in_progress:"in-progress","in-progress":"in-progress",done:"done",backlog:"backlog",review:"review"}[r.status]||"todo",n={low:"low",medium:"medium",high:"high"}[r.priority||"medium"]||"medium";a[r.id]={id:r.id,title:r.title,description:r.description||"",status:e,priority:n,assigneeId:r.assignee||null,department:t,workState:"idle",createdAt:r.createdAt?new Date(r.createdAt).getTime():Date.now(),updatedAt:r.updatedAt?new Date(r.updatedAt).getTime():Date.now(),departmentId:t}}}catch(e){}t(a)}).catch(e=>m(e.message)).finally(()=>v(!1))},[]);(0,n.useEffect)(()=>{S()},[S]),(0,n.useEffect)(()=>{x||function(e){try{localStorage.setItem("jinn-kanban",JSON.stringify(e))}catch(e){}}(e)},[e,x]);let _=(0,n.useCallback)(async e=>{let t={};for(let a of Object.values(e))a.departmentId&&(t[a.departmentId]||(t[a.departmentId]=[]),t[a.departmentId].push(a));for(let e of c)t[e]||(t[e]=[]);await Promise.all(Object.entries(t).map(e=>{let[t,a]=e,r=a.map(e=>{var t;return{id:e.id,title:e.title,description:e.description,status:e.status,priority:e.priority,assignee:null!=(t=e.assigneeId)?t:void 0,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}});return i.F.updateDepartmentBoard(t,r).catch(()=>{})}))},[c]);function E(e,a){t(t=>{let r=l(t,e,{status:a});return _(r),r})}if((0,n.useEffect)(()=>{if(y&&e[y.id]){let t=e[y.id];t.updatedAt!==y.updatedAt&&b(t)}},[e,y]),u)return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-[var(--space-4)] text-[var(--text-tertiary)]",children:[(0,r.jsxs)("div",{className:"rounded-[var(--radius-md)] bg-[color-mix(in_srgb,var(--system-red)_10%,transparent)] border border-[color-mix(in_srgb,var(--system-red)_30%,transparent)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-body)] text-[var(--system-red)]",children:["Failed to load employees: ",u]}),(0,r.jsx)("button",{onClick:S,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none cursor-pointer text-[length:var(--text-body)] font-[var(--weight-semibold)]",children:"Retry"})]})});let I=Object.keys(e).length,T=new Set(Object.values(e).map(e=>e.assigneeId).filter(Boolean)),O=a.filter(e=>T.has(e.name));return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"flex h-full relative bg-[var(--bg)]",children:[(0,r.jsxs)("div",{className:"flex-1 h-full flex flex-col min-w-0",children:[(0,r.jsxs)("div",{className:"px-[var(--space-5)] py-[var(--space-4)] flex items-center justify-between shrink-0 border-b border-[var(--separator)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] text-[var(--text-primary)] m-0 tracking-[-0.3px]",children:"Kanban Board"}),(0,r.jsxs)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mt-[2px] mb-0",children:[I," ticket",1!==I?"s":""]})]}),(0,r.jsx)(o.v,{children:(0,r.jsxs)("button",{onClick:()=>g(!0),className:"rounded-[var(--radius-md)] px-4 py-2 text-[length:var(--text-footnote)] font-[var(--weight-semibold)] border-none flex items-center gap-[var(--space-2)] bg-[var(--accent)] text-white cursor-pointer",children:[(0,r.jsx)(s.A,{size:16}),"New Ticket"]})})]}),O.length>0&&(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] px-[var(--space-5)] py-[var(--space-2)] overflow-x-auto shrink-0",children:[(0,r.jsx)("button",{onClick:()=>k(null),className:"flex items-center gap-[var(--space-1)] px-3 py-1 rounded-full border-none text-[length:var(--text-caption1)] font-semibold cursor-pointer shrink-0 ".concat(null===j?"bg-[var(--accent)] text-white":"bg-[var(--fill-tertiary)] text-[var(--text-secondary)]"),children:"All"}),O.map(e=>(0,r.jsx)("button",{onClick:()=>k(j===e.name?null:e.name),className:"flex items-center gap-[var(--space-1)] px-3 py-1 rounded-full border-none text-[length:var(--text-caption1)] font-semibold cursor-pointer shrink-0 ".concat(j===e.name?"bg-[var(--accent)] text-white":"bg-[var(--fill-tertiary)] text-[var(--text-secondary)]"),children:e.displayName},e.name))]}),(0,r.jsx)("div",{className:"flex-1 px-[var(--space-3)] min-h-0",children:x?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(h,{tickets:e,employees:a,onTicketClick:function(e){b(e)},onMoveTicket:E,onCreateTicket:()=>g(!0),onDeleteTicket:e=>A(e),filterEmployeeId:j})})]}),y&&(0,r.jsx)("div",{className:"fixed inset-0 z-30 lg:hidden bg-black/50",onClick:()=>b(null)}),y&&(0,r.jsx)(C,{ticket:y,employees:a,onClose:()=>b(null),onStatusChange:e=>E(y.id,e),onAssigneeChange:e=>(function(e,r){let n=r?a.find(e=>e.name===r):null,s={assigneeId:r};(null==n?void 0:n.department)&&(s.department=n.department),t(t=>{let a=l(t,e,s);return _(a),a})})(y.id,e),onDelete:()=>A(y)}),N&&(0,r.jsx)(D,{ticket:N,onConfirm:()=>{var e;return e=N.id,void(t(t=>{let a=function(e,t){let a={...e};return delete a[t],a}(t,e);return _(a),a}),b(null),A(null))},onCancel:()=>A(null)}),(0,r.jsx)(w,{open:f,onOpenChange:g,employees:a,onSubmit:function(e){let r=e.assigneeId?a.find(t=>t.name===e.assigneeId):null,n=(null==r?void 0:r.department)||c[0]||null;t(t=>{let a=function(e,t){var a;let r=crypto.randomUUID(),n=Date.now();return{...e,[r]:{...t,id:r,workState:"idle",createdAt:n,updatedAt:n,departmentId:null!=(a=t.departmentId)?a:null}}}(t,{...e,status:"backlog",department:n,departmentId:n});return _(a),a})}})]})})}},4827:(e,t,a)=>{Promise.resolve().then(a.bind(a,1234))}},e=>{e.O(0,[625,51,155,192,344,144,358],()=>e(e.s=4827)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[636],{1234:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>A});var r=a(4130),n=a(7946),s=a(841),i=a(6654);function l(e,t,a){let r=e[t];return r?{...e,[t]:{...r,...a,updatedAt:Date.now()}}:e}var o=a(7192),d=a(7632);let c=[{id:"backlog",title:"Backlog"},{id:"todo",title:"To Do"},{id:"in-progress",title:"In Progress"},{id:"review",title:"Review"},{id:"done",title:"Done"}],p={low:"var(--system-green)",medium:"var(--system-orange)",high:"var(--system-red)"};function x(e){let{column:t,tickets:a,onDrop:i,onCreateTicket:l,renderTicket:o}=e,[d,c]=(0,n.useState)(!1);return(0,r.jsxs)("div",{onDragOver:function(e){e.preventDefault(),e.dataTransfer.dropEffect="move",c(!0)},onDragLeave:function(e){e.currentTarget.contains(e.relatedTarget)||c(!1)},onDrop:function(e){e.preventDefault(),c(!1);let a=e.dataTransfer.getData("text/plain");a&&i(a,t.id)},className:"flex flex-col min-w-[280px] max-w-[320px] flex-[1_0_280px] h-full rounded-[var(--radius-lg)] transition-[background,border-color] duration-200 ease-[var(--ease-smooth)]",style:{background:d?"var(--fill-secondary)":"var(--fill-tertiary)",border:d?"2px dashed var(--accent)":"2px dashed transparent"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-[var(--space-3)_var(--space-4)] shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)] tracking-[-0.01em]",children:t.title}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-medium)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] py-px px-1.5 min-w-[20px] text-center",children:a.length})]}),"backlog"===t.id&&l&&(0,r.jsx)("button",{onClick:l,"aria-label":"Create new ticket",className:"flex items-center justify-center w-6 h-6 rounded-[var(--radius-sm)] border-none bg-transparent text-[var(--text-secondary)] cursor-pointer p-0 transition-colors duration-150 ease-[var(--ease-smooth)]",children:(0,r.jsx)(s.A,{size:16})})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-[var(--space-2)] pb-[var(--space-2)] flex flex-col gap-[var(--space-2)]",children:[a.map(e=>(0,r.jsx)("div",{children:o(e)},e.id)),0===a.length&&(0,r.jsx)("div",{className:"py-[var(--space-8)] px-[var(--space-4)] text-center text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"No tickets"})]})]})}var v=a(8574);let u={low:"Low",medium:"Med",high:"High"};function m(e){let{ticket:t,assigneeName:a,onClick:s,onDelete:i}=e,[l,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(!1);return(0,r.jsxs)("div",{draggable:!0,onDragStart:function(e){e.dataTransfer.setData("text/plain",t.id),e.dataTransfer.effectAllowed="move",o(!0)},onDragEnd:function(){o(!1)},onClick:s,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),s())},className:"relative bg-[var(--material-regular)] rounded-[var(--radius-md)] p-[var(--space-3)] border border-[var(--separator)] flex flex-col gap-[var(--space-2)] select-none transition-opacity duration-150 ease-[var(--ease-smooth)]",style:{cursor:l?"grabbing":"grab",opacity:l?.6:1,borderLeft:"3px solid ".concat(p[t.priority])},children:[d&&i&&(0,r.jsx)("button",{onClick:e=>{e.stopPropagation(),i()},"aria-label":"Delete ticket",title:"Delete ticket",className:"absolute top-1.5 right-1.5 w-6 h-6 rounded-[var(--radius-sm)] flex items-center justify-center text-[var(--system-red)] border-none cursor-pointer p-0 z-[1]",style:{background:"color-mix(in srgb, var(--system-red) 12%, transparent)"},children:(0,r.jsx)(v.A,{size:13})}),(0,r.jsxs)("div",{className:"flex items-start gap-[var(--space-2)]",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-[3px] text-[length:var(--text-caption2)] font-semibold shrink-0 mt-0.5",style:{color:p[t.priority]},children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:p[t.priority]}}),u[t.priority]]}),(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)] leading-[1.3] line-clamp-2 overflow-hidden break-words",children:t.title})]}),t.description&&(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] leading-[1.4] line-clamp-2 overflow-hidden break-words",children:t.description}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] flex-wrap",children:[a&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-medium)] text-[var(--text-secondary)] bg-[var(--fill-tertiary)] rounded-[var(--radius-sm)] py-px px-[var(--space-2)] leading-[1.5]",children:a}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] ml-auto",title:new Date(t.createdAt).toLocaleString(),children:function(e){let t=Math.floor((Date.now()-e)/6e4);if(t<1)return"just now";if(t<60)return"".concat(t,"m ago");let a=Math.floor(t/60);if(a<24)return"".concat(a,"h ago");let r=Math.floor(a/24);return r<30?"".concat(r,"d ago"):"".concat(Math.floor(r/30),"mo ago")}(t.createdAt)})]})]})}function h(e){let{tickets:t,employees:a,onTicketClick:n,onMoveTicket:s,onCreateTicket:i,onDeleteTicket:l,filterEmployeeId:o}=e;return(0,r.jsx)("div",{style:{display:"flex",gap:"var(--space-3)",height:"100%",overflowX:"auto",overflowY:"hidden",padding:"var(--space-2) 0",WebkitOverflowScrolling:"touch"},children:c.map(e=>{var d;let c=(d=e.id,Object.values(t).filter(e=>e.status===d).sort((e,t)=>t.updatedAt-e.updatedAt)),p=o?c.filter(e=>e.assigneeId===o):c;return(0,r.jsx)(x,{column:e,tickets:p,onDrop:s,onCreateTicket:"backlog"===e.id?i:void 0,renderTicket:e=>{var t;let s=a.find(t=>t.name===e.assigneeId);return(0,r.jsx)(m,{ticket:e,assigneeName:null!=(t=null==s?void 0:s.displayName)?t:null,onClick:()=>n(e),onDelete:l?()=>l(e):void 0})}},e.id)})})}let f={executive:"Exec",manager:"Mgr",senior:"Sr",employee:""};function g(e){var t;let{employees:a,value:s,onChange:i}=e,[l,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(""),[p,x]=(0,n.useState)(0),v=(0,n.useRef)(null),u=(0,n.useRef)(null),m=(0,n.useRef)(null),h=null!=(t=a.find(e=>e.name===s))?t:null,g=d.trim()?a.filter(e=>{let t=d.toLowerCase();return e.name.toLowerCase().includes(t)||e.displayName.toLowerCase().includes(t)||e.department.toLowerCase().includes(t)}):a,y=!d.trim()||"unassigned".includes(d.toLowerCase());(0,n.useEffect)(()=>{x(0)},[d]),(0,n.useEffect)(()=>{l?setTimeout(()=>{var e;return null==(e=u.current)?void 0:e.focus()},0):c("")},[l]),(0,n.useEffect)(()=>{if(l)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){v.current&&!v.current.contains(e.target)&&o(!1)}},[l]),(0,n.useEffect)(()=>{if(!l||!m.current)return;let e=m.current.querySelectorAll("[data-employee-option]")[p];e&&e.scrollIntoView({block:"nearest"})},[p,l]);let b=+!!y+g.length,j=(0,n.useCallback)(e=>{if(!l){("Enter"===e.key||" "===e.key||"ArrowDown"===e.key)&&(e.preventDefault(),o(!0));return}if("Escape"===e.key){e.preventDefault(),o(!1);return}if("ArrowDown"===e.key)e.preventDefault(),x(e=>Math.min(e+1,b-1));else if("ArrowUp"===e.key)e.preventDefault(),x(e=>Math.max(e-1,0));else if("Enter"===e.key){if(e.preventDefault(),y&&0===p)i("");else{let e=y?p-1:p;g[e]&&i(g[e].name)}o(!1)}},[l,p,b,y,g,i]);return(0,r.jsxs)("div",{ref:v,className:"relative",onKeyDown:j,children:[(0,r.jsx)("button",{type:"button",onClick:()=>o(!l),"aria-haspopup":"listbox","aria-expanded":l,className:"w-full flex items-center gap-[var(--space-2)] py-2 pl-3 pr-9 text-[length:var(--text-body)] cursor-pointer text-left border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] bg-[url(\"data:image/svg+xml,%3Csvg_xmlns='http://www.w3.org/2000/svg'_width='12'_height='12'_viewBox='0_0_24_24'_fill='none'_stroke='%23888'_stroke-width='2'_stroke-linecap='round'_stroke-linejoin='round'%3E%3Cpath_d='m6_9_6_6_6-6'/%3E%3C/svg%3E\")] bg-no-repeat bg-[position:right_12px_center] min-h-[40px] font-[inherit] ".concat(h?"text-[var(--text-primary)]":"text-[var(--text-tertiary)]"),children:h?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"font-[var(--weight-medium)]",children:h.displayName}),f[h.rank]&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1.5 py-px",children:f[h.rank]})]}):(0,r.jsx)("span",{children:"Unassigned"})}),l&&(0,r.jsxs)("div",{className:"absolute top-full left-0 right-0 mt-1 z-50 bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[0_8px_32px_rgba(0,0,0,0.3)] overflow-hidden",children:[(0,r.jsx)("div",{className:"pt-2 px-2 pb-1",children:(0,r.jsx)("input",{ref:u,type:"text",placeholder:"Search employees...",value:d,onChange:e=>c(e.target.value),className:"w-full py-1.5 px-2.5 text-[length:var(--text-footnote)] border border-[var(--separator)] rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] outline-none font-[inherit]"})}),(0,r.jsxs)("div",{ref:m,role:"listbox",className:"max-h-[280px] overflow-y-auto p-1",children:[y&&(0,r.jsxs)("div",{"data-employee-option":!0,role:"option","aria-selected":""===s,onClick:()=>{i(""),o(!1)},className:"flex items-center gap-[var(--space-2)] py-2 px-2.5 rounded-[var(--radius-sm)] cursor-pointer transition-[background] duration-100 ".concat(0===p?"bg-[var(--fill-secondary)]":"bg-transparent"),onMouseEnter:()=>x(0),children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--fill-tertiary)] flex items-center justify-center text-sm text-[var(--text-tertiary)] shrink-0",children:"—"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[length:var(--text-footnote)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Unassigned"}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"No employee assigned"})]}),""===s&&(0,r.jsx)("span",{className:"ml-auto text-[var(--accent)] text-[13px] shrink-0",children:"✓"})]}),g.map((e,t)=>{let a=y?t+1:t,n=p===a,l=s===e.name;return(0,r.jsxs)("div",{"data-employee-option":!0,role:"option","aria-selected":l,onClick:()=>{i(e.name),o(!1)},onMouseEnter:()=>x(a),className:"flex items-center gap-[var(--space-2)] py-2 px-2.5 rounded-[var(--radius-sm)] cursor-pointer transition-[background] duration-100 ".concat(n?"bg-[var(--fill-secondary)]":"bg-transparent"),children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--accent)] flex items-center justify-center text-sm text-white font-semibold shrink-0",children:e.displayName.charAt(0).toUpperCase()}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-1)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.displayName}),f[e.rank]&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1 shrink-0",children:f[e.rank]})]}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.department||e.name})]}),l&&(0,r.jsx)("span",{className:"text-[var(--accent)] text-[13px] shrink-0",children:"✓"})]},e.name)}),0===g.length&&!y&&(0,r.jsxs)("div",{className:"p-[var(--space-4)] text-center text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:["No employees match “",d,"”"]})]})]})]})}let y=["low","medium","high"],b={low:"Low",medium:"Medium",high:"High"},j={title:"",description:"",priority:"medium",assigneeId:""};function w(e){let{open:t,onOpenChange:a,employees:i,onSubmit:l}=e,[o,c]=(0,n.useState)(j),x=(0,n.useCallback)(()=>{c(j)},[]);return(0,r.jsx)(d.lG,{open:t,onOpenChange:function(e){e||x(),a(e)},children:(0,r.jsxs)(d.Cf,{showCloseButton:!0,className:"bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-lg)] shadow-[var(--shadow-card)] max-w-[480px]",children:[(0,r.jsxs)(d.c7,{children:[(0,r.jsx)(d.L3,{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)]",children:"Create Ticket"}),(0,r.jsx)(d.rr,{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Add a new ticket to the backlog."})]}),(0,r.jsxs)("form",{onSubmit:function(e){e.preventDefault(),o.title.trim()&&(l({title:o.title.trim(),description:o.description.trim(),priority:o.priority,assigneeId:o.assigneeId||null}),x(),a(!1))},className:"flex flex-col gap-[var(--space-4)]",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)]",children:[(0,r.jsx)("label",{htmlFor:"ticket-title",className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Title"}),(0,r.jsx)("input",{id:"ticket-title",type:"text",placeholder:"What needs to be done?",value:o.title,onChange:e=>c(t=>({...t,title:e.target.value})),required:!0,autoFocus:!0,className:"text-[length:var(--text-body)] text-[var(--text-primary)] py-2 px-3 border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] outline-none font-[inherit]"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)]",children:[(0,r.jsx)("label",{htmlFor:"ticket-description",className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Description"}),(0,r.jsx)("textarea",{id:"ticket-description",placeholder:"Add details...",rows:3,value:o.description,onChange:e=>c(t=>({...t,description:e.target.value})),className:"text-[length:var(--text-body)] text-[var(--text-primary)] resize-y min-h-[72px] py-2 px-3 border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] outline-none font-[inherit]"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Priority"}),(0,r.jsx)("div",{className:"flex gap-[var(--space-2)]",children:y.map(e=>{let t=o.priority===e;return(0,r.jsxs)("button",{type:"button",onClick:()=>c(t=>({...t,priority:e})),className:"flex-1 flex items-center justify-center gap-[var(--space-1)] py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-md)] cursor-pointer text-[length:var(--text-caption1)] font-[var(--weight-medium)] transition-all duration-150 ease-[var(--ease-smooth)]",style:{border:t?"2px solid ".concat(p[e]):"2px solid var(--separator)",background:t?"var(--fill-tertiary)":"transparent",color:t?"var(--text-primary)":"var(--text-tertiary)"},children:[(0,r.jsx)("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:p[e]}}),b[e]]},e)})})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)]",children:[(0,r.jsx)("label",{className:"text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)]",children:"Assignee"}),(0,r.jsx)(g,{employees:i,value:o.assigneeId,onChange:e=>c(t=>({...t,assigneeId:e}))})]}),(0,r.jsxs)("button",{type:"submit",disabled:!o.title.trim(),className:"rounded-[var(--radius-md)] py-3 px-5 w-full text-[length:var(--text-body)] font-[var(--weight-semibold)] border-none flex items-center justify-center gap-[var(--space-2)] mt-[var(--space-2)] bg-[var(--accent)] text-white transition-opacity duration-150 ease-linear",style:{cursor:o.title.trim()?"pointer":"default",opacity:o.title.trim()?1:.5},children:[(0,r.jsx)(s.A,{size:16}),"Create Ticket"]})]})]})})}function k(e){let{priority:t}=e;return(0,r.jsxs)("span",{className:"inline-flex items-center gap-[var(--space-1)] text-[length:var(--text-caption2)] font-semibold uppercase tracking-[0.5px]",style:{color:p[t]},children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:p[t]}}),t]})}function N(e){var t,a;let{status:n}=e,s=null!=(a=null==(t=c.find(e=>e.id===n))?void 0:t.title)?a:n;return(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-semibold text-[var(--text-secondary)] bg-[var(--fill-tertiary)] px-[var(--space-2)] py-[2px] rounded-[var(--radius-sm)] uppercase tracking-[0.3px]",children:s})}function C(e){var t,a;let{ticket:s,employees:i,onClose:l,onStatusChange:o,onAssigneeChange:d,onDelete:p}=e,x=(0,n.useRef)(null);(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&l()}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[l]),(0,n.useEffect)(()=>{var e;null==(e=x.current)||e.focus()},[]);let v=null!=(t=i.find(e=>e.name===s.assigneeId))?t:null;return(0,r.jsx)("div",{className:"absolute top-0 right-0 bottom-0 z-30",children:(0,r.jsxs)("div",{className:"w-[420px] max-w-[100vw] h-full bg-[var(--material-regular)] shadow-[-4px_0_24px_rgba(0,0,0,0.25)] flex flex-col",children:[(0,r.jsx)("div",{className:"h-[3px] bg-[var(--accent)] shrink-0"}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,r.jsx)("div",{className:"pt-[var(--space-4)] px-[var(--space-5)] pb-0 flex justify-end gap-[var(--space-2)]",children:(0,r.jsx)("button",{ref:x,onClick:l,"aria-label":"Close detail panel",className:"w-7 h-7 rounded-full flex items-center justify-center bg-[var(--fill-secondary)] text-[var(--text-secondary)] border-none cursor-pointer text-[length:var(--text-footnote)] transition-all duration-150 ease-[var(--ease-spring)]",children:"✕"})}),(0,r.jsxs)("div",{className:"pt-[var(--space-2)] px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("h2",{className:"text-[length:var(--text-title3)] font-bold tracking-[-0.3px] text-[var(--text-primary)] m-0 leading-[1.25]",children:s.title}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)] mt-[var(--space-2)]",children:[(0,r.jsx)(N,{status:s.status}),(0,r.jsx)(k,{priority:s.priority})]}),v?(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mt-[var(--space-3)] text-[length:var(--text-footnote)] text-[var(--text-secondary)]",children:[(0,r.jsx)("span",{children:v.displayName}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] bg-[var(--fill-secondary)] rounded-[var(--radius-sm)] px-1",children:v.rank})]}):(0,r.jsx)("div",{className:"mt-[var(--space-3)] text-[length:var(--text-footnote)] text-[var(--text-tertiary)] italic",children:"Unassigned"})]}),(0,r.jsxs)("div",{className:"px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-tertiary)] uppercase tracking-[0.5px] mb-[var(--space-2)]",children:"Move to"}),(0,r.jsx)("div",{className:"flex gap-[var(--space-1)] flex-wrap",children:c.map(e=>{let t=e.id===s.status;return(0,r.jsx)("button",{onClick:()=>{t||o(e.id)},disabled:t,className:"text-[length:var(--text-caption2)] font-semibold py-[3px] px-[var(--space-2)] rounded-[var(--radius-sm)] border-none transition-all duration-[120ms] ease-linear",style:{cursor:t?"default":"pointer",background:t?"var(--accent)":"var(--fill-tertiary)",color:t?"#fff":"var(--text-secondary)",opacity:t?1:.8},children:e.title},e.id)})})]}),(0,r.jsxs)("div",{className:"px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-tertiary)] uppercase tracking-[0.5px] mb-[var(--space-2)]",children:"Assignee"}),(0,r.jsx)(g,{employees:i,value:null!=(a=s.assigneeId)?a:"",onChange:e=>d(e||null)})]}),s.description&&(0,r.jsxs)("div",{className:"px-[var(--space-5)] pb-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"h-px bg-[var(--separator)] mb-[var(--space-3)]"}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-tertiary)] uppercase tracking-[0.5px] mb-[var(--space-2)]",children:"Description"}),(0,r.jsx)("div",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] leading-[1.5] whitespace-pre-wrap",children:s.description})]})]}),(0,r.jsx)("div",{className:"shrink-0 py-[var(--space-2)] px-[var(--space-5)] pb-[var(--space-4)] border-t border-[var(--separator)]",children:(0,r.jsx)("button",{onClick:function(){p()},className:"w-full py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-md)] border border-[var(--system-red)] bg-transparent text-[var(--system-red)] text-[length:var(--text-footnote)] font-semibold cursor-pointer transition-all duration-[120ms] ease-linear",children:"Delete Ticket"})})]})})}function D(e){let{ticket:t,onConfirm:a,onCancel:n}=e;return(0,r.jsx)(d.lG,{open:!0,onOpenChange:e=>{e||n()},children:(0,r.jsxs)(d.Cf,{showCloseButton:!1,className:"bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-lg)] shadow-[var(--shadow-card)] max-w-[400px]",children:[(0,r.jsxs)(d.c7,{children:[(0,r.jsx)(d.L3,{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)]",children:"Delete Ticket"}),(0,r.jsxs)(d.rr,{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] leading-[1.5]",children:["Are you sure you want to delete “",t.title,"”? This cannot be undone."]})]}),(0,r.jsxs)(d.Es,{children:[(0,r.jsx)("button",{onClick:n,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border border-[var(--separator)] bg-transparent text-[var(--text-secondary)] text-[length:var(--text-footnote)] font-semibold cursor-pointer",children:"Cancel"}),(0,r.jsx)("button",{onClick:a,autoFocus:!0,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border-none bg-[var(--system-red)] text-white text-[length:var(--text-footnote)] font-semibold cursor-pointer",children:"Delete"})]})]})})}function A(){let[e,t]=(0,n.useState)({}),[a,d]=(0,n.useState)([]),[c,p]=(0,n.useState)([]),[x,v]=(0,n.useState)(!0),[u,m]=(0,n.useState)(null),[f,g]=(0,n.useState)(!1),[y,b]=(0,n.useState)(null),[j,k]=(0,n.useState)(null),[N,A]=(0,n.useState)(null);(0,n.useCallback)(async e=>{let t={};for(let a of Object.values(e)){let e=a.department;e&&(t[e]||(t[e]=[]),t[e].push({id:a.id,title:a.title,description:a.description||void 0,status:a.status,priority:a.priority,assignee:a.assigneeId||void 0,createdAt:new Date(a.createdAt).toISOString(),updatedAt:new Date(a.updatedAt).toISOString()}))}let a=Array.from(new Set([...Object.keys(t),...c])).map(async e=>{try{await i.F.updateDepartmentBoard(e,t[e]||[])}catch(e){}});await Promise.all(a)},[c]);let S=(0,n.useCallback)(()=>{v(!0),m(null),i.F.getOrg().then(async e=>{d(await Promise.all(e.employees.map(async e=>{try{return await i.F.getEmployee(e)}catch(t){return{name:e,displayName:e,department:"",rank:"employee",engine:"unknown",model:"unknown",persona:""}}}))),p(e.departments);let a={};for(let t of e.departments)try{let e=await i.F.getDepartmentBoard(t);if(Array.isArray(e))for(let r of e){let e={todo:"todo",in_progress:"in-progress","in-progress":"in-progress",done:"done",backlog:"backlog",review:"review"}[r.status]||"todo",n={low:"low",medium:"medium",high:"high"}[r.priority||"medium"]||"medium";a[r.id]={id:r.id,title:r.title,description:r.description||"",status:e,priority:n,assigneeId:r.assignee||null,department:t,workState:"idle",createdAt:r.createdAt?new Date(r.createdAt).getTime():Date.now(),updatedAt:r.updatedAt?new Date(r.updatedAt).getTime():Date.now(),departmentId:t}}}catch(e){}t(a)}).catch(e=>m(e.message)).finally(()=>v(!1))},[]);(0,n.useEffect)(()=>{S()},[S]),(0,n.useEffect)(()=>{x||function(e){try{localStorage.setItem("jinn-kanban",JSON.stringify(e))}catch(e){}}(e)},[e,x]);let _=(0,n.useCallback)(async e=>{let t={};for(let a of Object.values(e))a.departmentId&&(t[a.departmentId]||(t[a.departmentId]=[]),t[a.departmentId].push(a));for(let e of c)t[e]||(t[e]=[]);await Promise.all(Object.entries(t).map(e=>{let[t,a]=e,r=a.map(e=>{var t;return{id:e.id,title:e.title,description:e.description,status:e.status,priority:e.priority,assignee:null!=(t=e.assigneeId)?t:void 0,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}});return i.F.updateDepartmentBoard(t,r).catch(()=>{})}))},[c]);function E(e,a){t(t=>{let r=l(t,e,{status:a});return _(r),r})}if((0,n.useEffect)(()=>{if(y&&e[y.id]){let t=e[y.id];t.updatedAt!==y.updatedAt&&b(t)}},[e,y]),u)return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-[var(--space-4)] text-[var(--text-tertiary)]",children:[(0,r.jsxs)("div",{className:"rounded-[var(--radius-md)] bg-[color-mix(in_srgb,var(--system-red)_10%,transparent)] border border-[color-mix(in_srgb,var(--system-red)_30%,transparent)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-body)] text-[var(--system-red)]",children:["Failed to load employees: ",u]}),(0,r.jsx)("button",{onClick:S,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none cursor-pointer text-[length:var(--text-body)] font-[var(--weight-semibold)]",children:"Retry"})]})});let I=Object.keys(e).length,T=new Set(Object.values(e).map(e=>e.assigneeId).filter(Boolean)),O=a.filter(e=>T.has(e.name));return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"flex h-full relative bg-[var(--bg)]",children:[(0,r.jsxs)("div",{className:"flex-1 h-full flex flex-col min-w-0",children:[(0,r.jsxs)("div",{className:"px-[var(--space-5)] py-[var(--space-4)] flex items-center justify-between shrink-0 border-b border-[var(--separator)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] text-[var(--text-primary)] m-0 tracking-[-0.3px]",children:"Kanban Board"}),(0,r.jsxs)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mt-[2px] mb-0",children:[I," ticket",1!==I?"s":""]})]}),(0,r.jsx)(o.v,{children:(0,r.jsxs)("button",{onClick:()=>g(!0),className:"rounded-[var(--radius-md)] px-4 py-2 text-[length:var(--text-footnote)] font-[var(--weight-semibold)] border-none flex items-center gap-[var(--space-2)] bg-[var(--accent)] text-white cursor-pointer",children:[(0,r.jsx)(s.A,{size:16}),"New Ticket"]})})]}),O.length>0&&(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] px-[var(--space-5)] py-[var(--space-2)] overflow-x-auto shrink-0",children:[(0,r.jsx)("button",{onClick:()=>k(null),className:"flex items-center gap-[var(--space-1)] px-3 py-1 rounded-full border-none text-[length:var(--text-caption1)] font-semibold cursor-pointer shrink-0 ".concat(null===j?"bg-[var(--accent)] text-white":"bg-[var(--fill-tertiary)] text-[var(--text-secondary)]"),children:"All"}),O.map(e=>(0,r.jsx)("button",{onClick:()=>k(j===e.name?null:e.name),className:"flex items-center gap-[var(--space-1)] px-3 py-1 rounded-full border-none text-[length:var(--text-caption1)] font-semibold cursor-pointer shrink-0 ".concat(j===e.name?"bg-[var(--accent)] text-white":"bg-[var(--fill-tertiary)] text-[var(--text-secondary)]"),children:e.displayName},e.name))]}),(0,r.jsx)("div",{className:"flex-1 px-[var(--space-3)] min-h-0",children:x?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(h,{tickets:e,employees:a,onTicketClick:function(e){b(e)},onMoveTicket:E,onCreateTicket:()=>g(!0),onDeleteTicket:e=>A(e),filterEmployeeId:j})})]}),y&&(0,r.jsx)("div",{className:"fixed inset-0 z-30 lg:hidden bg-black/50",onClick:()=>b(null)}),y&&(0,r.jsx)(C,{ticket:y,employees:a,onClose:()=>b(null),onStatusChange:e=>E(y.id,e),onAssigneeChange:e=>(function(e,r){let n=r?a.find(e=>e.name===r):null,s={assigneeId:r};(null==n?void 0:n.department)&&(s.department=n.department),t(t=>{let a=l(t,e,s);return _(a),a})})(y.id,e),onDelete:()=>A(y)}),N&&(0,r.jsx)(D,{ticket:N,onConfirm:()=>{var e;return e=N.id,void(t(t=>{let a=function(e,t){let a={...e};return delete a[t],a}(t,e);return _(a),a}),b(null),A(null))},onCancel:()=>A(null)}),(0,r.jsx)(w,{open:f,onOpenChange:g,employees:a,onSubmit:function(e){let r=e.assigneeId?a.find(t=>t.name===e.assigneeId):null,n=(null==r?void 0:r.department)||c[0]||null;t(t=>{let a=function(e,t){var a;let r=crypto.randomUUID(),n=Date.now();return{...e,[r]:{...t,id:r,workState:"idle",createdAt:n,updatedAt:n,departmentId:null!=(a=t.departmentId)?a:null}}}(t,{...e,status:"backlog",department:n,departmentId:n});return _(a),a})}})]})})}},3664:(e,t,a)=>{Promise.resolve().then(a.bind(a,1234))}},e=>{e.O(0,[625,51,155,192,344,144,358],()=>e(e.s=3664)),_N_E=e.O()}]);
|
package/dist/web/_next/static/chunks/app/{layout-ab9ba2b24a88513d.js → layout-45d8b9cc84f9443f.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{4874:(e,t,s)=>{"use strict";s.d(t,{ClientProviders:()=>S});var r=s(4130),i=s(7122),a=s(426),n=s(9747),u=s(7991),l=s(5632),o=class extends l.Q{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){let r=t.queryKey,i=t.queryHash??(0,a.F$)(r,t),u=this.get(i);return u||(u=new n.X({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(r)}),this.add(u)),u}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){u.jG.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,a.MK)(e,t)):t}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},c=s(5094),h=class extends l.Q{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#s=new Map,this.#r=0}#t;#s;#r;build(e,t,s){let r=new c.s({client:e,mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:s});return this.add(r),r}add(e){this.#t.add(e);let t=d(e);if("string"==typeof t){let s=this.#s.get(t);s?s.push(e):this.#s.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=d(e);if("string"==typeof t){let s=this.#s.get(t);if(s)if(s.length>1){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}else s[0]===e&&this.#s.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=d(e);if("string"!=typeof t)return!0;{let s=this.#s.get(t),r=s?.find(e=>"pending"===e.state.status);return!r||r===e}}runNext(e){let t=d(e);if("string"!=typeof t)return Promise.resolve();{let s=this.#s.get(t)?.find(t=>t!==e&&t.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){u.jG.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#s.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,a.nJ)(e,t))}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.jG.batch(()=>Promise.all(e.map(e=>e.continue().catch(a.lQ))))}};function d(e){return e.options.scope?.id}var f=s(6714),y=s(2201);function p(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,n=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,c=async()=>{let s=!1,c=(0,a.ZM)(t.options,t.fetchOptions),h=async(e,r,i)=>{if(s)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let n=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta};return(0,a.ox)(e,()=>t.signal,()=>s=!0),e})(),u=await c(n),{maxPages:l}=t.options,o=i?a.ZZ:a.y9;return{pages:o(e.pages,u,l),pageParams:o(e.pageParams,r,l)}};if(i&&n.length){let e="backward"===i,t={pages:n,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:m)(r,t);l=await h(t,s,e)}else{let t=e??n.length;do{let e=0===o?u[0]??r.initialPageParam:m(r,l);if(o>0&&null==e)break;l=await h(l,e),o++}while(o<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=c}}}function m(e,{pages:t,pageParams:s}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,s[r],s):void 0}let g=new class{#i;#a;#n;#u;#l;#o;#c;#h;constructor(e={}){this.#i=e.queryCache||new o,this.#a=e.mutationCache||new h,this.#n=e.defaultOptions||{},this.#u=new Map,this.#l=new Map,this.#o=0}mount(){this.#o++,1===this.#o&&(this.#c=f.m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onFocus())}),this.#h=y.t.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onOnline())}))}unmount(){this.#o--,0===this.#o&&(this.#c?.(),this.#c=void 0,this.#h?.(),this.#h=void 0)}isFetching(e){return this.#i.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#a.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),s=this.#i.build(this,t),r=s.state.data;return void 0===r?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,a.d2)(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#i.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,s){let r=this.defaultQueryOptions({queryKey:e}),i=this.#i.get(r.queryHash),n=i?.state.data,u=(0,a.Zw)(t,n);if(void 0!==u)return this.#i.build(this,r).setData(u,{...s,manual:!0})}setQueriesData(e,t,s){return u.jG.batch(()=>this.#i.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,s)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state}removeQueries(e){let t=this.#i;u.jG.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let s=this.#i;return u.jG.batch(()=>(s.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let s={revert:!0,...t};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).map(e=>e.cancel(s)))).then(a.lQ).catch(a.lQ)}invalidateQueries(e,t={}){return u.jG.batch(()=>(this.#i.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let s={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,s);return s.throwOnError||(t=t.catch(a.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(a.lQ)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let s=this.#i.build(this,t);return s.isStaleByTime((0,a.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(a.lQ).catch(a.lQ)}fetchInfiniteQuery(e){return e.behavior=p(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(a.lQ).catch(a.lQ)}ensureInfiniteQueryData(e){return e.behavior=p(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return y.t.isOnline()?this.#a.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#a}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#u.set((0,a.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,a.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,a.F$)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===a.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#a.clear()}}({defaultOptions:{queries:{staleTime:6e4,gcTime:3e5,retry:1,refetchOnWindowFocus:!1}}});var b=s(8838),q=s(4722),v=s(7946),Q=s(3828);let C="jinn-notifications";function O(e){try{localStorage.setItem(C,JSON.stringify(e.slice(0,50)))}catch(e){}}let w=0;var P=s(4723);function j(e){let{children:t}=e,[s,i]=(0,v.useState)([]),[a,n]=(0,v.useState)([]),u=(0,v.useRef)(new Map),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{i(function(){try{let e=localStorage.getItem(C);if(!e)return[];return JSON.parse(e).slice(0,50)}catch(e){return[]}}())},[]),(0,v.useEffect)(()=>{l.current?O(s):s.length>0&&(l.current=!0)},[s]);let o=(0,v.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e));let t=u.current.get(e);t&&(clearTimeout(t),u.current.delete(e))},[]),c=(0,v.useCallback)((e,t)=>{let s=function(e,t){switch(e){case"session:completed":{let e=t.employee||"Session",s=t.error;if(s)return{type:"error",title:"".concat(e," — Error"),message:s.slice(0,120)};return{type:"success",title:"".concat(e," — Done"),message:"Session completed successfully"}}case"cron:triggered":return{type:"info",title:"Cron Triggered",message:t.name||t.jobId||"Job"};case"cron:reloaded":return{type:"info",title:"Cron Reloaded",message:"Scheduled jobs reloaded"};case"cron:completed":{let e=t.name||t.job||"Job",s=t.error;if(s)return{type:"error",title:"Cron Failed: ".concat(e),message:s.slice(0,120)};return{type:"success",title:"Cron Done: ".concat(e),message:"Scheduled job completed successfully"}}case"slack:message":{let e=t.channel||"",s=t.user||t.userName||"Someone",r=t.text||"";return{type:"info",title:"Slack".concat(e?": ".concat(e):""),message:"".concat(s,": ").concat(r).slice(0,120)}}case"session:started":{let e=t.sessionId||"",s=t.employee||"";return{type:"info",title:"Session Started",message:s?"".concat(s," (").concat(e.slice(0,8),")"):e.slice(0,8)}}default:return null}}(e,t);if(!s)return;let r={...s,id:"n_".concat(Date.now(),"_").concat(++w),timestamp:Date.now(),read:!1};i(e=>[r,...e].slice(0,50)),l.current=!0},[]),h=(0,v.useRef)(c);h.current=c,(0,v.useEffect)(()=>{let e=(0,Q.E)((e,t)=>{h.current(e,t)});return()=>e.close()},[]);let d=(0,v.useCallback)(()=>{i(e=>{let t=e.map(e=>e.read?e:{...e,read:!0});return O(t),t})},[]),f=(0,v.useCallback)(e=>{i(t=>{let s=t.map(t=>t.id===e?{...t,read:!0}:t);return O(s),s})},[]),y=(0,v.useCallback)(()=>{i([]),O([])},[]),p=s.filter(e=>!e.read).length;return(0,r.jsx)(P.V.Provider,{value:{notifications:s,unreadCount:p,toasts:a,pushFromEvent:c,dismissToast:o,markAllRead:d,markRead:f,clearAll:y},children:t})}var D=s(2845),k=s(5465),E=s(8565);function M(){let e=(0,i.jE)(),{subscribe:t}=(0,D.G)(),s=(0,v.useRef)(null),r=(0,v.useRef)(new Set);return(0,v.useEffect)(()=>{let i=t((t,i)=>{switch(t){case"session:started":r.current.add("sessions");break;case"session:completed":case"session:error":case"session:deleted":r.current.add("sessions"),r.current.add("costs"),(null==i?void 0:i.sessionId)&&e.invalidateQueries({queryKey:k.l.sessions.detail(i.sessionId)});break;case"cron:completed":case"cron:error":r.current.add("cron");break;case"skills:changed":r.current.add("skills");break;default:return}s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{for(let t of r.current)switch(t){case"sessions":e.invalidateQueries({queryKey:k.l.sessions.all});break;case"costs":e.invalidateQueries({queryKey:["costs"]});break;case"cron":e.invalidateQueries({queryKey:k.l.cron.all});break;case"skills":e.invalidateQueries({queryKey:k.l.skills.all})}r.current.clear()},500)});return()=>{i(),s.current&&clearTimeout(s.current)}},[t,e]),null}function S(e){let{children:t}=e;return(0,r.jsx)(i.Ht,{client:g,children:(0,r.jsx)(b.N,{children:(0,r.jsx)(E.t,{children:(0,r.jsx)(q.Z6,{children:(0,r.jsxs)(j,{children:[t,(0,r.jsx)(q.Qc,{}),(0,r.jsx)(M,{})]})})})})})}},6319:(e,t,s)=>{Promise.resolve().then(s.bind(s,4874)),Promise.resolve().then(s.t.bind(s,8489,23))},8489:()=>{}},e=>{e.O(0,[930,625,155,344,144,358],()=>e(e.s=6319)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{4874:(e,t,s)=>{"use strict";s.d(t,{ClientProviders:()=>S});var r=s(4130),i=s(7122),a=s(426),n=s(9747),u=s(7991),l=s(5632),o=class extends l.Q{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){let r=t.queryKey,i=t.queryHash??(0,a.F$)(r,t),u=this.get(i);return u||(u=new n.X({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(r)}),this.add(u)),u}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){u.jG.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,a.MK)(e,t)):t}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},c=s(5094),h=class extends l.Q{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#s=new Map,this.#r=0}#t;#s;#r;build(e,t,s){let r=new c.s({client:e,mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:s});return this.add(r),r}add(e){this.#t.add(e);let t=d(e);if("string"==typeof t){let s=this.#s.get(t);s?s.push(e):this.#s.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=d(e);if("string"==typeof t){let s=this.#s.get(t);if(s)if(s.length>1){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}else s[0]===e&&this.#s.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=d(e);if("string"!=typeof t)return!0;{let s=this.#s.get(t),r=s?.find(e=>"pending"===e.state.status);return!r||r===e}}runNext(e){let t=d(e);if("string"!=typeof t)return Promise.resolve();{let s=this.#s.get(t)?.find(t=>t!==e&&t.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){u.jG.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#s.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,a.nJ)(e,t))}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.jG.batch(()=>Promise.all(e.map(e=>e.continue().catch(a.lQ))))}};function d(e){return e.options.scope?.id}var f=s(6714),y=s(2201);function p(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,n=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,c=async()=>{let s=!1,c=(0,a.ZM)(t.options,t.fetchOptions),h=async(e,r,i)=>{if(s)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let n=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta};return(0,a.ox)(e,()=>t.signal,()=>s=!0),e})(),u=await c(n),{maxPages:l}=t.options,o=i?a.ZZ:a.y9;return{pages:o(e.pages,u,l),pageParams:o(e.pageParams,r,l)}};if(i&&n.length){let e="backward"===i,t={pages:n,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:m)(r,t);l=await h(t,s,e)}else{let t=e??n.length;do{let e=0===o?u[0]??r.initialPageParam:m(r,l);if(o>0&&null==e)break;l=await h(l,e),o++}while(o<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=c}}}function m(e,{pages:t,pageParams:s}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,s[r],s):void 0}let g=new class{#i;#a;#n;#u;#l;#o;#c;#h;constructor(e={}){this.#i=e.queryCache||new o,this.#a=e.mutationCache||new h,this.#n=e.defaultOptions||{},this.#u=new Map,this.#l=new Map,this.#o=0}mount(){this.#o++,1===this.#o&&(this.#c=f.m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onFocus())}),this.#h=y.t.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onOnline())}))}unmount(){this.#o--,0===this.#o&&(this.#c?.(),this.#c=void 0,this.#h?.(),this.#h=void 0)}isFetching(e){return this.#i.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#a.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),s=this.#i.build(this,t),r=s.state.data;return void 0===r?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,a.d2)(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#i.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,s){let r=this.defaultQueryOptions({queryKey:e}),i=this.#i.get(r.queryHash),n=i?.state.data,u=(0,a.Zw)(t,n);if(void 0!==u)return this.#i.build(this,r).setData(u,{...s,manual:!0})}setQueriesData(e,t,s){return u.jG.batch(()=>this.#i.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,s)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state}removeQueries(e){let t=this.#i;u.jG.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let s=this.#i;return u.jG.batch(()=>(s.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let s={revert:!0,...t};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).map(e=>e.cancel(s)))).then(a.lQ).catch(a.lQ)}invalidateQueries(e,t={}){return u.jG.batch(()=>(this.#i.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let s={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,s);return s.throwOnError||(t=t.catch(a.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(a.lQ)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let s=this.#i.build(this,t);return s.isStaleByTime((0,a.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(a.lQ).catch(a.lQ)}fetchInfiniteQuery(e){return e.behavior=p(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(a.lQ).catch(a.lQ)}ensureInfiniteQueryData(e){return e.behavior=p(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return y.t.isOnline()?this.#a.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#a}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#u.set((0,a.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,a.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,a.F$)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===a.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#a.clear()}}({defaultOptions:{queries:{staleTime:6e4,gcTime:3e5,retry:1,refetchOnWindowFocus:!1}}});var b=s(8838),q=s(4722),v=s(7946),Q=s(3828);let C="jinn-notifications";function O(e){try{localStorage.setItem(C,JSON.stringify(e.slice(0,50)))}catch(e){}}let w=0;var P=s(4723);function j(e){let{children:t}=e,[s,i]=(0,v.useState)([]),[a,n]=(0,v.useState)([]),u=(0,v.useRef)(new Map),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{i(function(){try{let e=localStorage.getItem(C);if(!e)return[];return JSON.parse(e).slice(0,50)}catch(e){return[]}}())},[]),(0,v.useEffect)(()=>{l.current?O(s):s.length>0&&(l.current=!0)},[s]);let o=(0,v.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e));let t=u.current.get(e);t&&(clearTimeout(t),u.current.delete(e))},[]),c=(0,v.useCallback)((e,t)=>{let s=function(e,t){switch(e){case"session:completed":{let e=t.employee||"Session",s=t.error;if(s)return{type:"error",title:"".concat(e," — Error"),message:s.slice(0,120)};return{type:"success",title:"".concat(e," — Done"),message:"Session completed successfully"}}case"cron:triggered":return{type:"info",title:"Cron Triggered",message:t.name||t.jobId||"Job"};case"cron:reloaded":return{type:"info",title:"Cron Reloaded",message:"Scheduled jobs reloaded"};case"cron:completed":{let e=t.name||t.job||"Job",s=t.error;if(s)return{type:"error",title:"Cron Failed: ".concat(e),message:s.slice(0,120)};return{type:"success",title:"Cron Done: ".concat(e),message:"Scheduled job completed successfully"}}case"slack:message":{let e=t.channel||"",s=t.user||t.userName||"Someone",r=t.text||"";return{type:"info",title:"Slack".concat(e?": ".concat(e):""),message:"".concat(s,": ").concat(r).slice(0,120)}}case"session:started":{let e=t.sessionId||"",s=t.employee||"";return{type:"info",title:"Session Started",message:s?"".concat(s," (").concat(e.slice(0,8),")"):e.slice(0,8)}}default:return null}}(e,t);if(!s)return;let r={...s,id:"n_".concat(Date.now(),"_").concat(++w),timestamp:Date.now(),read:!1};i(e=>[r,...e].slice(0,50)),l.current=!0},[]),h=(0,v.useRef)(c);h.current=c,(0,v.useEffect)(()=>{let e=(0,Q.E)((e,t)=>{h.current(e,t)});return()=>e.close()},[]);let d=(0,v.useCallback)(()=>{i(e=>{let t=e.map(e=>e.read?e:{...e,read:!0});return O(t),t})},[]),f=(0,v.useCallback)(e=>{i(t=>{let s=t.map(t=>t.id===e?{...t,read:!0}:t);return O(s),s})},[]),y=(0,v.useCallback)(()=>{i([]),O([])},[]),p=s.filter(e=>!e.read).length;return(0,r.jsx)(P.V.Provider,{value:{notifications:s,unreadCount:p,toasts:a,pushFromEvent:c,dismissToast:o,markAllRead:d,markRead:f,clearAll:y},children:t})}var D=s(2845),k=s(5465),E=s(8565);function M(){let e=(0,i.jE)(),{subscribe:t}=(0,D.G)(),s=(0,v.useRef)(null),r=(0,v.useRef)(new Set);return(0,v.useEffect)(()=>{let i=t((t,i)=>{switch(t){case"session:started":r.current.add("sessions");break;case"session:completed":case"session:error":case"session:deleted":r.current.add("sessions"),r.current.add("costs"),(null==i?void 0:i.sessionId)&&e.invalidateQueries({queryKey:k.l.sessions.detail(i.sessionId)});break;case"cron:completed":case"cron:error":r.current.add("cron");break;case"skills:changed":r.current.add("skills");break;default:return}s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{for(let t of r.current)switch(t){case"sessions":e.invalidateQueries({queryKey:k.l.sessions.all});break;case"costs":e.invalidateQueries({queryKey:["costs"]});break;case"cron":e.invalidateQueries({queryKey:k.l.cron.all});break;case"skills":e.invalidateQueries({queryKey:k.l.skills.all})}r.current.clear()},500)});return()=>{i(),s.current&&clearTimeout(s.current)}},[t,e]),null}function S(e){let{children:t}=e;return(0,r.jsx)(i.Ht,{client:g,children:(0,r.jsx)(b.N,{children:(0,r.jsx)(E.t,{children:(0,r.jsx)(q.Z6,{children:(0,r.jsxs)(j,{children:[t,(0,r.jsx)(q.Qc,{}),(0,r.jsx)(M,{})]})})})})})}},6787:(e,t,s)=>{Promise.resolve().then(s.bind(s,4874)),Promise.resolve().then(s.t.bind(s,8489,23))},8489:()=>{}},e=>{e.O(0,[930,625,155,344,144,358],()=>e(e.s=6787)),_N_E=e.O()}]);
|
package/dist/web/_next/static/chunks/app/logs/{page-b2ea0e6b92c54706.js → page-0f2b58794d9a97ce.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[524],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[524],{6372:(e,a,t)=>{Promise.resolve().then(t.bind(t,6879))},6879:(e,a,t)=>{"use strict";t.r(a),t.d(a,{default:()=>x});var r=t(4130),s=t(7946),l=t(3250);let n=(0,l.A)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),i=(0,l.A)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var c=t(6654),o=t(7192),d=t(8064);function v(e){let{label:a,value:t,color:s,pulse:l}=e;return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] p-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] mb-[var(--space-1)]",children:a}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[l&&t>0&&(0,r.jsx)("span",{className:"animate-error-pulse w-2 h-2 rounded-full bg-[var(--system-red)] shrink-0"}),(0,r.jsx)("span",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)]",style:{color:null!=s?s:"var(--text-primary)"},children:t})]})]})}function x(){let[e,a]=(0,s.useState)([]),[t,l]=(0,s.useState)(!0),[x,p]=(0,s.useState)(!1),[h,m]=(0,s.useState)(null),[u,g]=(0,s.useState)(new Date),[f,b]=(0,s.useState)("just now"),y=(0,s.useCallback)(()=>{p(!0),m(null),c.F.getLogs(500).then(e=>{var t;a(null!=(t=e.lines)?t:[]),g(new Date)}).catch(e=>{m(e instanceof Error?e.message:"Failed to load logs")}).finally(()=>{l(!1),p(!1)})},[]);(0,s.useEffect)(()=>{y();let e=setInterval(y,3e4);return()=>clearInterval(e)},[y]),(0,s.useEffect)(()=>{function e(){let e=Math.floor((Date.now()-u.getTime())/1e3);e<10?b("just now"):e<60?b("".concat(e,"s ago")):b("".concat(Math.floor(e/60),"m ago"))}e();let a=setInterval(e,1e4);return()=>clearInterval(a)},[u]);let j=e.map(d.w),w=j.length,k=j.filter(e=>"error"===e.level).length,N=j.filter(e=>"info"===e.level).length,M=j.filter(e=>"warn"===e.level).length;return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"h-full flex flex-col overflow-hidden animate-fade-in bg-[var(--bg)]",children:[(0,r.jsx)("header",{className:"sticky top-0 z-10 flex-shrink-0 bg-[var(--material-regular)] border-b border-[var(--separator)]",style:{backdropFilter:"blur(40px) saturate(180%)",WebkitBackdropFilter:"blur(40px) saturate(180%)"},children:(0,r.jsxs)("div",{className:"flex items-center justify-between px-[var(--space-6)] py-[var(--space-4)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-[length:var(--text-title1)] font-[var(--weight-bold)] text-[var(--text-primary)] tracking-[-0.5px] leading-[var(--leading-tight)]",children:"Activity Console"}),!t&&(0,r.jsxs)("p",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] mt-[var(--space-1)]",children:[w," event",1!==w?"s":"",k>0&&(0,r.jsxs)("span",{className:"text-[var(--system-red)]",children:[" \xb7 ",k," error",1!==k?"s":""]})]})]}),(0,r.jsx)(o.v,{children:(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)]",children:[(0,r.jsxs)("button",{onClick:()=>window.dispatchEvent(new CustomEvent("open-live-stream")),className:"focus-ring flex items-center py-[6px] px-[14px] rounded-[var(--radius-sm)] border-none cursor-pointer text-[length:var(--text-footnote)] font-[var(--weight-semibold)] gap-1.5 bg-[var(--accent-fill)] text-[var(--accent)] transition-all duration-200 ease-[var(--ease-smooth)]",children:[(0,r.jsx)(n,{size:14}),"Open Live Stream"]}),(0,r.jsxs)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["Updated ",f]}),(0,r.jsx)("button",{onClick:y,className:"focus-ring w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)] border-none bg-transparent text-[var(--text-tertiary)] cursor-pointer transition-colors duration-150 ease-[var(--ease-smooth)]","aria-label":"Refresh logs",children:(0,r.jsx)(i,{size:16,className:x?"animate-spin":""})})]})})]})}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto flex flex-col px-[var(--space-6)] pt-[var(--space-4)] pb-[var(--space-6)] min-h-0",children:[h&&(0,r.jsxs)("div",{className:"mb-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)] rounded-[var(--radius-md)] bg-[rgba(255,69,58,0.06)] border border-[rgba(255,69,58,0.15)] text-[length:var(--text-footnote)] text-[var(--system-red)]",children:["Failed to load logs: ",h]}),t?(0,r.jsx)("div",{className:"flex items-center justify-center h-[200px] text-[var(--text-tertiary)]",children:"Loading..."}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"summary-cards-grid grid grid-cols-4 gap-[var(--space-3)] mb-[var(--space-4)]",children:[(0,r.jsx)(v,{label:"Total Events",value:w}),(0,r.jsx)(v,{label:"Errors",value:k,color:k>0?"var(--system-red)":"var(--system-green)",pulse:!0}),(0,r.jsx)(v,{label:"Info",value:N,color:"var(--system-green)"}),(0,r.jsx)(v,{label:"Warnings",value:M,color:"var(--system-orange)"})]}),(0,r.jsx)(d.b,{lines:e})]})]}),(0,r.jsx)("style",{children:"\n @media (max-width: 640px) {\n .summary-cards-grid {\n grid-template-columns: 1fr 1fr !important;\n }\n }\n "})]})})}}},e=>{e.O(0,[625,51,155,192,344,144,358],()=>e(e.s=6372)),_N_E=e.O()}]);
|
package/dist/web/_next/static/chunks/app/org/{page-05c8d33b3bf07d3d.js → page-e51ef93389a23de8.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[423],{1260:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=a(4085)},3049:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=a(4130),n=a(7946),s=a(9398);function l(e){return{default:e&&"default"in e?e.default:e}}a(8587);let i={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},o=function(e){let t={...i,...e},a=(0,n.lazy)(()=>t.loader().then(l)),o=t.loading;function c(e){let l=o?(0,r.jsx)(o,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,c=i?n.Suspense:n.Fragment,d=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(a,{...e})]}):(0,r.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(a,{...e})});return(0,r.jsx)(c,{...i?{fallback:l}:{},children:d})}return c.displayName="LoadableComponent",c}},3225:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let r=a(5305)._(a(3049));function n(e,t){var a;let n={};"function"==typeof e&&(n.loader=e);let s={...n,...t};return(0,r.default)({...s,modules:null==(a=s.loadableGenerated)?void 0:a.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3637:(e,t,a)=>{"use strict";a.d(t,{Wu:()=>l,Zp:()=>s});var r=a(4130);a(7946);var n=a(6063);function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...a})}},4085:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,a(7299).createAsyncLocalStorage)()},4580:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>C});var r=a(4130),n=a(7946),s=a(3225),l=a.n(s),i=a(6654);let o={executive:"\uD83C\uDFAF",manager:"\uD83D\uDCCB",senior:"⭐",employee:"\uD83D\uDC64"};function c(e){let{rank:t}=e,a={executive:{bg:"color-mix(in srgb, var(--system-purple) 15%, transparent)",text:"var(--system-purple)"},manager:{bg:"color-mix(in srgb, var(--system-blue) 15%, transparent)",text:"var(--system-blue)"},senior:{bg:"color-mix(in srgb, var(--system-green) 15%, transparent)",text:"var(--system-green)"},employee:{bg:"var(--fill-tertiary)",text:"var(--text-tertiary)"}},n=a[t]||a.employee;return(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] px-[10px] py-[2px] rounded-[10px] uppercase tracking-[0.02em]",style:{color:n.text,background:n.bg},children:t})}function d(e){let{name:t}=e,[a,s]=(0,n.useState)(null),[l,d]=(0,n.useState)([]),[x,u]=(0,n.useState)(!0),[p,v]=(0,n.useState)(null),[m,g]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{u(!0),v(null),g(!1),Promise.all([i.F.getEmployee(t),i.F.getSessions()]).then(e=>{let[a,r]=e;s(a),d(r.filter(e=>e.employee===t).slice(0,10))}).catch(e=>v(e.message)).finally(()=>u(!1))},[t]),x)return(0,r.jsx)("div",{className:"flex items-center justify-center h-64 text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."});if(p)return(0,r.jsxs)("div",{className:"rounded-[var(--radius-md,12px)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-caption1)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--system-red) 30%, transparent)"},children:["Failed to load employee: ",p]});if(!a)return null;let f=a.rank||"employee",h=o[f]||o.employee,b=a.persona||"",y=b.length>200&&!m?b.slice(0,200)+"...":b;return(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-6)]",children:[(0,r.jsxs)("div",{className:"rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--material-regular)] p-[var(--space-6)]",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between mb-[var(--space-4)]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)]",children:[(0,r.jsx)("span",{className:"text-[28px] leading-none",children:h}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] tracking-[var(--tracking-tight)] text-[var(--text-primary)] m-0",children:a.displayName||a.name}),(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mt-[2px] mb-0 ml-0 mr-0 font-[family-name:var(--font-mono)]",children:a.name})]})]}),(0,r.jsx)(c,{rank:f})]}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-[var(--space-4)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[var(--tracking-wide)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Department"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-primary)] m-0",children:a.department||"None"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[var(--tracking-wide)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Engine"}),(0,r.jsxs)("p",{className:"text-[length:var(--text-body)] text-[var(--text-primary)] m-0",children:[a.engine||"claude"," ",(0,r.jsxs)("span",{className:"text-[var(--text-tertiary)]",children:["/ ",a.model||"default"]})]})]})]}),b&&(0,r.jsxs)("div",{className:"mt-[var(--space-4)] pt-[var(--space-4)] border-t border-[var(--separator)]",children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[var(--tracking-wide)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Persona"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-secondary)] leading-[var(--leading-relaxed)] whitespace-pre-wrap m-0",children:y}),b.length>200&&(0,r.jsx)("button",{onClick:()=>g(!m),className:"text-[length:var(--text-caption1)] text-[var(--accent)] bg-none border-none cursor-pointer p-0 mt-[var(--space-1)]",children:m?"Show less":"Show more"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] tracking-[var(--tracking-wide)] uppercase text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"Recent Sessions"}),0===l.length?(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] text-center py-[var(--space-6)] px-0",children:"No sessions found for this employee."}):(0,r.jsx)("div",{className:"rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--material-regular)] overflow-hidden",children:l.map((e,t)=>(0,r.jsxs)("div",{className:"px-[var(--space-5)] py-[var(--space-3)] flex items-center justify-between".concat(t>0?" border-t border-[var(--separator)]":""),children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-body)] font-[family-name:var(--font-mono)] text-[var(--text-primary)] m-0",children:e.id.slice(0,8)}),(0,r.jsxs)("p",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-[2px]",children:[e.source||"unknown"," ",e.createdAt?new Date(e.createdAt).toLocaleDateString():""]})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] py-[2px] px-[8px] rounded-[10px]",style:"running"===e.status?{background:"color-mix(in srgb, var(--system-green) 15%, transparent)",color:"var(--system-green)"}:"error"===e.status?{background:"color-mix(in srgb, var(--system-red) 15%, transparent)",color:"var(--system-red)"}:{background:"var(--fill-tertiary)",color:"var(--text-tertiary)"},children:e.status||"idle"})]},e.id))})]})]})}var x=a(3637);let u={executive:"\uD83C\uDFAF",manager:"\uD83D\uDCCB",senior:"⭐",employee:"\uD83D\uDC64"};function p(e){let{employee:t,selected:a,onSelect:n}=e,s=u[t.rank]||u.employee;return(0,r.jsxs)("button",{onClick:n,className:"flex items-center gap-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)] rounded-[var(--radius-md,12px)] bg-[var(--material-regular)] cursor-pointer w-full text-left transition-all duration-150 ease-in-out ".concat(a?"border-[1.5px] border-[var(--accent)]":"border border-[var(--separator)]"),style:{boxShadow:a?"0 0 0 1px var(--accent), var(--shadow-subtle)":"var(--shadow-subtle)"},children:[(0,r.jsx)("span",{className:"text-2xl leading-none shrink-0",children:s}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)] whitespace-nowrap overflow-hidden text-ellipsis leading-[var(--leading-tight)]",children:t.displayName||t.name}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] whitespace-nowrap overflow-hidden text-ellipsis mt-px",children:t.department})]}),(0,r.jsxs)("div",{className:"flex flex-col items-end gap-1 shrink-0",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] text-[var(--accent)] bg-[var(--accent-fill)] px-[7px] py-px rounded-[10px]",children:t.engine}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-medium)] text-[var(--text-quaternary)] bg-[var(--fill-quaternary)] px-[7px] py-px rounded-[10px]",children:t.model})]})]})}function v(e){let{label:t,count:a,children:n}=e;return(0,r.jsx)(x.Zp,{className:"p-0 shadow-none bg-[var(--bg-secondary)] rounded-[var(--radius-lg,16px)] border border-[var(--separator)]",children:(0,r.jsxs)(x.Wu,{className:"p-4 flex flex-col gap-[var(--space-2)]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-1)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] tracking-[var(--tracking-wide)] uppercase text-[var(--text-tertiary)]",children:t}),(0,r.jsxs)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] ml-auto",children:[a," employee",1!==a?"s":""]})]}),n]})})}function m(e){let{employees:t,selectedName:a,onSelect:n}=e,s=new Map,l=[];for(let e of t)if(e.department){let t=s.get(e.department)||[];t.push(e),s.set(e.department,t)}else l.push(e);let i=t.find(e=>"executive"===e.rank);return(0,r.jsxs)("div",{className:"overflow-y-auto p-[var(--space-6)] h-full",children:[i&&(0,r.jsxs)("button",{onClick:()=>n(i),className:"flex items-center gap-[var(--space-5)] w-full px-[var(--space-6)] py-[var(--space-5)] rounded-[var(--radius-xl,20px)] bg-[var(--material-regular)] cursor-pointer text-left mb-[var(--space-6)] transition-all duration-150 ease-in-out ".concat(a===i.name?"border-[1.5px] border-[var(--accent)]":"border border-[var(--separator)]"),style:{boxShadow:a===i.name?"0 0 0 1px var(--accent), var(--shadow-card)":"var(--shadow-card)"},children:[(0,r.jsx)("span",{className:"text-[40px] leading-none",children:u.executive}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] text-[var(--text-primary)] tracking-[var(--tracking-tight)] leading-[var(--leading-tight)]",children:i.displayName||i.name}),(0,r.jsx)("div",{className:"text-[length:var(--text-subheadline)] text-[var(--text-secondary)] mt-0.5",children:i.department})]}),(0,r.jsxs)("div",{className:"flex gap-[var(--space-4)] shrink-0",children:[(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)] leading-none",children:t.length}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-0.5",children:"employees"})]}),(0,r.jsx)("div",{className:"w-px self-stretch bg-[var(--separator)]"}),(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)] leading-none",children:s.size}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-0.5",children:"depts"})]})]})]}),(0,r.jsxs)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-[var(--space-5)] items-start",children:[Array.from(s.entries()).map(e=>{let[t,s]=e,l=s.filter(e=>e.name!==(null==i?void 0:i.name));return 0===l.length?null:(0,r.jsx)(v,{label:t,count:l.length,children:l.map(e=>(0,r.jsx)(p,{employee:e,selected:a===e.name,onSelect:()=>n(e)},e.name))},t)}),l.length>0&&(0,r.jsx)(v,{label:"Unassigned",count:l.filter(e=>e.name!==(null==i?void 0:i.name)).length,children:l.filter(e=>e.name!==(null==i?void 0:i.name)).map(e=>(0,r.jsx)(p,{employee:e,selected:a===e.name,onSelect:()=>n(e)},e.name))})]})]})}var g=a(6063);let f={executive:"\uD83C\uDFAF",manager:"\uD83D\uDCCB",senior:"⭐",employee:"\uD83D\uDC64"};function h(e){let{rank:t}=e,a={executive:{bg:"color-mix(in srgb, var(--system-purple) 15%, transparent)",text:"var(--system-purple)"},manager:{bg:"color-mix(in srgb, var(--system-blue) 15%, transparent)",text:"var(--system-blue)"},senior:{bg:"color-mix(in srgb, var(--system-green) 15%, transparent)",text:"var(--system-green)"},employee:{bg:"var(--fill-tertiary)",text:"var(--text-tertiary)"}},n=a[t]||a.employee;return(0,r.jsx)("span",{className:"rounded-[10px] px-2 py-0.5 text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[0.02em]",style:{color:n.text,background:n.bg},children:t})}function b(e){let{employees:t,selectedName:a,onSelect:n}=e,s={executive:0,manager:1,senior:2,employee:3},l=[...t].sort((e,t)=>{var a,r;return(null!=(a=s[e.rank])?a:3)-(null!=(r=s[t.rank])?r:3)});return(0,r.jsxs)("div",{className:"h-full overflow-y-auto p-[var(--space-6)]",children:[(0,r.jsx)("div",{className:"mb-[var(--space-5)] flex gap-[var(--space-3)]",children:["executive","manager","senior","employee"].map(e=>{let a=t.filter(t=>t.rank===e).length;return(0,r.jsxs)("div",{className:"flex flex-1 items-center gap-[var(--space-3)] rounded-[var(--radius-md,12px)] border border-[var(--separator)] bg-[var(--material-regular)] px-[var(--space-4)] py-[var(--space-3)]",children:[(0,r.jsx)("span",{className:"text-[20px]",children:f[e]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] leading-none text-[var(--text-primary)]",children:a}),(0,r.jsxs)("div",{className:"mt-0.5 text-[length:var(--text-caption2)] capitalize text-[var(--text-tertiary)]",children:[e,"s"]})]})]},e)})}),0===l.length?(0,r.jsx)("div",{className:"px-[var(--space-4)] py-[var(--space-16)] text-center text-[var(--text-tertiary)]",children:(0,r.jsx)("div",{className:"text-[length:var(--text-body)] font-[var(--weight-medium)]",children:"No employees found"})}):(0,r.jsx)("div",{className:"overflow-hidden rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--bg-secondary)]",children:l.map((e,t)=>{let s=a===e.name,l=f[e.rank]||f.employee;return(0,r.jsxs)("button",{onClick:()=>n(e),className:(0,g.cn)("flex w-full items-center gap-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)] text-left transition-colors",s?"bg-[var(--fill-secondary)]":"bg-transparent hover:bg-accent"),style:t>0?{borderTop:"1px solid var(--separator)"}:void 0,children:[(0,r.jsx)("span",{className:"shrink-0 text-[20px] leading-none",children:l}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:e.displayName||e.name}),(0,r.jsx)("span",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption1)] text-[var(--text-quaternary)]",children:e.name})]}),(0,r.jsx)("div",{className:"mt-0.5 flex items-center gap-[var(--space-2)]",children:(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:e.department||"No department"})})]}),(0,r.jsx)(h,{rank:e.rank})]},e.name)})})]})}var y=a(7192),j=a(9664),N=a(4722),w=a(8565);let k=l()(()=>Promise.all([a.e(763),a.e(743),a.e(943)]).then(a.bind(a,7943)).then(e=>({default:e.OrgMap})),{loadableGenerated:{webpack:()=>[7943]},ssr:!1,loading:()=>(0,r.jsx)("div",{className:"flex flex-col items-center justify-center h-full gap-[var(--space-3)] text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading map..."})});function C(){var e,t,a;(0,w.i)([{label:"Organization"}]);let[s,l]=(0,n.useState)([]),[o,c]=(0,n.useState)(!0),[x,u]=(0,n.useState)(null),[p,v]=(0,n.useState)(null),[g,f]=(0,n.useState)("map"),h=(0,n.useRef)(null),{settings:C}=(0,N.t0)(),D=(0,n.useCallback)(()=>{c(!0),u(null),i.F.getOrg().then(async e=>{var t,a;let r=await Promise.all(e.employees.map(async e=>{try{return await i.F.getEmployee(e)}catch(t){return{name:e,displayName:e,department:"",rank:"employee",engine:"unknown",model:"unknown",persona:""}}}));l([{name:(null!=(t=C.portalName)?t:"Jinn").toLowerCase(),displayName:null!=(a=C.portalName)?a:"Jinn",department:"",rank:"executive",engine:"claude",model:"opus",persona:"COO and AI gateway daemon"},...r])}).catch(e=>u(e.message)).finally(()=>c(!1))},[C.portalName]);(0,n.useEffect)(()=>{D()},[D]),(0,n.useEffect)(()=>{p&&h.current&&h.current.focus()},[p]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&p&&v(null)}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[p]);let S=(0,n.useCallback)(e=>{v(e)},[]);return x?(0,r.jsx)(y.M,{children:(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-[var(--space-4)] text-[var(--text-tertiary)]",children:[(0,r.jsxs)("div",{className:"rounded-[var(--radius-md,12px)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-body)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--system-red) 30%, transparent)"},children:["Failed to load organization: ",x]}),(0,r.jsx)("button",{onClick:D,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md,12px)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none cursor-pointer text-[length:var(--text-body)] font-[var(--weight-semibold)]",children:"Retry"})]})}):(0,r.jsx)(y.M,{children:(0,r.jsxs)("div",{className:"flex h-full relative bg-[var(--bg)]",children:[(0,r.jsx)("div",{className:"flex-1 h-full relative",children:(0,r.jsxs)(j.tU,{value:g,onValueChange:f,className:"h-full flex flex-col",children:[(0,r.jsx)("div",{className:"absolute top-[var(--space-4)] left-[var(--space-4)] z-10",children:(0,r.jsxs)(j.j7,{children:[(0,r.jsx)(j.Xi,{value:"map",children:"Map"}),(0,r.jsx)(j.Xi,{value:"grid",children:"Grid"}),(0,r.jsx)(j.Xi,{value:"list",children:"List"})]})}),(0,r.jsx)(j.av,{value:"map",className:"flex-1",children:o?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(k,{employees:s,selectedName:null!=(e=null==p?void 0:p.name)?e:null,onNodeClick:S})}),(0,r.jsx)(j.av,{value:"grid",className:"flex-1 overflow-hidden",children:o?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(m,{employees:s,selectedName:null!=(t=null==p?void 0:p.name)?t:null,onSelect:S})}),(0,r.jsx)(j.av,{value:"list",className:"flex-1 overflow-hidden",children:o?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(b,{employees:s,selectedName:null!=(a=null==p?void 0:p.name)?a:null,onSelect:S})})]})}),p&&(0,r.jsx)("div",{className:"fixed inset-0 z-30 lg:hidden bg-black/50",onClick:()=>v(null)}),p&&(0,r.jsx)("div",{className:"absolute top-0 right-0 bottom-0 z-30",children:(0,r.jsxs)("div",{className:"w-[380px] max-w-[100vw] h-full overflow-y-auto bg-[var(--bg)] flex flex-col shadow-[var(--shadow-overlay)]",children:[(0,r.jsx)("div",{className:"sticky top-0 z-10 flex items-center justify-end px-[var(--space-4)] py-[var(--space-3)] bg-[var(--bg)]",children:(0,r.jsx)("button",{ref:h,onClick:()=>v(null),"aria-label":"Close detail panel",className:"w-[30px] h-[30px] rounded-full flex items-center justify-center bg-[var(--fill-tertiary)] text-[var(--text-secondary)] border-none cursor-pointer text-sm",children:"✕"})}),(0,r.jsx)("div",{className:"px-[var(--space-4)] pb-[var(--space-6)]",children:(0,r.jsx)(d,{name:p.name})})]})})]})})}},5580:(e,t,a)=>{Promise.resolve().then(a.bind(a,4580))},7299:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return s},createSnapshot:function(){return i}});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class r{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let n="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function s(){return n?new n:new r}function l(e){return n?n.bind(e):r.bind(e)}function i(){return n?n.snapshot():function(e,...t){return e(...t)}}},8587:(e,t,a)=>{"use strict";function r(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),a(4130),a(1383),a(1260),a(9833)},9398:(e,t,a)=>{"use strict";function r(e){let{reason:t,children:a}=e;return a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),a(3074)},9664:(e,t,a)=>{"use strict";a.d(t,{tU:()=>P,av:()=>L,j7:()=>F,Xi:()=>z});var r=a(4130),n=a(7946),s=a(4322),l=a(3397),i=a(5773),o=a(9458),c=a(4127),d=a(5822),x=a(7058),u=a(4068),p=a(5380),v="Tabs",[m,g]=(0,i.A)(v,[o.RG]),f=(0,o.RG)(),[h,b]=m(v),y=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,onValueChange:s,defaultValue:l,orientation:i="horizontal",dir:o,activationMode:c="automatic",...m}=e,g=(0,x.jH)(o),[f,b]=(0,u.i)({prop:n,onChange:s,defaultProp:null!=l?l:"",caller:v});return(0,r.jsx)(h,{scope:a,baseId:(0,p.B)(),value:f,onValueChange:b,orientation:i,dir:g,activationMode:c,children:(0,r.jsx)(d.sG.div,{dir:g,"data-orientation":i,...m,ref:t})})});y.displayName=v;var j="TabsList",N=n.forwardRef((e,t)=>{let{__scopeTabs:a,loop:n=!0,...s}=e,l=b(j,a),i=f(a);return(0,r.jsx)(o.bL,{asChild:!0,...i,orientation:l.orientation,dir:l.dir,loop:n,children:(0,r.jsx)(d.sG.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:t})})});N.displayName=j;var w="TabsTrigger",k=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,disabled:s=!1,...i}=e,c=b(w,a),x=f(a),u=S(c.baseId,n),p=_(c.baseId,n),v=n===c.value;return(0,r.jsx)(o.q7,{asChild:!0,...x,focusable:!s,active:v,children:(0,r.jsx)(d.sG.button,{type:"button",role:"tab","aria-selected":v,"aria-controls":p,"data-state":v?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:u,...i,ref:t,onMouseDown:(0,l.mK)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,l.mK)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,l.mK)(e.onFocus,()=>{let e="manual"!==c.activationMode;v||s||!e||c.onValueChange(n)})})})});k.displayName=w;var C="TabsContent",D=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,forceMount:l,children:i,...o}=e,x=b(C,a),u=S(x.baseId,s),p=_(x.baseId,s),v=s===x.value,m=n.useRef(v);return n.useEffect(()=>{let e=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.jsx)(c.C,{present:l||v,children:a=>{let{present:n}=a;return(0,r.jsx)(d.sG.div,{"data-state":v?"active":"inactive","data-orientation":x.orientation,role:"tabpanel","aria-labelledby":u,hidden:!n,id:p,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0},children:n&&i})}})});function S(e,t){return"".concat(e,"-trigger-").concat(t)}function _(e,t){return"".concat(e,"-content-").concat(t)}D.displayName=C;var O=a(6063);function P(e){let{className:t,orientation:a="horizontal",...n}=e;return(0,r.jsx)(y,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,O.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...n})}let E=(0,s.F)("rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function F(e){let{className:t,variant:a="default",...n}=e;return(0,r.jsx)(N,{"data-slot":"tabs-list","data-variant":a,className:(0,O.cn)(E({variant:a}),t),...n})}function z(e){let{className:t,...a}=e;return(0,r.jsx)(k,{"data-slot":"tabs-trigger",className:(0,O.cn)("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground","after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...a})}function L(e){let{className:t,...a}=e;return(0,r.jsx)(D,{"data-slot":"tabs-content",className:(0,O.cn)("flex-1 outline-none",t),...a})}}},e=>{e.O(0,[625,51,458,155,192,344,144,358],()=>e(e.s=5580)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[423],{1260:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=a(4085)},3049:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=a(4130),n=a(7946),s=a(9398);function l(e){return{default:e&&"default"in e?e.default:e}}a(8587);let i={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},o=function(e){let t={...i,...e},a=(0,n.lazy)(()=>t.loader().then(l)),o=t.loading;function c(e){let l=o?(0,r.jsx)(o,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,c=i?n.Suspense:n.Fragment,d=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(a,{...e})]}):(0,r.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(a,{...e})});return(0,r.jsx)(c,{...i?{fallback:l}:{},children:d})}return c.displayName="LoadableComponent",c}},3225:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let r=a(5305)._(a(3049));function n(e,t){var a;let n={};"function"==typeof e&&(n.loader=e);let s={...n,...t};return(0,r.default)({...s,modules:null==(a=s.loadableGenerated)?void 0:a.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3637:(e,t,a)=>{"use strict";a.d(t,{Wu:()=>l,Zp:()=>s});var r=a(4130);a(7946);var n=a(6063);function s(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,n.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function l(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,n.cn)("px-6",t),...a})}},4085:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,a(7299).createAsyncLocalStorage)()},4580:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>C});var r=a(4130),n=a(7946),s=a(3225),l=a.n(s),i=a(6654);let o={executive:"\uD83C\uDFAF",manager:"\uD83D\uDCCB",senior:"⭐",employee:"\uD83D\uDC64"};function c(e){let{rank:t}=e,a={executive:{bg:"color-mix(in srgb, var(--system-purple) 15%, transparent)",text:"var(--system-purple)"},manager:{bg:"color-mix(in srgb, var(--system-blue) 15%, transparent)",text:"var(--system-blue)"},senior:{bg:"color-mix(in srgb, var(--system-green) 15%, transparent)",text:"var(--system-green)"},employee:{bg:"var(--fill-tertiary)",text:"var(--text-tertiary)"}},n=a[t]||a.employee;return(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] px-[10px] py-[2px] rounded-[10px] uppercase tracking-[0.02em]",style:{color:n.text,background:n.bg},children:t})}function d(e){let{name:t}=e,[a,s]=(0,n.useState)(null),[l,d]=(0,n.useState)([]),[x,u]=(0,n.useState)(!0),[p,v]=(0,n.useState)(null),[m,g]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{u(!0),v(null),g(!1),Promise.all([i.F.getEmployee(t),i.F.getSessions()]).then(e=>{let[a,r]=e;s(a),d(r.filter(e=>e.employee===t).slice(0,10))}).catch(e=>v(e.message)).finally(()=>u(!1))},[t]),x)return(0,r.jsx)("div",{className:"flex items-center justify-center h-64 text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."});if(p)return(0,r.jsxs)("div",{className:"rounded-[var(--radius-md,12px)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-caption1)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--system-red) 30%, transparent)"},children:["Failed to load employee: ",p]});if(!a)return null;let f=a.rank||"employee",h=o[f]||o.employee,b=a.persona||"",y=b.length>200&&!m?b.slice(0,200)+"...":b;return(0,r.jsxs)("div",{className:"flex flex-col gap-[var(--space-6)]",children:[(0,r.jsxs)("div",{className:"rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--material-regular)] p-[var(--space-6)]",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between mb-[var(--space-4)]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)]",children:[(0,r.jsx)("span",{className:"text-[28px] leading-none",children:h}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] tracking-[var(--tracking-tight)] text-[var(--text-primary)] m-0",children:a.displayName||a.name}),(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mt-[2px] mb-0 ml-0 mr-0 font-[family-name:var(--font-mono)]",children:a.name})]})]}),(0,r.jsx)(c,{rank:f})]}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-[var(--space-4)]",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[var(--tracking-wide)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Department"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-primary)] m-0",children:a.department||"None"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[var(--tracking-wide)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Engine"}),(0,r.jsxs)("p",{className:"text-[length:var(--text-body)] text-[var(--text-primary)] m-0",children:[a.engine||"claude"," ",(0,r.jsxs)("span",{className:"text-[var(--text-tertiary)]",children:["/ ",a.model||"default"]})]})]})]}),b&&(0,r.jsxs)("div",{className:"mt-[var(--space-4)] pt-[var(--space-4)] border-t border-[var(--separator)]",children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[var(--tracking-wide)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Persona"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-secondary)] leading-[var(--leading-relaxed)] whitespace-pre-wrap m-0",children:y}),b.length>200&&(0,r.jsx)("button",{onClick:()=>g(!m),className:"text-[length:var(--text-caption1)] text-[var(--accent)] bg-none border-none cursor-pointer p-0 mt-[var(--space-1)]",children:m?"Show less":"Show more"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] tracking-[var(--tracking-wide)] uppercase text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"Recent Sessions"}),0===l.length?(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] text-center py-[var(--space-6)] px-0",children:"No sessions found for this employee."}):(0,r.jsx)("div",{className:"rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--material-regular)] overflow-hidden",children:l.map((e,t)=>(0,r.jsxs)("div",{className:"px-[var(--space-5)] py-[var(--space-3)] flex items-center justify-between".concat(t>0?" border-t border-[var(--separator)]":""),children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-body)] font-[family-name:var(--font-mono)] text-[var(--text-primary)] m-0",children:e.id.slice(0,8)}),(0,r.jsxs)("p",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-[2px]",children:[e.source||"unknown"," ",e.createdAt?new Date(e.createdAt).toLocaleDateString():""]})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] py-[2px] px-[8px] rounded-[10px]",style:"running"===e.status?{background:"color-mix(in srgb, var(--system-green) 15%, transparent)",color:"var(--system-green)"}:"error"===e.status?{background:"color-mix(in srgb, var(--system-red) 15%, transparent)",color:"var(--system-red)"}:{background:"var(--fill-tertiary)",color:"var(--text-tertiary)"},children:e.status||"idle"})]},e.id))})]})]})}var x=a(3637);let u={executive:"\uD83C\uDFAF",manager:"\uD83D\uDCCB",senior:"⭐",employee:"\uD83D\uDC64"};function p(e){let{employee:t,selected:a,onSelect:n}=e,s=u[t.rank]||u.employee;return(0,r.jsxs)("button",{onClick:n,className:"flex items-center gap-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)] rounded-[var(--radius-md,12px)] bg-[var(--material-regular)] cursor-pointer w-full text-left transition-all duration-150 ease-in-out ".concat(a?"border-[1.5px] border-[var(--accent)]":"border border-[var(--separator)]"),style:{boxShadow:a?"0 0 0 1px var(--accent), var(--shadow-subtle)":"var(--shadow-subtle)"},children:[(0,r.jsx)("span",{className:"text-2xl leading-none shrink-0",children:s}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)] whitespace-nowrap overflow-hidden text-ellipsis leading-[var(--leading-tight)]",children:t.displayName||t.name}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] whitespace-nowrap overflow-hidden text-ellipsis mt-px",children:t.department})]}),(0,r.jsxs)("div",{className:"flex flex-col items-end gap-1 shrink-0",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-semibold)] text-[var(--accent)] bg-[var(--accent-fill)] px-[7px] py-px rounded-[10px]",children:t.engine}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[var(--weight-medium)] text-[var(--text-quaternary)] bg-[var(--fill-quaternary)] px-[7px] py-px rounded-[10px]",children:t.model})]})]})}function v(e){let{label:t,count:a,children:n}=e;return(0,r.jsx)(x.Zp,{className:"p-0 shadow-none bg-[var(--bg-secondary)] rounded-[var(--radius-lg,16px)] border border-[var(--separator)]",children:(0,r.jsxs)(x.Wu,{className:"p-4 flex flex-col gap-[var(--space-2)]",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-1)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] tracking-[var(--tracking-wide)] uppercase text-[var(--text-tertiary)]",children:t}),(0,r.jsxs)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] ml-auto",children:[a," employee",1!==a?"s":""]})]}),n]})})}function m(e){let{employees:t,selectedName:a,onSelect:n}=e,s=new Map,l=[];for(let e of t)if(e.department){let t=s.get(e.department)||[];t.push(e),s.set(e.department,t)}else l.push(e);let i=t.find(e=>"executive"===e.rank);return(0,r.jsxs)("div",{className:"overflow-y-auto p-[var(--space-6)] h-full",children:[i&&(0,r.jsxs)("button",{onClick:()=>n(i),className:"flex items-center gap-[var(--space-5)] w-full px-[var(--space-6)] py-[var(--space-5)] rounded-[var(--radius-xl,20px)] bg-[var(--material-regular)] cursor-pointer text-left mb-[var(--space-6)] transition-all duration-150 ease-in-out ".concat(a===i.name?"border-[1.5px] border-[var(--accent)]":"border border-[var(--separator)]"),style:{boxShadow:a===i.name?"0 0 0 1px var(--accent), var(--shadow-card)":"var(--shadow-card)"},children:[(0,r.jsx)("span",{className:"text-[40px] leading-none",children:u.executive}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] text-[var(--text-primary)] tracking-[var(--tracking-tight)] leading-[var(--leading-tight)]",children:i.displayName||i.name}),(0,r.jsx)("div",{className:"text-[length:var(--text-subheadline)] text-[var(--text-secondary)] mt-0.5",children:i.department})]}),(0,r.jsxs)("div",{className:"flex gap-[var(--space-4)] shrink-0",children:[(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)] leading-none",children:t.length}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-0.5",children:"employees"})]}),(0,r.jsx)("div",{className:"w-px self-stretch bg-[var(--separator)]"}),(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] text-[var(--text-primary)] leading-none",children:s.size}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-0.5",children:"depts"})]})]})]}),(0,r.jsxs)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-[var(--space-5)] items-start",children:[Array.from(s.entries()).map(e=>{let[t,s]=e,l=s.filter(e=>e.name!==(null==i?void 0:i.name));return 0===l.length?null:(0,r.jsx)(v,{label:t,count:l.length,children:l.map(e=>(0,r.jsx)(p,{employee:e,selected:a===e.name,onSelect:()=>n(e)},e.name))},t)}),l.length>0&&(0,r.jsx)(v,{label:"Unassigned",count:l.filter(e=>e.name!==(null==i?void 0:i.name)).length,children:l.filter(e=>e.name!==(null==i?void 0:i.name)).map(e=>(0,r.jsx)(p,{employee:e,selected:a===e.name,onSelect:()=>n(e)},e.name))})]})]})}var g=a(6063);let f={executive:"\uD83C\uDFAF",manager:"\uD83D\uDCCB",senior:"⭐",employee:"\uD83D\uDC64"};function h(e){let{rank:t}=e,a={executive:{bg:"color-mix(in srgb, var(--system-purple) 15%, transparent)",text:"var(--system-purple)"},manager:{bg:"color-mix(in srgb, var(--system-blue) 15%, transparent)",text:"var(--system-blue)"},senior:{bg:"color-mix(in srgb, var(--system-green) 15%, transparent)",text:"var(--system-green)"},employee:{bg:"var(--fill-tertiary)",text:"var(--text-tertiary)"}},n=a[t]||a.employee;return(0,r.jsx)("span",{className:"rounded-[10px] px-2 py-0.5 text-[length:var(--text-caption2)] font-[var(--weight-semibold)] uppercase tracking-[0.02em]",style:{color:n.text,background:n.bg},children:t})}function b(e){let{employees:t,selectedName:a,onSelect:n}=e,s={executive:0,manager:1,senior:2,employee:3},l=[...t].sort((e,t)=>{var a,r;return(null!=(a=s[e.rank])?a:3)-(null!=(r=s[t.rank])?r:3)});return(0,r.jsxs)("div",{className:"h-full overflow-y-auto p-[var(--space-6)]",children:[(0,r.jsx)("div",{className:"mb-[var(--space-5)] flex gap-[var(--space-3)]",children:["executive","manager","senior","employee"].map(e=>{let a=t.filter(t=>t.rank===e).length;return(0,r.jsxs)("div",{className:"flex flex-1 items-center gap-[var(--space-3)] rounded-[var(--radius-md,12px)] border border-[var(--separator)] bg-[var(--material-regular)] px-[var(--space-4)] py-[var(--space-3)]",children:[(0,r.jsx)("span",{className:"text-[20px]",children:f[e]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-bold)] leading-none text-[var(--text-primary)]",children:a}),(0,r.jsxs)("div",{className:"mt-0.5 text-[length:var(--text-caption2)] capitalize text-[var(--text-tertiary)]",children:[e,"s"]})]})]},e)})}),0===l.length?(0,r.jsx)("div",{className:"px-[var(--space-4)] py-[var(--space-16)] text-center text-[var(--text-tertiary)]",children:(0,r.jsx)("div",{className:"text-[length:var(--text-body)] font-[var(--weight-medium)]",children:"No employees found"})}):(0,r.jsx)("div",{className:"overflow-hidden rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--bg-secondary)]",children:l.map((e,t)=>{let s=a===e.name,l=f[e.rank]||f.employee;return(0,r.jsxs)("button",{onClick:()=>n(e),className:(0,g.cn)("flex w-full items-center gap-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)] text-left transition-colors",s?"bg-[var(--fill-secondary)]":"bg-transparent hover:bg-accent"),style:t>0?{borderTop:"1px solid var(--separator)"}:void 0,children:[(0,r.jsx)("span",{className:"shrink-0 text-[20px] leading-none",children:l}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:e.displayName||e.name}),(0,r.jsx)("span",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption1)] text-[var(--text-quaternary)]",children:e.name})]}),(0,r.jsx)("div",{className:"mt-0.5 flex items-center gap-[var(--space-2)]",children:(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:e.department||"No department"})})]}),(0,r.jsx)(h,{rank:e.rank})]},e.name)})})]})}var y=a(7192),j=a(9664),N=a(4722),w=a(8565);let k=l()(()=>Promise.all([a.e(763),a.e(743),a.e(943)]).then(a.bind(a,7943)).then(e=>({default:e.OrgMap})),{loadableGenerated:{webpack:()=>[7943]},ssr:!1,loading:()=>(0,r.jsx)("div",{className:"flex flex-col items-center justify-center h-full gap-[var(--space-3)] text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading map..."})});function C(){var e,t,a;(0,w.i)([{label:"Organization"}]);let[s,l]=(0,n.useState)([]),[o,c]=(0,n.useState)(!0),[x,u]=(0,n.useState)(null),[p,v]=(0,n.useState)(null),[g,f]=(0,n.useState)("map"),h=(0,n.useRef)(null),{settings:C}=(0,N.t0)(),D=(0,n.useCallback)(()=>{c(!0),u(null),i.F.getOrg().then(async e=>{var t,a;let r=await Promise.all(e.employees.map(async e=>{try{return await i.F.getEmployee(e)}catch(t){return{name:e,displayName:e,department:"",rank:"employee",engine:"unknown",model:"unknown",persona:""}}}));l([{name:(null!=(t=C.portalName)?t:"Jinn").toLowerCase(),displayName:null!=(a=C.portalName)?a:"Jinn",department:"",rank:"executive",engine:"claude",model:"opus",persona:"COO and AI gateway daemon"},...r])}).catch(e=>u(e.message)).finally(()=>c(!1))},[C.portalName]);(0,n.useEffect)(()=>{D()},[D]),(0,n.useEffect)(()=>{p&&h.current&&h.current.focus()},[p]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&p&&v(null)}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[p]);let S=(0,n.useCallback)(e=>{v(e)},[]);return x?(0,r.jsx)(y.M,{children:(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-[var(--space-4)] text-[var(--text-tertiary)]",children:[(0,r.jsxs)("div",{className:"rounded-[var(--radius-md,12px)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-body)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--system-red) 30%, transparent)"},children:["Failed to load organization: ",x]}),(0,r.jsx)("button",{onClick:D,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md,12px)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none cursor-pointer text-[length:var(--text-body)] font-[var(--weight-semibold)]",children:"Retry"})]})}):(0,r.jsx)(y.M,{children:(0,r.jsxs)("div",{className:"flex h-full relative bg-[var(--bg)]",children:[(0,r.jsx)("div",{className:"flex-1 h-full relative",children:(0,r.jsxs)(j.tU,{value:g,onValueChange:f,className:"h-full flex flex-col",children:[(0,r.jsx)("div",{className:"absolute top-[var(--space-4)] left-[var(--space-4)] z-10",children:(0,r.jsxs)(j.j7,{children:[(0,r.jsx)(j.Xi,{value:"map",children:"Map"}),(0,r.jsx)(j.Xi,{value:"grid",children:"Grid"}),(0,r.jsx)(j.Xi,{value:"list",children:"List"})]})}),(0,r.jsx)(j.av,{value:"map",className:"flex-1",children:o?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(k,{employees:s,selectedName:null!=(e=null==p?void 0:p.name)?e:null,onNodeClick:S})}),(0,r.jsx)(j.av,{value:"grid",className:"flex-1 overflow-hidden",children:o?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(m,{employees:s,selectedName:null!=(t=null==p?void 0:p.name)?t:null,onSelect:S})}),(0,r.jsx)(j.av,{value:"list",className:"flex-1 overflow-hidden",children:o?(0,r.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:"Loading..."}):(0,r.jsx)(b,{employees:s,selectedName:null!=(a=null==p?void 0:p.name)?a:null,onSelect:S})})]})}),p&&(0,r.jsx)("div",{className:"fixed inset-0 z-30 lg:hidden bg-black/50",onClick:()=>v(null)}),p&&(0,r.jsx)("div",{className:"absolute top-0 right-0 bottom-0 z-30",children:(0,r.jsxs)("div",{className:"w-[380px] max-w-[100vw] h-full overflow-y-auto bg-[var(--bg)] flex flex-col shadow-[var(--shadow-overlay)]",children:[(0,r.jsx)("div",{className:"sticky top-0 z-10 flex items-center justify-end px-[var(--space-4)] py-[var(--space-3)] bg-[var(--bg)]",children:(0,r.jsx)("button",{ref:h,onClick:()=>v(null),"aria-label":"Close detail panel",className:"w-[30px] h-[30px] rounded-full flex items-center justify-center bg-[var(--fill-tertiary)] text-[var(--text-secondary)] border-none cursor-pointer text-sm",children:"✕"})}),(0,r.jsx)("div",{className:"px-[var(--space-4)] pb-[var(--space-6)]",children:(0,r.jsx)(d,{name:p.name})})]})})]})})}},6005:(e,t,a)=>{Promise.resolve().then(a.bind(a,4580))},7299:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return s},createSnapshot:function(){return i}});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class r{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let n="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function s(){return n?new n:new r}function l(e){return n?n.bind(e):r.bind(e)}function i(){return n?n.snapshot():function(e,...t){return e(...t)}}},8587:(e,t,a)=>{"use strict";function r(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),a(4130),a(1383),a(1260),a(9833)},9398:(e,t,a)=>{"use strict";function r(e){let{reason:t,children:a}=e;return a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),a(3074)},9664:(e,t,a)=>{"use strict";a.d(t,{tU:()=>P,av:()=>L,j7:()=>F,Xi:()=>z});var r=a(4130),n=a(7946),s=a(4322),l=a(3397),i=a(5773),o=a(9458),c=a(4127),d=a(5822),x=a(7058),u=a(4068),p=a(5380),v="Tabs",[m,g]=(0,i.A)(v,[o.RG]),f=(0,o.RG)(),[h,b]=m(v),y=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,onValueChange:s,defaultValue:l,orientation:i="horizontal",dir:o,activationMode:c="automatic",...m}=e,g=(0,x.jH)(o),[f,b]=(0,u.i)({prop:n,onChange:s,defaultProp:null!=l?l:"",caller:v});return(0,r.jsx)(h,{scope:a,baseId:(0,p.B)(),value:f,onValueChange:b,orientation:i,dir:g,activationMode:c,children:(0,r.jsx)(d.sG.div,{dir:g,"data-orientation":i,...m,ref:t})})});y.displayName=v;var j="TabsList",N=n.forwardRef((e,t)=>{let{__scopeTabs:a,loop:n=!0,...s}=e,l=b(j,a),i=f(a);return(0,r.jsx)(o.bL,{asChild:!0,...i,orientation:l.orientation,dir:l.dir,loop:n,children:(0,r.jsx)(d.sG.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:t})})});N.displayName=j;var w="TabsTrigger",k=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,disabled:s=!1,...i}=e,c=b(w,a),x=f(a),u=S(c.baseId,n),p=_(c.baseId,n),v=n===c.value;return(0,r.jsx)(o.q7,{asChild:!0,...x,focusable:!s,active:v,children:(0,r.jsx)(d.sG.button,{type:"button",role:"tab","aria-selected":v,"aria-controls":p,"data-state":v?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:u,...i,ref:t,onMouseDown:(0,l.mK)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,l.mK)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,l.mK)(e.onFocus,()=>{let e="manual"!==c.activationMode;v||s||!e||c.onValueChange(n)})})})});k.displayName=w;var C="TabsContent",D=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,forceMount:l,children:i,...o}=e,x=b(C,a),u=S(x.baseId,s),p=_(x.baseId,s),v=s===x.value,m=n.useRef(v);return n.useEffect(()=>{let e=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.jsx)(c.C,{present:l||v,children:a=>{let{present:n}=a;return(0,r.jsx)(d.sG.div,{"data-state":v?"active":"inactive","data-orientation":x.orientation,role:"tabpanel","aria-labelledby":u,hidden:!n,id:p,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0},children:n&&i})}})});function S(e,t){return"".concat(e,"-trigger-").concat(t)}function _(e,t){return"".concat(e,"-content-").concat(t)}D.displayName=C;var O=a(6063);function P(e){let{className:t,orientation:a="horizontal",...n}=e;return(0,r.jsx)(y,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,O.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...n})}let E=(0,s.F)("rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function F(e){let{className:t,variant:a="default",...n}=e;return(0,r.jsx)(N,{"data-slot":"tabs-list","data-variant":a,className:(0,O.cn)(E({variant:a}),t),...n})}function z(e){let{className:t,...a}=e;return(0,r.jsx)(k,{"data-slot":"tabs-trigger",className:(0,O.cn)("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground","after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...a})}function L(e){let{className:t,...a}=e;return(0,r.jsx)(D,{"data-slot":"tabs-content",className:(0,O.cn)("flex-1 outline-none",t),...a})}}},e=>{e.O(0,[625,51,458,155,192,344,144,358],()=>e(e.s=6005)),_N_E=e.O()}]);
|
package/dist/web/_next/static/chunks/app/{page-57dcf41f8ef011a7.js → page-16b78d2823b60898.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{2503:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>w});var r=a(4130),s=a(7946),n=a(5233),i=a.n(n),c=a(6654),l=a(2845),d=a(4722),x=a(7192),o=a(8565),h=a(3637),p=a(1004),v=a(3250);let m=(0,v.A)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]),y=(0,v.A)("square-kanban",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}]]),g=(0,v.A)("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"}]]);var u=a(7103),f=a(216),j=a(4481),b=a(8831);let k=(0,v.A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),N=(0,v.A)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);function w(){var e,t,a,n;(0,o.i)([{label:"Dashboard"}]);let{settings:v}=(0,d.t0)(),w=null!=(t=v.portalName)?t:"Jinn",[M,A]=(0,s.useState)(null),[z,S]=(0,s.useState)(null),[q,C]=(0,s.useState)(null),[W,Z]=(0,s.useState)([]),{events:O,connected:_}=(0,l.G)();(0,s.useEffect)(()=>{c.F.getOnboarding().then(e=>{e.needed&&(window.location.href="/chat?onboarding=1")}).catch(()=>{}),c.F.getStatus().then(e=>A(e)).catch(e=>C(e.message)),c.F.getCronJobs().then(e=>S(e.length)).catch(()=>{}),c.F.getActivity().then(e=>{Z(e.map(e=>({event:e.event,payload:e.payload})))}).catch(()=>{})},[]);let E=(null==M?void 0:M.engines)&&null!=(a=Object.keys(M.engines)[0])?a:"--",F=[...O.length>0?O:W].reverse().slice(0,20);return(0,r.jsx)(x.M,{children:(0,r.jsxs)("div",{className:"h-full overflow-y-auto p-[var(--space-6)]",children:[(0,r.jsxs)("div",{className:"mb-[var(--space-6)]",children:[(0,r.jsx)("h2",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] text-[var(--text-primary)] mb-[var(--space-1)]",children:"Dashboard"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-tertiary)]",children:"Gateway overview and live activity"})]}),q&&(0,r.jsxs)("div",{className:"mb-[var(--space-4)] rounded-[var(--radius-md,12px)] border px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-body)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 10%, transparent)",borderColor:"color-mix(in srgb, var(--system-red) 30%, transparent)"},children:["Failed to connect: ",q]}),(0,r.jsxs)("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(200px,1fr))] gap-[var(--space-4)] mb-[var(--space-6)]",children:[(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--system-blue)]",style:{background:"color-mix(in srgb, var(--system-blue) 12%, transparent)"},children:(0,r.jsx)(j.A,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Uptime"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:(null==M?void 0:M.uptime)!=null?function(e){let t=Math.floor(e/86400),a=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?"".concat(t,"d ").concat(a,"h ").concat(r,"m"):a>0?"".concat(a,"h ").concat(r,"m"):"".concat(r,"m")}(M.uptime):"--"})]})]})}),(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--system-green)]",style:{background:"color-mix(in srgb, var(--system-green) 12%, transparent)"},children:(0,r.jsx)(b.A,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Active Sessions"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:null!=(n=null==M||null==(e=M.sessions)?void 0:e.active)?n:"--"})]})]})}),(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--accent)]",style:{background:"color-mix(in srgb, var(--accent) 12%, transparent)"},children:(0,r.jsx)(k,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Engines"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)] capitalize",children:E})]})]})}),(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--system-orange)]",style:{background:"color-mix(in srgb, var(--system-orange) 12%, transparent)"},children:(0,r.jsx)(N,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Cron Jobs"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:null!=z?z:"--"})]})]})})]}),(0,r.jsxs)("div",{className:"mb-[var(--space-6)]",children:[(0,r.jsx)("h3",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)] mb-[var(--space-3)]",children:"Quick Links"}),(0,r.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-[var(--space-3)]",children:[{href:"/chat",icon:p.A,name:"Chat",description:"Talk to ".concat(w," directly")},{href:"/org",icon:m,name:"Organization",description:"View employees and departments"},{href:"/kanban",icon:y,name:"Kanban",description:"Manage tasks and boards"},{href:"/cron",icon:g,name:"Cron",description:"Scheduled jobs and automations"},{href:"/costs",icon:u.A,name:"Costs",description:"API usage and spending"},{href:"/logs",icon:f.A,name:"Activity",description:"Logs and event stream"}].map(e=>{let t=e.icon;return(0,r.jsx)(i(),{href:e.href,className:"no-underline",children:(0,r.jsx)(h.Zp,{className:"py-4 h-full cursor-pointer transition-colors hover:border-[var(--accent)]",children:(0,r.jsxs)(h.Wu,{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"w-9 h-9 rounded-[var(--radius-sm,8px)] bg-[var(--fill-secondary)] flex items-center justify-center text-[var(--accent)]",children:(0,r.jsx)(t,{size:18})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:e.name}),(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mt-0.5",children:e.description})]})]})})},e.href)})})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-3)]",children:[(0,r.jsx)("h3",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:"Recent Activity"}),(0,r.jsx)("span",{className:"w-2 h-2 rounded-full inline-block ".concat(_?"bg-[var(--system-green)]":"bg-[var(--text-quaternary)]")})]}),(0,r.jsx)(h.Zp,{className:"py-0 overflow-hidden",children:0===F.length?(0,r.jsx)("div",{className:"p-[var(--space-6)] text-center text-[length:var(--text-body)] text-[var(--text-tertiary)]",children:"Waiting for events..."}):(0,r.jsx)("div",{className:"max-h-80 overflow-y-auto",children:F.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-start gap-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)]",style:t<F.length-1?{borderBottom:"1px solid var(--separator)"}:void 0,children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--accent)] rounded-[var(--radius-sm,8px)] whitespace-nowrap mt-px px-2 py-0.5",style:{background:"color-mix(in srgb, var(--accent) 10%, transparent)"},children:e.event}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--text-tertiary)] flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:JSON.stringify(e.payload)}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] whitespace-nowrap",children:new Date(Date.now()-(F.length-1-t)*1e3).toLocaleTimeString()})]},t))})})]})]})})}},3637:(e,t,a)=>{"use strict";a.d(t,{Wu:()=>i,Zp:()=>n});var r=a(4130);a(7946);var s=a(6063);function n(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,s.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function i(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,s.cn)("px-6",t),...a})}},9537:(e,t,a)=>{Promise.resolve().then(a.bind(a,2503))}},e=>{e.O(0,[625,51,155,192,344,144,358],()=>e(e.s=9537)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{2503:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>w});var r=a(4130),s=a(7946),n=a(7614),i=a.n(n),c=a(6654),l=a(2845),d=a(4722),x=a(7192),o=a(8565),h=a(3637),p=a(1004),v=a(3250);let m=(0,v.A)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]),y=(0,v.A)("square-kanban",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 7v7",key:"1x2jlm"}],["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M16 7v9",key:"1hp2iy"}]]),g=(0,v.A)("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"}]]);var u=a(7103),f=a(216),j=a(4481),b=a(8831);let k=(0,v.A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),N=(0,v.A)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);function w(){var e,t,a,n;(0,o.i)([{label:"Dashboard"}]);let{settings:v}=(0,d.t0)(),w=null!=(t=v.portalName)?t:"Jinn",[M,A]=(0,s.useState)(null),[z,S]=(0,s.useState)(null),[q,C]=(0,s.useState)(null),[W,Z]=(0,s.useState)([]),{events:O,connected:_}=(0,l.G)();(0,s.useEffect)(()=>{c.F.getOnboarding().then(e=>{e.needed&&(window.location.href="/chat?onboarding=1")}).catch(()=>{}),c.F.getStatus().then(e=>A(e)).catch(e=>C(e.message)),c.F.getCronJobs().then(e=>S(e.length)).catch(()=>{}),c.F.getActivity().then(e=>{Z(e.map(e=>({event:e.event,payload:e.payload})))}).catch(()=>{})},[]);let E=(null==M?void 0:M.engines)&&null!=(a=Object.keys(M.engines)[0])?a:"--",F=[...O.length>0?O:W].reverse().slice(0,20);return(0,r.jsx)(x.M,{children:(0,r.jsxs)("div",{className:"h-full overflow-y-auto p-[var(--space-6)]",children:[(0,r.jsxs)("div",{className:"mb-[var(--space-6)]",children:[(0,r.jsx)("h2",{className:"text-[length:var(--text-title2)] font-[var(--weight-bold)] text-[var(--text-primary)] mb-[var(--space-1)]",children:"Dashboard"}),(0,r.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-tertiary)]",children:"Gateway overview and live activity"})]}),q&&(0,r.jsxs)("div",{className:"mb-[var(--space-4)] rounded-[var(--radius-md,12px)] border px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-body)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 10%, transparent)",borderColor:"color-mix(in srgb, var(--system-red) 30%, transparent)"},children:["Failed to connect: ",q]}),(0,r.jsxs)("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(200px,1fr))] gap-[var(--space-4)] mb-[var(--space-6)]",children:[(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--system-blue)]",style:{background:"color-mix(in srgb, var(--system-blue) 12%, transparent)"},children:(0,r.jsx)(j.A,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Uptime"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:(null==M?void 0:M.uptime)!=null?function(e){let t=Math.floor(e/86400),a=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?"".concat(t,"d ").concat(a,"h ").concat(r,"m"):a>0?"".concat(a,"h ").concat(r,"m"):"".concat(r,"m")}(M.uptime):"--"})]})]})}),(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--system-green)]",style:{background:"color-mix(in srgb, var(--system-green) 12%, transparent)"},children:(0,r.jsx)(b.A,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Active Sessions"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:null!=(n=null==M||null==(e=M.sessions)?void 0:e.active)?n:"--"})]})]})}),(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--accent)]",style:{background:"color-mix(in srgb, var(--accent) 12%, transparent)"},children:(0,r.jsx)(k,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Engines"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)] capitalize",children:E})]})]})}),(0,r.jsx)(h.Zp,{className:"py-4",children:(0,r.jsxs)(h.Wu,{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-[var(--radius-md,12px)] flex items-center justify-center text-[var(--system-orange)]",style:{background:"color-mix(in srgb, var(--system-orange) 12%, transparent)"},children:(0,r.jsx)(N,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)] uppercase tracking-[0.05em]",children:"Cron Jobs"}),(0,r.jsx)("p",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:null!=z?z:"--"})]})]})})]}),(0,r.jsxs)("div",{className:"mb-[var(--space-6)]",children:[(0,r.jsx)("h3",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)] mb-[var(--space-3)]",children:"Quick Links"}),(0,r.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-[var(--space-3)]",children:[{href:"/chat",icon:p.A,name:"Chat",description:"Talk to ".concat(w," directly")},{href:"/org",icon:m,name:"Organization",description:"View employees and departments"},{href:"/kanban",icon:y,name:"Kanban",description:"Manage tasks and boards"},{href:"/cron",icon:g,name:"Cron",description:"Scheduled jobs and automations"},{href:"/costs",icon:u.A,name:"Costs",description:"API usage and spending"},{href:"/logs",icon:f.A,name:"Activity",description:"Logs and event stream"}].map(e=>{let t=e.icon;return(0,r.jsx)(i(),{href:e.href,className:"no-underline",children:(0,r.jsx)(h.Zp,{className:"py-4 h-full cursor-pointer transition-colors hover:border-[var(--accent)]",children:(0,r.jsxs)(h.Wu,{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"w-9 h-9 rounded-[var(--radius-sm,8px)] bg-[var(--fill-secondary)] flex items-center justify-center text-[var(--accent)]",children:(0,r.jsx)(t,{size:18})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:e.name}),(0,r.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mt-0.5",children:e.description})]})]})})},e.href)})})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-3)]",children:[(0,r.jsx)("h3",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:"Recent Activity"}),(0,r.jsx)("span",{className:"w-2 h-2 rounded-full inline-block ".concat(_?"bg-[var(--system-green)]":"bg-[var(--text-quaternary)]")})]}),(0,r.jsx)(h.Zp,{className:"py-0 overflow-hidden",children:0===F.length?(0,r.jsx)("div",{className:"p-[var(--space-6)] text-center text-[length:var(--text-body)] text-[var(--text-tertiary)]",children:"Waiting for events..."}):(0,r.jsx)("div",{className:"max-h-80 overflow-y-auto",children:F.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-start gap-[var(--space-3)] px-[var(--space-4)] py-[var(--space-3)]",style:t<F.length-1?{borderBottom:"1px solid var(--separator)"}:void 0,children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--accent)] rounded-[var(--radius-sm,8px)] whitespace-nowrap mt-px px-2 py-0.5",style:{background:"color-mix(in srgb, var(--accent) 10%, transparent)"},children:e.event}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--text-tertiary)] flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:JSON.stringify(e.payload)}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] whitespace-nowrap",children:new Date(Date.now()-(F.length-1-t)*1e3).toLocaleTimeString()})]},t))})})]})]})})}},3637:(e,t,a)=>{"use strict";a.d(t,{Wu:()=>i,Zp:()=>n});var r=a(4130);a(7946);var s=a(6063);function n(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,s.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...a})}function i(e){let{className:t,...a}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,s.cn)("px-6",t),...a})}},8196:(e,t,a)=>{Promise.resolve().then(a.bind(a,2503))}},e=>{e.O(0,[625,51,155,192,344,144,358],()=>e(e.s=8196)),_N_E=e.O()}]);
|