jinn-cli 0.7.8 → 0.8.0
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/bin/jimmy.js +2 -1
- package/dist/bin/jimmy.js.map +1 -1
- package/dist/package.json +54 -0
- package/dist/src/cli/__tests__/migrate.test.d.ts +2 -0
- package/dist/src/cli/__tests__/migrate.test.d.ts.map +1 -0
- package/dist/src/cli/__tests__/migrate.test.js +79 -0
- package/dist/src/cli/__tests__/migrate.test.js.map +1 -0
- package/dist/src/cli/migrate.d.ts.map +1 -1
- package/dist/src/cli/migrate.js +3 -2
- package/dist/src/cli/migrate.js.map +1 -1
- package/dist/src/connectors/telegram/__tests__/connector.test.d.ts +2 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.d.ts.map +1 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.js +257 -0
- package/dist/src/connectors/telegram/__tests__/connector.test.js.map +1 -0
- package/dist/src/connectors/telegram/__tests__/format.test.d.ts +2 -0
- package/dist/src/connectors/telegram/__tests__/format.test.d.ts.map +1 -0
- package/dist/src/connectors/telegram/__tests__/format.test.js +79 -0
- package/dist/src/connectors/telegram/__tests__/format.test.js.map +1 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.d.ts +2 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.d.ts.map +1 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.js +51 -0
- package/dist/src/connectors/telegram/__tests__/threads.test.js.map +1 -0
- package/dist/src/connectors/telegram/format.d.ts +12 -0
- package/dist/src/connectors/telegram/format.d.ts.map +1 -0
- package/dist/src/connectors/telegram/format.js +61 -0
- package/dist/src/connectors/telegram/format.js.map +1 -0
- package/dist/src/connectors/telegram/index.d.ts +26 -0
- package/dist/src/connectors/telegram/index.d.ts.map +1 -0
- package/dist/src/connectors/telegram/index.js +185 -0
- package/dist/src/connectors/telegram/index.js.map +1 -0
- package/dist/src/connectors/telegram/threads.d.ts +29 -0
- package/dist/src/connectors/telegram/threads.d.ts.map +1 -0
- package/dist/src/connectors/telegram/threads.js +26 -0
- package/dist/src/connectors/telegram/threads.js.map +1 -0
- package/dist/src/cron/runner.js.map +1 -1
- package/dist/src/engines/__tests__/gemini.test.d.ts +2 -0
- package/dist/src/engines/__tests__/gemini.test.d.ts.map +1 -0
- package/dist/src/engines/__tests__/gemini.test.js +404 -0
- package/dist/src/engines/__tests__/gemini.test.js.map +1 -0
- package/dist/src/engines/gemini.d.ts +32 -0
- package/dist/src/engines/gemini.d.ts.map +1 -0
- package/dist/src/engines/gemini.js +328 -0
- package/dist/src/engines/gemini.js.map +1 -0
- package/dist/src/gateway/__tests__/org-update.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/org-update.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/org-update.test.js +99 -0
- package/dist/src/gateway/__tests__/org-update.test.js.map +1 -0
- package/dist/src/gateway/__tests__/org.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/org.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/org.test.js +77 -0
- package/dist/src/gateway/__tests__/org.test.js.map +1 -0
- package/dist/src/gateway/__tests__/services.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/services.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/services.test.js +165 -0
- package/dist/src/gateway/__tests__/services.test.js.map +1 -0
- package/dist/src/gateway/api.d.ts.map +1 -1
- package/dist/src/gateway/api.js +61 -14
- package/dist/src/gateway/api.js.map +1 -1
- package/dist/src/gateway/org.d.ts +7 -0
- package/dist/src/gateway/org.d.ts.map +1 -1
- package/dist/src/gateway/org.js +58 -0
- package/dist/src/gateway/org.js.map +1 -1
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +27 -0
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/services.d.ts +17 -0
- package/dist/src/gateway/services.d.ts.map +1 -0
- package/dist/src/gateway/services.js +73 -0
- package/dist/src/gateway/services.js.map +1 -0
- package/dist/src/sessions/__tests__/callbacks.test.js +36 -0
- package/dist/src/sessions/__tests__/callbacks.test.js.map +1 -1
- package/dist/src/sessions/callbacks.d.ts +2 -0
- package/dist/src/sessions/callbacks.d.ts.map +1 -1
- package/dist/src/sessions/callbacks.js +3 -1
- package/dist/src/sessions/callbacks.js.map +1 -1
- package/dist/src/sessions/context.js +8 -1
- package/dist/src/sessions/context.js.map +1 -1
- package/dist/src/sessions/manager.d.ts.map +1 -1
- package/dist/src/sessions/manager.js +8 -5
- package/dist/src/sessions/manager.js.map +1 -1
- package/dist/src/sessions/registry.d.ts +1 -0
- package/dist/src/sessions/registry.d.ts.map +1 -1
- package/dist/src/sessions/registry.js +4 -0
- package/dist/src/sessions/registry.js.map +1 -1
- package/dist/src/shared/types.d.ts +15 -1
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/_next/static/chunks/155-d60b5aa6e01f7738.js +1 -0
- package/dist/web/_next/static/chunks/192-8281220a22c7a155.js +1 -0
- package/dist/web/_next/static/chunks/379-11f5e4203461fd6a.js +1 -0
- package/dist/web/_next/static/chunks/app/chat/page-3a532ea2d0f8b961.js +1 -0
- package/dist/web/_next/static/chunks/app/{layout-497d1e93737edeae.js → layout-f5c5165308a903e2.js} +1 -1
- package/dist/web/_next/static/chunks/app/org/page-99d1b67b8f17e4d5.js +1 -0
- package/dist/web/_next/static/css/214f7107c416b9a3.css +1 -0
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +5 -5
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +5 -5
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +5 -5
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +5 -5
- package/dist/web/logs.html +2 -2
- package/dist/web/logs.txt +5 -5
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +5 -5
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +4 -4
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +5 -5
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +5 -5
- package/package.json +5 -3
- package/template/migrations/0.8.0/MIGRATION.md +73 -0
- package/dist/web/_next/static/chunks/155-5843f8840f40f6f8.js +0 -1
- package/dist/web/_next/static/chunks/192-f566317c5713c743.js +0 -1
- package/dist/web/_next/static/chunks/660-7b281827cf68988a.js +0 -1
- package/dist/web/_next/static/chunks/app/chat/page-01d396112fbc8623.js +0 -1
- package/dist/web/_next/static/chunks/app/org/page-b14614ed22c7a80d.js +0 -1
- package/dist/web/_next/static/css/29fd6f6f1915cce0.css +0 -1
- /package/dist/web/_next/static/{73aF2gsMYJ-t64sWQw1Av → yhgZ2UX_j_Aier68GaRfB}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{73aF2gsMYJ-t64sWQw1Av → yhgZ2UX_j_Aier68GaRfB}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[379],{263:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]])},687:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]])},937:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]])},960:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},2784:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]])},4607:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},5608:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]])},7181:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]])},7756:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(3250).A)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]])},8689:(e,t,n)=>{let r;n.d(t,{UC:()=>nf,q7:()=>nd,ZL:()=>ns,bL:()=>nu,wv:()=>np,l9:()=>nc});var o=n(7946),i=n(3397),l=n(5773),a=n(5822),u=n(3188),c=n(9289),s=n(7058),f=n(4753),d=n(3526),p=n(1164),h=n(5380);let m=["top","right","bottom","left"],g=Math.min,v=Math.max,x=Math.round,y=Math.floor,w=e=>({x:e,y:e}),b={left:"right",right:"left",bottom:"top",top:"bottom"};function C(e,t){return"function"==typeof e?e(t):e}function R(e){return e.split("-")[0]}function M(e){return e.split("-")[1]}function A(e){return"x"===e?"y":"x"}function k(e){return"y"===e?"height":"width"}function P(e){let t=e[0];return"t"===t||"b"===t?"y":"x"}function j(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}let O=["left","right"],S=["right","left"],T=["top","bottom"],E=["bottom","top"];function L(e){let t=R(e);return b[t]+e.slice(t.length)}function _(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function D(e){let{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function N(e,t,n){let r,{reference:o,floating:i}=e,l=P(t),a=A(P(t)),u=k(a),c=R(t),s="y"===l,f=o.x+o.width/2-i.width/2,d=o.y+o.height/2-i.height/2,p=o[u]/2-i[u]/2;switch(c){case"top":r={x:f,y:o.y-i.height};break;case"bottom":r={x:f,y:o.y+o.height};break;case"right":r={x:o.x+o.width,y:d};break;case"left":r={x:o.x-i.width,y:d};break;default:r={x:o.x,y:o.y}}switch(M(t)){case"start":r[a]-=p*(n&&s?-1:1);break;case"end":r[a]+=p*(n&&s?-1:1)}return r}async function K(e,t){var n;void 0===t&&(t={});let{x:r,y:o,platform:i,rects:l,elements:a,strategy:u}=e,{boundary:c="clippingAncestors",rootBoundary:s="viewport",elementContext:f="floating",altBoundary:d=!1,padding:p=0}=C(t,e),h=_(p),m=a[d?"floating"===f?"reference":"floating":f],g=D(await i.getClippingRect({element:null==(n=await (null==i.isElement?void 0:i.isElement(m)))||n?m:m.contextElement||await (null==i.getDocumentElement?void 0:i.getDocumentElement(a.floating)),boundary:c,rootBoundary:s,strategy:u})),v="floating"===f?{x:r,y:o,width:l.floating.width,height:l.floating.height}:l.reference,x=await (null==i.getOffsetParent?void 0:i.getOffsetParent(a.floating)),y=await (null==i.isElement?void 0:i.isElement(x))&&await (null==i.getScale?void 0:i.getScale(x))||{x:1,y:1},w=D(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:v,offsetParent:x,strategy:u}):v);return{top:(g.top-w.top+h.top)/y.y,bottom:(w.bottom-g.bottom+h.bottom)/y.y,left:(g.left-w.left+h.left)/y.x,right:(w.right-g.right+h.right)/y.x}}let F=async(e,t,n)=>{let{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:l}=n,a=l.detectOverflow?l:{...l,detectOverflow:K},u=await (null==l.isRTL?void 0:l.isRTL(t)),c=await l.getElementRects({reference:e,floating:t,strategy:o}),{x:s,y:f}=N(c,r,u),d=r,p=0,h={};for(let n=0;n<i.length;n++){let m=i[n];if(!m)continue;let{name:g,fn:v}=m,{x:x,y:y,data:w,reset:b}=await v({x:s,y:f,initialPlacement:r,placement:d,strategy:o,middlewareData:h,rects:c,platform:a,elements:{reference:e,floating:t}});s=null!=x?x:s,f=null!=y?y:f,h[g]={...h[g],...w},b&&p<50&&(p++,"object"==typeof b&&(b.placement&&(d=b.placement),b.rects&&(c=!0===b.rects?await l.getElementRects({reference:e,floating:t,strategy:o}):b.rects),{x:s,y:f}=N(c,d,u)),n=-1)}return{x:s,y:f,placement:d,strategy:o,middlewareData:h}};function I(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function H(e){return m.some(t=>e[t]>=0)}let z=new Set(["left","top"]);async function G(e,t){let{placement:n,platform:r,elements:o}=e,i=await (null==r.isRTL?void 0:r.isRTL(o.floating)),l=R(n),a=M(n),u="y"===P(n),c=z.has(l)?-1:1,s=i&&u?-1:1,f=C(t,e),{mainAxis:d,crossAxis:p,alignmentAxis:h}="number"==typeof f?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return a&&"number"==typeof h&&(p="end"===a?-1*h:h),u?{x:p*s,y:d*c}:{x:d*c,y:p*s}}function W(){return"undefined"!=typeof window}function V(e){return X(e)?(e.nodeName||"").toLowerCase():"#document"}function B(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function U(e){var t;return null==(t=(X(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function X(e){return!!W()&&(e instanceof Node||e instanceof B(e).Node)}function q(e){return!!W()&&(e instanceof Element||e instanceof B(e).Element)}function Y(e){return!!W()&&(e instanceof HTMLElement||e instanceof B(e).HTMLElement)}function $(e){return!!W()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof B(e).ShadowRoot)}function Z(e){let{overflow:t,overflowX:n,overflowY:r,display:o}=ei(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&"inline"!==o&&"contents"!==o}function J(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}let Q=/transform|translate|scale|rotate|perspective|filter/,ee=/paint|layout|strict|content/,et=e=>!!e&&"none"!==e;function en(e){let t=q(e)?ei(e):e;return et(t.transform)||et(t.translate)||et(t.scale)||et(t.rotate)||et(t.perspective)||!er()&&(et(t.backdropFilter)||et(t.filter))||Q.test(t.willChange||"")||ee.test(t.contain||"")}function er(){return null==r&&(r="undefined"!=typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),r}function eo(e){return/^(html|body|#document)$/.test(V(e))}function ei(e){return B(e).getComputedStyle(e)}function el(e){return q(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ea(e){if("html"===V(e))return e;let t=e.assignedSlot||e.parentNode||$(e)&&e.host||U(e);return $(t)?t.host:t}function eu(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let o=function e(t){let n=ea(t);return eo(n)?t.ownerDocument?t.ownerDocument.body:t.body:Y(n)&&Z(n)?n:e(n)}(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),l=B(o);if(!i)return t.concat(o,eu(o,[],n));{let e=ec(l);return t.concat(l,l.visualViewport||[],Z(o)?o:[],e&&n?eu(e):[])}}function ec(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function es(e){let t=ei(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,o=Y(e),i=o?e.offsetWidth:n,l=o?e.offsetHeight:r,a=x(n)!==i||x(r)!==l;return a&&(n=i,r=l),{width:n,height:r,$:a}}function ef(e){return q(e)?e:e.contextElement}function ed(e){let t=ef(e);if(!Y(t))return w(1);let n=t.getBoundingClientRect(),{width:r,height:o,$:i}=es(t),l=(i?x(n.width):n.width)/r,a=(i?x(n.height):n.height)/o;return l&&Number.isFinite(l)||(l=1),a&&Number.isFinite(a)||(a=1),{x:l,y:a}}let ep=w(0);function eh(e){let t=B(e);return er()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:ep}function em(e,t,n,r){var o;void 0===t&&(t=!1),void 0===n&&(n=!1);let i=e.getBoundingClientRect(),l=ef(e),a=w(1);t&&(r?q(r)&&(a=ed(r)):a=ed(e));let u=(void 0===(o=n)&&(o=!1),r&&(!o||r===B(l))&&o)?eh(l):w(0),c=(i.left+u.x)/a.x,s=(i.top+u.y)/a.y,f=i.width/a.x,d=i.height/a.y;if(l){let e=B(l),t=r&&q(r)?B(r):r,n=e,o=ec(n);for(;o&&r&&t!==n;){let e=ed(o),t=o.getBoundingClientRect(),r=ei(o),i=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,l=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,s*=e.y,f*=e.x,d*=e.y,c+=i,s+=l,o=ec(n=B(o))}}return D({width:f,height:d,x:c,y:s})}function eg(e,t){let n=el(e).scrollLeft;return t?t.left+n:em(U(e)).left+n}function ev(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-eg(e,n),y:n.top+t.scrollTop}}function ex(e,t,n){let r;if("viewport"===t)r=function(e,t){let n=B(e),r=U(e),o=n.visualViewport,i=r.clientWidth,l=r.clientHeight,a=0,u=0;if(o){i=o.width,l=o.height;let e=er();(!e||e&&"fixed"===t)&&(a=o.offsetLeft,u=o.offsetTop)}let c=eg(r);if(c<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),o="CSS1Compat"===e.compatMode&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,l=Math.abs(r.clientWidth-t.clientWidth-o);l<=25&&(i-=l)}else c<=25&&(i+=c);return{width:i,height:l,x:a,y:u}}(e,n);else if("document"===t)r=function(e){let t=U(e),n=el(e),r=e.ownerDocument.body,o=v(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=v(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),l=-n.scrollLeft+eg(e),a=-n.scrollTop;return"rtl"===ei(r).direction&&(l+=v(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:l,y:a}}(U(e));else if(q(t))r=function(e,t){let n=em(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=Y(e)?ed(e):w(1),l=e.clientWidth*i.x,a=e.clientHeight*i.y;return{width:l,height:a,x:o*i.x,y:r*i.y}}(t,n);else{let n=eh(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return D(r)}function ey(e){return"static"===ei(e).position}function ew(e,t){if(!Y(e)||"fixed"===ei(e).position)return null;if(t)return t(e);let n=e.offsetParent;return U(e)===n&&(n=n.ownerDocument.body),n}function eb(e,t){var n;let r=B(e);if(J(e))return r;if(!Y(e)){let t=ea(e);for(;t&&!eo(t);){if(q(t)&&!ey(t))return t;t=ea(t)}return r}let o=ew(e,t);for(;o&&(n=o,/^(table|td|th)$/.test(V(n)))&&ey(o);)o=ew(o,t);return o&&eo(o)&&ey(o)&&!en(o)?r:o||function(e){let t=ea(e);for(;Y(t)&&!eo(t);){if(en(t))return t;if(J(t))break;t=ea(t)}return null}(e)||r}let eC=async function(e){let t=this.getOffsetParent||eb,n=this.getDimensions,r=await n(e.floating);return{reference:function(e,t,n){let r=Y(t),o=U(t),i="fixed"===n,l=em(e,!0,i,t),a={scrollLeft:0,scrollTop:0},u=w(0);if(r||!r&&!i)if(("body"!==V(t)||Z(o))&&(a=el(t)),r){let e=em(t,!0,i,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}else o&&(u.x=eg(o));i&&!r&&o&&(u.x=eg(o));let c=!o||r||i?w(0):ev(o,a);return{x:l.left+a.scrollLeft-u.x-c.x,y:l.top+a.scrollTop-u.y-c.y,width:l.width,height:l.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},eR={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e,i="fixed"===o,l=U(r),a=!!t&&J(t.floating);if(r===l||a&&i)return n;let u={scrollLeft:0,scrollTop:0},c=w(1),s=w(0),f=Y(r);if((f||!f&&!i)&&(("body"!==V(r)||Z(l))&&(u=el(r)),f)){let e=em(r);c=ed(r),s.x=e.x+r.clientLeft,s.y=e.y+r.clientTop}let d=!l||f||i?w(0):ev(l,u);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-u.scrollLeft*c.x+s.x+d.x,y:n.y*c.y-u.scrollTop*c.y+s.y+d.y}},getDocumentElement:U,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e,i=[..."clippingAncestors"===n?J(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let r=eu(e,[],!1).filter(e=>q(e)&&"body"!==V(e)),o=null,i="fixed"===ei(e).position,l=i?ea(e):e;for(;q(l)&&!eo(l);){let t=ei(l),n=en(l);n||"fixed"!==t.position||(o=null),(i?n||o:!(!n&&"static"===t.position&&o&&("absolute"===o.position||"fixed"===o.position)||Z(l)&&!n&&function e(t,n){let r=ea(t);return!(r===n||!q(r)||eo(r))&&("fixed"===ei(r).position||e(r,n))}(e,l)))?o=t:r=r.filter(e=>e!==l),l=ea(l)}return t.set(e,r),r}(t,this._c):[].concat(n),r],l=ex(t,i[0],o),a=l.top,u=l.right,c=l.bottom,s=l.left;for(let e=1;e<i.length;e++){let n=ex(t,i[e],o);a=v(n.top,a),u=g(n.right,u),c=g(n.bottom,c),s=v(n.left,s)}return{width:u-s,height:c-a,x:s,y:a}},getOffsetParent:eb,getElementRects:eC,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=es(e);return{width:t,height:n}},getScale:ed,isElement:q,isRTL:function(e){return"rtl"===ei(e).direction}};function eM(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let eA=e=>({name:"arrow",options:e,async fn(t){let{x:n,y:r,placement:o,rects:i,platform:l,elements:a,middlewareData:u}=t,{element:c,padding:s=0}=C(e,t)||{};if(null==c)return{};let f=_(s),d={x:n,y:r},p=A(P(o)),h=k(p),m=await l.getDimensions(c),x="y"===p,y=x?"clientHeight":"clientWidth",w=i.reference[h]+i.reference[p]-d[p]-i.floating[h],b=d[p]-i.reference[p],R=await (null==l.getOffsetParent?void 0:l.getOffsetParent(c)),j=R?R[y]:0;j&&await (null==l.isElement?void 0:l.isElement(R))||(j=a.floating[y]||i.floating[h]);let O=j/2-m[h]/2-1,S=g(f[x?"top":"left"],O),T=g(f[x?"bottom":"right"],O),E=j-m[h]-T,L=j/2-m[h]/2+(w/2-b/2),D=v(S,g(L,E)),N=!u.arrow&&null!=M(o)&&L!==D&&i.reference[h]/2-(L<S?S:T)-m[h]/2<0,K=N?L<S?L-S:L-E:0;return{[p]:d[p]+K,data:{[p]:D,centerOffset:L-D-K,...N&&{alignmentOffset:K}},reset:N}}});var ek=n(1383),eP="undefined"!=typeof document?o.useLayoutEffect:function(){};function ej(e,t){let n,r,o;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((n=e.length)!==t.length)return!1;for(r=n;0!=r--;)if(!ej(e[r],t[r]))return!1;return!0}if((n=(o=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!({}).hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){let n=o[r];if(("_owner"!==n||!e.$$typeof)&&!ej(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function eO(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function eS(e,t){let n=eO(e);return Math.round(t*n)/n}function eT(e){let t=o.useRef(e);return eP(()=>{t.current=e}),t}var eE=n(4130),eL=o.forwardRef((e,t)=>{let{children:n,width:r=10,height:o=5,...i}=e;return(0,eE.jsx)(a.sG.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:(0,eE.jsx)("polygon",{points:"0,0 30,0 15,10"})})});eL.displayName="Arrow";var e_=n(3316),eD=n(344),eN="Popper",[eK,eF]=(0,l.A)(eN),[eI,eH]=eK(eN),ez=e=>{let{__scopePopper:t,children:n}=e,[r,i]=o.useState(null);return(0,eE.jsx)(eI,{scope:t,anchor:r,onAnchorChange:i,children:n})};ez.displayName=eN;var eG="PopperAnchor",eW=o.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,l=eH(eG,n),u=o.useRef(null),s=(0,c.s)(t,u),f=o.useRef(null);return o.useEffect(()=>{let e=f.current;f.current=(null==r?void 0:r.current)||u.current,e!==f.current&&l.onAnchorChange(f.current)}),r?null:(0,eE.jsx)(a.sG.div,{...i,ref:s})});eW.displayName=eG;var eV="PopperContent",[eB,eU]=eK(eV),eX=o.forwardRef((e,t)=>{var n,r,i,l,u,s,f,d;let{__scopePopper:p,side:h="bottom",sideOffset:m=0,align:x="center",alignOffset:w=0,arrowPadding:b=0,avoidCollisions:_=!0,collisionBoundary:D=[],collisionPadding:N=0,sticky:K="partial",hideWhenDetached:W=!1,updatePositionStrategy:V="optimized",onPlaced:B,...X}=e,q=eH(eV,p),[Y,$]=o.useState(null),Z=(0,c.s)(t,e=>$(e)),[J,Q]=o.useState(null),ee=function(e){let[t,n]=o.useState(void 0);return(0,eD.N)(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,o;if(!Array.isArray(t)||!t.length)return;let i=t[0];if("borderBoxSize"in i){let e=i.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,o=t.blockSize}else r=e.offsetWidth,o=e.offsetHeight;n({width:r,height:o})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}(J),et=null!=(f=null==ee?void 0:ee.width)?f:0,en=null!=(d=null==ee?void 0:ee.height)?d:0,er="number"==typeof N?N:{top:0,right:0,bottom:0,left:0,...N},eo=Array.isArray(D)?D:[D],ei=eo.length>0,el={padding:er,boundary:eo.filter(eZ),altBoundary:ei},{refs:ea,floatingStyles:ec,placement:es,isPositioned:ed,middlewareData:ep}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:l,floating:a}={},transform:u=!0,whileElementsMounted:c,open:s}=e,[f,d]=o.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,h]=o.useState(r);ej(p,r)||h(r);let[m,g]=o.useState(null),[v,x]=o.useState(null),y=o.useCallback(e=>{e!==R.current&&(R.current=e,g(e))},[]),w=o.useCallback(e=>{e!==M.current&&(M.current=e,x(e))},[]),b=l||m,C=a||v,R=o.useRef(null),M=o.useRef(null),A=o.useRef(f),k=null!=c,P=eT(c),j=eT(i),O=eT(s),S=o.useCallback(()=>{if(!R.current||!M.current)return;let e={placement:t,strategy:n,middleware:p};j.current&&(e.platform=j.current),((e,t,n)=>{let r=new Map,o={platform:eR,...n},i={...o.platform,_c:r};return F(e,t,{...o,platform:i})})(R.current,M.current,e).then(e=>{let t={...e,isPositioned:!1!==O.current};T.current&&!ej(A.current,t)&&(A.current=t,ek.flushSync(()=>{d(t)}))})},[p,t,n,j,O]);eP(()=>{!1===s&&A.current.isPositioned&&(A.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[s]);let T=o.useRef(!1);eP(()=>(T.current=!0,()=>{T.current=!1}),[]),eP(()=>{if(b&&(R.current=b),C&&(M.current=C),b&&C){if(P.current)return P.current(b,C,S);S()}},[b,C,S,P,k]);let E=o.useMemo(()=>({reference:R,floating:M,setReference:y,setFloating:w}),[y,w]),L=o.useMemo(()=>({reference:b,floating:C}),[b,C]),_=o.useMemo(()=>{let e={position:n,left:0,top:0};if(!L.floating)return e;let t=eS(L.floating,f.x),r=eS(L.floating,f.y);return u?{...e,transform:"translate("+t+"px, "+r+"px)",...eO(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,u,L.floating,f.x,f.y]);return o.useMemo(()=>({...f,update:S,refs:E,elements:L,floatingStyles:_}),[f,S,E,L,_])}({strategy:"fixed",placement:h+("center"!==x?"-"+x:""),whileElementsMounted:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,t,n,r){let o;void 0===r&&(r={});let{ancestorScroll:i=!0,ancestorResize:l=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:u="function"==typeof IntersectionObserver,animationFrame:c=!1}=r,s=ef(e),f=i||l?[...s?eu(s):[],...t?eu(t):[]]:[];f.forEach(e=>{i&&e.addEventListener("scroll",n,{passive:!0}),l&&e.addEventListener("resize",n)});let d=s&&u?function(e,t){let n,r=null,o=U(e);function i(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function l(a,u){void 0===a&&(a=!1),void 0===u&&(u=1),i();let c=e.getBoundingClientRect(),{left:s,top:f,width:d,height:p}=c;if(a||t(),!d||!p)return;let h=y(f),m=y(o.clientWidth-(s+d)),x={rootMargin:-h+"px "+-m+"px "+-y(o.clientHeight-(f+p))+"px "+-y(s)+"px",threshold:v(0,g(1,u))||1},w=!0;function b(t){let r=t[0].intersectionRatio;if(r!==u){if(!w)return l();r?l(!1,r):n=setTimeout(()=>{l(!1,1e-7)},1e3)}1!==r||eM(c,e.getBoundingClientRect())||l(),w=!1}try{r=new IntersectionObserver(b,{...x,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(b,x)}r.observe(e)}(!0),i}(s,n):null,p=-1,h=null;a&&(h=new ResizeObserver(e=>{let[r]=e;r&&r.target===s&&h&&t&&(h.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(t)})),n()}),s&&!c&&h.observe(s),t&&h.observe(t));let m=c?em(e):null;return c&&function t(){let r=em(e);m&&!eM(m,r)&&n(),m=r,o=requestAnimationFrame(t)}(),n(),()=>{var e;f.forEach(e=>{i&&e.removeEventListener("scroll",n),l&&e.removeEventListener("resize",n)}),null==d||d(),null==(e=h)||e.disconnect(),h=null,c&&cancelAnimationFrame(o)}}(...t,{animationFrame:"always"===V})},elements:{reference:q.anchor},middleware:[((e,t)=>{let n=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;let{x:o,y:i,placement:l,middlewareData:a}=t,u=await G(t,e);return l===(null==(n=a.offset)?void 0:n.placement)&&null!=(r=a.arrow)&&r.alignmentOffset?{}:{x:o+u.x,y:i+u.y,data:{...u,placement:l}}}}}(e);return{name:n.name,fn:n.fn,options:[e,t]}})({mainAxis:m+en,alignmentAxis:w}),_&&((e,t)=>{let n=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:o,platform:i}=t,{mainAxis:l=!0,crossAxis:a=!1,limiter:u={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=C(e,t),s={x:n,y:r},f=await i.detectOverflow(t,c),d=P(R(o)),p=A(d),h=s[p],m=s[d];if(l){let e="y"===p?"top":"left",t="y"===p?"bottom":"right",n=h+f[e],r=h-f[t];h=v(n,g(h,r))}if(a){let e="y"===d?"top":"left",t="y"===d?"bottom":"right",n=m+f[e],r=m-f[t];m=v(n,g(m,r))}let x=u.fn({...t,[p]:h,[d]:m});return{...x,data:{x:x.x-n,y:x.y-r,enabled:{[p]:l,[d]:a}}}}}}(e);return{name:n.name,fn:n.fn,options:[e,t]}})({mainAxis:!0,crossAxis:!1,limiter:"partial"===K?((e,t)=>({fn:function(e){return void 0===e&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:o,rects:i,middlewareData:l}=t,{offset:a=0,mainAxis:u=!0,crossAxis:c=!0}=C(e,t),s={x:n,y:r},f=P(o),d=A(f),p=s[d],h=s[f],m=C(a,t),g="number"==typeof m?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(u){let e="y"===d?"height":"width",t=i.reference[d]-i.floating[e]+g.mainAxis,n=i.reference[d]+i.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var v,x;let e="y"===d?"width":"height",t=z.has(R(o)),n=i.reference[f]-i.floating[e]+(t&&(null==(v=l.offset)?void 0:v[f])||0)+(t?0:g.crossAxis),r=i.reference[f]+i.reference[e]+(t?0:(null==(x=l.offset)?void 0:x[f])||0)-(t?g.crossAxis:0);h<n?h=n:h>r&&(h=r)}return{[d]:p,[f]:h}}}}(e).fn,options:[e,t]}))():void 0,...el}),_&&((e,t)=>{let n=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r,o,i,l;let{placement:a,middlewareData:u,rects:c,initialPlacement:s,platform:f,elements:d}=t,{mainAxis:p=!0,crossAxis:h=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:x=!0,...y}=C(e,t);if(null!=(n=u.arrow)&&n.alignmentOffset)return{};let w=R(a),b=P(s),_=R(s)===s,D=await (null==f.isRTL?void 0:f.isRTL(d.floating)),N=m||(_||!x?[L(s)]:function(e){let t=L(e);return[j(e),t,j(t)]}(s)),K="none"!==v;!m&&K&&N.push(...function(e,t,n,r){let o=M(e),i=function(e,t,n){switch(e){case"top":case"bottom":if(n)return t?S:O;return t?O:S;case"left":case"right":return t?T:E;default:return[]}}(R(e),"start"===n,r);return o&&(i=i.map(e=>e+"-"+o),t&&(i=i.concat(i.map(j)))),i}(s,x,v,D));let F=[s,...N],I=await f.detectOverflow(t,y),H=[],z=(null==(r=u.flip)?void 0:r.overflows)||[];if(p&&H.push(I[w]),h){let e=function(e,t,n){void 0===n&&(n=!1);let r=M(e),o=A(P(e)),i=k(o),l="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[i]>t.floating[i]&&(l=L(l)),[l,L(l)]}(a,c,D);H.push(I[e[0]],I[e[1]])}if(z=[...z,{placement:a,overflows:H}],!H.every(e=>e<=0)){let e=((null==(o=u.flip)?void 0:o.index)||0)+1,t=F[e];if(t&&("alignment"!==h||b===P(t)||z.every(e=>P(e.placement)!==b||e.overflows[0]>0)))return{data:{index:e,overflows:z},reset:{placement:t}};let n=null==(i=z.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:i.placement;if(!n)switch(g){case"bestFit":{let e=null==(l=z.filter(e=>{if(K){let t=P(e.placement);return t===b||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:l[0];e&&(n=e);break}case"initialPlacement":n=s}if(a!==n)return{reset:{placement:n}}}return{}}}}(e);return{name:n.name,fn:n.fn,options:[e,t]}})({...el}),((e,t)=>{let n=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;let o,i,{placement:l,rects:a,platform:u,elements:c}=t,{apply:s=()=>{},...f}=C(e,t),d=await u.detectOverflow(t,f),p=R(l),h=M(l),m="y"===P(l),{width:x,height:y}=a.floating;"top"===p||"bottom"===p?(o=p,i=h===(await (null==u.isRTL?void 0:u.isRTL(c.floating))?"start":"end")?"left":"right"):(i=p,o="end"===h?"top":"bottom");let w=y-d.top-d.bottom,b=x-d.left-d.right,A=g(y-d[o],w),k=g(x-d[i],b),j=!t.middlewareData.shift,O=A,S=k;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(S=b),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(O=w),j&&!h){let e=v(d.left,0),t=v(d.right,0),n=v(d.top,0),r=v(d.bottom,0);m?S=x-2*(0!==e||0!==t?e+t:v(d.left,d.right)):O=y-2*(0!==n||0!==r?n+r:v(d.top,d.bottom))}await s({...t,availableWidth:S,availableHeight:O});let T=await u.getDimensions(c.floating);return x!==T.width||y!==T.height?{reset:{rects:!0}}:{}}}}(e);return{name:n.name,fn:n.fn,options:[e,t]}})({...el,apply:e=>{let{elements:t,rects:n,availableWidth:r,availableHeight:o}=e,{width:i,height:l}=n.reference,a=t.floating.style;a.setProperty("--radix-popper-available-width","".concat(r,"px")),a.setProperty("--radix-popper-available-height","".concat(o,"px")),a.setProperty("--radix-popper-anchor-width","".concat(i,"px")),a.setProperty("--radix-popper-anchor-height","".concat(l,"px"))}}),J&&((e,t)=>{let n=(e=>({name:"arrow",options:e,fn(t){let{element:n,padding:r}="function"==typeof e?e(t):e;return n&&({}).hasOwnProperty.call(n,"current")?null!=n.current?eA({element:n.current,padding:r}).fn(t):{}:n?eA({element:n,padding:r}).fn(t):{}}}))(e);return{name:n.name,fn:n.fn,options:[e,t]}})({element:J,padding:b}),eJ({arrowWidth:et,arrowHeight:en}),W&&((e,t)=>{let n=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:o="referenceHidden",...i}=C(e,t);switch(o){case"referenceHidden":{let e=I(await r.detectOverflow(t,{...i,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:H(e)}}}case"escaped":{let e=I(await r.detectOverflow(t,{...i,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:H(e)}}}default:return{}}}}}(e);return{name:n.name,fn:n.fn,options:[e,t]}})({strategy:"referenceHidden",...el})]}),[eh,eg]=eQ(es),ev=(0,e_.c)(B);(0,eD.N)(()=>{ed&&(null==ev||ev())},[ed,ev]);let ex=null==(n=ep.arrow)?void 0:n.x,ey=null==(r=ep.arrow)?void 0:r.y,ew=(null==(i=ep.arrow)?void 0:i.centerOffset)!==0,[eb,eC]=o.useState();return(0,eD.N)(()=>{Y&&eC(window.getComputedStyle(Y).zIndex)},[Y]),(0,eE.jsx)("div",{ref:ea.setFloating,"data-radix-popper-content-wrapper":"",style:{...ec,transform:ed?ec.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:eb,"--radix-popper-transform-origin":[null==(l=ep.transformOrigin)?void 0:l.x,null==(u=ep.transformOrigin)?void 0:u.y].join(" "),...(null==(s=ep.hide)?void 0:s.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,eE.jsx)(eB,{scope:p,placedSide:eh,onArrowChange:Q,arrowX:ex,arrowY:ey,shouldHideArrow:ew,children:(0,eE.jsx)(a.sG.div,{"data-side":eh,"data-align":eg,...X,ref:Z,style:{...X.style,animation:ed?void 0:"none"}})})})});eX.displayName=eV;var eq="PopperArrow",eY={top:"bottom",right:"left",bottom:"top",left:"right"},e$=o.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,o=eU(eq,n),i=eY[o.placedSide];return(0,eE.jsx)("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:(0,eE.jsx)(eL,{...r,ref:t,style:{...r.style,display:"block"}})})});function eZ(e){return null!==e}e$.displayName=eq;var eJ=e=>({name:"transformOrigin",options:e,fn(t){var n,r,o,i,l;let{placement:a,rects:u,middlewareData:c}=t,s=(null==(n=c.arrow)?void 0:n.centerOffset)!==0,f=s?0:e.arrowWidth,d=s?0:e.arrowHeight,[p,h]=eQ(a),m={start:"0%",center:"50%",end:"100%"}[h],g=(null!=(i=null==(r=c.arrow)?void 0:r.x)?i:0)+f/2,v=(null!=(l=null==(o=c.arrow)?void 0:o.y)?l:0)+d/2,x="",y="";return"bottom"===p?(x=s?m:"".concat(g,"px"),y="".concat(-d,"px")):"top"===p?(x=s?m:"".concat(g,"px"),y="".concat(u.floating.height+d,"px")):"right"===p?(x="".concat(-d,"px"),y=s?m:"".concat(v,"px")):"left"===p&&(x="".concat(u.floating.width+d,"px"),y=s?m:"".concat(v,"px")),{data:{x,y}}}});function eQ(e){let[t,n="center"]=e.split("-");return[t,n]}var e0=n(6406),e1=n(4127),e2=n(9458),e3=n(1271),e5=n(7377),e7=n(6722),e8=["Enter"," "],e9=["ArrowUp","PageDown","End"],e6=["ArrowDown","PageUp","Home",...e9],e4={ltr:[...e8,"ArrowRight"],rtl:[...e8,"ArrowLeft"]},te={ltr:["ArrowLeft"],rtl:["ArrowRight"]},tt="Menu",[tn,tr,to]=(0,u.N)(tt),[ti,tl]=(0,l.A)(tt,[to,eF,e2.RG]),ta=eF(),tu=(0,e2.RG)(),[tc,ts]=ti(tt),[tf,td]=ti(tt),tp=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:l,modal:a=!0}=e,u=ta(t),[c,f]=o.useState(null),d=o.useRef(!1),p=(0,e_.c)(l),h=(0,s.jH)(i);return o.useEffect(()=>{let e=()=>{d.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>d.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,eE.jsx)(ez,{...u,children:(0,eE.jsx)(tc,{scope:t,open:n,onOpenChange:p,content:c,onContentChange:f,children:(0,eE.jsx)(tf,{scope:t,onClose:o.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:d,dir:h,modal:a,children:r})})})};tp.displayName=tt;var th=o.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,o=ta(n);return(0,eE.jsx)(eW,{...o,...r,ref:t})});th.displayName="MenuAnchor";var tm="MenuPortal",[tg,tv]=ti(tm,{forceMount:void 0}),tx=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:o}=e,i=ts(tm,t);return(0,eE.jsx)(tg,{scope:t,forceMount:n,children:(0,eE.jsx)(e1.C,{present:n||i.open,children:(0,eE.jsx)(e0.Z,{asChild:!0,container:o,children:r})})})};tx.displayName=tm;var ty="MenuContent",[tw,tb]=ti(ty),tC=o.forwardRef((e,t)=>{let n=tv(ty,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=ts(ty,e.__scopeMenu),l=td(ty,e.__scopeMenu);return(0,eE.jsx)(tn.Provider,{scope:e.__scopeMenu,children:(0,eE.jsx)(e1.C,{present:r||i.open,children:(0,eE.jsx)(tn.Slot,{scope:e.__scopeMenu,children:l.modal?(0,eE.jsx)(tR,{...o,ref:t}):(0,eE.jsx)(tM,{...o,ref:t})})})})}),tR=o.forwardRef((e,t)=>{let n=ts(ty,e.__scopeMenu),r=o.useRef(null),l=(0,c.s)(t,r);return o.useEffect(()=>{let e=r.current;if(e)return(0,e5.Eq)(e)},[]),(0,eE.jsx)(tk,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:(0,i.mK)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),tM=o.forwardRef((e,t)=>{let n=ts(ty,e.__scopeMenu);return(0,eE.jsx)(tk,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),tA=(0,e3.TL)("MenuContent.ScrollLock"),tk=o.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:l,onOpenAutoFocus:a,onCloseAutoFocus:u,disableOutsidePointerEvents:s,onEntryFocus:h,onEscapeKeyDown:m,onPointerDownOutside:g,onFocusOutside:v,onInteractOutside:x,onDismiss:y,disableOutsideScroll:w,...b}=e,C=ts(ty,n),R=td(ty,n),M=ta(n),A=tu(n),k=tr(n),[P,j]=o.useState(null),O=o.useRef(null),S=(0,c.s)(t,O,C.onContentChange),T=o.useRef(0),E=o.useRef(""),L=o.useRef(0),_=o.useRef(null),D=o.useRef("right"),N=o.useRef(0),K=w?e7.A:o.Fragment;o.useEffect(()=>()=>window.clearTimeout(T.current),[]),(0,d.Oh)();let F=o.useCallback(e=>{var t,n;return D.current===(null==(t=_.current)?void 0:t.side)&&function(e,t){return!!t&&function(e,t){let{x:n,y:r}=e,o=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let l=t[e],a=t[i],u=l.x,c=l.y,s=a.x,f=a.y;c>r!=f>r&&n<(s-u)*(r-c)/(f-c)+u&&(o=!o)}return o}({x:e.clientX,y:e.clientY},t)}(e,null==(n=_.current)?void 0:n.area)},[]);return(0,eE.jsx)(tw,{scope:n,searchRef:E,onItemEnter:o.useCallback(e=>{F(e)&&e.preventDefault()},[F]),onItemLeave:o.useCallback(e=>{var t;F(e)||(null==(t=O.current)||t.focus(),j(null))},[F]),onTriggerLeave:o.useCallback(e=>{F(e)&&e.preventDefault()},[F]),pointerGraceTimerRef:L,onPointerGraceIntentChange:o.useCallback(e=>{_.current=e},[]),children:(0,eE.jsx)(K,{...w?{as:tA,allowPinchZoom:!0}:void 0,children:(0,eE.jsx)(p.n,{asChild:!0,trapped:l,onMountAutoFocus:(0,i.mK)(a,e=>{var t;e.preventDefault(),null==(t=O.current)||t.focus({preventScroll:!0})}),onUnmountAutoFocus:u,children:(0,eE.jsx)(f.qW,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:m,onPointerDownOutside:g,onFocusOutside:v,onInteractOutside:x,onDismiss:y,children:(0,eE.jsx)(e2.bL,{asChild:!0,...A,dir:R.dir,orientation:"vertical",loop:r,currentTabStopId:P,onCurrentTabStopIdChange:j,onEntryFocus:(0,i.mK)(h,e=>{R.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,eE.jsx)(eX,{role:"menu","aria-orientation":"vertical","data-state":tQ(C.open),"data-radix-menu-content":"",dir:R.dir,...M,...b,ref:S,style:{outline:"none",...b.style},onKeyDown:(0,i.mK)(b.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&(e=>{var t,n;let r=E.current+e,o=k().filter(e=>!e.disabled),i=document.activeElement,l=null==(t=o.find(e=>e.ref.current===i))?void 0:t.textValue,a=function(e,t,n){var r;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,l=(r=Math.max(i,0),e.map((t,n)=>e[(r+n)%e.length]));1===o.length&&(l=l.filter(e=>e!==n));let a=l.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return a!==n?a:void 0}(o.map(e=>e.textValue),r,l),u=null==(n=o.find(e=>e.textValue===a))?void 0:n.ref.current;!function e(t){E.current=t,window.clearTimeout(T.current),""!==t&&(T.current=window.setTimeout(()=>e(""),1e3))}(r),u&&setTimeout(()=>u.focus())})(e.key));let o=O.current;if(e.target!==o||!e6.includes(e.key))return;e.preventDefault();let i=k().filter(e=>!e.disabled).map(e=>e.ref.current);e9.includes(e.key)&&i.reverse(),function(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}(i)}),onBlur:(0,i.mK)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(T.current),E.current="")}),onPointerMove:(0,i.mK)(e.onPointerMove,t2(e=>{let t=e.target,n=N.current!==e.clientX;e.currentTarget.contains(t)&&n&&(D.current=e.clientX>N.current?"right":"left",N.current=e.clientX)}))})})})})})})});tC.displayName=ty;var tP=o.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,eE.jsx)(a.sG.div,{role:"group",...r,ref:t})});tP.displayName="MenuGroup";var tj=o.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,eE.jsx)(a.sG.div,{...r,ref:t})});tj.displayName="MenuLabel";var tO="MenuItem",tS="menu.itemSelect",tT=o.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...l}=e,u=o.useRef(null),s=td(tO,e.__scopeMenu),f=tb(tO,e.__scopeMenu),d=(0,c.s)(t,u),p=o.useRef(!1);return(0,eE.jsx)(tE,{...l,ref:d,disabled:n,onClick:(0,i.mK)(e.onClick,()=>{let e=u.current;if(!n&&e){let t=new CustomEvent(tS,{bubbles:!0,cancelable:!0});e.addEventListener(tS,e=>null==r?void 0:r(e),{once:!0}),(0,a.hO)(e,t),t.defaultPrevented?p.current=!1:s.onClose()}}),onPointerDown:t=>{var n;null==(n=e.onPointerDown)||n.call(e,t),p.current=!0},onPointerUp:(0,i.mK)(e.onPointerUp,e=>{var t;p.current||null==(t=e.currentTarget)||t.click()}),onKeyDown:(0,i.mK)(e.onKeyDown,e=>{let t=""!==f.searchRef.current;n||t&&" "===e.key||e8.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});tT.displayName=tO;var tE=o.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:l,...u}=e,s=tb(tO,n),f=tu(n),d=o.useRef(null),p=(0,c.s)(t,d),[h,m]=o.useState(!1),[g,v]=o.useState("");return o.useEffect(()=>{let e=d.current;if(e){var t;v((null!=(t=e.textContent)?t:"").trim())}},[u.children]),(0,eE.jsx)(tn.ItemSlot,{scope:n,disabled:r,textValue:null!=l?l:g,children:(0,eE.jsx)(e2.q7,{asChild:!0,...f,focusable:!r,children:(0,eE.jsx)(a.sG.div,{role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...u,ref:p,onPointerMove:(0,i.mK)(e.onPointerMove,t2(e=>{r?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,i.mK)(e.onPointerLeave,t2(e=>s.onItemLeave(e))),onFocus:(0,i.mK)(e.onFocus,()=>m(!0)),onBlur:(0,i.mK)(e.onBlur,()=>m(!1))})})})}),tL=o.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...o}=e;return(0,eE.jsx)(tz,{scope:e.__scopeMenu,checked:n,children:(0,eE.jsx)(tT,{role:"menuitemcheckbox","aria-checked":t0(n)?"mixed":n,...o,ref:t,"data-state":t1(n),onSelect:(0,i.mK)(o.onSelect,()=>null==r?void 0:r(!!t0(n)||!n),{checkForDefaultPrevented:!1})})})});tL.displayName="MenuCheckboxItem";var t_="MenuRadioGroup",[tD,tN]=ti(t_,{value:void 0,onValueChange:()=>{}}),tK=o.forwardRef((e,t)=>{let{value:n,onValueChange:r,...o}=e,i=(0,e_.c)(r);return(0,eE.jsx)(tD,{scope:e.__scopeMenu,value:n,onValueChange:i,children:(0,eE.jsx)(tP,{...o,ref:t})})});tK.displayName=t_;var tF="MenuRadioItem",tI=o.forwardRef((e,t)=>{let{value:n,...r}=e,o=tN(tF,e.__scopeMenu),l=n===o.value;return(0,eE.jsx)(tz,{scope:e.__scopeMenu,checked:l,children:(0,eE.jsx)(tT,{role:"menuitemradio","aria-checked":l,...r,ref:t,"data-state":t1(l),onSelect:(0,i.mK)(r.onSelect,()=>{var e;return null==(e=o.onValueChange)?void 0:e.call(o,n)},{checkForDefaultPrevented:!1})})})});tI.displayName=tF;var tH="MenuItemIndicator",[tz,tG]=ti(tH,{checked:!1}),tW=o.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...o}=e,i=tG(tH,n);return(0,eE.jsx)(e1.C,{present:r||t0(i.checked)||!0===i.checked,children:(0,eE.jsx)(a.sG.span,{...o,ref:t,"data-state":t1(i.checked)})})});tW.displayName=tH;var tV=o.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,eE.jsx)(a.sG.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});tV.displayName="MenuSeparator";var tB=o.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,o=ta(n);return(0,eE.jsx)(e$,{...o,...r,ref:t})});tB.displayName="MenuArrow";var tU="MenuSub",[tX,tq]=ti(tU),tY="MenuSubTrigger",t$=o.forwardRef((e,t)=>{let n=ts(tY,e.__scopeMenu),r=td(tY,e.__scopeMenu),l=tq(tY,e.__scopeMenu),a=tb(tY,e.__scopeMenu),u=o.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:f}=a,d={__scopeMenu:e.__scopeMenu},p=o.useCallback(()=>{u.current&&window.clearTimeout(u.current),u.current=null},[]);return o.useEffect(()=>p,[p]),o.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),f(null)}},[s,f]),(0,eE.jsx)(th,{asChild:!0,...d,children:(0,eE.jsx)(tE,{id:l.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":l.contentId,"data-state":tQ(n.open),...e,ref:(0,c.t)(t,l.onTriggerChange),onClick:t=>{var r;null==(r=e.onClick)||r.call(e,t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:(0,i.mK)(e.onPointerMove,t2(t=>{a.onItemEnter(t),!t.defaultPrevented&&(e.disabled||n.open||u.current||(a.onPointerGraceIntentChange(null),u.current=window.setTimeout(()=>{n.onOpenChange(!0),p()},100)))})),onPointerLeave:(0,i.mK)(e.onPointerLeave,t2(e=>{var t,r;p();let o=null==(t=n.content)?void 0:t.getBoundingClientRect();if(o){let t=null==(r=n.content)?void 0:r.dataset.side,i="right"===t,l=o[i?"left":"right"],u=o[i?"right":"left"];a.onPointerGraceIntentChange({area:[{x:e.clientX+(i?-5:5),y:e.clientY},{x:l,y:o.top},{x:u,y:o.top},{x:u,y:o.bottom},{x:l,y:o.bottom}],side:t}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:(0,i.mK)(e.onKeyDown,t=>{let o=""!==a.searchRef.current;if(!e.disabled&&(!o||" "!==t.key)&&e4[r.dir].includes(t.key)){var i;n.onOpenChange(!0),null==(i=n.content)||i.focus(),t.preventDefault()}})})})});t$.displayName=tY;var tZ="MenuSubContent",tJ=o.forwardRef((e,t)=>{let n=tv(ty,e.__scopeMenu),{forceMount:r=n.forceMount,...l}=e,a=ts(ty,e.__scopeMenu),u=td(ty,e.__scopeMenu),s=tq(tZ,e.__scopeMenu),f=o.useRef(null),d=(0,c.s)(t,f);return(0,eE.jsx)(tn.Provider,{scope:e.__scopeMenu,children:(0,eE.jsx)(e1.C,{present:r||a.open,children:(0,eE.jsx)(tn.Slot,{scope:e.__scopeMenu,children:(0,eE.jsx)(tk,{id:s.contentId,"aria-labelledby":s.triggerId,...l,ref:d,align:"start",side:"rtl"===u.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var t;u.isUsingKeyboardRef.current&&(null==(t=f.current)||t.focus()),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,i.mK)(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:(0,i.mK)(e.onEscapeKeyDown,e=>{u.onClose(),e.preventDefault()}),onKeyDown:(0,i.mK)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=te[u.dir].includes(e.key);if(t&&n){var r;a.onOpenChange(!1),null==(r=s.trigger)||r.focus(),e.preventDefault()}})})})})})});function tQ(e){return e?"open":"closed"}function t0(e){return"indeterminate"===e}function t1(e){return t0(e)?"indeterminate":e?"checked":"unchecked"}function t2(e){return t=>"mouse"===t.pointerType?e(t):void 0}tJ.displayName=tZ,n(4068);var t3="ContextMenu",[t5,t7]=(0,l.A)(t3,[tl]),t8=tl(),[t9,t6]=t5(t3),t4=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:l=!0}=e,[a,u]=o.useState(!1),c=t8(t),s=(0,e_.c)(r),f=o.useCallback(e=>{u(e),s(e)},[s]);return(0,eE.jsx)(t9,{scope:t,open:a,onOpenChange:f,modal:l,children:(0,eE.jsx)(tp,{...c,dir:i,open:a,onOpenChange:f,modal:l,children:n})})};t4.displayName=t3;var ne="ContextMenuTrigger",nt=o.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...l}=e,u=t6(ne,n),c=t8(n),s=o.useRef({x:0,y:0}),f=o.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),d=o.useRef(0),p=o.useCallback(()=>window.clearTimeout(d.current),[]),h=e=>{s.current={x:e.clientX,y:e.clientY},u.onOpenChange(!0)};return o.useEffect(()=>p,[p]),o.useEffect(()=>void(r&&p()),[r,p]),(0,eE.jsxs)(eE.Fragment,{children:[(0,eE.jsx)(th,{...c,virtualRef:f}),(0,eE.jsx)(a.sG.span,{"data-state":u.open?"open":"closed","data-disabled":r?"":void 0,...l,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:(0,i.mK)(e.onContextMenu,e=>{p(),h(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:(0,i.mK)(e.onPointerDown,na(e=>{p(),d.current=window.setTimeout(()=>h(e),700)})),onPointerMove:r?e.onPointerMove:(0,i.mK)(e.onPointerMove,na(p)),onPointerCancel:r?e.onPointerCancel:(0,i.mK)(e.onPointerCancel,na(p)),onPointerUp:r?e.onPointerUp:(0,i.mK)(e.onPointerUp,na(p))})]})});nt.displayName=ne;var nn=e=>{let{__scopeContextMenu:t,...n}=e,r=t8(t);return(0,eE.jsx)(tx,{...r,...n})};nn.displayName="ContextMenuPortal";var nr="ContextMenuContent",no=o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=t6(nr,n),l=t8(n),a=o.useRef(!1);return(0,eE.jsx)(tC,{...l,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:t=>{var n;null==(n=e.onCloseAutoFocus)||n.call(e,t),!t.defaultPrevented&&a.current&&t.preventDefault(),a.current=!1},onInteractOutside:t=>{var n;null==(n=e.onInteractOutside)||n.call(e,t),t.defaultPrevented||i.modal||(a.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});no.displayName=nr,o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tP,{...o,...r,ref:t})}).displayName="ContextMenuGroup",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tj,{...o,...r,ref:t})}).displayName="ContextMenuLabel";var ni=o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tT,{...o,...r,ref:t})});ni.displayName="ContextMenuItem",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tL,{...o,...r,ref:t})}).displayName="ContextMenuCheckboxItem",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tK,{...o,...r,ref:t})}).displayName="ContextMenuRadioGroup",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tI,{...o,...r,ref:t})}).displayName="ContextMenuRadioItem",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tW,{...o,...r,ref:t})}).displayName="ContextMenuItemIndicator";var nl=o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tV,{...o,...r,ref:t})});nl.displayName="ContextMenuSeparator",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tB,{...o,...r,ref:t})}).displayName="ContextMenuArrow";function na(e){return t=>"mouse"!==t.pointerType?e(t):void 0}o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(t$,{...o,...r,ref:t})}).displayName="ContextMenuSubTrigger",o.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,o=t8(n);return(0,eE.jsx)(tJ,{...o,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}).displayName="ContextMenuSubContent";var nu=t4,nc=nt,ns=nn,nf=no,nd=ni,np=nl}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[457],{58:(e,t,r)=>{"use strict";r.d(t,{s:()=>l});var a=r(4130),n=r(4722),s=r(8697);function l(e){let{name:t,size:r=32,className:l,onClick:i}=e,{settings:o}=(0,n.t0)(),c=o.employeeOverrides[t],d=(null==c?void 0:c.emoji)||(0,s.p)(t),u=Math.round(.6*r);return(0,a.jsx)("span",{className:l,onClick:i,role:i?"button":void 0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:r,height:r,fontSize:u,lineHeight:1,borderRadius:"50%",flexShrink:0,cursor:i?"pointer":void 0,userSelect:"none"},children:d})}},5089:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>e_});var a=r(4130),n=r(7946),s=r(2467),l=r(6654),i=r(2845),o=r(7192),c=r(7053),d=r.n(c),u=r(2784),x=r(263),p=r(960),m=r(8574),h=r(841),g=r(6429),f=r(4535),v=r(937),b=r(4607),y=r(58),j=r(4722);function w(e){let t=e;return(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/@[\w-]+/g,"")).replace(/^#\d+\s*/g,"")).replace(/^#{1,6}\s+/gm,"")).replace(/\*{1,3}|_{1,3}/g,"")).replace(/^[\s]*[-*•]\s+/gm,"")).replace(/^[\s]*\d+[.)]\s+/gm,"")).replace(/^>\s*/gm,"")).replace(/`+/g,"")).replace(/^```\w*$/gm,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\s+/g," ").trim()).length>0&&t[0]!==t[0].toUpperCase()&&(t=t[0].toUpperCase()+t.slice(1)),t}var k=r(3160),N=r(8689),C=r(6063);function S(e){let{...t}=e;return(0,a.jsx)(N.bL,{"data-slot":"context-menu",...t})}function I(e){let{...t}=e;return(0,a.jsx)(N.l9,{"data-slot":"context-menu-trigger",...t})}function D(e){let{className:t,...r}=e;return(0,a.jsx)(N.ZL,{children:(0,a.jsx)(N.UC,{"data-slot":"context-menu-content",className:(0,C.cn)("z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",t),...r})})}function M(e){let{className:t,inset:r,variant:n="default",...s}=e;return(0,a.jsx)(N.q7,{"data-slot":"context-menu-item","data-inset":r,"data-variant":n,className:(0,C.cn)("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",t),...s})}function E(e){let{className:t,...r}=e;return(0,a.jsx)(N.wv,{"data-slot":"context-menu-separator",className:(0,C.cn)("-mx-1 my-1 h-px bg-border",t),...r})}var L=r(6960);let A="jinn-sidebar-collapsed",T="jinn-sidebar-expanded",z="jinn-pinned-sessions";function R(e){if(!e)return"";let t=new Date(e),r=Date.now()-t.getTime();return r<6e4?"now":r<36e5?"".concat(Math.floor(r/6e4),"m"):r<864e5?new Date(e).toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}):r<1728e5?"yesterday":new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function F(){try{let e=localStorage.getItem("jinn-read-sessions");return e?new Set(JSON.parse(e)):new Set}catch(e){return new Set}}function _(e){try{localStorage.setItem(z,JSON.stringify(Array.from(e)))}catch(e){}}function U(e){return"cron"===e.source||(e.sourceRef||"").startsWith("cron:")}function W(e){return e.lastActivity||e.createdAt||""}function O(e){return[...e].sort((e,t)=>W(t).localeCompare(W(e)))}function P(e,t){return"running"===e.status?"var(--system-blue)":"error"===e.status?"var(--system-red)":t.has(e.id)?"var(--text-quaternary)":"var(--system-green)"}function K(e){let{color:t,pulse:r=!1,className:n}=e;return(0,a.jsx)("span",{className:(0,C.cn)("shrink-0 rounded-full",n),style:{background:t,animation:r?"sidebar-pulse 2s ease-in-out infinite":"none",boxShadow:r?"0 0 8px ".concat(t):"none"}})}function q(e){var t;let{selectedId:r,onSelect:s,onNewChat:i,onDelete:o,onSessionsLoaded:c,onEmployeeSessionsAvailable:N,onOrderComputed:q}=e,{settings:B}=(0,j.t0)(),H=null!=(t=B.portalName)?t:"Jinn",V=H.toLowerCase(),{data:J,isLoading:Q}=(0,k.te)(),$=(0,k.tZ)(),G=(0,k.tS)(),Y=(0,k.Q6)(),Z=(0,n.useMemo)(()=>{if(!J)return[];let e=J.filter(e=>"web"===e.source||"cron"===e.source||"whatsapp"===e.source||"discord"===e.source||!e.source);return e.sort((e,t)=>{let r=e.lastActivity||e.createdAt||"";return(t.lastActivity||t.createdAt||"").localeCompare(r)}),e},[J]),[X,ee]=(0,n.useState)(""),[et,er]=(0,n.useState)(null),[ea,en]=(0,n.useState)(null),es=(0,n.useRef)(!1),[el,ei]=(0,n.useState)(new Set),[eo,ec]=(0,n.useState)(new Set),[ed,eu]=(0,n.useState)(new Set),[ex,ep]=(0,n.useState)({}),[em,eh]=(0,n.useState)({}),[eg,ef]=(0,n.useState)(new Map),ev=(0,n.useRef)(c);(0,n.useEffect)(()=>{ev.current=c},[c]),(0,n.useEffect)(()=>{Z.length>0&&(0,n.startTransition)(()=>{var e;null==(e=ev.current)||e.call(ev,Z)})},[Z]),(0,n.useEffect)(()=>{ei(F()),ec(function(){try{let e=localStorage.getItem(z);return e?new Set(JSON.parse(e)):new Set}catch(e){return new Set}}()),eu(function(){try{let e=localStorage.getItem(A);return e?new Set(JSON.parse(e)):new Set}catch(e){return new Set}}()),ep(function(){try{let e=localStorage.getItem(T);return e?JSON.parse(e):{}}catch(e){return{}}}())},[]),(0,n.useEffect)(()=>{if(r){let e=F();e.add(r);let t=Array.from(e);t.length>500&&t.splice(0,t.length-500),localStorage.setItem("jinn-read-sessions",JSON.stringify(t)),ei(e=>{let t=new Set(e);return t.add(r),t})}},[r]),(0,n.useEffect)(()=>{l.F.getOrg().then(async e=>{let t=new Map;await Promise.all(e.employees.map(async e=>{try{let r=await l.F.getEmployee(e);t.set(e,r)}catch(e){}})),ef(t)}).catch(()=>{})},[]);let eb=(0,n.useCallback)(()=>{eu(e=>{let t=new Set(e);t.has("cron")?t.delete("cron"):t.add("cron");try{localStorage.setItem(A,JSON.stringify(Array.from(t)))}catch(e){}return t})},[]),ey=(0,n.useCallback)(e=>{ep(t=>{let r={...t,[e]:!t[e]};try{localStorage.setItem(T,JSON.stringify(r))}catch(e){}return r[e]||eh(t=>{if(!t[e])return t;let{[e]:r,...a}=t;return a}),r})},[]),ej=(0,n.useCallback)(e=>{ec(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),_(r),r})},[]),ew=(0,n.useCallback)(e=>{let t=F();for(let r of e)t.add(r.id);let r=Array.from(t);r.length>500&&r.splice(0,r.length-500),localStorage.setItem("jinn-read-sessions",JSON.stringify(r)),ei(t=>{let r=new Set(t);for(let t of e)r.add(t.id);return r})},[]);async function ek(e,t){let a=t.map(e=>e.id);try{await Y.mutateAsync(a),ec(t=>{let r=new Set(t);for(let t of(r.delete("emp:".concat(e)),a))r.delete(t);return _(r),r}),(0,n.startTransition)(()=>{r&&a.includes(r)&&i()})}catch(e){}}async function eN(e){let t=null;if(r===e){let r=[],a=e=>{for(let t of e){let e=t.employeeName,a=t.sessions||[];if(1===a.length)r.push(a[0].id);else if(ex[e])for(let t of em[e]?a:a.slice(0,5))r.push(t.id);else a.length>0&&r.push(a[0].id)}};for(let e of(a(eE),a(eL),eT))r.push(e.id);let n=r.indexOf(e);-1!==n&&(n+1<r.length?t=r[n+1]:n-1>=0&&(t=r[n-1]))}try{await G.mutateAsync(e),ec(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),_(r),r}),(0,n.startTransition)(()=>{t?s(t):o?o(e):r===e&&i()})}catch(e){}}let eC=X.trim()?Z.filter(e=>{let t=X.toLowerCase(),r=e.employee?eg.get(e.employee):void 0;return e.id.toLowerCase().includes(t)||e.employee&&e.employee.toLowerCase().includes(t)||(null==r?void 0:r.displayName)&&r.displayName.toLowerCase().includes(t)||e.title&&e.title.toLowerCase().includes(t)}):Z,eS=[],eI=[],eD=new Map;for(let e of eC)if(U(e))eS.push(e);else if(U(e)||e.employee&&e.employee!==V){let t=e.employee;eD.has(t)||eD.set(t,[]),eD.get(t).push(e)}else eI.push(e);let eM=[];for(let[e,t]of eD){let r=O(t);eM.push({type:"employee",employeeName:e,employeeData:eg.get(e),sessions:r,sortKey:W(r[0]),pinKey:"emp:".concat(e)})}if(eI.length>0){let e=O(eI);eM.push({type:"employee",employeeName:V,employeeData:{name:V,displayName:H,emoji:"\uD83D\uDCAC",department:"direct",role:"",rank:"manager",engine:"",model:"",persona:""},sessions:e,sortKey:W(e[0]),pinKey:"emp:".concat(V)})}let eE=eM.filter(e=>eo.has(e.pinKey)).sort((e,t)=>t.sortKey.localeCompare(e.sortKey)),eL=eM.filter(e=>!eo.has(e.pinKey)).sort((e,t)=>t.sortKey.localeCompare(e.sortKey)),eA=ed.has("cron"),eT=O(eS),ez=(0,n.useRef)(""),eR=(0,n.useMemo)(()=>{let e=[],t=[],r={};for(let a of[...eE,...eL]){let n=a.employeeName;t.push(n);let s=a.sessions.map(e=>e.id);r[n]=s,e.push(...s)}for(let t of eT)e.push(t.id);return{sessionIds:e,employeeNames:t,employeeSessionMap:r}},[eE,eL,eT]);function eF(e,t){var n,l;let i=e.id===r,o=P(e,el),c="running"===e.status,d=(n=e.title,l=e.employee,n?"Jinn"!==H&&n.startsWith("Jinn - ")?H+n.slice(4):n:l||H),h=w(d)||d,g=R(W(e)),f=eo.has(e.id),v=et===e.id,b=ea===e.id;return(0,a.jsxs)(S,{children:[(0,a.jsx)(I,{asChild:!0,children:(0,a.jsxs)(b?"div":"button",{...!b&&{onClick:()=>{s(e.id),null==N||N(null!=t?t:[e])}},onMouseEnter:()=>er(e.id),onMouseLeave:()=>{et!=="menu:".concat(e.id)&&er(null)},className:(0,C.cn)("group relative flex w-full items-center gap-2.5 border-l-2 px-4 py-2 text-left transition-colors",t?"pl-11":"pl-6",i?"border-l-[var(--accent)] bg-[var(--fill-secondary)]":"border-l-transparent hover:bg-accent"),children:[(0,a.jsx)(K,{color:o,pulse:c,className:"size-1.5"}),b?(0,a.jsx)("input",{autoFocus:!0,maxLength:200,defaultValue:h,className:(0,C.cn)("min-w-0 flex-1 truncate border-none bg-transparent text-xs outline-none ring-1 ring-[var(--accent)] rounded px-0.5",i?"font-semibold text-foreground":"text-[var(--text-secondary)]"),onFocus:e=>e.target.select(),onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Enter"===e.key?e.currentTarget.blur():"Escape"===e.key&&(es.current=!0,en(null))},onBlur:t=>{if(es.current){es.current=!1;return}let r=t.target.value.trim();r&&r!==h&&$.mutate({id:e.id,data:{title:r}}),en(null)}}):(0,a.jsx)("span",{className:(0,C.cn)("min-w-0 flex-1 truncate text-xs",i?"font-semibold text-foreground":"text-[var(--text-secondary)]"),children:w(d)||"Untitled"}),f?(0,a.jsx)(u.A,{className:(0,C.cn)("size-3 shrink-0 text-[var(--accent)]",v&&"hidden lg:hidden")}):null,(0,a.jsx)("span",{className:(0,C.cn)("shrink-0 text-[10px] text-[var(--text-quaternary)]",v&&"lg:hidden"),children:g}),(0,a.jsx)("button",{onClick:t=>{t.stopPropagation(),er("menu:".concat(e.id))},className:(0,C.cn)("hidden shrink-0 text-muted-foreground transition-colors hover:text-foreground",v&&"lg:block"),children:(0,a.jsx)(x.A,{className:"size-3.5"})}),et==="menu:".concat(e.id)?(0,a.jsxs)("div",{className:"absolute right-2 top-full z-50 min-w-[140px] overflow-hidden rounded-lg border border-border bg-[var(--material-thick)] py-1 shadow-[var(--shadow-overlay)] backdrop-blur-xl",onMouseLeave:()=>er(null),children:[(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),er(null),es.current=!1,en(e.id)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:[(0,a.jsx)(p.A,{className:"size-3"})," Rename"]}),(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),ej(e.id),er(null)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:[(0,a.jsx)(u.A,{className:"size-3"})," ",f?"Unpin":"Pin"]}),(0,a.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),er(null),window.confirm("Delete this session?")&&eN(e.id)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,a.jsx)(m.A,{className:"size-3"})," Delete"]})]}):null]})}),(0,a.jsxs)(D,{children:[(0,a.jsx)(M,{onClick:()=>{es.current=!1,en(e.id)},children:"Rename"}),(0,a.jsx)(M,{onClick:()=>ej(e.id),children:f?"Unpin":"Pin"}),(0,a.jsx)(E,{}),(0,a.jsxs)(M,{variant:"destructive",onClick:()=>{window.confirm("Delete this session?")&&eN(e.id)},children:[(0,a.jsx)("span",{className:"flex-1",children:"Delete session"}),(0,a.jsx)("kbd",{className:"ml-auto pl-3 font-mono text-[10px] text-[var(--text-quaternary)]",children:"⌫"})]})]})]},e.id)}function e_(e){let t=e.employeeName,n=e.sessions,l=n[0],i=e.employeeData,o=(null==i?void 0:i.displayName)||t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),c=(null==i?void 0:i.department)||"",d=R(W(l)),p=P(l,el),h="running"===l.status,g=n.some(e=>e.id===r),f=eo.has(e.pinKey),v=et===e.pinKey,b=n.length,j=ex[t]||!1,w=n.some(e=>!el.has(e.id)&&"running"!==e.status&&"error"!==e.status);return(0,a.jsxs)("div",{children:[(0,a.jsxs)(S,{children:[(0,a.jsx)(I,{asChild:!0,children:(0,a.jsxs)("button",{onClick:()=>(function(e){let t=e.employeeName,r=e.sessions;if(r.length>1){let e=ex[t]||!1;ey(t),e||(s(r[0].id),null==N||N(r))}else s(r[0].id),null==N||N(r)})(e),onMouseEnter:()=>er(e.pinKey),onMouseLeave:()=>{et!=="menu:".concat(e.pinKey)&&er(null)},className:(0,C.cn)("group relative flex w-full items-center gap-3 border-l-2 px-4 py-3 text-left transition-colors",g?"border-l-[var(--accent)] bg-[var(--fill-secondary)]":"border-l-transparent hover:bg-accent"),children:[(0,a.jsxs)("div",{className:"relative flex size-9 shrink-0 items-center justify-center",children:[(0,a.jsx)(y.s,{name:t,size:36}),(0,a.jsx)(K,{color:p,pulse:h,className:"absolute -bottom-0.5 -right-0 size-2.5 border-2 border-[var(--sidebar-bg)]"})]}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"mb-0.5 flex items-baseline gap-2",children:[(0,a.jsx)("span",{className:(0,C.cn)("min-w-0 flex-1 truncate text-[13px] tracking-[-0.2px] text-foreground",w||g?"font-semibold":"font-medium"),children:o}),(0,a.jsx)("span",{className:(0,C.cn)("shrink-0 text-[10px] text-[var(--text-tertiary)]",v&&"lg:hidden"),children:d}),(0,a.jsx)("button",{onClick:t=>{t.stopPropagation(),er("menu:".concat(e.pinKey))},className:(0,C.cn)("hidden shrink-0 text-muted-foreground transition-colors hover:text-foreground",v&&"lg:block"),children:(0,a.jsx)(x.A,{className:"size-3.5"})})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 overflow-hidden text-[11px] text-[var(--text-tertiary)]",children:[c?(0,a.jsx)("span",{className:"truncate",children:c}):null,b>1?(0,a.jsxs)("span",{className:"shrink-0 rounded bg-[var(--fill-tertiary)] px-1.5 py-0.5 text-[10px]",children:[b," chats"]}):null,f?(0,a.jsx)(u.A,{className:"size-3 shrink-0 text-[var(--accent)]"}):null]})]}),et==="menu:".concat(e.pinKey)?(0,a.jsxs)("div",{className:"absolute right-2 top-full z-50 min-w-[160px] overflow-hidden rounded-lg border border-border bg-[var(--material-thick)] py-1 shadow-[var(--shadow-overlay)] backdrop-blur-xl",onMouseLeave:()=>er(null),children:[(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),ej(e.pinKey),er(null)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:[(0,a.jsx)(u.A,{className:"size-3"})," ",f?"Unpin":"Pin"]}),(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),ew(n),er(null)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:"Mark all as read"}),(0,a.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),er(null),window.confirm("Delete all ".concat(n.length,' chats with "').concat(o,'"?'))&&ek(t,n)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,a.jsx)(m.A,{className:"size-3"})," Delete all chats"]})]}):null]})}),(0,a.jsxs)(D,{children:[(0,a.jsx)(M,{onClick:()=>ej(e.pinKey),children:f?"Unpin":"Pin"}),(0,a.jsx)(M,{onClick:()=>ew(n),children:"Mark all as read"})]})]}),j&&b>1?em[t]?n.map(e=>eF(e,n)):n.slice(0,5).map(e=>eF(e,n)):null,j&&b>5&&!em[t]?(0,a.jsxs)("button",{onClick:()=>eh(e=>({...e,[t]:!0})),className:"w-full cursor-pointer px-4 pb-2 pl-11 text-left text-[10px] text-[var(--text-quaternary)] transition-colors hover:text-[var(--text-secondary)]",children:["+",b-5," more"]}):null]},e.pinKey)}return(0,n.useEffect)(()=>{let e=eR.sessionIds.join(",");e!==ez.current&&(ez.current=e,null==q||q(eR))},[eR,q]),(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e flex h-full flex-col border-r border-border bg-[var(--sidebar-bg)]",children:[(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e shrink-0 border-b border-border bg-[var(--material-thick)] px-4 pb-3 pt-3",children:[(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e mb-2 flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e",children:[(0,a.jsx)("h2",{className:"jsx-fb767975a1bed37e text-xl font-bold tracking-[-0.03em] text-foreground",children:"Chats"}),(0,a.jsx)("p",{className:"jsx-fb767975a1bed37e text-xs text-muted-foreground",children:"All conversations"})]}),(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e flex items-center gap-1.5",children:(0,a.jsxs)(L.$,{size:"sm",className:"gap-1.5",onClick:i,title:"New chat (N)",children:[(0,a.jsx)(h.A,{className:"size-3.5"}),"New"]})})]}),(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e flex items-center gap-2 rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] px-3 py-2",children:[(0,a.jsx)(g.A,{className:"size-3.5 shrink-0 text-[var(--text-tertiary)]"}),(0,a.jsx)("input",{id:"chat-search",type:"text",value:X,onChange:e=>ee(e.target.value),placeholder:"Search...","aria-label":"Search chats",className:"jsx-fb767975a1bed37e min-w-0 flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-[var(--text-tertiary)]"}),X.trim()?(0,a.jsx)("button",{onClick:()=>ee(""),"aria-label":"Clear search",className:"jsx-fb767975a1bed37e rounded-full p-0.5 text-[var(--text-tertiary)] transition-colors hover:bg-[var(--fill-secondary)] hover:text-foreground",children:(0,a.jsx)(f.A,{className:"size-3"})}):null]})]}),(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e flex-1 overflow-y-auto",children:Q?(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e px-4 py-8 text-center text-xs text-[var(--text-quaternary)]",children:"Loading sessions..."}):0===eE.length&&0===eL.length&&0===eS.length?(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e px-4 py-8 text-center text-xs text-[var(--text-quaternary)]",children:X.trim()?"No matching chats":"No conversations yet"}):(0,a.jsxs)(a.Fragment,{children:[eE.map(e=>e_(e)),eL.map(e=>e_(e)),eS.length>0?(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e "+((0,C.cn)("mt-2",0===eE.length&&0===eL.length&&"mt-0")||""),children:[(0,a.jsxs)("button",{onClick:eb,onMouseEnter:()=>er("cron-header"),onMouseLeave:()=>er(null),className:"jsx-fb767975a1bed37e flex w-full items-center gap-2 px-4 py-2 text-left transition-colors hover:bg-accent",children:[(0,a.jsx)(v.A,{className:"size-3.5 text-muted-foreground"}),(0,a.jsx)("span",{className:"jsx-fb767975a1bed37e text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:"Scheduled"}),(0,a.jsx)("span",{className:"jsx-fb767975a1bed37e ml-auto rounded bg-[var(--fill-tertiary)] px-1.5 py-0.5 text-[10px] text-[var(--text-secondary)]",children:eS.length}),(0,a.jsx)(b.A,{className:(0,C.cn)("size-3.5 text-muted-foreground transition-transform",eA&&"-rotate-90")})]}),eA?null:eT.map(e=>eF(e))]}):null]})}),(0,a.jsx)(d(),{id:"fb767975a1bed37e",children:"@keyframes sidebar-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}"})]})}var B=r(7756),H=r(5608),V=r(129);let J={running:"bg-blue-500 animate-pulse",error:"bg-red-500",idle:"bg-zinc-500"};function Q(e){let{tabs:t,activeIndex:r,onSwitch:s,onClose:l,onNew:i,onPin:o,onMove:c,toolbarActions:d,sidebarCollapsed:u,onToggleSidebar:x}=e,p=(0,n.useRef)(null),[m,g]=(0,n.useState)(null),[v,b]=(0,n.useState)(null),j=e=>{e.currentTarget instanceof HTMLElement&&(e.currentTarget.style.opacity="1"),g(null),b(null)};return(0,a.jsxs)("div",{className:"relative z-[100] flex h-10 shrink-0 items-center border-b border-border bg-[var(--bg-secondary)]",children:[x&&(0,a.jsx)("button",{onClick:x,"aria-label":u?"Show sidebar":"Hide sidebar",className:"flex size-10 shrink-0 items-center justify-center border-r border-border text-muted-foreground transition-colors hover:bg-[var(--fill-quaternary)] hover:text-foreground",children:u?(0,a.jsx)(B.A,{size:15}):(0,a.jsx)(H.A,{size:15})}),t.length>0&&(0,a.jsx)("div",{ref:p,className:"flex min-w-0 flex-1 items-center overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:t.map((e,t)=>(0,a.jsxs)("button",{onClick:()=>s(t),onDoubleClick:()=>{null==o||o(t)},onMouseDown:e=>{1===e.button&&(e.preventDefault(),l(t))},draggable:!0,onDragStart:e=>{g(t),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",String(t)),e.currentTarget instanceof HTMLElement&&(e.currentTarget.style.opacity="0.5")},onDragEnd:j,onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move",t!==m&&b(t)},onDrop:e=>(e.preventDefault(),void(g(null),b(null),null!==m&&m!==t&&(null==c||c(m,t)))),className:(0,C.cn)("group flex h-10 max-w-[180px] shrink-0 items-center gap-1.5 border-r border-border px-3 text-xs whitespace-nowrap transition-colors",t===r?"border-b-2 border-b-[var(--accent)] bg-background text-foreground":"text-muted-foreground hover:bg-[var(--fill-quaternary)] hover:text-foreground",e.unread&&t!==r&&"font-bold",v===t&&null!==m&&m!==t&&"border-l-2 border-l-[var(--accent)]"),children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0 ".concat(J[e.status]||J.idle)}),e.employeeName&&(0,a.jsx)(y.s,{name:e.employeeName,size:16}),(0,a.jsx)("span",{className:(0,C.cn)("truncate",e.pinned?"font-medium":"font-normal italic"),children:w(e.label)}),(0,a.jsx)("span",{onClick:e=>{e.stopPropagation(),l(t)},className:"ml-auto rounded-sm p-0.5 opacity-0 transition-all hover:bg-accent hover:text-foreground group-hover:opacity-100",children:(0,a.jsx)(f.A,{size:12})})]},e.sessionId))}),0===t.length&&(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsx)("button",{onClick:i,className:"flex size-10 shrink-0 items-center justify-center text-[var(--text-tertiary)] transition-colors hover:bg-[var(--fill-quaternary)] hover:text-foreground",title:"New Chat (N)",children:(0,a.jsx)(h.A,{size:14})}),d&&(0,a.jsxs)("div",{className:"hidden shrink-0 items-center gap-2 border-l border-border px-3 lg:flex",children:[d,(0,a.jsx)(V.r,{})]})]})}let $="jinn-intermediate-";function G(e){try{localStorage.removeItem("".concat($).concat(e))}catch(e){}}function Y(e){let{name:t,size:r,mimeType:n,url:s,isUser:l}=e;return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-lg)",background:l?"var(--accent)":"var(--material-thin)",border:l?"none":"1px solid var(--separator)",maxWidth:280,minWidth:180},children:[(0,a.jsx)("div",{style:{width:36,height:36,borderRadius:"var(--radius-sm)",background:l?"rgba(0,0,0,0.15)":"var(--fill-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:l?"#000":"var(--text-secondary)"},children:function(e,t){var r;let n=(null==t||null==(r=t.split(".").pop())?void 0:r.toLowerCase())||"",s="application/pdf"===e||"pdf"===n,l=["doc","docx"].includes(n)||(null==e?void 0:e.includes("wordprocessingml")),i=["txt","csv","json","md"].includes(n)||(null==e?void 0:e.startsWith("text/")),o=["zip","tar","gz","rar","7z"].includes(n);return s?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,a.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,a.jsx)("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]}):l?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,a.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,a.jsx)("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),(0,a.jsx)("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),(0,a.jsx)("polyline",{points:"10 9 9 9 8 9"})]}):i?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,a.jsx)("polyline",{points:"14 2 14 8 20 8"})]}):o?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 8v13H3V8"}),(0,a.jsx)("path",{d:"M1 3h22v5H1z"}),(0,a.jsx)("path",{d:"M10 12h4"})]}):(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"}),(0,a.jsx)("polyline",{points:"13 2 13 9 20 9"})]})}(n,t)}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontSize:"var(--text-footnote)",fontWeight:"var(--weight-medium)",color:l?"#000":"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}),null!=r&&(0,a.jsx)("div",{style:{fontSize:"var(--text-caption2)",color:l?"rgba(0,0,0,0.5)":"var(--text-tertiary)",marginTop:1},children:r<1024?"".concat(r," B"):r<1048576?"".concat((r/1024).toFixed(0)," KB"):"".concat((r/1048576).toFixed(1)," MB")})]}),(0,a.jsx)("a",{href:s,download:t,"aria-label":"Download ".concat(t),style:{width:28,height:28,borderRadius:"50%",background:l?"rgba(0,0,0,0.15)":"var(--fill-secondary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:l?"#000":"var(--text-secondary)",textDecoration:"none"},children:(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,a.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,a.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})]})}function Z(e){let{src:t,duration:r,waveform:s,isUser:l}=e,i=(0,n.useRef)(null),[o,c]=(0,n.useState)(!1),[d,u]=(0,n.useState)(0),[x,p]=(0,n.useState)(0);(0,n.useEffect)(()=>{let e=new Audio(t);return i.current=e,e.addEventListener("timeupdate",()=>{e.duration&&isFinite(e.duration)&&(u(e.currentTime/e.duration),p(e.currentTime))}),e.addEventListener("ended",()=>{c(!1),u(0),p(0)}),e.addEventListener("pause",()=>c(!1)),e.addEventListener("play",()=>c(!0)),()=>{e.pause(),e.src=""}},[t]);let m=(0,n.useCallback)(()=>{let e=i.current;e&&(o?e.pause():e.play().catch(()=>{}))},[o]),h=s.length>0?s:Array(50).fill(.1),g=o?x:r;return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-lg)",background:l?"var(--accent)":"var(--material-thin)",border:l?"none":"1px solid var(--separator)",maxWidth:280,minWidth:200},children:[(0,a.jsx)("button",{onClick:m,"aria-label":o?"Pause":"Play",style:{width:28,height:28,borderRadius:"50%",background:l?"rgba(0,0,0,0.2)":"var(--fill-secondary)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:l?"#000":"var(--text-primary)"},children:o?(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,a.jsx)("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1"}),(0,a.jsx)("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1"})]}):(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("polygon",{points:"6,4 20,12 6,20"})})}),(0,a.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",gap:2,height:28},children:h.map((e,t)=>{let r=t/h.length<=d;return(0,a.jsx)("div",{style:{width:3,borderRadius:1.5,height:"".concat(Math.max(4,24*e),"px"),background:l?r?"rgba(0,0,0,0.7)":"rgba(0,0,0,0.25)":r?"var(--accent)":"var(--fill-primary)",transition:"background 100ms ease",flexShrink:0}},t)})}),(0,a.jsx)("span",{style:{fontSize:"var(--text-caption2)",color:l?"rgba(0,0,0,0.6)":"var(--text-tertiary)",fontVariantNumeric:"tabular-nums",flexShrink:0,minWidth:28,textAlign:"right"},children:function(e){let t=Math.floor(e/60),r=Math.floor(e%60);return"".concat(t,":").concat(r.toString().padStart(2,"0"))}(g)})]})}function X(e){let{msgs:t,isActive:r}=e,[s,l]=(0,n.useState)(!1),i=t.every(e=>e.content.startsWith("Used ")),o=r&&!i?"".concat(t.length," tool").concat(1!==t.length?"s":""," running…"):"".concat(t.length," tool").concat(1!==t.length?"s":""," used");return(0,a.jsxs)("div",{className:"px-[var(--space-4)] mb-[var(--space-1)]",children:[(0,a.jsxs)("button",{onClick:()=>l(e=>!e),className:"flex items-center gap-[var(--space-2)] py-[5px] px-[var(--space-3)] rounded-full bg-[var(--fill-secondary)] border border-[var(--separator)] text-[length:var(--text-caption1)] text-[var(--text-secondary)] cursor-pointer transition-[background] duration-150 ease-in-out hover:bg-[var(--fill-tertiary)]",children:[(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-60",children:(0,a.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),o,r&&!i&&(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--system-blue)] animate-[jinn-pulse_1.4s_infinite]"}),(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"transition-transform duration-150 ease-in-out opacity-50 ".concat(s?"rotate-180":"rotate-0"),children:(0,a.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),s&&(0,a.jsx)("div",{className:"flex flex-wrap gap-[var(--space-1)] mt-[var(--space-1)] pl-[var(--space-1)]",children:t.map(e=>(0,a.jsx)("span",{className:"inline-flex items-center gap-1 py-0.5 px-2 rounded-full bg-[var(--fill-tertiary)] border border-[var(--separator)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:e.toolCall},e.id))})]})}function ee(e){let t,r=[],n=/(https?:\/\/[^\s<]+[^\s<.,;:!?)}\]'"])|(\*\*(.+?)\*\*)|(`([^`]+)`)|\*([^*]+)\*/g,s=0;for(;null!==(t=n.exec(e));)t.index>s&&r.push(e.slice(s,t.index)),t[1]?r.push((0,a.jsx)("a",{href:t[1],target:"_blank",rel:"noopener noreferrer",className:"text-[var(--system-blue)] underline underline-offset-2",children:t[1]},t.index)):t[2]?r.push((0,a.jsx)("strong",{className:"font-[var(--weight-bold)]",children:t[3]},t.index)):t[4]?r.push((0,a.jsx)("code",{className:"bg-[var(--fill-secondary)] border border-[var(--separator)] rounded-[5px] py-px px-[5px] text-[0.88em] font-['SF_Mono',Menlo,monospace] text-[var(--accent)]",children:t[5]},t.index)):t[6]&&r.push((0,a.jsx)("em",{className:"italic opacity-[0.85]",children:t[6]},t.index)),s=t.index+t[0].length;return s<e.length&&r.push(e.slice(s)),1===r.length?r[0]:(0,a.jsx)(a.Fragment,{children:r})}function et(e){let{code:t,keyProp:r}=e,[s,l]=(0,n.useState)(!1);return(0,a.jsxs)("div",{className:"relative my-2",children:[(0,a.jsx)("button",{onClick:function(){navigator.clipboard.writeText(t).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},"aria-label":"Copy code",className:"absolute top-2 right-2 py-0.5 px-2 text-[11px] rounded-[var(--radius-sm)] bg-[var(--fill-secondary)] text-[var(--text-secondary)] border border-[var(--separator)] cursor-pointer",children:s?"Copied!":"Copy"}),(0,a.jsx)("pre",{className:"code-block bg-[var(--fill-tertiary)] border border-[var(--separator)] rounded-[var(--radius-md)] py-[var(--space-3)] px-[var(--space-4)] overflow-x-auto text-[13px] leading-normal font-['SF_Mono',Menlo,monospace] text-[var(--text-primary)]",children:(0,a.jsx)("code",{children:t})})]},r)}function er(e){return/^\|[\s:|-]+\|$/.test(e.trim())}function ea(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(e=>e.trim())}function en(e){let{headerLine:t,rows:r,keyProp:n}=e,s=ea(t),l=r.map(ea);return(0,a.jsx)("div",{className:"my-2.5 rounded-[10px] border border-[var(--separator)] overflow-hidden",children:(0,a.jsx)("div",{className:"overflow-x-auto [WebkitOverflowScrolling:touch]",children:(0,a.jsxs)("table",{className:"border-collapse text-[length:var(--text-footnote)] leading-[1.6] w-full min-w-max",children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{className:"bg-[var(--fill-tertiary)]",children:s.map((e,t)=>(0,a.jsx)("th",{className:"text-left py-2.5 px-4 font-semibold text-[var(--text-primary)] border-b border-[var(--separator)] max-w-[280px] break-words",children:ee(e)},t))})}),(0,a.jsx)("tbody",{children:l.map((e,t)=>(0,a.jsx)("tr",{className:t%2==1?"bg-[var(--fill-quaternary,transparent)]":"bg-transparent",children:e.map((e,r)=>(0,a.jsx)("td",{className:"py-2.5 px-4 text-[var(--text-primary)] max-w-[280px] break-words ".concat(t<l.length-1?"border-b border-[var(--separator)]":""),children:ee(e)},r))},t))})]})})},n)}function es(e){if(!e)return null;let t=e.split("\n"),r=[],n=!1,s=[];for(let e=0;e<t.length;e++){let i=t[e];if(i.startsWith("```")){n?(n=!1,r.push((0,a.jsx)(et,{keyProp:e,code:s.join("\n")},e))):n=!0,s=[];continue}if(n){s.push(i);continue}if(i.trim().startsWith("|")&&i.trim().endsWith("|")&&e+1<t.length&&er(t[e+1])){e++;let n=[];for(;e+1<t.length&&t[e+1].trim().startsWith("|")&&t[e+1].trim().endsWith("|")&&!er(t[e+1]);)e++,n.push(t[e]);r.push((0,a.jsx)(en,{keyProp:e,headerLine:i,rows:n},"table-".concat(e)));continue}if(""===i.trim()){r.push((0,a.jsx)("div",{className:"h-1.5"},"space-".concat(e)));continue}if(i.match(/^[-*] /)){r.push((0,a.jsxs)("div",{className:"flex gap-[var(--space-2)] mb-0.5",children:[(0,a.jsx)("span",{className:"text-[var(--accent)] shrink-0 mt-px",children:"•"}),(0,a.jsx)("span",{children:ee(i.slice(2))})]},e));continue}if(i.match(/^\d+\. /)){var l;let t=null==(l=i.match(/^(\d+)\. /))?void 0:l[1];r.push((0,a.jsxs)("div",{className:"flex gap-[var(--space-2)] mb-0.5",children:[(0,a.jsxs)("span",{className:"text-[var(--accent)] shrink-0 font-[var(--weight-semibold)] min-w-4",children:[t,"."]}),(0,a.jsx)("span",{children:ee(i.replace(/^\d+\. /,""))})]},e));continue}if(i.startsWith("### ")){r.push((0,a.jsx)("div",{className:"font-[var(--weight-semibold)] text-[length:var(--text-footnote)] mt-[var(--space-2)] mb-0.5",children:ee(i.slice(4))},e));continue}if(i.startsWith("## ")){r.push((0,a.jsx)("div",{className:"font-[var(--weight-bold)] text-[length:var(--text-subheadline)] mt-[var(--space-3)] mb-[3px]",children:ee(i.slice(3))},e));continue}if(i.startsWith("# ")){r.push((0,a.jsx)("div",{className:"font-[var(--weight-bold)] text-[length:var(--text-body)] mt-[var(--space-3)] mb-[var(--space-1)]",children:ee(i.slice(2))},e));continue}r.push((0,a.jsx)("div",{className:"mb-px",children:ee(i)},e))}return n&&s.length>0&&r.push((0,a.jsx)(et,{keyProp:999,code:s.join("\n")},"trailing-code")),(0,a.jsx)(a.Fragment,{children:r})}function el(e){let t=new Date,r=new Date(e),a=t.toDateString()===r.toDateString(),n=new Date(t);n.setDate(n.getDate()-1);let s=n.toDateString()===r.toDateString(),l=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return a?"Today ".concat(l):s?"Yesterday ".concat(l):r.toLocaleDateString("en-US",{month:"short",day:"numeric"})+" ".concat(l)}function ei(e,t){return 0===t||e[t].timestamp-e[t-1].timestamp>3e5}function eo(e,t){let r=e.filter(e=>"image"===e.type),n=e.filter(e=>"audio"===e.type),s=e.filter(e=>"file"===e.type);return(0,a.jsxs)(a.Fragment,{children:[r.map((e,t)=>(0,a.jsx)("div",{className:"mt-[var(--space-2)] rounded-[var(--radius-lg)] overflow-hidden max-w-[280px]",children:(0,a.jsx)("img",{src:e.url,alt:e.name||"Image",className:"w-full block rounded-[var(--radius-lg)] cursor-pointer",onClick:()=>window.open(e.url,"_blank")})},"img-".concat(t))),n.map((e,r)=>(0,a.jsx)("div",{className:"mt-[var(--space-2)]",children:(0,a.jsx)(Z,{src:e.url,duration:e.duration||0,waveform:e.waveform||[],isUser:t})},"audio-".concat(r))),s.map((e,r)=>(0,a.jsx)("div",{className:"mt-[var(--space-2)]",children:(0,a.jsx)(Y,{name:e.name||"File",size:e.size,mimeType:e.mimeType,url:e.url,isUser:t})},"file-".concat(r)))]})}function ec(e){let{messages:t,loading:r,streamingText:s}=e,l=(0,n.useRef)(null),i=(0,n.useRef)(null),o=(0,n.useRef)(null),c=(0,n.useRef)(null),d=(0,n.useRef)(0),u=(0,n.useRef)(!0),[x,p]=(0,n.useState)(!1),m=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{let e=l.current,t=i.current;if(!e||!t)return;let r=new IntersectionObserver(e=>{let[t]=e;u.current=t.isIntersecting,clearTimeout(m.current),m.current=setTimeout(()=>{p(!t.isIntersecting)},100)},{root:t,rootMargin:"0px 0px 80px 0px",threshold:0});return r.observe(e),()=>{r.disconnect(),clearTimeout(m.current)}},[]),(0,n.useEffect)(()=>{let e=o.current;if(!e)return;let t=new ResizeObserver(()=>{u.current&&l.current&&l.current.scrollIntoView({behavior:"auto"})});return t.observe(e),()=>t.disconnect()},[]),(0,n.useLayoutEffect)(()=>{var e;if(0===t.length){d.current=0,c.current=null;return}let r=(null==(e=t[0])?void 0:e.id)||null,a=null!==c.current&&r!==c.current;(0===d.current&&t.length>0||a)&&(i.current&&(i.current.scrollTop=i.current.scrollHeight),u.current=!0,p(!1)),d.current=t.length,c.current=r},[t]);let h=(0,n.useCallback)(()=>{i.current&&(i.current.scrollTop=i.current.scrollHeight),u.current=!0,p(!1)},[]);return 0!==t.length||r?(0,a.jsxs)("div",{ref:i,className:"chat-messages-scroll relative flex-1 overflow-y-auto overflow-x-hidden bg-[var(--bg)] min-h-0",children:[(0,a.jsxs)("div",{ref:o,className:"py-[var(--space-3)] pb-[var(--space-6)]",children:[(function(e){let t=[],r=0;for(;r<e.length;)if("assistant"===e[r].role&&e[r].toolCall){let a=[],n=r;for(;r<e.length&&"assistant"===e[r].role&&e[r].toolCall;)a.push(e[r]),r++;t.push({kind:"tool-group",msgs:a,startIndex:n})}else t.push({kind:"message",msg:e[r],index:r}),r++;return t})(t).map(e=>{if("tool-group"===e.kind){let n=e.msgs[0],s=ei(t,e.startIndex),l=e.startIndex>0?t[e.startIndex-1]:null,i=r&&e.startIndex+e.msgs.length===t.length;return(0,a.jsxs)("div",{children:[s&&(0,a.jsx)("div",{className:"text-center py-[var(--space-3)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:el(n.timestamp)}),!s&&l&&(0,a.jsx)("div",{className:"assistant"!==l.role?"h-[var(--space-4)]":"h-[var(--space-1)]"}),(0,a.jsx)(X,{msgs:e.msgs,isActive:i})]},"tg-".concat(e.startIndex))}let{msg:n,index:s}=e,l="user"===n.role,i="notification"===n.role,o=ei(t,s),c=n.media||function(e){let t,r=[],a=/!\[([^\]]*)\]\((https?:\/\/[^)]+\.(jpg|jpeg|png|gif|webp|svg)(\?[^)]*)?)\)/gi;for(;null!==(t=a.exec(e));)r.push({type:"image",url:t[2],name:t[1]||"Image"});let n=RegExp("(?<!\\]\\()https?:\\/\\/\\S+\\.(jpg|jpeg|png|gif|webp)(\\?\\S*)?\\b","gi");for(;null!==(t=n.exec(e));){let e=t[0];r.find(t=>t.url===e)||r.push({type:"image",url:e})}let s=/https?:\/\/\S+\.(mp3|wav|ogg|m4a|aac)(\?\S*)?\b/gi;for(;null!==(t=s.exec(e));)r.push({type:"audio",url:t[0],name:t[0].split("/").pop()});return r}(n.content),d=n.content;return c.length>0&&!n.media&&(c.forEach(e=>{d=(d=d.replace(e.url,"")).replace(/!\[[^\]]*\]\([^)]+\)/g,"")}),d=d.trim()),n.media&&n.media.length>0&&d.startsWith("[")&&d.endsWith("]")&&(d=""),(0,a.jsxs)("div",{children:[o&&(0,a.jsx)("div",{className:"text-center py-[var(--space-3)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:el(n.timestamp)}),!o&&s>0&&(0,a.jsx)("div",{className:t[s-1].role!==n.role?"h-[var(--space-4)]":"h-[var(--space-1)]"}),i&&(0,a.jsx)("div",{className:"flex justify-center px-[var(--space-4)] mb-[var(--space-1)]",children:(0,a.jsxs)("div",{className:"notification-msg-bubble flex items-start gap-[var(--space-2)] py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-md)] bg-[var(--fill-secondary)] border border-dashed border-[var(--separator)] text-[var(--text-secondary)] text-[length:var(--text-caption1)] leading-[var(--leading-relaxed)] max-w-[85%]",children:[(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"shrink-0 mt-0.5 opacity-60",children:[(0,a.jsx)("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),(0,a.jsx)("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})]}),(0,a.jsx)("span",{children:es(d)})]})}),l&&(0,a.jsxs)("div",{className:"flex flex-col items-end px-[var(--space-4)] mb-[var(--space-1)]",children:[d&&(0,a.jsx)("div",{className:"user-msg-bubble py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-lg)_var(--radius-lg)_var(--radius-sm)_var(--radius-lg)] bg-[var(--accent)] text-[var(--accent-contrast)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)] font-[var(--weight-medium)] shadow-[var(--shadow-subtle)]",children:es(d)}),c.length>0&&(0,a.jsx)("div",{className:"user-msg-bubble",children:eo(c,!0)})]}),!l&&!i&&(0,a.jsx)("div",{className:"assistant-msg-row flex justify-start px-[var(--space-4)] mb-[var(--space-1)]",children:(0,a.jsxs)("div",{className:"assistant-msg-bubble flex flex-col",children:[d&&(0,a.jsx)("div",{className:"py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-sm)_var(--radius-lg)_var(--radius-lg)_var(--radius-lg)] bg-[var(--material-thin)] border border-[var(--separator)] text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)]",children:es(d)}),c.length>0&&eo(c,!1)]})})]},n.id||s)}),s&&(0,a.jsx)("div",{className:"assistant-msg-row flex justify-start px-[var(--space-4)] mb-[var(--space-1)]",children:(0,a.jsx)("div",{className:"assistant-msg-bubble flex flex-col",children:(0,a.jsx)("div",{className:"py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-sm)_var(--radius-lg)_var(--radius-lg)_var(--radius-lg)] bg-[var(--material-thin)] border border-[var(--separator)] text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)]",children:es(function(e){let t=e,r=(t.match(/```/g)||[]).length;if(r%2!=0&&(t+="\n```"),r%2==0){let e=t.replace(/```[\s\S]*?```/g,"");(e.match(/`/g)||[]).length%2!=0&&(t+="`"),(e.match(/\*\*/g)||[]).length%2!=0&&(t+="**")}return t}(s))})})}),r&&!s&&t.length>0&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 py-1.5 px-[var(--space-4)] mt-[var(--space-1)]",children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--accent)] animate-[jinn-pulse_1.4s_infinite] shrink-0"}),(0,a.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)]",children:"Thinking"})]}),(0,a.jsx)("div",{ref:l})]}),x&&(0,a.jsxs)("button",{onClick:h,"aria-label":"Scroll to bottom",className:"absolute bottom-4 left-1/2 -translate-x-1/2 z-10 flex items-center gap-1.5 py-1.5 px-3 rounded-full bg-[var(--material-thick)] border border-[var(--separator)] text-[var(--text-secondary)] text-[length:var(--text-caption1)] shadow-[var(--shadow-elevated)] cursor-pointer transition-opacity duration-150 hover:bg-[var(--fill-secondary)]",children:[(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("polyline",{points:"6 9 12 15 18 9"})}),"New messages"]}),(0,a.jsx)("style",{children:"\n @keyframes jinn-pulse {\n 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }\n 40% { opacity: 1; transform: scale(1); }\n }\n .assistant-msg-bubble { max-width: 100%; overflow-wrap: break-word; word-break: break-word; }\n .user-msg-bubble { max-width: 90%; overflow-wrap: break-word; word-break: break-word; }\n .notification-msg-bubble { overflow-wrap: break-word; word-break: break-word; }\n .assistant-msg-row { padding: 0 var(--space-2) !important; }\n @media (min-width: 1024px) {\n .assistant-msg-bubble { max-width: 75%; }\n .user-msg-bubble { max-width: 75%; }\n .assistant-msg-row { padding: 0 var(--space-4) !important; }\n }\n /* User message contrast fixes — ensure all child elements are visible on accent background */\n .user-msg-bubble code {\n background: rgba(255,255,255,0.2) !important;\n border-color: rgba(255,255,255,0.3) !important;\n color: inherit !important;\n }\n .user-msg-bubble .code-block,\n .user-msg-bubble pre {\n background: rgba(0,0,0,0.2) !important;\n border-color: rgba(255,255,255,0.15) !important;\n color: rgba(255,255,255,0.95) !important;\n }\n .user-msg-bubble a {\n color: inherit !important;\n text-decoration-color: rgba(255,255,255,0.6) !important;\n }\n .user-msg-bubble strong { color: inherit !important; }\n .user-msg-bubble em { color: inherit !important; opacity: 0.9; }\n .user-msg-bubble span { color: inherit !important; }\n .user-msg-bubble div { color: inherit !important; }\n .user-msg-bubble th, .user-msg-bubble td { color: inherit !important; }\n .user-msg-bubble table { border-color: rgba(255,255,255,0.2) !important; }\n .user-msg-bubble th { border-color: rgba(255,255,255,0.2) !important; }\n .user-msg-bubble td { border-color: rgba(255,255,255,0.15) !important; }\n .user-msg-bubble tr { background: transparent !important; }\n .user-msg-bubble thead tr { background: rgba(255,255,255,0.1) !important; }\n /* Selection visibility for user messages */\n .user-msg-bubble ::selection {\n background: rgba(255,255,255,0.35);\n color: inherit;\n }\n .user-msg-bubble ::-moz-selection {\n background: rgba(255,255,255,0.35);\n color: inherit;\n }\n "})]}):(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-tertiary)]",children:"Start a conversation"}),(0,a.jsx)("div",{className:"text-[length:var(--text-footnote)] text-[var(--text-quaternary)] mt-[var(--space-2)]",children:"Send a message or use /new to begin"})]})})}function ed(e){let{attachments:t,onRemove:r}=e;return 0===t.length?null:(0,a.jsx)("div",{style:{display:"flex",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",overflowX:"auto",overflowY:"hidden"},children:t.map((e,t)=>{var n,s;return(0,a.jsxs)("div",{style:{position:"relative",width:56,height:56,flexShrink:0,borderRadius:"var(--radius-sm)",overflow:"hidden",background:"var(--fill-tertiary)",border:"1px solid var(--separator)"},children:["image"===e.type?(0,a.jsx)("img",{src:e.url,alt:e.name||"Preview",style:{width:"100%",height:"100%",objectFit:"cover"}}):(0,a.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,padding:4},children:["audio"===e.type?(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M9 18V5l12-2v13"}),(0,a.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,a.jsx)("circle",{cx:"18",cy:"16",r:"3"})]}):(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"}),(0,a.jsx)("polyline",{points:"13 2 13 9 20 9"})]}),(0,a.jsx)("span",{style:{fontSize:8,color:"var(--text-quaternary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%",textAlign:"center"},children:(null==(s=e.name)||null==(n=s.split(".").pop())?void 0:n.toUpperCase())||e.type.toUpperCase()})]}),(0,a.jsx)("button",{onClick:()=>r(t),"aria-label":"Remove attachment",style:{position:"absolute",top:2,right:2,width:18,height:18,borderRadius:"50%",background:"rgba(0,0,0,0.6)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:11,lineHeight:1,padding:0},children:(0,a.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",children:[(0,a.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,a.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},t)})})}function eu(e){let{open:t,progress:r,onDownload:n,onCancel:s}=e;if(!t)return null;let l=null!==r;return(0,a.jsx)("div",{className:"fixed inset-0 bg-black/50 z-[60] flex items-center justify-center",onClick:l?void 0:s,children:(0,a.jsxs)("div",{className:"bg-[var(--bg)] rounded-[var(--radius-lg)] p-[var(--space-6)] max-w-[400px] w-[90%] shadow-[var(--shadow-overlay)]",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("div",{className:"w-12 h-12 rounded-[var(--radius-md)] bg-[var(--fill-secondary)] flex items-center justify-center mb-[var(--space-4)]",children:(0,a.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"}),(0,a.jsx)("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"23"}),(0,a.jsx)("line",{x1:"8",y1:"23",x2:"16",y2:"23"})]})}),(0,a.jsx)("h3",{className:"text-[length:var(--text-headline)] font-[var(--weight-bold)] text-[var(--text-primary)] mb-[var(--space-2)]",children:"Enable voice input?"}),(0,a.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-secondary)] mb-[var(--space-5)] leading-[var(--leading-relaxed)]",children:"This will download a speech recognition model (~500MB). Transcription runs locally on your server — no data leaves your network."}),l&&(0,a.jsxs)("div",{className:"mb-[var(--space-5)]",children:[(0,a.jsxs)("div",{className:"flex justify-between mb-[var(--space-2)] text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:[(0,a.jsx)("span",{children:"Downloading model…"}),(0,a.jsxs)("span",{children:[r,"%"]})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-[3px] bg-[var(--fill-tertiary)] overflow-hidden",children:(0,a.jsx)("div",{className:"h-full rounded-[3px] bg-[var(--accent)] transition-[width] duration-300 ease-in-out",style:{width:"".concat(r,"%")}})})]}),(0,a.jsxs)("div",{className:"flex gap-[var(--space-3)] justify-end",children:[!l&&(0,a.jsx)("button",{onClick:s,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] border-none cursor-pointer text-[length:var(--text-body)]",children:"Cancel"}),(0,a.jsx)("button",{onClick:n,disabled:l,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border-none text-[length:var(--text-body)] font-[var(--weight-semibold)] ".concat(l?"bg-[var(--fill-tertiary)] text-[var(--text-tertiary)] cursor-default":"bg-[var(--accent)] text-black cursor-pointer"),children:l?"Downloading…":"Download"})]})]})})}function ex(e){let{analyser:t,width:r=64,height:s=32,color:l="var(--system-red)"}=e,i=(0,n.useRef)(null),o=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let e=i.current;if(!e||!t)return;let a=e.getContext("2d");if(!a)return;let n=t.frequencyBinCount,c=new Uint8Array(n),d=(r-22)/12;return!function e(){o.current=requestAnimationFrame(e),t.getByteFrequencyData(c),a.clearRect(0,0,r,s);for(let e=0;e<12;e++){let t=Math.max(3,c[Math.floor(e/12*(.6*n))]/255*s),r=e*(d+2),i=(s-t)/2;a.fillStyle=l,a.beginPath(),a.roundRect(r,i,d,t,1.5),a.fill()}}(),()=>{cancelAnimationFrame(o.current)}},[t,r,s,l]),(0,a.jsx)("canvas",{ref:i,width:r,height:s,style:{width:r,height:s,display:"block"}})}let ep=[{name:"new",description:"Start a new chat session"},{name:"status",description:"Show current session info"}];async function em(e){let t,r=e.type.startsWith("image/"),a=e.type.startsWith("audio/");if(r)t=await new Promise((t,r)=>{let a=new Image,n=URL.createObjectURL(e);a.onload=()=>{URL.revokeObjectURL(n);let{width:s,height:l}=a;if(s>1200||l>1200){let e=1200/Math.max(s,l);s=Math.round(s*e),l=Math.round(l*e)}let i=document.createElement("canvas");i.width=s,i.height=l;let o=i.getContext("2d");if(!o)return void r(Error("no canvas context"));o.drawImage(a,0,0,s,l);let c=e.size>5e4?"image/jpeg":"image/png";t(i.toDataURL(c,"image/jpeg"===c?.85:void 0))},a.onerror=()=>{URL.revokeObjectURL(n),r(Error("image load failed"))},a.src=n});else t=await new Promise((t,r)=>{let a=new FileReader;a.onloadend=()=>t(a.result),a.onerror=r,a.readAsDataURL(e)});return{type:r?"image":a?"audio":"file",url:t,name:e.name,mimeType:e.type,size:e.size,file:e}}function eh(e){let{disabled:t,loading:r,onSend:s,onInterrupt:i,onNewSession:o,onStatusRequest:c,skillsVersion:d,events:u,droppedFiles:x,onDroppedFilesConsumed:p,focusTrigger:m,onShortcutsClick:h}=e,[g,f]=(0,n.useState)(""),[v,b]=(0,n.useState)([]),[j,w]=(0,n.useState)(!1),[k,N]=(0,n.useState)(""),[C,S]=(0,n.useState)(0),[I,D]=(0,n.useState)(ep),[M,E]=(0,n.useState)(!1),[L,A]=(0,n.useState)(""),[T,z]=(0,n.useState)(0),[R,F]=(0,n.useState)([]),_=(0,n.useRef)(null),U=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(m&&m>0){var e;null==(e=_.current)||e.focus()}},[m]);let W=(0,n.useRef)(new Map),O=function(e,t){let[r,a]=(0,n.useState)("idle"),[s,i]=(0,n.useState)(null),[o,c]=(0,n.useState)(null),[d,u]=(0,n.useState)(null),[x,p]=(0,n.useState)(["en"]),[m,h]=(0,n.useState)(null),[g,f]=(0,n.useState)(()=>localStorage.getItem("stt-language")||"en"),v=(0,n.useRef)(g);v.current=g;let b=(0,n.useRef)(null),y=(0,n.useRef)(null),j=(0,n.useRef)(null),w=(0,n.useRef)([]),k=(0,n.useRef)(null),N=(0,n.useRef)(null),C=(0,n.useRef)(t);C.current=t,(0,n.useEffect)(()=>{if(!e||0===e.length)return;let t=e[e.length-1];if(!t.event.startsWith("stt:"))return;let r=t.payload;"stt:download:progress"===t.event&&c(Number(r.progress)||0),"stt:download:complete"===t.event&&(c(null),i(!0),a("idle")),"stt:download:error"===t.event&&(c(null),a("idle"))},[e]);let S=(0,n.useCallback)(()=>{var e,t;null==(e=j.current)||e.getTracks().forEach(e=>e.stop()),j.current=null,null==(t=y.current)||t.close().catch(()=>{}),y.current=null,u(null),b.current=null},[]);(0,n.useEffect)(()=>()=>{var e,t,r;k.current&&clearTimeout(k.current),(null==(e=b.current)?void 0:e.state)==="recording"&&b.current.stop(),null==(t=j.current)||t.getTracks().forEach(e=>e.stop()),null==(r=y.current)||r.close().catch(()=>{})},[]);let I=(0,n.useCallback)(async()=>{try{var e;let t=await l.F.sttStatus();return i(t.available),t.downloading&&c(t.progress),(null==(e=t.languages)?void 0:e.length)>0&&(p(t.languages),f(e=>{if(!t.languages.includes(e)){let e=t.languages[0];return localStorage.setItem("stt-language",e),e}return e})),t.available}catch(e){return i(!1),!1}},[]),D=(0,n.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});j.current=e;let t=new AudioContext;y.current=t;let r=t.createMediaStreamSource(e),n=t.createAnalyser();n.fftSize=128,r.connect(n),u(n);let s=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/mp4")?"audio/mp4":"",i=new MediaRecorder(e,s?{mimeType:s}:void 0);b.current=i,w.current=[],i.ondataavailable=e=>{e.data.size>0&&w.current.push(e.data)},i.onstop=async()=>{S(),a("transcribing");let e=new Blob(w.current,{type:i.mimeType||"audio/webm"});if(w.current=[],0===e.size){var t;a("idle"),null==(t=N.current)||t.call(N,null),N.current=null;return}try{let t=(await l.F.sttTranscribe(e,v.current)).text||null;a("idle"),h(null),N.current?(N.current(t),N.current=null):t&&C.current&&C.current(t)}catch(t){let e=t instanceof Error?t.message:"Transcription failed";h(e),a("error"),N.current&&(N.current(null),N.current=null)}},i.start(5e3),a("recording"),k.current=setTimeout(()=>{var e;(null==(e=b.current)?void 0:e.state)==="recording"&&b.current.stop()},18e5)}catch(e){S(),a("idle")}},[S]),M=(0,n.useCallback)(async()=>{"recording"!==r&&"transcribing"!==r&&("error"===r&&(h(null),a("idle")),await I()?await D():a("no-model"))},[r,I,D]),E=(0,n.useCallback)(async()=>{await D()},[D]),L=(0,n.useCallback)(async()=>b.current&&"inactive"!==b.current.state?(k.current&&(clearTimeout(k.current),k.current=null),new Promise(e=>{var t;N.current=e,(null==(t=b.current)?void 0:t.state)==="recording"?b.current.stop():(S(),a("idle"),N.current=null,e(null))})):(a("idle"),null),[S]),A=(0,n.useCallback)(()=>{var e;k.current&&(clearTimeout(k.current),k.current=null),(null==(e=b.current)?void 0:e.state)==="recording"&&b.current.stop(),S(),w.current=[],a("idle")},[S]),T=(0,n.useCallback)(()=>{c(0),l.F.sttDownload().catch(()=>{c(null)})},[]),z=(0,n.useCallback)(()=>{a("idle"),c(null)},[]),R=(0,n.useCallback)(()=>{a("idle"),h(null)},[]),F=(0,n.useCallback)(()=>{f(e=>{let t=x.indexOf(e),r=x[(t+1)%x.length];return localStorage.setItem("stt-language",r),r})},[x]);return{state:r,available:s,downloadProgress:o,analyser:d,languages:x,selectedLanguage:g,error:m,cycleLanguage:F,handleMicClick:M,startRecording:E,stopRecording:L,cancelRecording:A,startDownload:T,dismissDownload:z,dismissError:R}}(u,e=>{e&&f(t=>t?t+" "+e:e)}),P=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{x&&0!==x.length&&P.current!==x&&(P.current=x,(async()=>{let e=[];for(let t of x)e.push(await em(t));F(t=>[...t,...e]),null==p||p()})())},[x,p]),(0,n.useEffect)(()=>{l.F.getOrg().then(async e=>{let t=e.employees;Array.isArray(t)&&b(await Promise.all(t.map(async e=>{try{let t=await l.F.getEmployee(e);return{name:t.name,displayName:t.displayName,department:t.department,rank:t.rank,engine:t.engine}}catch(t){return{name:e}}})))}).catch(()=>{})},[]),(0,n.useEffect)(()=>{l.F.getSkills().then(e=>{if(!Array.isArray(e))return;let t=e.filter(e=>!ep.some(t=>t.name===e.name)).map(e=>({name:e.name,description:e.description||"",needsEmployee:"sync"===e.name}));D([...ep,...t])}).catch(()=>{})},[d]);let K=(0,n.useCallback)(e=>{var t;let r=g.lastIndexOf("@");-1!==r&&f(g.slice(0,r)+"@"+e+" "),w(!1),null==(t=_.current)||t.focus()},[g]),q=(0,n.useCallback)(e=>{var t;e.needsEmployee?(f("/"+e.name+" @"),E(!1),N(""),S(0),w(!0)):(f("/"+e.name),E(!1)),null==(t=_.current)||t.focus()},[]);function B(){let e=g.trim(),r=R.length>0;if(!e&&!r||t)return;if("/new"===e){f(""),o();return}if("/status"===e){f(""),c();return}let a=r?[...R]:void 0;f(""),F([]),w(!1),E(!1),_.current&&(_.current.style.height="auto"),s(e,a,!1)}async function H(e){let t=e.target.files;if(!t||0===t.length)return;let r=[];for(let e=0;e<t.length;e++)r.push(await em(t[e]));F(e=>[...e,...r]),e.target.value=""}async function V(e){var t;let r=null==(t=e.clipboardData)?void 0:t.items;if(r){for(let t=0;t<r.length;t++)if(r[t].type.startsWith("image/")){e.preventDefault();let a=r[t].getAsFile();if(a){let e=await em(a);F(t=>[...t,e])}return}}}let J=(0,n.useCallback)(e=>{e&&f(t=>t?t+" "+e:e)},[]);async function Q(){if("recording"===O.state){var e;let t=await O.stopRecording();J(null!=t?t:""),null==(e=_.current)||e.focus()}else"transcribing"===O.state||O.handleMicClick()}(0,n.useEffect)(()=>{_.current&&(_.current.style.height="auto",_.current.style.height=Math.min(_.current.scrollHeight,120)+"px")},[g]);let $=I.filter(e=>e.name.toLowerCase().startsWith(L)),G=v.filter(e=>e.name.toLowerCase().includes(k)),Y=g.trim().length>0||R.length>0;return(0,a.jsxs)("div",{className:"px-3 sm:px-4 pt-[var(--space-3)] pb-[var(--space-3)] border-t border-t-[var(--separator)] bg-[var(--material-regular)] shrink-0 relative",children:[M&&$.length>0&&(0,a.jsx)("div",{className:"absolute bottom-full left-[var(--space-4)] right-[var(--space-4)] mb-1 bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[var(--shadow-lg)] max-h-60 overflow-y-auto z-10",children:$.map((e,t)=>{let r=t===T;return(0,a.jsxs)("button",{ref:e=>{r&&e&&e.scrollIntoView({block:"nearest"})},onClick:()=>q(e),className:"w-full text-left py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-footnote)] ".concat(r?"bg-[var(--fill-secondary)]":"bg-transparent"," border-none cursor-pointer flex items-center gap-[var(--space-2)] text-[var(--text-primary)]"),children:[(0,a.jsxs)("span",{className:"font-[family-name:var(--font-mono)] font-[var(--weight-semibold)] text-[var(--accent)] text-[length:var(--text-footnote)]",children:["/",e.name]}),(0,a.jsx)("span",{className:"text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:e.description})]},e.name)})}),j&&G.length>0&&(0,a.jsx)("div",{className:"absolute bottom-full left-[var(--space-4)] right-[var(--space-4)] mb-1 bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[var(--shadow-lg)] max-h-40 overflow-y-auto z-10",children:G.slice(0,8).map((e,t)=>{let r=t===C;return(0,a.jsxs)("button",{ref:e=>{e?W.current.set(t,e):W.current.delete(t),r&&e&&e.scrollIntoView({block:"nearest"})},onClick:()=>K(e.name),className:"w-full text-left py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-footnote)] ".concat(r?"bg-[var(--fill-secondary)]":"bg-transparent"," border-none cursor-pointer flex items-center gap-[var(--space-2)] text-[var(--text-primary)]"),children:[(0,a.jsx)(y.s,{name:e.name,size:20}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,a.jsx)("span",{className:"font-[var(--weight-semibold)]",children:e.displayName||e.name}),(0,a.jsxs)("span",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:["@",e.name]})]}),e.department&&(0,a.jsxs)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] flex gap-[var(--space-2)] mt-px",children:[(0,a.jsx)("span",{children:e.department}),e.engine&&(0,a.jsx)("span",{className:"text-[var(--accent)] font-[var(--weight-medium)]",children:e.engine})]})]})]},e.name)})}),R.length>0&&(0,a.jsx)("div",{className:"mb-[var(--space-2)]",children:(0,a.jsx)(ed,{attachments:R,onRemove:function(e){F(t=>t.filter((t,r)=>r!==e))}})}),(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] bg-[var(--fill-secondary)] rounded-[var(--radius-lg)] py-1.5 px-[var(--space-3)] min-h-11 transition-[border-color] duration-200 ease-in-out border ".concat(r?"border-[var(--accent)]":"border-[var(--separator)]"),children:[(0,a.jsx)("button",{"aria-label":"Attach file",onClick:()=>{var e;return null==(e=U.current)?void 0:e.click()},className:"w-8 h-8 shrink-0 rounded-[var(--radius-sm)] flex items-center justify-center bg-transparent border-none cursor-pointer text-[var(--text-secondary)] mb-0",children:(0,a.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,a.jsx)("input",{ref:U,type:"file",accept:"image/*,audio/*,.pdf,.doc,.docx,.txt,.csv,.json,.zip",multiple:!0,className:"hidden",onChange:H}),(0,a.jsx)("textarea",{id:"chat-textarea",ref:_,value:g,onChange:function(e){let t=e.target.value;if(f(t),t.startsWith("/")&&!t.includes(" ")){A(t.slice(1).toLowerCase()),z(0),E(!0),w(!1);return}E(!1);let r=t.lastIndexOf("@");if(-1!==r){let e=t.slice(r+1);if(!e.includes(" ")&&!e.includes("\n")){N(e.toLowerCase()),S(0),w(!0);return}}w(!1)},onKeyDown:function(e){if(M&&$.length>0){let t=$.length;if("ArrowDown"===e.key){e.preventDefault(),z(e=>(e+1)%t);return}if("ArrowUp"===e.key){e.preventDefault(),z(e=>(e-1+t)%t);return}if("Tab"===e.key||"Enter"===e.key){e.preventDefault(),q($[T]);return}if("Escape"===e.key){e.preventDefault(),E(!1);return}}if(j&&G.length>0){let t=Math.min(G.length,8);if("ArrowDown"===e.key){e.preventDefault(),S(e=>(e+1)%t);return}if("ArrowUp"===e.key){e.preventDefault(),S(e=>(e-1+t)%t);return}if("Tab"===e.key||"Enter"===e.key){e.preventDefault(),K(G[C].name);return}if("Escape"===e.key){e.preventDefault(),w(!1);return}}"Enter"!==e.key||e.shiftKey||(e.preventDefault(),B())},onPaste:V,placeholder:t?"Waiting for response...":"Type a message...",rows:1,disabled:t,className:"flex-1 bg-transparent border-none outline-none resize-none text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-5 max-h-30 min-h-5 h-5 p-0 m-0 ".concat(t?"opacity-50":"opacity-100"),onInput:e=>{let t=e.target;t.style.height="auto",t.style.height=Math.min(t.scrollHeight,120)+"px"}}),O.languages.length>1&&(0,a.jsx)("button",{"aria-label":"STT language: ".concat(O.selectedLanguage.toUpperCase(),". Click to switch."),onClick:O.cycleLanguage,className:"h-6 px-1.5 shrink-0 rounded-[var(--radius-sm)] flex items-center justify-center bg-[var(--fill-tertiary)] border-none cursor-pointer text-[var(--text-secondary)] text-[11px] font-semibold font-[family-name:var(--font-mono)] tracking-[0.5px] uppercase transition-all duration-150 ease-in-out",title:"Transcription language: ".concat(O.selectedLanguage.toUpperCase(),". Click to cycle."),children:O.selectedLanguage}),(0,a.jsx)("button",{"aria-label":"recording"===O.state?"Stop recording":"transcribing"===O.state?"Transcribing…":"Voice input",onClick:Q,disabled:"transcribing"===O.state,className:"w-8 h-8 shrink-0 flex items-center justify-center border-none transition-all duration-150 ease-in-out ".concat("recording"===O.state?"rounded-full bg-[var(--system-red)] text-white cursor-pointer":"rounded-[var(--radius-sm)] bg-transparent text-[var(--text-secondary)] ".concat("transcribing"===O.state?"cursor-wait":"cursor-pointer")),title:"recording"===O.state?"Stop recording":"transcribing"===O.state?"Transcribing…":"Voice input",children:"transcribing"===O.state?(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"animate-[stt-spin_1s_linear_infinite]",children:(0,a.jsx)("path",{d:"M12 2a10 10 0 0 1 10 10"})}):(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"}),(0,a.jsx)("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"23"}),(0,a.jsx)("line",{x1:"8",y1:"23",x2:"16",y2:"23"})]})}),"recording"===O.state&&O.analyser&&(0,a.jsx)(ex,{analyser:O.analyser,width:64,height:28}),r&&i&&(0,a.jsx)("button",{onClick:i,"aria-label":"Stop",className:"w-8 h-8 rounded-full bg-[var(--system-red)] text-white border-none cursor-pointer flex items-center justify-center shrink-0 transition-all duration-150 ease-in-out",children:(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})})}),(0,a.jsx)("button",{onClick:B,disabled:!Y||t,"aria-label":"Send message",className:"w-8 h-8 rounded-full border-none flex items-center justify-center shrink-0 transition-all duration-150 ease-in-out ".concat(Y?"bg-[var(--accent)] text-[var(--accent-contrast)] cursor-pointer":"bg-[var(--fill-tertiary)] text-[var(--text-quaternary)] cursor-default"),children:(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),(0,a.jsx)("polyline",{points:"5 12 12 5 19 12"})]})})]}),(0,a.jsxs)("div",{className:"hidden sm:flex text-[length:var(--text-caption2)] text-[var(--text-quaternary)] text-center mt-[var(--space-1)] justify-center gap-[var(--space-3)]",children:[(0,a.jsx)("span",{children:"Enter to send"}),(0,a.jsx)("span",{children:"/ - commands"}),(0,a.jsx)("span",{children:"@name - mention"}),h&&(0,a.jsxs)("button",{onClick:h,className:"flex items-center gap-1 text-[length:var(--text-caption2)] text-[var(--text-quaternary)] hover:text-[var(--text-tertiary)] transition-colors bg-transparent border-none cursor-pointer p-0 font-[inherit]",children:[(0,a.jsx)("kbd",{className:"rounded bg-[var(--fill-tertiary)] px-1 py-0.5 font-mono text-[10px] leading-none",children:"?"}),(0,a.jsx)("span",{children:"shortcuts"})]})]}),"error"===O.state&&O.error&&(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mt-[var(--space-2)] py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-sm)] text-[length:var(--text-caption1)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 12%, transparent)"},children:[(0,a.jsxs)("span",{className:"flex-1",children:["Voice input error: ",O.error]}),(0,a.jsx)("button",{onClick:O.dismissError,className:"bg-none border-none cursor-pointer text-[var(--system-red)] text-[length:var(--text-caption1)] font-semibold py-0.5 px-1.5",children:"Dismiss"})]}),(0,a.jsx)(eu,{open:"no-model"===O.state,progress:O.downloadProgress,onDownload:O.startDownload,onCancel:O.dismissDownload}),(0,a.jsx)("style",{children:"\n @keyframes stt-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n "})]})}let eg={executive:"Exec",manager:"Mgr",senior:"Sr",employee:""};function ef(e){let{employees:t,selectedEmployee:r,onSelect:s,portalName:l}=e,[i,o]=(0,n.useState)(""),[c,d]=(0,n.useState)(-1),u=(0,n.useRef)(null),x=(0,n.useRef)(null),p=(0,n.useMemo)(()=>{if(!i.trim())return t;let e=i.toLowerCase();return t.filter(t=>t.name.toLowerCase().includes(e)||t.displayName.toLowerCase().includes(e)||t.department.toLowerCase().includes(e))},[t,i]),m=(0,n.useMemo)(()=>{let e=new Map;for(let t of p){let r=t.department||"other";e.has(r)||e.set(r,[]),e.get(r).push(t)}return e},[p]),h=(0,n.useMemo)(()=>{let e=[];for(let t of m.values())e.push(...t);return e},[m]);(0,n.useEffect)(()=>{d(-1)},[i]),(0,n.useEffect)(()=>{if(!u.current)return;let e=u.current.querySelectorAll("[data-picker-option]")[c+1];e&&"function"==typeof e.scrollIntoView&&e.scrollIntoView({block:"nearest"})},[c]);let g=(0,n.useCallback)(e=>{"ArrowDown"===e.key?(e.preventDefault(),d(e=>Math.min(e+1,h.length-1))):"ArrowUp"===e.key?(e.preventDefault(),d(e=>Math.max(e-1,-1))):"Enter"===e.key&&(e.preventDefault(),-1===c?s(null):h[c]&&s(h[c].name))},[c,h,s]);return(0,a.jsxs)("div",{className:"flex flex-col items-center gap-3 px-4 w-full max-w-md mx-auto",children:[(0,a.jsx)("p",{className:"text-sm text-[var(--text-secondary)]",children:"Who do you want to talk to?"}),(0,a.jsx)("div",{className:"w-full",children:(0,a.jsx)("input",{ref:x,type:"text",placeholder:"Search employees...",value:i,onChange:e=>o(e.target.value),className:"w-full py-2 px-3 text-[length:var(--text-footnote)] border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] outline-none font-[inherit] placeholder:text-[var(--text-tertiary)]"})}),(0,a.jsxs)("div",{ref:u,role:"listbox",tabIndex:0,onKeyDown:g,className:"w-full max-h-[360px] overflow-y-auto rounded-[var(--radius-md)] border border-[var(--separator)] bg-[var(--fill-quaternary)]",children:[(0,a.jsxs)("div",{role:"option","aria-selected":null===r,"aria-label":l,"data-picker-option":!0,onClick:()=>s(null),onMouseEnter:()=>d(-1),className:(0,C.cn)("flex items-center gap-3 px-3 py-2.5 cursor-pointer transition-colors border-b border-[var(--separator)]",-1===c&&"bg-[var(--fill-secondary)]",null===r?"bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]":""),children:[(0,a.jsx)("span",{className:"text-xl shrink-0",children:"\uD83E\uDDDE"}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:(0,a.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:l})}),(0,a.jsx)("span",{className:"text-[length:var(--text-caption2)] text-[var(--accent)] bg-[color-mix(in_srgb,var(--accent)_12%,transparent)] rounded-[var(--radius-sm)] px-1.5 py-px font-[var(--weight-medium)] shrink-0",children:"COO"})]}),Array.from(m.entries()).map(e=>{let[t,n]=e;return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"px-3 py-1.5 text-[length:var(--text-caption2)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] uppercase tracking-wider bg-[var(--fill-tertiary)]",children:t}),n.map(e=>{let t=h.indexOf(e),n=r===e.name,l=c===t;return(0,a.jsxs)("div",{role:"option","aria-selected":n,"data-picker-option":!0,onClick:()=>s(e.name),onMouseEnter:()=>d(t),className:(0,C.cn)("flex items-center gap-3 px-3 py-2 cursor-pointer transition-colors",l&&"bg-[var(--fill-secondary)]",n&&"bg-[color-mix(in_srgb,var(--accent)_8%,transparent)]"),children:[(0,a.jsx)(y.s,{name:e.name,size:28}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:(0,a.jsx)("span",{className:"text-[length:var(--text-footnote)] font-[var(--weight-medium)] text-[var(--text-primary)] overflow-hidden text-ellipsis whitespace-nowrap block",children:e.displayName})}),eg[e.rank]&&(0,a.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 shrink-0",children:eg[e.rank]}),n&&(0,a.jsx)("span",{className:"text-[var(--accent)] text-[13px] shrink-0",children:"✓"})]},e.name)})]},t)}),0===p.length&&(0,a.jsxs)("div",{className:"p-4 text-center text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:["No employees match “",i,"”"]})]})]})}var ev=r(687),eb=r(7181);function ey(e){let{sessionId:t,events:r,paused:s=!1}=e,[i,o]=(0,n.useState)([]),[c,d]=(0,n.useState)(s),u=(0,n.useCallback)(async()=>{if(t)try{let e=await l.F.getSessionQueue(t);o(e)}catch(e){}},[t]);(0,n.useEffect)(()=>{u()},[u]),(0,n.useEffect)(()=>{if(!r.length)return;let e=r[r.length-1];if("queue:updated"===e.event){u();let t=e.payload;"boolean"==typeof(null==t?void 0:t.paused)&&d(t.paused)}},[r,u]);let x=i.filter(e=>"pending"===e.status);if(!t||0===x.length)return null;async function p(e){if(t)try{await l.F.cancelQueueItem(t,e),await u()}catch(e){}}async function h(){if(t)try{await l.F.clearSessionQueue(t),o([])}catch(e){}}async function g(){if(t)try{c?(await l.F.resumeSessionQueue(t),d(!1)):(await l.F.pauseSessionQueue(t),d(!0))}catch(e){}}return(0,a.jsxs)("div",{className:"border-t border-[var(--separator)] px-[var(--space-4)] py-[var(--space-2)] bg-[var(--fill-quaternary)] shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-[var(--space-1)]",children:[(0,a.jsxs)("span",{className:"text-[length:var(--text-caption2)] font-semibold text-[var(--text-secondary)] uppercase tracking-[0.5px]",children:[x.length," queued ",c&&"\xb7 Paused"]}),(0,a.jsxs)("div",{className:"flex gap-[var(--space-1)]",children:[(0,a.jsx)("button",{onClick:g,title:c?"Resume queue":"Pause queue",className:"bg-transparent border-none cursor-pointer text-[var(--text-secondary)] p-0.5 flex items-center",children:c?(0,a.jsx)(ev.A,{size:13}):(0,a.jsx)(eb.A,{size:13})}),(0,a.jsx)("button",{onClick:h,title:"Clear all queued messages",className:"bg-transparent border-none cursor-pointer text-[var(--text-secondary)] p-0.5 flex items-center",children:(0,a.jsx)(m.A,{size:13})})]})]}),(0,a.jsx)("div",{className:"flex flex-col gap-0.5",children:x.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] px-[var(--space-2)] py-[3px] rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)]",children:[(0,a.jsxs)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] min-w-4",children:[e.position,"."]}),(0,a.jsx)("span",{className:"flex-1 text-[length:var(--text-caption1)] text-[var(--text-secondary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.prompt.length>60?e.prompt.slice(0,57)+"...":e.prompt}),(0,a.jsx)("button",{onClick:()=>p(e.id),title:"Cancel this message",className:"bg-transparent border-none cursor-pointer text-[var(--text-tertiary)] p-px flex items-center shrink-0",children:(0,a.jsx)(f.A,{size:11})})]},e.id))})]})}function ej(e){let{input:t}=e,[r,s]=(0,n.useState)(!1),l=JSON.stringify(t,null,2);return l.length>300?(0,a.jsxs)("div",{children:[(0,a.jsx)("button",{onClick:()=>s(e=>!e),className:"mt-1 px-2 py-0.5 text-[11px] rounded bg-white/[0.08] border border-white/[0.12] text-[var(--text-tertiary)] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:r?"collapse input":"show input (".concat(l.length," chars)")}),r&&(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/5 rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-secondary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[400px] overflow-y-auto",children:l})]}):(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/5 rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-secondary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto",children:l})}function ew(e){let{text:t}=e,[r,s]=(0,n.useState)(!1);return(0,a.jsxs)("div",{className:"mb-1.5",children:[(0,a.jsx)("button",{onClick:()=>s(e=>!e),className:"px-2 py-0.5 text-[11px] rounded bg-white/[0.06] border border-white/10 text-[var(--text-quaternary,var(--text-tertiary))] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace] italic",children:r?"hide thinking":"show thinking"}),r&&(0,a.jsx)("div",{className:"mt-1 px-3 py-2 bg-white/[0.04] border-l-2 border-white/10 text-xs leading-relaxed text-[var(--text-quaternary,var(--text-tertiary))] italic whitespace-pre-wrap break-words font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:t})]})}function ek(e){let{text:t}=e,[r,s]=(0,n.useState)(!1);return t.length>500?(0,a.jsxs)("div",{children:[(0,a.jsx)("button",{onClick:()=>s(e=>!e),className:"mt-1 px-2 py-0.5 text-[11px] rounded bg-white/[0.08] border border-white/[0.12] text-[var(--text-tertiary)] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:r?"collapse output":"show output (".concat(t.length," chars)")}),r&&(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/[0.04] rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[400px] overflow-y-auto",children:t})]}):(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/[0.04] rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[300px] overflow-y-auto",children:t||"(empty)"})}function eN(e){let{block:t}=e;return"thinking"===t.type?(0,a.jsx)(ew,{text:t.text||""}):"tool_use"===t.type?(0,a.jsxs)("div",{className:"mb-2 px-2.5 py-1.5 bg-[rgba(99,179,237,0.08)] border border-[rgba(99,179,237,0.2)] rounded-md",children:[(0,a.jsxs)("div",{className:"text-[11px] font-semibold text-[rgba(99,179,237,0.9)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] mb-0.5 uppercase tracking-wide",children:["tool: ",t.name]}),t.input&&Object.keys(t.input).length>0&&(0,a.jsx)(ej,{input:t.input})]}):"tool_result"===t.type?(0,a.jsxs)("div",{className:"mb-2 px-2.5 py-1.5 bg-white/[0.03] border border-white/[0.08] rounded-md",children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold text-[rgba(160,160,160,0.7)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] mb-0.5 uppercase tracking-wide",children:"result"}),(0,a.jsx)(ek,{text:t.text||""})]}):(0,a.jsx)("div",{className:"whitespace-pre-wrap break-words leading-relaxed text-[var(--text-primary)] mb-1",children:t.text})}function eC(e){let{entry:t}=e,r="user"===t.role;return(0,a.jsxs)("div",{className:"flex gap-2.5 py-2.5 border-b border-white/[0.04]",children:[(0,a.jsx)("div",{className:"shrink-0 w-4 text-[13px] font-bold font-[SF_Mono,Menlo,Cascadia_Code,monospace] pt-px",style:{color:r?"var(--accent)":"rgba(110, 231, 183, 0.8)"},children:r?">":"$"}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:t.content.map((e,t)=>(0,a.jsx)(eN,{block:e},t))})]})}function eS(e){let{sessionId:t}=e,[r,s]=(0,n.useState)([]),[i,o]=(0,n.useState)(!0),[c,d]=(0,n.useState)(null),u=(0,n.useRef)(null);return((0,n.useEffect)(()=>{t&&(o(!0),d(null),l.F.getSessionTranscript(t).then(e=>{s(e),o(!1)}).catch(e=>{d(e instanceof Error?e.message:"Failed to load transcript"),o(!1)}))},[t]),(0,n.useEffect)(()=>{var e;null==(e=u.current)||e.scrollIntoView({behavior:"instant"})},[r]),i)?(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:"loading transcript..."}):c?(0,a.jsxs)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--system-red)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:["error: ",c]}):0===r.length?(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:"no transcript available"}):(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto overflow-x-hidden bg-[var(--bg-primary,var(--bg))] p-[var(--space-4)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px] leading-normal min-h-0",children:[r.map((e,t)=>(0,a.jsx)(eC,{entry:e},t)),(0,a.jsx)("div",{ref:u})]})}function eI(e){var t;let{sessionId:r,isActive:s,onFocus:i,onSessionCreated:o,onSessionMetaChange:c,onRefresh:d,portalName:u="Jinn",subscribe:x,connectionSeq:p,skillsVersion:m,events:h,viewMode:g="chat",getOnboardingPrompt:f,isStubSession:v,onStubCleared:b,focusTrigger:y,onShortcutsClick:j}=e,[w,k]=(0,n.useState)([]),[N,C]=(0,n.useState)(!1),S=(0,n.useRef)(""),[I,D]=(0,n.useState)(""),M=(0,n.useRef)(-1),[E,L]=(0,n.useState)(null),A=(0,n.useRef)(r),[T,z]=(0,n.useState)(null),[R,F]=(0,n.useState)([]),_=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!r&&(_.current&&R.length>0||l.F.getOrg().then(async e=>{Array.isArray(e.employees)&&(F(await Promise.all(e.employees.map(async e=>{try{let t=await l.F.getEmployee(e);return{name:t.name,displayName:t.displayName,department:t.department,rank:t.rank}}catch(t){return{name:e,displayName:e,department:"",rank:"employee"}}}))),_.current=!0)}).catch(()=>{}))},[r,R.length]),(0,n.useEffect)(()=>{A.current=r},[r]);let U=(0,n.useCallback)((e,t)=>{if(!t)return;let r=M.current;if(r<0)return;let a=e.slice(r);a.length>0&&function(e,t){try{localStorage.setItem("".concat($).concat(e),JSON.stringify(t))}catch(e){}}(t,a)},[]);(0,n.useEffect)(()=>x((e,t)=>{let r=A.current;if(r&&t.sessionId===r){if("session:delta"===e){let e=String(t.type||"text");if("text"===e){let e=String(t.content||"");S.current+=e,D(S.current)}else if("text_snapshot"===e){let e=String(t.content||"");e.length>=S.current.length&&(S.current=e,D(e))}else if("tool_use"===e){if(S.current){let e=S.current;S.current="",D(""),k(t=>{M.current<0&&(M.current=t.length);let a=[...t,{id:crypto.randomUUID(),role:"assistant",content:e,timestamp:Date.now()}];return U(a,r),a})}let e=String(t.toolName||"tool");k(t=>{M.current<0&&(M.current=t.length);let a=[...t,{id:crypto.randomUUID(),role:"assistant",content:"Using ".concat(e),timestamp:Date.now(),toolCall:e}];return U(a,r),a})}else"tool_result"===e&&k(e=>{let t=[...e],a=t[t.length-1];return a&&"assistant"===a.role&&a.toolCall&&(t[t.length-1]={...a,content:"Used ".concat(a.toolCall)}),U(t,r),t})}if("session:notification"===e){let e=String(t.message||"");e&&k(t=>[...t,{id:crypto.randomUUID(),role:"notification",content:e,timestamp:Date.now()}])}if("session:interrupted"===e&&(S.current="",D("")),"session:stopped"===e&&(C(!1),D("")),"session:completed"===e){S.current="",D(""),C(!1),M.current=-1;let e=r||(t.sessionId?String(t.sessionId):null);e&&G(e),t.result&&k(e=>{let r=[...e],a=r[r.length-1];return a&&"assistant"===a.role&&!a.toolCall&&r.pop(),[...r,{id:crypto.randomUUID(),role:"assistant",content:String(t.result),timestamp:Date.now()}]}),t.error&&!t.result&&k(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"Error: ".concat(t.error),timestamp:Date.now()}]),null==d||d()}}}),[x,U,d]);let W=(0,n.useCallback)(async e=>{try{let t=await l.F.getSession(e);L(t);let r={engine:t.engine?String(t.engine):void 0,engineSessionId:t.engineSessionId?String(t.engineSessionId):void 0,model:t.model?String(t.model):void 0,title:t.title?String(t.title):void 0,employee:t.employee?String(t.employee):void 0};null==c||c(r);let a=t.messages||t.history||[],n=Array.isArray(a)?a.map(e=>({id:crypto.randomUUID(),role:e.role||"assistant",content:String(e.content||e.text||""),timestamp:e.timestamp?Number(e.timestamp):Date.now()})):[];if("error"===t.status&&t.lastError){let e=n[n.length-1],r="Error: ".concat(String(t.lastError));e&&"assistant"===e.role&&e.content===r||n.push({id:crypto.randomUUID(),role:"assistant",content:r,timestamp:Date.now()})}if("running"===t.status){let t=function(e){try{let t=localStorage.getItem("".concat($).concat(e));return t?JSON.parse(t):[]}catch(e){return[]}}(e);t.length>0?(M.current=n.length,k([...n,...t])):(M.current=n.length,k(n)),C(!0)}else G(e),M.current=-1,k(n)}catch(e){k([]),L(null),M.current=-1}},[c]);(0,n.useEffect)(()=>{if(!r){k([]),C(!1),L(null),S.current="",D(""),M.current=-1,z(null);return}S.current="",D(""),C(!1),W(r)},[r,W]),(0,n.useEffect)(()=>{p&&r&&W(r)},[p,r,W]),(0,n.useEffect)(()=>{if(!r||!N)return;let e=setInterval(async()=>{try{let e=await l.F.getSession(r);"running"!==e.status&&(await W(r),C(!1))}catch(e){}},5e3);return()=>clearInterval(e)},[r,N,W]);let O=(0,n.useCallback)(async()=>{if(r)try{await l.F.stopSession(r)}catch(e){}},[r]),P=(0,n.useCallback)(async(e,t,a)=>{let n={id:crypto.randomUUID(),role:"user",content:e,timestamp:Date.now(),media:t};k(e=>(M.current=e.length+1,[...e,n])),C(!0);try{let n;if(t&&t.length>0){let e=t.filter(e=>e.file).map(e=>l.F.uploadFile(e.file));e.length>0&&(n=(await Promise.all(e)).map(e=>e.id))}let s=r;if(s&&v&&f){null==b||b();let t=f(e);await l.F.sendMessage(s,{message:t,attachments:n}),null==d||d()}else if(s)await l.F.sendMessage(s,{message:e,interrupt:a||void 0,attachments:n}),null==d||d();else{let t=function(e){let t={source:"web",prompt:e.message};return e.selectedEmployee&&(t.employee=e.selectedEmployee),e.attachmentIds&&e.attachmentIds.length>0&&(t.attachments=e.attachmentIds),t}({message:e,selectedEmployee:T,attachmentIds:n}),r=await l.F.createSession(t);s=String(r.id),null==o||o(s),null==d||d()}}catch(e){C(!1),k(t=>[...t,{id:crypto.randomUUID(),role:"assistant",content:"Error: ".concat(e instanceof Error?e.message:"Failed to send message"),timestamp:Date.now()}])}},[r,T,v,f,b,o,d]),K=(0,n.useCallback)(async()=>{if(!r)return void k(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"No active session. Send a message to start one.",timestamp:Date.now()}]);try{let e=await l.F.getSession(r),t=["**Session Info**","ID: `".concat(e.id,"`"),"Status: ".concat(e.status||"unknown"),e.employee?"Employee: ".concat(e.employee):null,e.engine?"Engine: ".concat(e.engine):null,e.model?"Model: ".concat(e.model):null,e.createdAt?"Created: ".concat(e.createdAt):null].filter(Boolean).join("\n");k(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:t,timestamp:Date.now()}])}catch(e){k(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"Failed to fetch session status.",timestamp:Date.now()}])}},[r]),q=(0,n.useCallback)(()=>{k([]),C(!1),L(null),S.current="",D(""),M.current=-1},[]),[B,H]=(0,n.useState)(!1),[V,J]=(0,n.useState)(),Q=(0,n.useRef)(0),Y=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),Q.current++,e.dataTransfer.types.includes("Files")&&H(!0)},[]),Z=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),Q.current--,0===Q.current&&H(!1)},[]),X=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),ee=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),Q.current=0,H(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&J(t)},[]);return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden",background:"var(--bg)",position:"relative"},onClick:i,onDragEnter:Y,onDragLeave:Z,onDragOver:X,onDrop:ee,children:[B&&(0,a.jsx)("div",{style:{position:"absolute",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",background:"color-mix(in srgb, var(--bg) 85%, transparent)",backdropFilter:"blur(4px)",transition:"opacity 150ms ease-in-out"},children:(0,a.jsxs)("div",{style:{border:"2px dashed var(--accent)",borderRadius:"var(--radius-lg)",padding:"48px 64px",display:"flex",flexDirection:"column",alignItems:"center",gap:"12px"},children:[(0,a.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,a.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,a.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),(0,a.jsx)("span",{style:{color:"var(--text-secondary)",fontSize:"var(--text-body)"},children:"Drop files here"})]})}),!r&&0===w.length&&"chat"===g&&(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,a.jsx)(ef,{employees:R,selectedEmployee:T,onSelect:z,portalName:u})}),"cli"===g&&r?(0,a.jsx)(eS,{sessionId:r}):r||w.length>0?(0,a.jsx)(ec,{messages:w,loading:N,streamingText:I}):null,"chat"===g&&(0,a.jsx)(ey,{sessionId:r,events:h,paused:null!=(t=null==E?void 0:E.paused)&&t}),"chat"===g&&(0,a.jsx)(eh,{disabled:!1,loading:N,onSend:P,onInterrupt:O,onNewSession:q,onStatusRequest:K,skillsVersion:m,events:h,droppedFiles:V,onDroppedFilesConsumed:()=>J(void 0),focusTrigger:y,onShortcutsClick:j})]})}let eD={meta:"⌘",shift:"⇧",alt:"⌥"},eM=["Navigation","Actions","Help"];function eE(e){let{shortcuts:t,onClose:r}=e,s=(0,n.useRef)(null),[l,i]=(0,n.useState)(!1),o=(0,n.useCallback)(()=>{i(!0),setTimeout(()=>r(),150)},[r]);(0,n.useEffect)(()=>{function e(e){s.current&&!s.current.contains(e.target)&&o()}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[o]);let c=t.filter(e=>!1!==e.enabled),d=eM.map(e=>({category:e,items:c.filter(t=>t.category===e)})).filter(e=>e.items.length>0);return(0,a.jsxs)("div",{ref:s,role:"complementary","aria-label":"Keyboard shortcuts",className:"fixed bottom-4 right-4 z-40 w-[280px] overflow-hidden rounded-[var(--radius-lg)] border border-border bg-[var(--material-thick)] shadow-[var(--shadow-overlay)] backdrop-blur-xl transition-opacity duration-150 ".concat(l?"opacity-0":"animate-fade-in"),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-2.5 border-b border-border",children:[(0,a.jsx)("span",{className:"text-sm font-semibold text-foreground",children:"Keyboard Shortcuts"}),(0,a.jsx)("button",{onClick:o,className:"rounded-sm p-0.5 text-muted-foreground transition-colors hover:text-foreground","aria-label":"Close",children:(0,a.jsx)(f.A,{className:"size-3.5"})})]}),(0,a.jsx)("div",{className:"px-3 py-2 max-h-[60vh] overflow-y-auto",children:d.map((e,t)=>(0,a.jsxs)("div",{className:t>0?"mt-3":"",children:[(0,a.jsx)("div",{className:"mb-1.5 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:e.category}),(0,a.jsx)("div",{className:"space-y-1",children:e.items.map(e=>{var t,r;return(0,a.jsxs)("div",{className:"flex items-center gap-2 py-0.5",children:[(0,a.jsx)("kbd",{className:"inline-flex min-w-[24px] items-center justify-center rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)] px-1.5 py-0.5 font-mono text-xs font-medium text-foreground",children:function(e){var t,r;let a=[];for(let n of null!=(t=e.modifiers)?t:[])a.push(null!=(r=eD[n])?r:n);let n=1===e.key.length?e.key.toUpperCase():e.key;return a.push(n),a.join("")}(e)}),(0,a.jsx)("span",{className:"text-xs text-muted-foreground",children:e.description})]},e.key+(null!=(r=null==(t=e.modifiers)?void 0:t.join(""))?r:""))})})]},e.category))})]})}let eL="jinn-chat-tabs",eA="jinn-chat-draft-";var eT=r(7122),ez=r(5465),eR=r(4139);class eF extends n.Component{static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("[ChatErrorBoundary]",e.message,"\nComponent stack:",t.componentStack)}render(){if(this.state.error){var e;return(0,a.jsx)(o.M,{children:(0,a.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-4 p-8 text-center",children:[(0,a.jsx)("p",{className:"text-lg font-semibold text-[var(--system-red)]",children:"Chat crashed"}),(0,a.jsxs)("pre",{className:"max-w-lg overflow-auto rounded-lg bg-[var(--bg-tertiary)] p-4 text-left text-xs text-muted-foreground",children:[this.state.error.message,"\n",null==(e=this.state.error.stack)?void 0:e.split("\n").slice(0,5).join("\n")]}),(0,a.jsx)("button",{onClick:()=>{this.setState({error:null}),window.location.reload()},className:"rounded-md bg-[var(--accent)] px-4 py-2 text-sm font-medium text-white",children:"Reload"})]})})}return this.props.children}constructor(...e){super(...e),this.state={error:null}}}function e_(){return(0,a.jsx)(eF,{children:(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)(o.M,{children:(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:"Loading..."})}),children:(0,a.jsx)(eU,{})})})}function eU(){var e;let{settings:t}=(0,j.t0)(),r=null!=(e=t.portalName)?e:"Jinn",[c,d]=(0,n.useState)(null),[u,p]=(0,n.useState)("sidebar"),[h,g]=(0,n.useState)(null),[f,v]=(0,n.useState)([]),b=(0,n.useRef)(!1),[y,w]=(0,n.useState)(()=>"true"===localStorage.getItem("jinn-chat-sidebar-collapsed")),N=(0,n.useCallback)(()=>{window.innerWidth<1024?p(e=>"sidebar"===e?"chat":"sidebar"):w(e=>{let t=!e;return localStorage.setItem("jinn-chat-sidebar-collapsed",String(t)),t})},[]),[S,I]=(0,n.useState)("chat"),[D,M]=(0,n.useState)(!1),[E,L]=(0,n.useState)(!1),[A,T]=(0,n.useState)(null),[z,R]=(0,n.useState)(0),F=(0,n.useRef)(null),_=(0,n.useRef)(null),{events:U,connectionSeq:W,skillsVersion:O,subscribe:P}=(0,i.G)(),K=function(){let[{tabs:e,activeIndex:t},r]=(0,n.useState)({tabs:[],activeIndex:-1});(0,n.useEffect)(()=>{r(function(){try{let t=localStorage.getItem(eL);if(t){var e;return e=JSON.parse(t),0===e.tabs.length?{tabs:[],activeIndex:-1}:e.activeIndex<0||e.activeIndex>=e.tabs.length?{tabs:e.tabs,activeIndex:0}:e}}catch(e){}return{tabs:[],activeIndex:-1}}())},[]),(0,n.useEffect)(()=>{localStorage.setItem(eL,JSON.stringify({tabs:e,activeIndex:t}))},[e,t]);let a=t>=0?e[t]:null,s=(0,n.useCallback)(e=>{r(t=>{let r=t.tabs.findIndex(t=>t.sessionId===e.sessionId);if(r>=0)return{...t,activeIndex:r};if(!e.pinned){let r=t.tabs.findIndex(e=>!e.pinned);if(r>=0){let a=[...t.tabs];return a[r]={...e,pinned:!1},{tabs:a,activeIndex:r}}}if(t.tabs.length>=12){let r=t.tabs.findIndex(e=>!e.pinned);if(r>=0){let a=[...t.tabs];return a[r]=e,{tabs:a,activeIndex:r}}}return{tabs:[...t.tabs,e],activeIndex:t.tabs.length}})},[]),l=(0,n.useCallback)(e=>{r(t=>{if(e<0||e>=t.tabs.length||t.tabs[e].pinned)return t;let r=t.tabs.map((t,r)=>r===e?{...t,pinned:!0}:t);return{...t,tabs:r}})},[]),i=(0,n.useCallback)(e=>{r(t=>{var r;let a=null==(r=t.tabs[e])?void 0:r.sessionId;a&&localStorage.removeItem(eA+a);let n=t.tabs.filter((t,r)=>r!==e);if(0===n.length)return{tabs:[],activeIndex:-1};let s=t.activeIndex;return t.activeIndex===e?s=Math.min(e,n.length-1):t.activeIndex>e&&(s=t.activeIndex-1),{tabs:n,activeIndex:s}})},[]),o=(0,n.useCallback)(e=>{r(t=>e<0||e>=t.tabs.length?t:{...t,activeIndex:e})},[e.length]),c=(0,n.useCallback)((e,t)=>{r(r=>{if(e===t||e<0||e>=r.tabs.length||t<0||t>=r.tabs.length)return r;let a=[...r.tabs],[n]=a.splice(e,1);a.splice(t,0,n);let s=r.activeIndex;return r.activeIndex===e?s=t:e<r.activeIndex&&t>=r.activeIndex?s=r.activeIndex-1:e>r.activeIndex&&t<=r.activeIndex&&(s=r.activeIndex+1),{tabs:a,activeIndex:s}})},[]),d=(0,n.useCallback)(()=>{r(e=>0===e.tabs.length?e:{...e,activeIndex:(e.activeIndex+1+e.tabs.length)%e.tabs.length})},[e.length]),u=(0,n.useCallback)(()=>{r(e=>0===e.tabs.length?e:{...e,activeIndex:(e.activeIndex-1+e.tabs.length)%e.tabs.length})},[e.length]),x=(0,n.useCallback)(()=>{r(e=>({...e,activeIndex:-1}))},[]),p=(0,n.useCallback)((e,t)=>{t.trim()?localStorage.setItem(eA+e,t):localStorage.removeItem(eA+e)},[]),m=(0,n.useCallback)(e=>localStorage.getItem(eA+e)||"",[]),h=(0,n.useCallback)((e,t)=>{r(r=>{let a=r.tabs.findIndex(t=>t.sessionId===e);if(a<0)return r;let n=r.tabs[a];if(Object.keys(t).every(e=>n[e]===t[e]))return r;let s=r.tabs.map((e,r)=>r===a?{...e,...t}:e);return{...r,tabs:s}})},[]);return(0,n.useMemo)(()=>({tabs:e,activeTab:a,activeIndex:t,openTab:s,closeTab:i,switchTab:o,nextTab:d,prevTab:u,pinTab:l,moveTab:c,clearActiveTab:x,saveDraft:p,loadDraft:m,updateTabStatus:h}),[e,a,t,s,i,o,d,u,l,c,x,p,m,h])}(),B=(0,s.useSearchParams)(),H=(0,n.useRef)(!1),V=(0,n.useRef)(!1),J=(0,k.tS)(),$=(0,eT.jE)(),[Y,Z]=(0,n.useState)(!1),X=(0,n.useRef)({sessionIds:[],employeeNames:[],employeeSessionMap:{}}),ee=(0,n.useCallback)(e=>{X.current=e},[]);(0,n.useEffect)(()=>{if(D||E)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){D&&F.current&&!F.current.contains(e.target)&&M(!1),E&&_.current&&!_.current.contains(e.target)&&L(!1)}},[D,E]);let et=(0,n.useCallback)((e,t)=>{navigator.clipboard.writeText(e),T(t),M(!1),setTimeout(()=>T(null),1500)},[]);function er(){l.F.createStubSession({greeting:"Hey! \uD83D\uDC4B Say hi when you're ready to get started.",title:"Welcome"}).then(e=>{let t=String(e.id);V.current=!0,d(t),$.invalidateQueries({queryKey:ez.l.sessions.all})}).catch(()=>{})}(0,n.useEffect)(()=>{H.current||("1"===B.get("onboarding")?(H.current=!0,er()):l.F.getOnboarding().then(e=>{e.needed&&!H.current&&(H.current=!0,er())}).catch(()=>{}))},[B]);let{updateTabStatus:ea}=K;(0,n.useEffect)(()=>{c&&h&&ea(c,{label:h.title||h.employee||r,employeeName:h.employee||void 0})},[c,h,r,ea]);let en=(0,n.useCallback)(e=>{v(e.length>1?e:[])},[]),es=(0,n.useCallback)(e=>{b.current=!1,V.current=!1,d(e),p("chat"),I("chat"),K.openTab({sessionId:e,label:"Loading...",status:"idle",unread:!1})},[K]),el=(0,n.useCallback)(()=>{b.current=!0,d(null),g(null),p("chat"),v([]),K.clearActiveTab(),R(e=>e+1)},[K]),ei=(0,n.useCallback)(e=>{c||H.current||b.current||!(e.length>0)||es(e[0].id)},[c,es]),eo=(0,n.useCallback)(async e=>{try{await J.mutateAsync(e)}catch(e){}c===e&&(d(null),g(null)),G(e),K.closeTab(K.tabs.findIndex(t=>t.sessionId===e)),M(!1),$.invalidateQueries({queryKey:ez.l.sessions.all})},[c,K,J,$]),ec=(0,n.useCallback)(e=>{d(e),K.openTab({sessionId:e,label:"New Chat",status:"running",unread:!1,pinned:!0}),$.invalidateQueries({queryKey:ez.l.sessions.all})},[K,$]),ed=(0,n.useCallback)(e=>{g(e)},[]),eu=(0,n.useCallback)(()=>{$.invalidateQueries({queryKey:ez.l.sessions.all})},[$]),ex=(0,n.useCallback)(e=>"This is your first time being activated. The user just set up ".concat(r," and opened the web dashboard for the first time.\n\nRead your CLAUDE.md instructions and the onboarding skill at ~/.jinn/skills/onboarding/SKILL.md, then follow the onboarding flow:\n- Greet the user warmly and introduce yourself as ").concat(r,"\n- Briefly explain what you can do (manage cron jobs, hire AI employees, connect to Slack, etc.)\n- Ask the user what they'd like to set up first\n\nThe user said: \"").concat(e,'"'),[r]),ep=(0,n.useCallback)(()=>{V.current=!1},[]),em=(0,n.useCallback)(e=>{let{sessionIds:t}=X.current;if(0===t.length)return;if(!c)return void es(1===e?t[0]:t[t.length-1]);let r=t.indexOf(c);if(-1===r)return void es(1===e?t[0]:t[t.length-1]);let a=(r+e+t.length)%t.length;es(t[a])},[c,es]),eh=(0,n.useCallback)(()=>{var e,t;let{employeeNames:r,employeeSessionMap:a}=X.current;if(0===r.length)return;let n=null!=(t=null==h?void 0:h.employee)?t:null,s=((n?r.indexOf(n):-1)+1)%r.length,l=null==(e=a[r[s]])?void 0:e[0];l&&es(l)},[h,es]),eg=(0,n.useCallback)(async()=>{if(c)try{var e;let t=(null!=(e=(await l.F.getSession(c)).messages)?e:[]).filter(e=>"user"===e.role||"assistant"===e.role).map(e=>"[".concat(e.role,"]: ").concat(e.content)).join("\n\n");await navigator.clipboard.writeText(t),T("chat"),setTimeout(()=>T(null),1500)}catch(e){}},[c]),ef=(0,n.useMemo)(()=>[{key:"n",category:"Actions",description:"New chat",action:el},{key:"j",category:"Navigation",description:"Next session",action:()=>em(1)},{key:"k",category:"Navigation",description:"Previous session",action:()=>em(-1)},{key:"e",category:"Navigation",description:"Next employee",action:eh},{key:"Backspace",category:"Actions",description:"Delete session",action:()=>{c&&window.confirm("Delete this session?")&&eo(c)},enabled:!!c},{key:"Delete",category:"Actions",description:"Delete session",action:()=>{c&&window.confirm("Delete this session?")&&eo(c)},enabled:!!c},{key:"c",category:"Actions",description:"Copy chat",action:eg,enabled:!!c},{key:"Escape",category:"Navigation",description:"Close overlay",action:()=>{Y?Z(!1):D&&M(!1)}},{key:"/",category:"Actions",description:"Focus chat",action:()=>{let e=document.getElementById("chat-textarea");e&&e.focus()}},{key:"?",category:"Help",description:"Keyboard shortcuts",action:()=>Z(e=>!e)},{key:"w",modifiers:["meta"],category:"Actions",description:"Close tab",action:()=>{K.activeIndex>=0&&K.closeTab(K.activeIndex)}},{key:"[",modifiers:["meta","shift"],category:"Navigation",description:"Previous tab",action:()=>K.prevTab()},{key:"]",modifiers:["meta","shift"],category:"Navigation",description:"Next tab",action:()=>K.nextTab()},...Array.from({length:9},(e,t)=>({key:String(t+1),modifiers:["meta","alt"],category:"Navigation",description:"Tab ".concat(t+1),action:()=>K.switchTab(t)}))],[el,em,eh,eg,c,Y,D,K]);!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,n.useEffect)(()=>{function r(r){var a,n,s;r.key;let l=document.activeElement,i=null!=(n=null==l||null==(a=l.tagName)?void 0:a.toLowerCase())?n:"",o="input"===i||"textarea"===i||(null==l?void 0:l.isContentEditable)===!0;for(let a of e){if(!1===a.enabled||!function(e,t){var r;let a=null!=(r=t.modifiers)?r:[],n=a.includes("meta"),s=a.includes("shift"),l=a.includes("alt");return"?"===t.key?"?"===e.key&&!e.metaKey&&!e.altKey&&!e.ctrlKey:(1===e.key.length?e.key.toLowerCase():e.key)===(1===t.key.length?t.key.toLowerCase():t.key)&&n===e.metaKey&&s===e.shiftKey&&l===e.altKey&&(!e.ctrlKey||!!n)}(r,a))continue;let e=(null!=(s=a.modifiers)?s:[]).length>0,n="Escape"===a.key;if((!t.isModalOpen||n)&&(!o||e||n)){r.preventDefault(),a.action();return}}}return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[e,t.isModalOpen])}(ef),(0,n.useEffect)(()=>{if(K.activeTab&&K.activeTab.sessionId!==c){d(K.activeTab.sessionId),I("chat");return}K.activeTab||!c||b.current||(d(null),g(null),v([]))},[K.activeTab,c]);let ev=c?(0,a.jsxs)("div",{ref:F,className:"relative",children:[(0,a.jsx)("button",{onClick:()=>M(e=>!e),"aria-label":"More options",className:"flex items-center rounded-md p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,a.jsx)(x.A,{className:"size-[18px]"})}),D&&(0,a.jsxs)("div",{className:"absolute right-0 top-full z-[200] mt-1 min-w-[220px] overflow-hidden rounded-[var(--radius-md)] border border-border bg-[var(--material-thick)] shadow-[var(--shadow-overlay)] backdrop-blur-xl",children:[(0,a.jsx)("button",{onClick:()=>et(c,"id"),className:"block w-full px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent",children:"Copy Session ID"}),(null==h?void 0:h.engineSessionId)&&(0,a.jsx)("button",{onClick:()=>{let e="codex"===h.engine?"codex":"claude";et("".concat(e," --resume ").concat(h.engineSessionId),"cli")},className:"block w-full px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent",children:"Copy CLI Resume Command"}),(0,a.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,a.jsxs)("button",{onClick:()=>{M(!1),c&&window.confirm("Delete this session?")&&eo(c)},className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,a.jsx)(m.A,{className:"size-3.5"}),(0,a.jsx)("span",{className:"flex-1",children:"Delete Session"}),(0,a.jsx)("kbd",{className:"font-mono text-[10px] text-[var(--text-quaternary)]",children:"⌫"})]})]})]}):null,eb=(0,a.jsxs)(a.Fragment,{children:[c&&(0,a.jsxs)("div",{className:"flex items-center gap-0.5 rounded-full bg-[var(--fill-tertiary)] p-0.5",children:[(0,a.jsx)("button",{onClick:()=>I("chat"),className:(0,C.cn)("rounded-full px-2.5 py-1 text-[11px] font-medium transition-all","chat"===S?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"Chat"}),(0,a.jsx)("button",{onClick:()=>I("cli"),className:(0,C.cn)("rounded-full px-2.5 py-1 font-mono text-[11px] font-medium transition-all","cli"===S?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"CLI"})]}),(0,a.jsx)("div",{className:"hidden lg:block",children:ev}),A&&(0,a.jsxs)("div",{className:"flex items-center gap-1 whitespace-nowrap text-xs font-medium text-[var(--accent)]",children:[(0,a.jsx)(eR.A,{className:"size-3"}),"Copied!"]})]});return(0,a.jsxs)(o.M,{mobileHeaderActions:ev,children:[(0,a.jsxs)("div",{className:"flex overflow-hidden h-full",children:[(0,a.jsx)("div",{className:"hidden h-full shrink-0 overflow-hidden lg:block",style:{width:280*!y,transition:"width 200ms ease-in-out"},children:(0,a.jsx)("div",{className:"h-full w-[280px]",children:(0,a.jsx)(q,{selectedId:c,onSelect:es,onNewChat:el,onDelete:eo,onSessionsLoaded:ei,onEmployeeSessionsAvailable:en,onOrderComputed:ee})})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 flex-col overflow-hidden bg-background flex",children:[(0,a.jsx)(Q,{tabs:K.tabs,activeIndex:K.activeIndex,onSwitch:K.switchTab,onClose:K.closeTab,onNew:el,onPin:K.pinTab,onMove:K.moveTab,toolbarActions:eb,sidebarCollapsed:"chat"===u||y,onToggleSidebar:N}),(0,a.jsx)("div",{className:"sidebar"===u?"flex-1 overflow-hidden lg:hidden":"hidden",children:(0,a.jsx)(q,{selectedId:c,onSelect:es,onNewChat:el,onDelete:eo,onSessionsLoaded:ei,onEmployeeSessionsAvailable:en,onOrderComputed:ee})}),(0,a.jsx)("div",{className:(0,C.cn)("flex-1 overflow-hidden flex flex-col","sidebar"===u?"hidden lg:flex":"flex"),children:(0,a.jsx)(eI,{sessionId:c,isActive:!0,onFocus:()=>{},onSessionCreated:ec,onSessionMetaChange:ed,onRefresh:eu,portalName:r,subscribe:P,connectionSeq:W,skillsVersion:O,events:U,viewMode:S,getOnboardingPrompt:V.current?ex:void 0,isStubSession:V.current,onStubCleared:ep,focusTrigger:z,onShortcutsClick:()=>Z(!0)})})]})]}),Y&&(0,a.jsx)(eE,{shortcuts:ef,onClose:()=>Z(!1)})]})}},7983:(e,t,r)=>{Promise.resolve().then(r.bind(r,5089))},8697:(e,t,r)=>{"use strict";r.d(t,{e:()=>a,p:()=>n});let a=["\uD83E\uDD8A","\uD83D\uDC3C","\uD83E\uDD89","\uD83D\uDC19","\uD83E\uDD88","\uD83D\uDC3A","\uD83E\uDD81","\uD83D\uDC2F","\uD83D\uDC38","\uD83E\uDD8B","\uD83D\uDC1D","\uD83E\uDD9C","\uD83D\uDC2C","\uD83E\uDDA9","\uD83E\uDD9A","\uD83D\uDC3B","\uD83D\uDC28","\uD83E\uDD87","\uD83D\uDC33","\uD83D\uDC27","\uD83E\uDD16","\uD83D\uDC7E","\uD83C\uDF83","\uD83D\uDC7B","\uD83E\uDD84","\uD83D\uDC32","\uD83E\uDDD9","\uD83E\uDDDB","\uD83E\uDDDF","\uD83E\uDD77","\uD83C\uDF35","\uD83C\uDF44","\uD83C\uDF3B","\uD83C\uDF0A","⚡","\uD83D\uDD25","❄️","\uD83C\uDF08","\uD83D\uDC8E","\uD83E\uDE90","\uD83C\uDF55","\uD83C\uDF2E","\uD83C\uDF69","\uD83E\uDDC1","\uD83C\uDF63","\uD83E\uDD51","\uD83C\uDF49","\uD83E\uDED0","\uD83E\uDD65","\uD83C\uDF4B","\uD83C\uDFAF","\uD83C\uDFB8","\uD83C\uDFAE","\uD83C\uDFC6","\uD83D\uDE80","⚔️","\uD83D\uDEE1️","\uD83E\uDDF2","\uD83C\uDFAA","\uD83C\uDFAD","\uD83E\uDDBE","\uD83E\uDDFF","\uD83E\uDEAC","\uD83E\uDEE7","\uD83E\uDDCA","\uD83E\uDEB8","\uD83E\uDD91","\uD83E\uDD9E","\uD83E\uDEB7","\uD83E\uDEBB"];function n(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return a[Math.abs(t)%a.length]}}},e=>{e.O(0,[625,51,458,379,155,192,344,144,358],()=>e(e.s=7983)),_N_E=e.O()}]);
|
package/dist/web/_next/static/chunks/app/{layout-497d1e93737edeae.js → layout-f5c5165308a903e2.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{5859:(e,t,s)=>{"use strict";s.d(t,{ClientProviders:()=>x});var r=s(4130),i=s(7122),n=s(426),a=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,n.F$)(r,t),u=this.get(i);return u||(u=new a.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,n.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,n.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,n.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,n.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(n.lQ))))}};function d(e){return e.options.scope?.id}var f=s(6714),y=s(2201);function m(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,c=async()=>{let s=!1,c=(0,n.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 a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta};return(0,n.ox)(e,()=>t.signal,()=>s=!0),e})(),u=await c(a),{maxPages:l}=t.options,o=i?n.ZZ:n.y9;return{pages:o(e.pages,u,l),pageParams:o(e.pageParams,r,l)}};if(i&&a.length){let e="backward"===i,t={pages:a,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:p)(r,t);l=await h(t,s,e)}else{let t=e??a.length;do{let e=0===o?u[0]??r.initialPageParam:p(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 p(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;#n;#a;#u;#l;#o;#c;#h;constructor(e={}){this.#i=e.queryCache||new o,this.#n=e.mutationCache||new h,this.#a=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.#n.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,n.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),a=i?.state.data,u=(0,n.Zw)(t,a);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(n.lQ).catch(n.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(n.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(n.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,n.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(n.lQ).catch(n.lQ)}fetchInfiniteQuery(e){return e.behavior=m(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(n.lQ).catch(n.lQ)}ensureInfiniteQueryData(e){return e.behavior=m(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return y.t.isOnline()?this.#n.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#n}getDefaultOptions(){return this.#a}setDefaultOptions(e){this.#a=e}setQueryDefaults(e,t){this.#u.set((0,n.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,n.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,n.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,n.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#a.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,n.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===n.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#a.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#n.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 D=s(4723);function P(e){let{children:t}=e,[s,i]=(0,v.useState)([]),[n,a]=(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=>{a(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([])},[]),m=s.filter(e=>!e.read).length;return(0,r.jsx)(D.V.Provider,{value:{notifications:s,unreadCount:m,toasts:n,pushFromEvent:c,dismissToast:o,markAllRead:d,markRead:f,clearAll:y},children:t})}var j=s(2845),E=s(5465),k=s(8565);function M(){var e;let{settings:t}=(0,q.t0)(),s=null!=(e=t.portalEmoji)?e:"\uD83E\uDDDE";return(0,v.useEffect)(()=>{let e=document.createElement("canvas");e.width=64,e.height=64;let t=e.getContext("2d");if(!t)return;t.font="52px serif",t.textAlign="center",t.textBaseline="middle",t.fillText(s,32,36);let r=e.toDataURL("image/png"),i=document.querySelector("link[rel='icon']");i||((i=document.createElement("link")).rel="icon",document.head.appendChild(i)),i.type="image/png",i.href=r},[s]),null}function S(){let e=(0,i.jE)(),{subscribe:t}=(0,j.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:E.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:E.l.sessions.all});break;case"costs":e.invalidateQueries({queryKey:["costs"]});break;case"cron":e.invalidateQueries({queryKey:E.l.cron.all});break;case"skills":e.invalidateQueries({queryKey:E.l.skills.all})}r.current.clear()},500)});return()=>{i(),s.current&&clearTimeout(s.current)}},[t,e]),null}function x(e){let{children:t}=e;return(0,r.jsx)(i.Ht,{client:g,children:(0,r.jsx)(b.N,{children:(0,r.jsx)(k.t,{children:(0,r.jsx)(q.Z6,{children:(0,r.jsxs)(P,{children:[t,(0,r.jsx)(q.Qc,{}),(0,r.jsx)(M,{}),(0,r.jsx)(S,{})]})})})})})}},6787:(e,t,s)=>{Promise.resolve().then(s.bind(s,5859)),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()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{5859:(e,t,s)=>{"use strict";s.d(t,{ClientProviders:()=>x});var r=s(4130),i=s(7122),n=s(426),a=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,n.F$)(r,t),u=this.get(i);return u||(u=new a.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,n.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,n.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,n.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,n.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(n.lQ))))}};function d(e){return e.options.scope?.id}var f=s(6714),y=s(2201);function m(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,c=async()=>{let s=!1,c=(0,n.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 a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta};return(0,n.ox)(e,()=>t.signal,()=>s=!0),e})(),u=await c(a),{maxPages:l}=t.options,o=i?n.ZZ:n.y9;return{pages:o(e.pages,u,l),pageParams:o(e.pageParams,r,l)}};if(i&&a.length){let e="backward"===i,t={pages:a,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:p)(r,t);l=await h(t,s,e)}else{let t=e??a.length;do{let e=0===o?u[0]??r.initialPageParam:p(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 p(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;#n;#a;#u;#l;#o;#c;#h;constructor(e={}){this.#i=e.queryCache||new o,this.#n=e.mutationCache||new h,this.#a=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.#n.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,n.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),a=i?.state.data,u=(0,n.Zw)(t,a);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(n.lQ).catch(n.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(n.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(n.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,n.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(n.lQ).catch(n.lQ)}fetchInfiniteQuery(e){return e.behavior=m(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(n.lQ).catch(n.lQ)}ensureInfiniteQueryData(e){return e.behavior=m(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return y.t.isOnline()?this.#n.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#n}getDefaultOptions(){return this.#a}setDefaultOptions(e){this.#a=e}setQueryDefaults(e,t){this.#u.set((0,n.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,n.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,n.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,n.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#a.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,n.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===n.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#a.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#n.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 D=s(4723);function P(e){let{children:t}=e,[s,i]=(0,v.useState)([]),[n,a]=(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=>{a(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([])},[]),m=s.filter(e=>!e.read).length;return(0,r.jsx)(D.V.Provider,{value:{notifications:s,unreadCount:m,toasts:n,pushFromEvent:c,dismissToast:o,markAllRead:d,markRead:f,clearAll:y},children:t})}var j=s(2845),E=s(5465),k=s(8565);function M(){var e;let{settings:t}=(0,q.t0)(),s=null!=(e=t.portalEmoji)?e:"\uD83E\uDDDE";return(0,v.useEffect)(()=>{let e=document.createElement("canvas");e.width=64,e.height=64;let t=e.getContext("2d");if(!t)return;t.font="52px serif",t.textAlign="center",t.textBaseline="middle",t.fillText(s,32,36);let r=e.toDataURL("image/png"),i=document.querySelector("link[rel='icon']");i||((i=document.createElement("link")).rel="icon",document.head.appendChild(i)),i.type="image/png",i.href=r},[s]),null}function S(){let e=(0,i.jE)(),{subscribe:t}=(0,j.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:updated":r.current.add("sessions"),(null==i?void 0:i.sessionId)&&e.invalidateQueries({queryKey:E.l.sessions.detail(i.sessionId)});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:E.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:E.l.sessions.all});break;case"costs":e.invalidateQueries({queryKey:["costs"]});break;case"cron":e.invalidateQueries({queryKey:E.l.cron.all});break;case"skills":e.invalidateQueries({queryKey:E.l.skills.all})}r.current.clear()},500)});return()=>{i(),s.current&&clearTimeout(s.current)}},[t,e]),null}function x(e){let{children:t}=e;return(0,r.jsx)(i.Ht,{client:g,children:(0,r.jsx)(b.N,{children:(0,r.jsx)(k.t,{children:(0,r.jsx)(q.Z6,{children:(0,r.jsxs)(P,{children:[t,(0,r.jsx)(q.Qc,{}),(0,r.jsx)(M,{}),(0,r.jsx)(S,{})]})})})})})}},6787:(e,t,s)=>{Promise.resolve().then(s.bind(s,5859)),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()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[423],{58:(e,t,a)=>{"use strict";a.d(t,{s:()=>l});var r=a(4130),n=a(4722),s=a(8697);function l(e){let{name:t,size:a=32,className:l,onClick:i}=e,{settings:o}=(0,n.t0)(),c=o.employeeOverrides[t],d=(null==c?void 0:c.emoji)||(0,s.p)(t),x=Math.round(.6*a);return(0,r.jsx)("span",{className:l,onClick:i,role:i?"button":void 0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:a,height:a,fontSize:x,lineHeight:1,borderRadius:"50%",flexShrink:0,cursor:i?"pointer":void 0,userSelect:"none"},children:d})}},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:()=>S});var r=a(4130),n=a(7946),s=a(3225),l=a.n(s),i=a(6654),o=a(58),c=a(4722),d=a(8697),x=a(5969);function u(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 p(e){var t;let{name:a,prefetched:s}=e,[l,p]=(0,n.useState)(null!=s?s:null),[v,m]=(0,n.useState)([]),[g,f]=(0,n.useState)(!s),[h,b]=(0,n.useState)(null),[y,j]=(0,n.useState)(!1),[N,w]=(0,n.useState)(!1),{settings:k,setEmployeeOverride:C}=(0,c.t0)();if((0,n.useEffect)(()=>{if(j(!1),s){p(s),f(!0),b(null),i.F.getSessions().then(e=>{m(e.filter(e=>e.employee===a||!e.employee&&a===s.name).slice(0,10))}).catch(()=>m([])).finally(()=>f(!1));return}f(!0),b(null),Promise.all([i.F.getEmployee(a),i.F.getSessions()]).then(e=>{let[t,r]=e;p(t),m(r.filter(e=>e.employee===a).slice(0,10))}).catch(e=>b(e.message)).finally(()=>f(!1))},[a,s]),g)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(h)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: ",h]});if(!l)return null;let S=l.rank||"employee",_=l.persona||"",O=(null==(t=k.employeeOverrides[l.name])?void 0:t.emoji)||(0,d.p)(l.name),E=_.length>200&&!y?_.slice(0,200)+"...":_;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.jsxs)("div",{className:"relative",children:[(0,r.jsx)(o.s,{name:l.name,size:36,onClick:()=>w(!N)}),N&&(0,r.jsx)(x.p,{current:O,onSelect:e=>{C(l.name,{emoji:e===(0,d.p)(l.name)?void 0:e}),w(!1)},onClose:()=>w(!1)})]}),(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:l.displayName||l.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:l.name})]})]}),(0,r.jsx)(u,{rank:S})]}),(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:l.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:[l.engine||"claude"," ",(0,r.jsxs)("span",{className:"text-[var(--text-tertiary)]",children:["/ ",l.model||"default"]})]})]})]}),(0,r.jsxs)("div",{className:"mt-[var(--space-4)] pt-[var(--space-4)] border-t border-[var(--separator)] flex items-center justify-between",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:"Notify on completion"}),(0,r.jsx)("p",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] m-0",children:"Notify parent session when this employee finishes"})]}),(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":!1!==l.alwaysNotify,onClick:async()=>{let e=!1===l.alwaysNotify;p({...l,alwaysNotify:e});try{await i.F.updateEmployee(l.name,{alwaysNotify:e})}catch(t){p({...l,alwaysNotify:!e})}},className:"relative inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer rounded-full border-none transition-colors duration-200 ease-in-out focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--accent)]",style:{background:!1!==l.alwaysNotify?"var(--accent, var(--system-green))":"var(--fill-tertiary)"},children:(0,r.jsx)("span",{className:"pointer-events-none inline-block h-[20px] w-[20px] rounded-full bg-white shadow-sm transition-transform duration-200 ease-in-out",style:{transform:!1!==l.alwaysNotify?"translate(22px, 2px)":"translate(2px, 2px)"}})})]}),_&&(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:E}),_.length>200&&(0,r.jsx)("button",{onClick:()=>j(!y),className:"text-[length:var(--text-caption1)] text-[var(--accent)] bg-none border-none cursor-pointer p-0 mt-[var(--space-1)]",children:y?"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===v.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:v.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 v=a(3637);function m(e){let{employee:t,selected:a,onSelect:n}=e;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)(o.s,{name:t.name,size:28}),(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 g(e){let{label:t,count:a,children:n}=e;return(0,r.jsx)(v.Zp,{className:"p-0 shadow-none bg-[var(--bg-secondary)] rounded-[var(--radius-lg,16px)] border border-[var(--separator)]",children:(0,r.jsxs)(v.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 f(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)(o.s,{name:i.name,size:40}),(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)(g,{label:t,count:l.length,children:l.map(e=>(0,r.jsx)(m,{employee:e,selected:a===e.name,onSelect:()=>n(e)},e.name))},t)}),l.length>0&&(0,r.jsx)(g,{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)(m,{employee:e,selected:a===e.name,onSelect:()=>n(e)},e.name))})]})]})}var h=a(6063);let b={executive:"\uD83D\uDC51",manager:"\uD83D\uDCBC",senior:"⭐",employee:"\uD83D\uDC64"};function y(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 j(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-base",children:b[e]||"\uD83D\uDC64"}),(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;return(0,r.jsxs)("button",{onClick:()=>n(e),className:(0,h.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)(o.s,{name:e.name,size:24}),(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)(y,{rank:e.rank})]},e.name)})})]})}var N=a(7192),w=a(9664),k=a(8565);let C=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 S(){var e,t,a;(0,k.i)([{label:"Organization"}]);let[s,l]=(0,n.useState)([]),[o,d]=(0,n.useState)(!0),[x,u]=(0,n.useState)(null),[v,m]=(0,n.useState)(null),[g,h]=(0,n.useState)("map"),b=(0,n.useRef)(null),{settings:y}=(0,c.t0)(),S=(0,n.useCallback)(()=>{d(!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=y.portalName)?t:"Jinn").toLowerCase(),displayName:null!=(a=y.portalName)?a:"Jinn",department:"",rank:"executive",engine:"claude",model:"opus",persona:"COO and AI gateway daemon"},...r])}).catch(e=>u(e.message)).finally(()=>d(!1))},[y.portalName]);(0,n.useEffect)(()=>{S()},[S]),(0,n.useEffect)(()=>{v&&b.current&&b.current.focus()},[v]),(0,n.useEffect)(()=>{function e(e){"Escape"===e.key&&v&&m(null)}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[v]);let _=(0,n.useCallback)(e=>{m(e)},[]);return x?(0,r.jsx)(N.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:S,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)(N.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)(w.tU,{value:g,onValueChange:h,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)(w.j7,{children:[(0,r.jsx)(w.Xi,{value:"map",children:"Map"}),(0,r.jsx)(w.Xi,{value:"grid",children:"Grid"}),(0,r.jsx)(w.Xi,{value:"list",children:"List"})]})}),(0,r.jsx)(w.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)(C,{employees:s,selectedName:null!=(e=null==v?void 0:v.name)?e:null,onNodeClick:_})}),(0,r.jsx)(w.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)(f,{employees:s,selectedName:null!=(t=null==v?void 0:v.name)?t:null,onSelect:_})}),(0,r.jsx)(w.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)(j,{employees:s,selectedName:null!=(a=null==v?void 0:v.name)?a:null,onSelect:_})})]})}),v&&(0,r.jsx)("div",{className:"fixed inset-0 z-30 lg:hidden bg-black/50",onClick:()=>m(null)}),v&&(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:b,onClick:()=>m(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)(p,{name:v.name,prefetched:"executive"===v.rank?v:void 0})})]})})]})})}},5969:(e,t,a)=>{"use strict";a.d(t,{p:()=>o});var r=a(4130),n=a(7946),s=a(5282),l=a(8697);let i=[];for(let[e,t]of Object.entries(s))i.push({emoji:e,keywords:t});function o(e){let{current:t,onSelect:a,onClose:s}=e,[o,c]=(0,n.useState)(""),d=(0,n.useRef)(null),x=(0,n.useRef)(null);(0,n.useEffect)(()=>{var e;null==(e=d.current)||e.focus()},[]),(0,n.useEffect)(()=>{function e(e){x.current&&!x.current.contains(e.target)&&s()}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[s]);let u=(0,n.useMemo)(()=>{let e=o.toLowerCase().trim();if(!e)return null;let t=[];for(let a of i)if(a.keywords.some(t=>t.includes(e))&&(t.push({emoji:a.emoji,label:a.keywords[0]}),t.length>=80))break;return t},[o]);return(0,r.jsxs)("div",{ref:x,className:"absolute top-full left-0 z-50 mt-2 rounded-[var(--radius-lg,16px)] border border-[var(--separator)] bg-[var(--material-thick)] p-3 shadow-[var(--shadow-overlay)] backdrop-blur-xl",style:{width:320},children:[(0,r.jsx)("input",{ref:d,type:"text",value:o,onChange:e=>c(e.target.value),placeholder:"Search emojis (gym, happy, food...)",className:"mb-2 w-full rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] px-3 py-1.5 text-sm text-[var(--text-primary)] outline-none placeholder:text-[var(--text-tertiary)]"}),(0,r.jsx)("div",{style:{maxHeight:240,overflowY:"auto"},children:null===u?(0,r.jsxs)(r.Fragment,{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-1.5",children:"Suggested"}),(0,r.jsx)("div",{className:"grid grid-cols-8 gap-1",children:l.e.map(e=>(0,r.jsx)("button",{onClick:()=>a(e),className:"flex items-center justify-center rounded-[var(--radius-md,12px)] p-1.5 text-xl transition-colors ".concat(e===t?"bg-[var(--accent-fill)] border border-[var(--accent)]":"bg-transparent border border-transparent hover:bg-[var(--fill-secondary)]"),children:e},e))})]}):0===u.length?(0,r.jsxs)("p",{className:"py-4 text-center text-xs text-[var(--text-tertiary)]",children:["No emojis found for “",o,"”"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-1.5",children:[u.length>=80?"80+":u.length," results"]}),(0,r.jsx)("div",{className:"grid grid-cols-8 gap-1",children:u.map(e=>(0,r.jsx)("button",{onClick:()=>a(e.emoji),title:e.label,className:"flex items-center justify-center rounded-[var(--radius-md,12px)] p-1.5 text-xl transition-colors ".concat(e.emoji===t?"bg-[var(--accent-fill)] border border-[var(--accent)]":"bg-transparent border border-transparent hover:bg-[var(--fill-secondary)]"),children:e.emoji},e.emoji))})]})})]})}},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)},8697:(e,t,a)=>{"use strict";a.d(t,{e:()=>r,p:()=>n});let r=["\uD83E\uDD8A","\uD83D\uDC3C","\uD83E\uDD89","\uD83D\uDC19","\uD83E\uDD88","\uD83D\uDC3A","\uD83E\uDD81","\uD83D\uDC2F","\uD83D\uDC38","\uD83E\uDD8B","\uD83D\uDC1D","\uD83E\uDD9C","\uD83D\uDC2C","\uD83E\uDDA9","\uD83E\uDD9A","\uD83D\uDC3B","\uD83D\uDC28","\uD83E\uDD87","\uD83D\uDC33","\uD83D\uDC27","\uD83E\uDD16","\uD83D\uDC7E","\uD83C\uDF83","\uD83D\uDC7B","\uD83E\uDD84","\uD83D\uDC32","\uD83E\uDDD9","\uD83E\uDDDB","\uD83E\uDDDF","\uD83E\uDD77","\uD83C\uDF35","\uD83C\uDF44","\uD83C\uDF3B","\uD83C\uDF0A","⚡","\uD83D\uDD25","❄️","\uD83C\uDF08","\uD83D\uDC8E","\uD83E\uDE90","\uD83C\uDF55","\uD83C\uDF2E","\uD83C\uDF69","\uD83E\uDDC1","\uD83C\uDF63","\uD83E\uDD51","\uD83C\uDF49","\uD83E\uDED0","\uD83E\uDD65","\uD83C\uDF4B","\uD83C\uDFAF","\uD83C\uDFB8","\uD83C\uDFAE","\uD83C\uDFC6","\uD83D\uDE80","⚔️","\uD83D\uDEE1️","\uD83E\uDDF2","\uD83C\uDFAA","\uD83C\uDFAD","\uD83E\uDDBE","\uD83E\uDDFF","\uD83E\uDEAC","\uD83E\uDEE7","\uD83E\uDDCA","\uD83E\uDEB8","\uD83E\uDD91","\uD83E\uDD9E","\uD83E\uDEB7","\uD83E\uDEBB"];function n(e){let t=0;for(let a=0;a<e.length;a++)t=(t<<5)-t+e.charCodeAt(a)|0;return r[Math.abs(t)%r.length]}},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:()=>M,j7:()=>D,Xi:()=>L});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=_(c.baseId,n),p=O(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",S=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,forceMount:l,children:i,...o}=e,x=b(C,a),u=_(x.baseId,s),p=O(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 _(e,t){return"".concat(e,"-trigger-").concat(t)}function O(e,t){return"".concat(e,"-content-").concat(t)}S.displayName=C;var E=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,E.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...n})}let z=(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 D(e){let{className:t,variant:a="default",...n}=e;return(0,r.jsx)(N,{"data-slot":"tabs-list","data-variant":a,className:(0,E.cn)(z({variant:a}),t),...n})}function L(e){let{className:t,...a}=e;return(0,r.jsx)(k,{"data-slot":"tabs-trigger",className:(0,E.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 M(e){let{className:t,...a}=e;return(0,r.jsx)(S,{"data-slot":"tabs-content",className:(0,E.cn)("flex-1 outline-none",t),...a})}}},e=>{e.O(0,[842,625,51,458,155,192,344,144,358],()=>e(e.s=6005)),_N_E=e.O()}]);
|