"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("./switch-fIkmwzUt.js"),s=require("./index-BtqYNH_S.js");require("./index-BxM99sFL.js");const v=require("react");require("./index-DRlMUglg.js");const es=require("react-dom"),O=require("./dashboard-briefing-launcher-BEZnvIla.js"),xt=require("./index-D7KJindZ.js"),ts=require("./calendar-preferences-dialog-CUGzkNcE.js"),ss=require("./use-debounced-dirty-check-XHSwAefL.js"),Re=require("./normalize-dashboard-for-dirty-check-BXRUMVb2.js"),dt=require("./save-D3YYinDz.js"),rs=require("./palette-DUGktM-M.js"),ns=require("./braces-C3-w6xDL.js");function as(t){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(a,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return a.default=t,Object.freeze(a)}const E=as(v);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const os=c.createLucideIcon("Glasses",[["circle",{cx:"6",cy:"15",r:"4",key:"vux9w4"}],["circle",{cx:"18",cy:"15",r:"4",key:"18o8ve"}],["path",{d:"M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2",key:"1ag4bs"}],["path",{d:"M2.5 13 5 7c.7-1.3 1.4-2 3-2",key:"1hm1gs"}],["path",{d:"M21.5 13 19 7c-.7-1.3-1.5-2-3-2",key:"1r31ai"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const is=c.createLucideIcon("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const cs=c.createLucideIcon("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const ds=c.createLucideIcon("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const ls=c.createLucideIcon("ShieldX",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const us=c.createLucideIcon("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const ms=c.createLucideIcon("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/**
 * @license lucide-react v0.453.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const ft=c.createLucideIcon("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);var Te={exports:{}},_e={};/**
 * @license React
 * use-sync-external-store-shim.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var lt;function ps(){if(lt)return _e;lt=1;var t=v;function a(l,x){return l===x&&(l!==0||1/l===1/x)||l!==l&&x!==x}var r=typeof Object.is=="function"?Object.is:a,n=t.useState,o=t.useEffect,m=t.useLayoutEffect,f=t.useDebugValue;function u(l,x){var p=x(),g=n({inst:{value:p,getSnapshot:x}}),i=g[0].inst,S=g[1];return m(function(){i.value=p,i.getSnapshot=x,b(i)&&S({inst:i})},[l,p,x]),o(function(){return b(i)&&S({inst:i}),l(function(){b(i)&&S({inst:i})})},[l]),f(p),p}function b(l){var x=l.getSnapshot;l=l.value;try{var p=x();return!r(l,p)}catch{return!0}}function y(l,x){return x()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?y:u;return _e.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:h,_e}var Ue={};/**
 * @license React
 * use-sync-external-store-shim.development.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var ut;function hs(){return ut||(ut=1,process.env.NODE_ENV!=="production"&&function(){function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}function a(p,g){h||o.startTransition===void 0||(h=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var i=g();if(!l){var S=g();m(i,S)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),l=!0)}S=f({inst:{value:i,getSnapshot:g}});var w=S[0].inst,N=S[1];return b(function(){w.value=i,w.getSnapshot=g,r(w)&&N({inst:w})},[p,i,g]),u(function(){return r(w)&&N({inst:w}),p(function(){r(w)&&N({inst:w})})},[p]),y(i),i}function r(p){var g=p.getSnapshot;p=p.value;try{var i=g();return!m(p,i)}catch{return!0}}function n(p,g){return g()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=v,m=typeof Object.is=="function"?Object.is:t,f=o.useState,u=o.useEffect,b=o.useLayoutEffect,y=o.useDebugValue,h=!1,l=!1,x=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?n:a;Ue.useSyncExternalStore=o.useSyncExternalStore!==void 0?o.useSyncExternalStore:x,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Ue}process.env.NODE_ENV==="production"?Te.exports=ps():Te.exports=hs();var xs=Te.exports;const De=["light","dark","system"];function fs(){const{theme:t,setTheme:a}=s.useTheme(),r=c.useDashboardStore(f=>f.actions.setDashboardTheme);function n(){const f=De.includes(t)?t:"system",u=De[(De.indexOf(f)+1)%De.length];a(u),r(u)}const o=t==="light"?us:t==="dark"?ds:cs,m=t==="light"?"Theme: light (click for dark)":t==="dark"?"Theme: dark (click for system)":"Theme: system (click for light)";return e.jsx(c.Button,{type:"button",variant:"ghost",size:"xs",className:"h-7 w-7 p-0 text-muted-foreground hover:text-foreground",onClick:n,"aria-label":m,title:m,children:e.jsx(o,{className:"h-3.5 w-3.5",strokeWidth:1.5})})}async function gs(t,a,r,n,o){if(!o)return null;const m=JSON.stringify(r),f=`${t}/v1/lens`;return await c.postRequest(f,o,{name:a,template:m,filterValues:n,operation:"create"})}async function Fe(t,a,r){if(!r)return null;const{id:n,template:o,filterValues:m,isDefault:f,shared:u}=a,b=`${t}/v1/lens`;return await c.postRequest(b,r,{lensId:n,template:o,filterValues:m,isDefault:f,shared:u,operation:"update"})}async function bs(t,a,r){if(!r)return null;const n=`${t}/v1/lens`;return await c.postRequest(n,r,{operation:"delete",lensId:a})}const vs="text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground";function ys({open:t,onOpenChange:a}={}){const[r,n]=v.useState(""),[o,m]=v.useState(!1),f=c.useDashboardStore(D=>D.lenses),{setLenses:u,setSelectedLensId:b}=c.useDashboardActions(),[y,h]=v.useState(!1),[l,x]=v.useState(!1),p=t!==void 0,g=p?t:l,i=D=>{p||x(D),a==null||a(D)},S=c.useDashboardStore(D=>D.dashboard),w=c.useDashboardStore(D=>D.filterValues),{authToken:N,tokenProps:k}=s.useSemaphorContext();async function C(){h(!0);const D=await gs(k.apiServiceUrl,r,S,w,N==null?void 0:N.accessToken);D&&(u([...f||[],D]),b(D.id),i(!1)),h(!1)}return e.jsxs(s.Dialog,{open:g,onOpenChange:i,children:[p?null:e.jsx(s.DialogTrigger,{asChild:!0,children:e.jsxs(c.Button,{variant:"secondary",size:"xs",children:[e.jsx(s.Plus,{className:"h-3.5 w-3.5"}),"Lens"]})}),e.jsxs(s.DialogContent,{className:"rounded-control border-border/60 sm:max-w-[420px] sm:rounded-control",children:[e.jsxs(s.DialogHeader,{children:[e.jsx(s.DialogTitle,{className:"text-[15px]",children:"Create lens"}),e.jsx(s.DialogDescription,{className:"text-[13px] leading-5",children:"Lenses are private by default and are only visible to you."})]}),e.jsxs("div",{className:"space-y-1.5 py-1",children:[e.jsx(c.Label,{htmlFor:"lens-name",className:vs,children:"Name"}),e.jsx(c.Input,{id:"lens-name",size:"xs",value:r,placeholder:"Monthly review, West region, …",onChange:D=>n(D.target.value)}),o&&e.jsx("p",{className:"text-[12px] text-destructive",children:"A lens with this name already exists. Pick a different one."})]}),e.jsxs(s.DialogFooter,{children:[e.jsx(c.Button,{variant:"outline",size:"xs",onClick:()=>i(!1),children:"Cancel"}),e.jsx(c.Button,{size:"xs",type:"submit",onClick:C,disabled:y||!r.trim(),children:y?"Creating…":"Create"})]})]})]})}function js({includeLabel:t=!1}={}){const a=c.useDashboardStore(h=>h.lenses),r=c.useDashboardStore(h=>h.selectedLensId),{setLenses:n,setSelectedLensId:o}=c.useDashboardActions(),{authToken:m,tokenProps:f}=s.useSemaphorContext();async function u(h){o(h)}async function b(h){if(await bs(f.apiServiceUrl,h,m==null?void 0:m.accessToken)){const x=a==null?void 0:a.filter(p=>p.id!==h);n(x||[]),o("original")}}async function y(h){const l=a==null?void 0:a.map(g=>g.id===h.id?{...g,isDefault:!h.isDefault}:{...g,isDefault:!1});n(l||[]);const x={...h,isDefault:!h.isDefault};await Fe(f.apiServiceUrl,x,m==null?void 0:m.accessToken);const p=a==null?void 0:a.find(g=>g.isDefault);if(p&&p.id!==h.id){const g={...p,isDefault:!1};await Fe(f.apiServiceUrl,g,m==null?void 0:m.accessToken)}}return e.jsxs(e.Fragment,{children:[t?e.jsxs(e.Fragment,{children:[e.jsx(s.DropdownMenuLabel,{className:"px-3",children:"Lenses"}),e.jsx(s.DropdownMenuSeparator,{})]}):null,e.jsxs(s.DropdownMenuRadioGroup,{value:r,onValueChange:u,children:[e.jsx(s.DropdownMenuRadioItem,{value:"original",children:"Original"}),a==null?void 0:a.map(h=>e.jsxs(s.DropdownMenuRadioItem,{className:"group flex justify-between gap-2",value:h.id,children:[e.jsx("p",{children:h.name}),e.jsxs("span",{className:"flex items-center gap-3",children:[e.jsx(s.House,{onClick:l=>{l.preventDefault(),y(h)},className:c.cn("size-3.5 text-muted-foreground hover:cursor-pointer hover:text-foreground group-hover:visible",{invisible:!h.isDefault,"text-green-500":h.isDefault}),strokeWidth:1.5}),e.jsx(s.Cross2Icon,{onClick:l=>{l.preventDefault(),b(h.id)},className:"invisible size-3.5 text-muted-foreground hover:cursor-pointer hover:text-foreground group-hover:visible",strokeWidth:1.5})]})]},h.id))]})]})}function Ss(){const{displayPreferences:t,shouldShowElement:a}=s.useDisplayPreferences(),{currentUser:r,userContext:n}=s.useCurrentUserInfo(),o=v.useMemo(()=>s.getRoleBasedDisplayOverrides(r),[r]),m=v.useMemo(()=>u=>o&&o[u]!==void 0&&o[u]===!1?!1:a(u),[o,a,t]),f=v.useMemo(()=>{var u,b,y,h,l;return{canEdit:((u=n==null?void 0:n.permissions)==null?void 0:u.canEdit)??s.canUserEdit(r),canUseFilters:((b=n==null?void 0:n.permissions)==null?void 0:b.canEdit)??s.canUserUseFilters(r),canManageDashboards:((y=n==null?void 0:n.permissions)==null?void 0:y.canCreateDashboard)??s.canUserManageDashboards(r),canCreateDashboards:((h=n==null?void 0:n.permissions)==null?void 0:h.canCreateDashboard)??s.canUserCreateDashboards(r),canAccessVisuals:((l=n==null?void 0:n.permissions)==null?void 0:l.canEdit)??s.canUserAccessVisuals(r)}},[r,n]);return{displayPreferences:t,shouldShowElement:m,permissions:f,currentUser:r}}function ws(t,a=[]){let r=[];function n(m,f){const u=E.createContext(f);u.displayName=m+"Context";const b=r.length;r=[...r,f];const y=l=>{var w;const{scope:x,children:p,...g}=l,i=((w=x==null?void 0:x[t])==null?void 0:w[b])||u,S=E.useMemo(()=>g,Object.values(g));return e.jsx(i.Provider,{value:S,children:p})};y.displayName=m+"Provider";function h(l,x){var i;const p=((i=x==null?void 0:x[t])==null?void 0:i[b])||u,g=E.useContext(p);if(g)return g;if(f!==void 0)return f;throw new Error(`\`${l}\` must be used within \`${m}\``)}return[y,h]}const o=()=>{const m=r.map(f=>E.createContext(f));return function(u){const b=(u==null?void 0:u[t])||m;return E.useMemo(()=>({[`__scope${t}`]:{...u,[t]:b}}),[u,b])}};return o.scopeName=t,[n,Ds(o,...a)]}function Ds(...t){const a=t[0];if(t.length===1)return a;const r=()=>{const n=t.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(m){const f=n.reduce((u,{useScope:b,scopeName:y})=>{const l=b(m)[`__scope${y}`];return{...u,...l}},{});return E.useMemo(()=>({[`__scope${a.scopeName}`]:f}),[f])}};return r.scopeName=a.scopeName,r}var Ns=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],qe=Ns.reduce((t,a)=>{const r=c.createSlot(`Primitive.${a}`),n=E.forwardRef((o,m)=>{const{asChild:f,...u}=o,b=f?r:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(b,{...u,ref:m})});return n.displayName=`Primitive.${a}`,{...t,[a]:n}},{});function Cs(){return xs.useSyncExternalStore(ks,()=>!0,()=>!1)}function ks(){return()=>{}}var $e="Avatar",[Es]=ws($e),[Ls,gt]=Es($e),bt=E.forwardRef((t,a)=>{const{__scopeAvatar:r,...n}=t,[o,m]=E.useState("idle");return e.jsx(Ls,{scope:r,imageLoadingStatus:o,onImageLoadingStatusChange:m,children:e.jsx(qe.span,{...n,ref:a})})});bt.displayName=$e;var vt="AvatarImage",yt=E.forwardRef((t,a)=>{const{__scopeAvatar:r,src:n,onLoadingStatusChange:o=()=>{},...m}=t,f=gt(vt,r),u=Ms(n,m),b=c.useCallbackRef(y=>{o(y),f.onImageLoadingStatusChange(y)});return c.useLayoutEffect2(()=>{u!=="idle"&&b(u)},[u,b]),u==="loaded"?e.jsx(qe.img,{...m,ref:a,src:n}):null});yt.displayName=vt;var jt="AvatarFallback",St=E.forwardRef((t,a)=>{const{__scopeAvatar:r,delayMs:n,...o}=t,m=gt(jt,r),[f,u]=E.useState(n===void 0);return E.useEffect(()=>{if(n!==void 0){const b=window.setTimeout(()=>u(!0),n);return()=>window.clearTimeout(b)}},[n]),f&&m.imageLoadingStatus!=="loaded"?e.jsx(qe.span,{...o,ref:a}):null});St.displayName=jt;function mt(t,a){return t?a?(t.src!==a&&(t.src=a),t.complete&&t.naturalWidth>0?"loaded":"loading"):"error":"idle"}function Ms(t,{referrerPolicy:a,crossOrigin:r}){const n=Cs(),o=E.useRef(null),m=n?(o.current||(o.current=new window.Image),o.current):null,[f,u]=E.useState(()=>mt(m,t));return c.useLayoutEffect2(()=>{u(mt(m,t))},[m,t]),c.useLayoutEffect2(()=>{const b=l=>()=>{u(l)};if(!m)return;const y=b("loaded"),h=b("error");return m.addEventListener("load",y),m.addEventListener("error",h),a&&(m.referrerPolicy=a),typeof r=="string"&&(m.crossOrigin=r),()=>{m.removeEventListener("load",y),m.removeEventListener("error",h)}},[m,r,a]),f}var wt=bt,Dt=yt,Nt=St;const Ct=E.forwardRef(({className:t,...a},r)=>e.jsx(wt,{ref:r,className:c.cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",t),...a}));Ct.displayName=wt.displayName;const Is=E.forwardRef(({className:t,...a},r)=>e.jsx(Dt,{ref:r,className:c.cn("aspect-square h-full w-full",t),...a}));Is.displayName=Dt.displayName;const kt=E.forwardRef(({className:t,...a},r)=>e.jsx(Nt,{ref:r,className:c.cn("flex h-full w-full items-center justify-center rounded-full bg-muted",t),...a}));kt.displayName=Nt.displayName;const As=async(t,a,r)=>{const n=`${t}/management/v1/groups`;return await c.postRequestRegular(n,a,r)},Ps=async(t,a,r,n)=>{const o=`${t}/management/v1/groups/${r}`;return c.requestJsonRegular(o,a,"PATCH",n)},Os=async(t,a,r)=>{const n=`${t}/management/v1/groups/${r}`;await c.requestJsonRegular(n,a,"DELETE")},Rs=async(t,a,r,n)=>{const o=`${t}/management/v1/groups/${r}/members`;return await c.postRequestRegular(o,a,n)},_s=async(t,a,r,n)=>{const o=`${t}/management/v1/groups/${r}/members`;await c.requestJsonRegular(o,a,"DELETE",n)};function Us(){const{authToken:t,tokenProps:a}=s.useSemaphorContext(),r=s.useQueryClient();return s.useMutation({mutationFn:n=>As(a.apiServiceUrl,(t==null?void 0:t.accessToken)||"",n),onSuccess:()=>{r.invalidateQueries({queryKey:["groups"]}),s.ue.success("Group created successfully")},onError:n=>{console.error("Failed to create group:",n),s.ue.error("Failed to create group",{description:c.getRequestErrorMessage(n,"Failed to create group")})}})}function Ts(){const{authToken:t,tokenProps:a}=s.useSemaphorContext(),r=s.useQueryClient();return s.useMutation({mutationFn:({groupId:n,data:o})=>Ps(a.apiServiceUrl,(t==null?void 0:t.accessToken)||"",n,o),onSuccess:(n,o)=>{r.invalidateQueries({queryKey:["group",o.groupId]}),r.invalidateQueries({queryKey:["groups"]}),s.ue.success("Group updated successfully")},onError:n=>{console.error("Failed to update group:",n),s.ue.error("Failed to update group",{description:c.getRequestErrorMessage(n,"Failed to update group")})}})}function Fs(){const{authToken:t,tokenProps:a}=s.useSemaphorContext(),r=s.useQueryClient();return s.useMutation({mutationFn:n=>Os(a.apiServiceUrl,(t==null?void 0:t.accessToken)||"",n),onSuccess:(n,o)=>{r.invalidateQueries({queryKey:["groups"]}),r.removeQueries({queryKey:["group",o]}),s.ue.success("Group deleted successfully")},onError:n=>{console.error("Failed to delete group:",n),s.ue.error("Failed to delete group",{description:c.getRequestErrorMessage(n,"Failed to delete group")})}})}function qs(){const{authToken:t,tokenProps:a}=s.useSemaphorContext(),r=s.useQueryClient();return s.useMutation({mutationFn:({groupId:n,data:o})=>Rs(a.apiServiceUrl,(t==null?void 0:t.accessToken)||"",n,o),onSuccess:(n,o)=>{r.invalidateQueries({queryKey:["group",o.groupId]}),r.invalidateQueries({queryKey:["group-members",o.groupId]}),r.invalidateQueries({queryKey:["groups"]}),s.ue.success("Members added successfully")},onError:n=>{console.error("Failed to add group members:",n),s.ue.error("Failed to add members",{description:c.getRequestErrorMessage(n,"Failed to add members")})}})}function $s(){const{authToken:t,tokenProps:a}=s.useSemaphorContext(),r=s.useQueryClient();return s.useMutation({mutationFn:({groupId:n,data:o})=>_s(a.apiServiceUrl,(t==null?void 0:t.accessToken)||"",n,o),onSuccess:(n,o)=>{r.invalidateQueries({queryKey:["group",o.groupId]}),r.invalidateQueries({queryKey:["group-members",o.groupId]}),r.invalidateQueries({queryKey:["groups"]}),s.ue.success("Members removed successfully")},onError:n=>{console.error("Failed to remove group members:",n),s.ue.error("Failed to remove members",{description:c.getRequestErrorMessage(n,"Failed to remove members")})}})}const Bs=[];function Gs({open:t,onOpenChange:a}){var N,k,C;const{tokenProps:r}=s.useSemaphorContext(),{currentUser:n}=s.useCurrentUserInfo(),o=(n==null?void 0:n.type)==="tenant",m=r==null?void 0:r.tenantId,{groups:f,isLoading:u,error:b,refetch:y}=s.useGroups({type:o?"TENANT_GROUP":"all",tenantId:o?m:void 0,includeMembers:!1}),h=b?Et(b,"Unable to load groups."):null,[l,x]=v.useState({kind:"list"}),[p,g]=v.useState(null),i=Fs();v.useEffect(()=>{t||(x({kind:"list"}),g(null))},[t]);const S=l.kind==="members"&&f.find(D=>D.id===l.groupId)||null,w=async()=>{if(p)try{await i.mutateAsync(p.id),g(null),x({kind:"list"}),y()}catch{}};return e.jsx(s.Dialog,{open:t,onOpenChange:a,children:e.jsxs(s.DialogContent,{className:"flex max-h-[640px] w-[720px] max-w-[92vw] flex-col gap-0 overflow-hidden p-0",children:[l.kind==="list"?e.jsxs("div",{className:"shrink-0 border-b border-border px-5 pt-4 pb-3.5",children:[e.jsx(s.DialogTitle,{className:"text-[15px] font-semibold tracking-tight",children:"Group management"}),e.jsx(s.DialogDescription,{className:"mt-1 text-[12px] leading-[1.5] text-muted-foreground",children:"Organize people into groups for shared access."})]}):l.kind==="create"?e.jsxs("div",{className:"flex h-10 shrink-0 items-center gap-1.5 border-b border-border px-5",children:[e.jsx("button",{type:"button",onClick:()=>x({kind:"list"}),"aria-label":"Back",className:"-ml-1 flex h-6 w-6 items-center justify-center rounded-[3px] text-muted-foreground hover:bg-accent hover:text-foreground",children:e.jsx(s.ArrowLeft,{className:"h-3.5 w-3.5"})}),e.jsx(s.DialogTitle,{className:"truncate text-[13px] font-medium",children:"New group"}),e.jsx(s.DialogDescription,{className:"sr-only",children:"Create a new group to organize members."})]}):null,l.kind==="list"&&e.jsx(zs,{groups:f,isLoading:u,errorMessage:h,onRetry:()=>y(),currentUserId:n==null?void 0:n.id,onOpenGroup:D=>x({kind:"members",groupId:D}),onCreate:()=>x({kind:"create"}),onDeleteRequest:D=>g(D)}),l.kind==="members"&&S&&e.jsx(Ks,{group:S,isTenantViewer:o,canEdit:((N=S.permissions)==null?void 0:N.canEdit)??S.createdBy===(n==null?void 0:n.id),canDelete:((k=S.permissions)==null?void 0:k.canDelete)??S.createdBy===(n==null?void 0:n.id),canManageMembers:((C=S.permissions)==null?void 0:C.canManageMembers)??S.createdBy===(n==null?void 0:n.id),onBack:()=>x({kind:"list"}),onMembersChanged:y,onUpdated:y,onRequestDelete:()=>g(S)},S.id),l.kind==="create"&&e.jsx(Qs,{isTenantUser:o,tenantId:m,onCancel:()=>x({kind:"list"}),onCreated:D=>{y(),x({kind:"members",groupId:D})}}),p&&e.jsxs("div",{className:"flex shrink-0 items-center justify-between gap-3 border-t border-border bg-muted/40 px-5 py-2.5",children:[e.jsxs("div",{className:"min-w-0 text-[12px] text-foreground",children:["Delete ",e.jsx("span",{className:"font-medium",children:p.name}),"?",e.jsx("span",{className:"ml-2 text-muted-foreground",children:"Members lose any access granted via this group."})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[e.jsx("button",{type:"button",onClick:()=>g(null),disabled:i.isPending,className:"h-7 rounded-[5px] px-2.5 text-[12px] font-medium text-foreground/80 hover:bg-background",children:"Cancel"}),e.jsxs("button",{type:"button",onClick:w,disabled:i.isPending,className:"inline-flex h-7 items-center gap-1.5 rounded-[5px] bg-rose-600 px-2.5 text-[12px] font-medium text-white hover:bg-rose-700 disabled:opacity-60",children:[i.isPending?e.jsx(c.LoaderCircle,{className:"h-3 w-3 animate-spin"}):e.jsx(s.Trash2,{className:"h-3 w-3"}),"Delete group"]})]})]})]})})}function zs({groups:t,isLoading:a,errorMessage:r,onRetry:n,currentUserId:o,onOpenGroup:m,onCreate:f,onDeleteRequest:u}){const[b,y]=v.useState(""),h=v.useMemo(()=>t.filter(l=>!b.trim()||l.name.toLowerCase().includes(b.toLowerCase())||(l.description||"").toLowerCase().includes(b.toLowerCase())),[t,b]);return e.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border px-5 py-2.5",children:[e.jsxs("div",{className:"flex flex-1 items-center gap-2 rounded-[5px] border border-border bg-background px-2 focus-within:border-foreground/40",children:[e.jsx(s.Search,{className:"h-3 w-3 text-muted-foreground"}),e.jsx("input",{value:b,onChange:l=>y(l.target.value),placeholder:"Search groups…",className:"h-7 flex-1 bg-transparent text-[12px] text-foreground placeholder:text-muted-foreground focus:outline-none"}),b&&e.jsx("button",{type:"button",onClick:()=>y(""),className:"flex h-4 w-4 items-center justify-center rounded-[3px] text-muted-foreground hover:bg-accent hover:text-foreground",children:e.jsx(c.X,{className:"h-2.5 w-2.5"})})]}),e.jsxs("button",{type:"button",onClick:f,className:"inline-flex h-7 items-center gap-1.5 rounded-[5px] bg-foreground px-2.5 text-[12px] font-medium text-background hover:opacity-90",children:[e.jsx(s.Plus,{className:"h-3 w-3"}),"New group"]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:a?e.jsx("div",{className:"space-y-px p-3",children:[1,2,3].map(l=>e.jsx("div",{className:"h-12 animate-pulse rounded-[4px] bg-muted/60"},l))}):r?e.jsx(Lt,{title:"Can't load groups",message:r,onRetry:n}):h.length===0&&t.length===0?e.jsx(Vs,{onCreate:f}):h.length===0?e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-1 py-10 text-center",children:[e.jsxs("div",{className:"text-[12px] text-foreground",children:['No groups match "',b,'"']}),e.jsx("div",{className:"text-[11px] text-muted-foreground",children:"Try a different search."})]}):h.map(l=>{var x;return e.jsx(Hs,{group:l,canDelete:((x=l.permissions)==null?void 0:x.canDelete)??l.createdBy===o,onClick:()=>m(l.id),onDelete:()=>u(l)},l.id)})})]})}function Hs({group:t,canDelete:a,onClick:r,onDelete:n}){let o="";try{o=xt.format(new Date(t.createdAt),"MMM d, yyyy")}catch{o=""}return e.jsxs("button",{type:"button",onClick:r,className:"group flex w-full items-center gap-3 border-b border-border/60 px-5 py-2.5 text-left hover:bg-accent/40",children:[e.jsx("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-[4px] border border-border bg-background text-muted-foreground",children:e.jsx(O.UsersRound,{className:"h-3.5 w-3.5"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[13px] font-medium text-foreground",children:t.name}),e.jsxs("div",{className:"mt-0.5 flex items-center gap-2 text-[11px] text-muted-foreground",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(ft,{className:"h-2.5 w-2.5"}),t.memberCount," member",t.memberCount===1?"":"s"]}),o&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-border",children:"·"}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(s.Calendar,{className:"h-2.5 w-2.5"}),o]})]}),t.description&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-border",children:"·"}),e.jsx("span",{className:"truncate text-muted-foreground",children:t.description})]})]})]}),e.jsxs("div",{className:"flex items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100",children:[a&&e.jsx("span",{role:"button",tabIndex:0,onClick:m=>{m.stopPropagation(),n()},onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),m.stopPropagation(),n())},"aria-label":`Delete ${t.name}`,className:"flex h-6 w-6 items-center justify-center rounded-[3px] text-muted-foreground hover:bg-accent hover:text-foreground",children:e.jsx(s.Trash2,{className:"h-3 w-3"})}),e.jsx(s.ChevronRight,{className:"h-3.5 w-3.5 text-muted-foreground"})]})]})}function Vs({onCreate:t}){return e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-full border border-border bg-muted/40 text-muted-foreground",children:e.jsx(s.Users,{className:"h-4 w-4"})}),e.jsx("div",{className:"text-[13px] font-medium text-foreground",children:"No groups yet"}),e.jsx("div",{className:"max-w-[320px] text-[11.5px] leading-[1.55] text-muted-foreground",children:"Groups let you grant shared access to dashboards. Create one and add members."}),e.jsxs("button",{type:"button",onClick:t,className:"mt-1 inline-flex h-7 items-center gap-1.5 rounded-[5px] bg-foreground px-2.5 text-[12px] font-medium text-background hover:opacity-90",children:[e.jsx(s.Plus,{className:"h-3 w-3"}),"New group"]})]})}function Ks({group:t,isTenantViewer:a,canEdit:r,canDelete:n,canManageMembers:o,onBack:m,onMembersChanged:f,onUpdated:u,onRequestDelete:b}){const{data:y,isLoading:h,error:l,refetch:x}=s.useGroupMembers(t.id),p=(y==null?void 0:y.members)??Bs,g=l?Et(l,"Unable to load members for this group."):null,i=t.type==="TENANT_GROUP"?"tenant":"organization",{users:S}=s.useUnifiedUsers({type:i,tenantId:t.tenantId||void 0,active:!0,limit:200}),w=v.useMemo(()=>new Set(p.map(j=>j.userId)),[p]),N=qs(),k=$s(),C=Ts(),[D,W]=v.useState(!1),[B,J]=v.useState(t.name),[re,G]=v.useState(!1),[z,H]=v.useState(t.description||""),[V,ne]=v.useState(""),[ae,oe]=v.useState(!1),ie=v.useMemo(()=>{const j=V.trim().toLowerCase();return S.filter(P=>!w.has(P.id)).filter(P=>!j||(P.name||"").toLowerCase().includes(j)||(P.email||"").toLowerCase().includes(j)).slice(0,50)},[S,w,V]),ce=async()=>{const j=B.trim();if(W(!1),j.length>=3&&j!==t.name)try{await C.mutateAsync({groupId:t.id,data:{name:j}}),u()}catch{}},U=async()=>{const j=z.trim();if(G(!1),j!==(t.description||""))try{await C.mutateAsync({groupId:t.id,data:{description:j}}),u()}catch{}},K=async j=>{if(o){ne(""),oe(!1);try{await N.mutateAsync({groupId:t.id,data:{userIds:[j.id],userType:i==="tenant"?"tenant":"org"}}),x(),f()}catch{}}},Q=async j=>{if(o)try{await k.mutateAsync({groupId:t.id,data:{userIds:[j]}}),x(),f()}catch{}};let T="";try{T=xt.format(new Date(t.createdAt),"MMM d, yyyy")}catch{T=""}return e.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex h-10 shrink-0 items-center gap-1.5 border-b border-border px-5",children:[e.jsx("button",{type:"button",onClick:m,"aria-label":"Back",className:"-ml-1 flex h-6 w-6 items-center justify-center rounded-[3px] text-muted-foreground hover:bg-accent hover:text-foreground",children:e.jsx(s.ArrowLeft,{className:"h-3.5 w-3.5"})}),D?e.jsx("input",{autoFocus:!0,value:B,onChange:j=>J(j.target.value),onBlur:ce,onKeyDown:j=>{j.key==="Enter"&&ce(),j.key==="Escape"&&(J(t.name),W(!1))},className:"h-6 min-w-0 flex-1 rounded-[3px] border border-border bg-background px-1.5 text-[13px] font-medium text-foreground focus:border-foreground/40 focus:outline-none"}):e.jsx("button",{type:"button",onClick:()=>{r&&(J(t.name),W(!0))},title:r?"Click to rename":t.name,disabled:!r,className:"truncate rounded-[3px] px-1 text-[13px] font-medium text-foreground enabled:hover:bg-accent disabled:cursor-default",children:t.name}),e.jsxs("span",{className:"ml-1 inline-flex shrink-0 items-center gap-1 text-[10.5px] text-muted-foreground",children:[e.jsx(ft,{className:"h-2.5 w-2.5"}),p.length," member",p.length===1?"":"s"]})]}),e.jsx("div",{className:"shrink-0 border-b border-border px-5 py-2.5",children:re?e.jsxs("div",{children:[e.jsx("textarea",{autoFocus:!0,rows:2,value:z,onChange:j=>H(j.target.value),maxLength:200,onKeyDown:j=>{j.key==="Escape"&&(H(t.description||""),G(!1)),j.key==="Enter"&&(j.metaKey||j.ctrlKey)&&U()},placeholder:"What is this group for?",className:"block w-full resize-none rounded-[5px] border border-border bg-background px-2 py-1.5 text-[12px] text-foreground placeholder:text-muted-foreground focus:border-foreground/40 focus:outline-none"}),e.jsxs("div",{className:"mt-1.5 flex items-center justify-between",children:[e.jsxs("span",{className:"text-[10.5px] text-muted-foreground",children:[z.length,"/200 · Esc to cancel · ⌘↩ to save"]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("button",{type:"button",onClick:()=>{H(t.description||""),G(!1)},className:"h-6 rounded-[5px] px-2 text-[11px] font-medium text-foreground/80 hover:bg-accent",children:"Cancel"}),e.jsx("button",{type:"button",onClick:U,className:"inline-flex h-6 items-center rounded-[5px] bg-foreground px-2 text-[11px] font-medium text-background hover:opacity-90",children:"Save"})]})]})]}):e.jsxs("button",{type:"button",onClick:()=>{r&&(H(t.description||""),G(!0))},disabled:!r,title:r?"Click to edit description":void 0,className:"block w-full rounded-[3px] px-1 py-0.5 text-left enabled:hover:bg-accent/40 disabled:cursor-default",children:[t.description?e.jsx("p",{className:"text-[12px] leading-[1.55] text-foreground/90",children:t.description}):e.jsx("p",{className:"text-[12px] leading-[1.55] text-muted-foreground",children:r?"Add a description…":"No description"}),e.jsxs("p",{className:"mt-1 text-[10.5px] text-muted-foreground",children:[T?`Created ${T}`:"Recently created",r?" · You can edit this group":""]})]})}),o&&e.jsx(Ws,{query:V,setQuery:ne,open:ae,setOpen:oe,candidates:ie,showKindChip:!a,onAdd:K,busy:N.isPending}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:h?e.jsx("div",{className:"space-y-px p-3",children:[1,2,3].map(j=>e.jsx("div",{className:"h-10 animate-pulse rounded-[4px] bg-muted/60"},j))}):g?e.jsx(Lt,{title:"Can't load members",message:g,onRetry:()=>x()}):p.length===0?e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-1 py-10 text-center",children:[e.jsx("div",{className:"text-[12px] text-foreground",children:"No members yet"}),e.jsx("div",{className:"text-[11px] text-muted-foreground",children:o?"Search above to add people to this group.":"This group does not have any members."})]}):p.map(j=>{var P,F,de,le,ue,L;return e.jsxs("div",{className:"group flex items-center gap-2 border-b border-border/60 px-5 py-2",children:[e.jsx(Mt,{name:((P=j.user)==null?void 0:P.name)||((F=j.user)==null?void 0:F.email)||"?"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[12.5px] font-medium text-foreground",children:((de=j.user)==null?void 0:de.name)||((le=j.user)==null?void 0:le.email)||"Unknown"}),((ue=j.user)==null?void 0:ue.email)&&j.user.name&&e.jsx("div",{className:"truncate text-[10.5px] text-muted-foreground",children:j.user.email})]}),!a&&e.jsx("span",{className:"text-[10px] uppercase tracking-[0.06em] text-muted-foreground",children:j.userType}),e.jsx("button",{type:"button",onClick:()=>Q(j.userId),disabled:!o||k.isPending,"aria-label":`Remove ${((L=j.user)==null?void 0:L.name)||"member"}`,className:"flex h-6 w-6 items-center justify-center rounded-[3px] text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground group-hover:opacity-100 disabled:opacity-30",children:e.jsx(c.X,{className:"h-3 w-3"})})]},j.id)})}),n&&e.jsx("div",{className:"flex shrink-0 items-center justify-end gap-1.5 border-t border-border bg-muted/30 px-5 py-2.5",children:e.jsxs("button",{type:"button",onClick:b,className:"inline-flex h-7 items-center gap-1.5 rounded-[5px] border border-rose-200 bg-background px-2.5 text-[12px] font-medium text-rose-600 hover:bg-rose-50 dark:border-rose-900/60 dark:text-rose-400 dark:hover:bg-rose-950/30",children:[e.jsx(s.Trash2,{className:"h-3 w-3"}),"Delete group"]})})]})}function Qs({isTenantUser:t,tenantId:a,onCancel:r,onCreated:n}){const[o,m]=v.useState(""),[f,u]=v.useState(""),[b,y]=v.useState(null),h=Us(),l=o.trim().length>=3&&o.trim().length<=50,x=async()=>{if(!l)return;y(null);const p={name:o.trim(),description:f.trim()||void 0,type:t?"TENANT_GROUP":"ORG_GROUP",...t&&a?{tenantId:a}:{}};try{const g=await h.mutateAsync(p),i=g==null?void 0:g.id;i?n(i):r()}catch(g){y(g instanceof Error?g.message:"Failed to create group")}};return e.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[e.jsxs("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:[e.jsx(pt,{children:"Name"}),e.jsx("input",{autoFocus:!0,value:o,onChange:p=>m(p.target.value),placeholder:"Marketing leads, North America sales, …",maxLength:50,className:"mt-1 block h-7 w-full rounded-[5px] border border-border bg-background px-2 text-[12px] text-foreground placeholder:text-muted-foreground focus:border-foreground/40 focus:outline-none"}),e.jsx("div",{className:"mt-1 text-[10.5px] text-muted-foreground",children:"3–50 characters."}),e.jsxs("div",{className:"mt-4",children:[e.jsx(pt,{children:"Description (optional)"}),e.jsx("textarea",{rows:2,value:f,onChange:p=>u(p.target.value),maxLength:200,placeholder:"What is this group for?",className:"mt-1 block w-full resize-none rounded-[5px] border border-border bg-background px-2 py-1.5 text-[12px] text-foreground placeholder:text-muted-foreground focus:border-foreground/40 focus:outline-none"}),e.jsxs("div",{className:"mt-1 flex justify-end text-[10.5px] text-muted-foreground",children:[f.length,"/200"]})]}),b&&e.jsx("div",{className:"mt-3 rounded-[5px] border border-rose-200 bg-rose-50 px-2 py-1.5 text-[11.5px] text-rose-700 dark:border-rose-900/60 dark:bg-rose-950/30 dark:text-rose-300",children:b})]}),e.jsxs("div",{className:"flex shrink-0 items-center justify-end gap-1.5 border-t border-border bg-muted/30 px-5 py-2.5",children:[e.jsx("button",{type:"button",onClick:r,disabled:h.isPending,className:"h-7 rounded-[5px] px-2.5 text-[12px] font-medium text-foreground/80 hover:bg-accent",children:"Cancel"}),e.jsx("button",{type:"button",onClick:x,disabled:!l||h.isPending,className:"inline-flex h-7 items-center gap-1.5 rounded-[5px] bg-foreground px-2.5 text-[12px] font-medium text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60",children:h.isPending?e.jsxs(e.Fragment,{children:[e.jsx(c.LoaderCircle,{className:"h-3 w-3 animate-spin"}),"Creating…"]}):e.jsxs(e.Fragment,{children:[e.jsx(s.Plus,{className:"h-3 w-3"}),"Create group"]})})]})]})}function Ws({query:t,setQuery:a,open:r,setOpen:n,candidates:o,showKindChip:m,onAdd:f,busy:u}){const b=v.useRef(null),y=v.useRef(null),[h,l]=v.useState(null);v.useLayoutEffect(()=>{if(!r){l(null);return}const p=()=>{const g=b.current;if(!g)return;const i=g.getBoundingClientRect(),S=240,N=window.innerHeight-i.bottom<S+16&&i.top>S;l({left:i.left,top:N?i.top-6:i.bottom+6,width:i.width,above:N})};return p(),window.addEventListener("resize",p),window.addEventListener("scroll",p,!0),()=>{window.removeEventListener("resize",p),window.removeEventListener("scroll",p,!0)}},[r,o.length]),v.useEffect(()=>{if(!r)return;const p=g=>{var S,w;const i=g.target;(S=b.current)!=null&&S.contains(i)||(w=y.current)!=null&&w.contains(i)||n(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[r,n]);const x=r&&o.length>0&&h;return e.jsxs("div",{className:"shrink-0 border-b border-border px-5 py-2.5",children:[e.jsxs("div",{ref:b,className:"flex items-center gap-2 rounded-[5px] border border-border bg-background px-2 focus-within:border-foreground/40",children:[e.jsx(ms,{className:"h-3 w-3 text-muted-foreground"}),e.jsx("input",{value:t,onChange:p=>{a(p.target.value),n(!0)},onFocus:()=>n(!0),placeholder:"Add a member by name or email…",disabled:u,className:"h-7 flex-1 bg-transparent text-[12px] text-foreground placeholder:text-muted-foreground focus:outline-none disabled:cursor-not-allowed"})]}),x&&typeof document<"u"&&es.createPortal(e.jsx("div",{ref:y,style:{position:"fixed",left:h.left,top:h.top,width:h.width,transform:h.above?"translateY(-100%)":void 0},className:"z-[60] max-h-[240px] overflow-y-auto rounded-[5px] border border-border bg-background shadow-[0_8px_24px_-12px_rgba(0,0,0,0.18)]",children:o.map(p=>e.jsxs("button",{type:"button",onClick:()=>f(p),className:"flex w-full items-center gap-2 border-b border-border/60 px-2.5 py-2 text-left last:border-b-0 hover:bg-accent",children:[e.jsx(Mt,{name:p.name||p.email||"?"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate text-[12px] font-medium text-foreground",children:p.name||p.email||"Unknown"}),p.email&&p.name&&e.jsx("div",{className:"truncate text-[10.5px] text-muted-foreground",children:p.email})]}),m&&p.type&&e.jsx("span",{className:"text-[10px] uppercase tracking-[0.06em] text-muted-foreground",children:p.type==="tenant"?"tenant":"org"})]},p.id))}),document.body)]})}function Et(t,a){if(!t)return a;if(t instanceof Error){const r=t.message||"",n=r.match(/\{[\s\S]*"error"\s*:\s*"([^"]+)"[\s\S]*\}/);return n?n[1]:r||a}return typeof t=="string"?t:a}function Lt({title:t,message:a,onRetry:r}){return e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 px-6 py-10 text-center",children:[e.jsx("div",{className:"text-[12.5px] font-medium text-foreground",children:t}),e.jsx("div",{className:"max-w-[360px] text-[11.5px] leading-[1.55] text-muted-foreground",children:a}),r&&e.jsx("button",{type:"button",onClick:r,className:"mt-1 inline-flex h-7 items-center rounded-[5px] border border-border bg-background px-2.5 text-[11.5px] font-medium text-foreground hover:bg-accent",children:"Try again"})]})}function pt({children:t}){return e.jsx("label",{className:"text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground",children:t})}function Mt({name:t}){const a=t.split(" ").map(r=>r[0]).filter(Boolean).slice(0,2).join("").toUpperCase();return e.jsx(Ct,{className:"h-6 w-6 shrink-0",children:e.jsx(kt,{className:"text-[9px] font-semibold",children:a||"?"})})}function te(t,a,r){var m,f;const n=(t.controls||[]).find(u=>u.id===r);if(n)return n.label;const o=(f=(m=c.findCardById(t,a))==null?void 0:m.controls)==null?void 0:f.find(u=>u.id===r);return(o==null?void 0:o.label)||r}function se(t,a){var r;return((r=c.findCardById(t,a))==null?void 0:r.title)||a}function Js(t){const{errors:a,dashboard:r}=t;if(!r)return a;const n=new Map;for(const o of a){const m=o.match(/^Card '(.+)' binding for control '(.+)' maps to missing metric '(.+)'\.$/);if(m){const[,h,l]=m,x=`${h}:${l}:missing-metric`;n.has(x)||n.set(x,`"${se(r,h)}" has an outdated "${te(r,h,l)}" mapping. Some choices still point to metrics that are no longer available on this card. Open the card controls and choose replacements.`);continue}const f=o.match(/^Card '(.+)' binding for control '(.+)' maps to missing group-by field '(.+)'\.$/);if(f){const[,h,l]=f,x=`${h}:${l}:missing-group-by`;n.has(x)||n.set(x,`"${se(r,h)}" has an outdated "${te(r,h,l)}" mapping. Some choices still point to fields that are no longer available on this card. Open the card controls and choose replacements.`);continue}const u=o.match(/^Card '(.+)' binding for control '(.+)' maps to an invalid metric target\.$/);if(u){const[,h,l]=u,x=`${h}:${l}:invalid-metric`;n.has(x)||n.set(x,`"${se(r,h)}" has an invalid "${te(r,h,l)}" metric mapping. Open the card controls and choose a valid metric for each option.`);continue}const b=o.match(/^Card '(.+)' binding for control '(.+)' maps to an invalid group-by target\.$/);if(b){const[,h,l]=b,x=`${h}:${l}:invalid-group-by`;n.has(x)||n.set(x,`"${se(r,h)}" has an invalid "${te(r,h,l)}" field mapping. Open the card controls and choose a valid field for each option.`);continue}const y=o.match(/^Card '(.+)' binding for control '(.+)' requires at least one temporal group-by field\.$/);if(y){const[,h,l]=y,x=`${h}:${l}:missing-temporal-group-by`;n.has(x)||n.set(x,`"${se(r,h)}" can no longer use "${te(r,h,l)}" for time grain because the card does not currently group by a date field.`);continue}n.set(o,o)}return Array.from(n.values())}function Xs(t,a){return typeof t=="boolean"?t:typeof a=="boolean"?a:!0}function ht(t,a){return{dashboard:s.cloneDeep(t),semanticExecutionPayload:s.cloneDeep(a)}}function Ys(){var tt,st,rt,nt,at,ot,it;O.useExportRecovery(),O.useExportPolling();const{authToken:t,tokenProps:a,id:r,showBriefings:n}=s.useSemaphorContext(),{isLocalDev:o}=s.useDashboardPreferences(),{openBrandStudioPreview:m}=s.useBrandStudioPreview(),{permissions:f}=Ss(),u=s.useHasDashboardId(),{isLoading:b}=s.useDashboardQuery(),y=c.useDashboardStore(d=>d.theme),h=c.useDashboardStore(d=>d.isDownloadingPdf),l=c.useDashboardStore(d=>d.dashboardAssistantDraftScopeKey),x=c.useDashboardStore(d=>d.lenses),p=c.useDashboardStore(d=>d.selectedLensId),g=x==null?void 0:x.find(d=>d.id===p),i=c.useDashboardStore(d=>d.dashboard),S=c.useDashboardStore(d=>d.selectedSheetId),w=(tt=i==null?void 0:i.sheets)==null?void 0:tt.find(d=>d.id===S),N=c.isDocumentSheet(w),k=N?(st=w==null?void 0:w.document)==null?void 0:st.page:void 0,C=c.useDashboardStore(d=>d.isDashboardEditing),{setDashboardTitle:D}=c.useDashboardStore(d=>d.actions),[W,B]=v.useState(!1),[J,re]=v.useState(!1),[G,z]=v.useState(!1),[H,V]=v.useState(!1),[ne,ae]=v.useState(!1),[oe,ie]=v.useState(!1),[ce,U]=v.useState(!1),[K,Q]=v.useState(null),[T,j]=v.useState([]),[P,F]=v.useState(!1),de=c.useDashboardStore(d=>d.isDashboardPanelOpen),le=c.useDashboardStore(d=>d.actions.setIsDashboardPanelOpen),ue=c.useDashboardStore(d=>d.filterValues),L=c.useDashboardStore(d=>d.isVisualEditing);c.useEditorStore(d=>d.card);const X=s.useManagementStore(d=>d.selectedDashboard),me=s.useManagementStore(d=>d.initialDashboard);s.useManagementStore(d=>d.selectedVisual),c.useDashboardStore(d=>d.selectedFrameId),c.useEditorStore(d=>d.frame);const pe=X?(nt=X==null?void 0:X.permissions)==null?void 0:nt.canEdit:(rt=me==null?void 0:me.permissions)==null?void 0:rt.canEdit,Be=c.useDashboardStore(d=>d.showDashboardJSON),Ne=c.useDashboardStore(d=>d.onSaveFunction),{setIsDashboardEditing:Ge,setShowDashboardJSON:ze}=c.useDashboardStore(d=>d.actions),{setInitialDashboard:He,clearSelectedDashboard:Ce}=s.useManagementStore(d=>d.actions),{resources:he}=s.useResourceManagement(s.ResourceType.DASHBOARD),{data:ke}=s.useUserPreferences(),It=((at=ke==null?void 0:ke.preference)==null?void 0:at.defaultDashboardId)||null,{mutate:At,isPending:Pt}=s.useDefaultDashboardMutation(),{currentUser:Ot}=s.useCurrentUserInfo(),Rt=s.canUserManageGroups(Ot),R=X||me,Ve=R?{id:R.id,title:(i==null?void 0:i.title)||R.title||"Dashboard"}:null,{handleAddNewFrame:_t}=s.useAddNewFrame(),[Ee,Le]=v.useState(!1),[Ut,Y]=v.useState(!1),[Me,xe]=v.useState("close"),Z=s.useUpdateResource(s.ResourceType.DASHBOARD),[A,fe]=v.useState(null),Tt=async(d,M)=>{if(!(i!=null&&i.id)){console.log("No dashboard ID found");return}console.log("Updating dashboard title:",{dashboardId:i.id,newTitle:d,previousTitle:M}),Z.mutate({resourceId:i.id,data:{title:d}},{onSuccess:()=>{console.log("Dashboard title updated successfully"),s.ue.success("Dashboard title updated")},onError:_=>{console.error("Failed to update dashboard title:",_),s.ue.error("Failed to update dashboard title"),D(M)}})};v.useEffect(()=>{if(he&&he.length>0){const d=i==null?void 0:i.id;if(d){const M=he.find(_=>_.id===d);M&&He(M)}}},[he,i==null?void 0:i.id,He]);const ee=a.orgUserId||a.tenantId,Ie=v.useMemo(()=>Zs({accessToken:t==null?void 0:t.accessToken,dashboardId:(i==null?void 0:i.id)||r||a.dashboard_id,selectedSheetId:N?S:void 0,pageSize:k==null?void 0:k.size,orientation:k==null?void 0:k.orientation,theme:y}),[t==null?void 0:t.accessToken,r,i==null?void 0:i.id,N,k==null?void 0:k.orientation,k==null?void 0:k.size,S,y,a.dashboard_id]),Ke=C&&!L&&ee&&pe,{setDashboard:Qe}=c.useDashboardStore(d=>d.actions),We=c.useDashboardStore(d=>d.semanticExecutionPayload),Ft=()=>{Ge(!0)},Ae=()=>{Ge(!1),ze(!1),fe(null)};v.useEffect(()=>{if(!C){A&&fe(null);return}A||!i||b||fe(ht(i,We))},[i,A,C,b,We]);const ge=(A==null?void 0:A.dashboard)??null,{isDirty:Je,isDirtyPending:qt,resetDirty:be}=ss.useDebouncedDirtyCheck(i,ge,300,1e3,Re.serializeDashboardForDirtyCheck),Xe=v.useCallback(()=>ge?Re.serializeDashboardForDirtyCheck(i)!==Re.serializeDashboardForDirtyCheck(ge):!1,[i,ge]),Ye=Je||qt,ve=Ee||Z.isPending,$t=()=>{Xe()?(xe("close"),Y(!0)):(Ae(),be())},Bt=async()=>{await Pe({closeAfterSave:!0,navigateHomeAfterSave:Me==="home"})},Gt=()=>{A&&Qe(A.dashboard,{semanticExecutionPayload:A.semanticExecutionPayload}),Ae(),Me==="home"&&Ce(),xe("close"),Y(!1),be()},zt=()=>{A&&(Qe(A.dashboard,{semanticExecutionPayload:A.semanticExecutionPayload}),be())},Ht=()=>{if(C&&Xe()){xe("home"),Y(!0);return}Ce()};async function Pe(d){const M=c.useDashboardStore.getState().dashboard;if(!M)return;const _=(d==null?void 0:d.closeAfterSave)??P,Xt=(d==null?void 0:d.navigateHomeAfterSave)??!1;F(_),_&&Y(!1);const Yt=s.cloneDeep(M);U(!0),Q(null),j([]),Le(!0);const Zt={template:M};Z.mutate({resourceId:M.id,data:Zt},{onSuccess:I=>{var je,Se,ct;const $=(I==null?void 0:I.id)||((je=I==null?void 0:I.dashboard)==null?void 0:je.id)||((Se=I==null?void 0:I.resource)==null?void 0:Se.id)||((ct=I==null?void 0:I.template)==null?void 0:ct.id)||null;if(!M.id&&$){const Oe=c.useAIInteractionStore.getState(),we=Oe.pendingDashboardDraftMigration;(we==null?void 0:we.scopeKey)===l?Oe.actions.setPendingDashboardDraftMigrationExpectedDashboardId($):we&&Oe.actions.clearPendingDashboardDraftMigration()}Le(!1),s.ue.success("Dashboard saved!"),fe(ht(Yt,c.useDashboardStore.getState().semanticExecutionPayload)),U(!1),F(!1),_&&(Ae(),be(),Xt&&Ce()),xe("close")},onError:I=>{Le(!1),Q("Failed to save dashboard. Please try again.");const $=I.details,je=Array.isArray($==null?void 0:$.errors)?($.errors||[]).filter(Se=>typeof Se=="string"):[];j(Js({errors:je,dashboard:M||void 0})),s.ue.error("Failed to save dashboard")}})}async function Vt(){if(B(!0),!p||!g)return;const d=c.useDashboardStore.getState().dashboard;if(!d){B(!1);return}const M=JSON.stringify(d),_={...g,template:M,filterValues:ue};await Fe(a.apiServiceUrl,_,t==null?void 0:t.accessToken),s.ue.success("Lens saved"),Ne==null||Ne(d),B(!1)}const Ze=(g==null?void 0:g.name)||i.title;Z.isPending&&console.log("Title during update:",{title:Ze,dashboardStateTitle:i.title,dashboardId:i==null?void 0:i.id,currentLensName:g==null?void 0:g.name});const et=a.orgUserId||a.tenantId&&a.endUserId&&a.endUserEmail,Kt=!!et&&!!(t!=null&&t.accessToken)&&!!(a!=null&&a.apiServiceUrl),Qt=u,q=(i==null?void 0:i.id)||null,Wt=Xs((ot=a.config)==null?void 0:ot.showBriefings,n),ye=!!q&&It===q,Jt=()=>{q&&At({dashboardId:ye?null:q})};return e.jsxs("div",{className:"flex h-11 shrink-0 items-center justify-between gap-2 overflow-x-auto border-b px-4 py-2",role:"dashboard-controls",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[et&&e.jsxs(e.Fragment,{children:[e.jsx(s.IconButton,{"aria-label":"Manage Dashboards",tooltip:"Manage Dashboards",onClick:()=>{le(!de)},className:"h-7 w-7 px-0",buttonProps:{size:"xs"},children:e.jsx(is,{className:"h-3.5 w-3.5"})}),Qt&&!L&&e.jsx(s.IconButton,{"aria-label":"Dashboard Hub",tooltip:"Dashboard Hub",onClick:Ht,className:"h-7 w-7 px-0",buttonProps:{size:"xs"},children:e.jsx(s.House,{className:"h-3.5 w-3.5"})})]}),!L&&u&&(b?e.jsx("div",{className:"h-4 w-28 animate-pulse rounded-md bg-muted/70","aria-label":"Loading dashboard title",role:"status",children:e.jsx("span",{className:"sr-only",children:"Loading dashboard title"})}):e.jsxs(e.Fragment,{children:[e.jsx(s.EditableText,{value:Ze||"Untitled Dashboard",onSave:d=>{console.log("EditableText onSave called:",{newTitle:d,canEditDashboard:pe,dashboardId:i==null?void 0:i.id});const M=(i==null?void 0:i.title)||"";D(d),Tt(d,M)},isEditable:pe&&!g,displayClassName:"text-[13px] font-medium",inputClassName:"text-[13px] font-medium",placeholder:"Dashboard Title",isPending:Z.isPending}),Kt&&q&&e.jsx(c.TooltipProvider,{children:e.jsxs(c.Tooltip,{children:[e.jsx(c.TooltipTrigger,{asChild:!0,children:e.jsx(c.Button,{variant:"ghost",size:"xs",onClick:Jt,disabled:Pt||!(t!=null&&t.accessToken)||!(a!=null&&a.apiServiceUrl),className:"w-7 px-0","aria-label":ye?"Remove as default dashboard":"Make this a default dashboard",children:e.jsx(s.Star,{className:c.cn("h-3.5 w-3.5 transition-colors",ye?"fill-foreground text-foreground":"text-muted-foreground hover:text-foreground")})})}),e.jsx(c.TooltipContent,{children:e.jsx("p",{children:ye?"Remove as default dashboard":"Make this a default dashboard"})})]})})]}))]}),e.jsxs("div",{className:"flex items-center gap-2",children:[L&&e.jsxs(e.Fragment,{children:[e.jsx(O.AdvancedModeToggle,{}),e.jsx(O.VisualEditingControls,{})]}),!L&&u&&((it=R==null?void 0:R.permissions)==null?void 0:it.canShare)&&e.jsxs(c.Button,{variant:"outline",size:"xs",onClick:()=>re(!0),children:[e.jsx(s.Share2,{className:"h-3.5 w-3.5"}),"Share"]}),!L&&!C&&u&&q&&Wt&&e.jsx(O.DashboardBriefingLauncher,{dashboardId:q,dashboardTitle:(i==null?void 0:i.title)||(R==null?void 0:R.title)}),!L&&C&&f.canUseFilters&&u&&e.jsx(O.DashboardFilterControlsLauncher,{}),C&&!L&&ee&&g&&o&&u&&e.jsxs(c.Button,{variant:"secondary",size:"xs",disabled:W,onClick:Vt,children:[e.jsx(dt.Save,{className:"h-3.5 w-3.5"}),"Save Lens"]}),C&&!L&&u&&!N&&e.jsxs(c.Button,{variant:"outline",size:"xs",disabled:!C,onClick:()=>_t(),children:[e.jsx(s.Plus,{className:"h-3.5 w-3.5"}),"Visual"]}),!L&&!C&&pe&&u&&e.jsxs(c.Button,{size:"xs",onClick:Ft,children:[e.jsx(s.Pencil,{className:"h-3.5 w-3.5"}),"Edit"]}),Ke&&u&&Je&&e.jsxs(c.Button,{variant:"outline",size:"xs",onClick:zt,disabled:ve,children:[e.jsx(O.Undo2,{className:"h-3.5 w-3.5"}),"Undo"]}),Ke&&u&&e.jsxs(c.Button,{size:"xs",className:c.cn(!Ye&&"opacity-60"),disabled:ve||!Ye,onClick:()=>Pe(),children:[ve?e.jsx(c.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(dt.Save,{className:"h-3.5 w-3.5"}),ve?"Saving...":"Save"]}),C&&!L&&u&&e.jsxs(c.Button,{variant:"outline",size:"xs",onClick:$t,children:[e.jsx(s.Cross2Icon,{className:"h-3.5 w-3.5"}),"Close"]}),!L&&u&&e.jsx("div",{className:"ml-2",children:e.jsx(O.NotificationBell,{})}),!L&&o&&e.jsx(fs,{}),!L&&u&&e.jsxs(s.DropdownMenu,{children:[e.jsx(s.DropdownMenuTrigger,{asChild:!0,children:e.jsx(s.IconButton,{tooltip:"More Options",className:"w-7 px-0 text-muted-foreground hover:text-foreground",buttonProps:{size:"xs",variant:"ghost","aria-label":"More dashboard options"},children:e.jsx(s.EllipsisVertical,{className:"h-3.5 w-3.5"})})}),e.jsxs(s.DropdownMenuContent,{align:"end",className:"w-56 rounded-control border border-border/60 p-1 shadow-sm",children:[e.jsx(s.DropdownMenuLabel,{children:"Reports"}),e.jsxs(s.DropdownMenuItem,{disabled:h,onSelect:()=>ie(!0),children:[e.jsx(s.Download,{className:"h-3.5 w-3.5"}),"Export"]}),e.jsx(s.DropdownMenuSeparator,{}),Rt&&e.jsxs(e.Fragment,{children:[e.jsx(s.DropdownMenuLabel,{children:"Access"}),e.jsxs(s.DropdownMenuItem,{onClick:()=>z(!0),children:[e.jsx(s.Users,{className:"h-3.5 w-3.5"}),"Manage Groups"]}),e.jsx(s.DropdownMenuSeparator,{})]}),e.jsx(s.DropdownMenuLabel,{children:"Preferences"}),e.jsxs(s.DropdownMenuItem,{onClick:()=>V(!0),children:[e.jsx(s.Calendar,{className:"h-3.5 w-3.5"}),"Calendar Preferences"]}),o&&u&&e.jsxs(e.Fragment,{children:[e.jsx(s.DropdownMenuSeparator,{}),e.jsx(s.DropdownMenuLabel,{children:"Developer"}),e.jsxs(s.DropdownMenuItem,{onSelect:()=>{var d;t!=null&&t.accessToken&&((d=navigator==null?void 0:navigator.clipboard)!=null&&d.writeText?navigator.clipboard.writeText(t.accessToken).then(()=>s.ue.success("Token copied to clipboard")).catch(()=>s.ue.error("Unable to copy token")):s.ue.error("Clipboard not available"))},children:[e.jsx(s.Copy,{className:"h-3.5 w-3.5"}),"Copy token"]}),N&&e.jsxs(s.DropdownMenuItem,{disabled:!Ie,onSelect:()=>{var d;if(!Ie){s.ue.error("Open a document sheet with a token to copy the local PDF URL");return}(d=navigator==null?void 0:navigator.clipboard)!=null&&d.writeText?navigator.clipboard.writeText(Ie).then(()=>s.ue.success("Local document PDF URL copied to clipboard")).catch(()=>s.ue.error("Unable to copy local document PDF URL")):s.ue.error("Clipboard not available")},children:[e.jsx(s.Copy,{className:"h-3.5 w-3.5"}),"Copy local document PDF URL"]}),e.jsxs(s.DropdownMenuItem,{onSelect:()=>c.invalidateToken(a.apiServiceUrl),children:[e.jsx(ls,{className:"h-3.5 w-3.5"}),"Invalidate token"]}),e.jsxs(s.DropdownMenuItem,{onSelect:m,children:[e.jsx(rs.Palette,{className:"h-3.5 w-3.5"}),"Brand Studio"]}),C&&e.jsxs(s.DropdownMenuItem,{onSelect:()=>ze(!Be),children:[e.jsx(ns.Braces,{className:"h-3.5 w-3.5"}),Be?"Hide dashboard JSON":"Show dashboard JSON"]}),ee&&C&&e.jsxs(s.DropdownMenuItem,{onSelect:()=>ae(!0),children:[e.jsx(s.Plus,{className:"h-3.5 w-3.5"}),"Add lens"]}),ee&&e.jsxs(s.DropdownMenuSub,{children:[e.jsxs(s.DropdownMenuSubTrigger,{children:[e.jsx(os,{className:"h-3.5 w-3.5"}),"Lenses"]}),e.jsx(s.DropdownMenuSubContent,{className:"w-60",children:e.jsx(js,{})})]})]})]})]}),J&&Ve&&e.jsx(s.ShareDialog,{resource:Ve,resourceType:s.ResourceType.DASHBOARD,onClose:()=>re(!1)}),e.jsx(Gs,{open:G,onOpenChange:z}),e.jsx(ts.CalendarPreferencesDialog,{open:H,onOpenChange:V}),o&&ee&&u&&e.jsx(ys,{open:ne,onOpenChange:ae}),u&&e.jsx(s.DownloadPdf,{open:oe,onOpenChange:ie}),e.jsx(s.AlertDialog,{open:ce,onOpenChange:d=>{!d&&Ee&&!K||(U(d),d||(Q(null),j([]),F(!1)))},children:e.jsxs(s.AlertDialogContent,{className:"max-w-sm",children:[e.jsxs(s.AlertDialogHeader,{children:[e.jsx(s.AlertDialogTitle,{children:K?"Save failed":"Saving dashboard"}),e.jsx(s.AlertDialogDescription,{className:"pt-2",children:K?"We could not save the dashboard. Please try again.":"Please wait while we save your changes."}),T.length>0&&e.jsxs("div",{className:"space-y-1 rounded-md border border-destructive/20 bg-destructive/5 p-3 text-left",children:[e.jsx("div",{className:"text-sm font-medium text-destructive",children:"What needs attention"}),e.jsx("ul",{className:"list-disc space-y-1 pl-4 text-xs text-muted-foreground",children:T.slice(0,5).map(d=>e.jsx("li",{children:d},d))})]})]}),e.jsx(s.AlertDialogFooter,{className:"flex-col gap-2 sm:flex-row sm:justify-end",children:K?e.jsxs(e.Fragment,{children:[e.jsx(s.AlertDialogCancel,{onClick:()=>{U(!1),Q(null),j([]),F(!1)},className:"m-0",children:"Close"}),e.jsx(s.AlertDialogAction,{onClick:()=>Pe({closeAfterSave:P,navigateHomeAfterSave:Me==="home"}),className:"m-0",children:"Retry"})]}):e.jsxs(s.AlertDialogAction,{disabled:!0,className:"m-0 cursor-default",children:[e.jsx(c.LoaderCircle,{className:"mr-2 h-4 w-4 animate-spin"}),"Saving..."]})})]})}),e.jsx(O.UnsavedChangesAlert,{open:Ut,onOpenChange:d=>{Y(d)},onSave:Bt,onDiscard:Gt,isSaving:Ee,saveLabel:"Save",discardLabel:"Discard"})]})]})}function Zs({accessToken:t,dashboardId:a,selectedSheetId:r,pageSize:n,orientation:o,theme:m}){if(!t||!r)return null;const f=new URL("http://localhost:5173/print-document");f.searchParams.set("token",t),a&&f.searchParams.set("dashboardId",a),f.searchParams.set("selectedSheetId",r),m&&f.searchParams.set("theme",m);const u=new URL("http://127.0.0.1:3002/");return u.searchParams.set("pdfMode","document"),u.searchParams.set("pageSize",n||"letter"),u.searchParams.set("orientation",o||"portrait"),u.searchParams.set("url",f.toString()),u.toString()}exports.default=Ys;
