uapp-communication-sdk 1.0.0-dev.97 → 1.0.0-dev.98
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/communication-sdk.cjs +1 -1
- package/communication-sdk.js +1 -1
- package/communication-sdk.standalone.js +3 -3
- package/package.json +1 -1
- package/{realtimekit-call-media-Bw4ob8QT.cjs → realtimekit-call-media-BFMvEuy1.cjs} +2 -2
- package/{realtimekit-call-media-DMA0v3F5.js → realtimekit-call-media-BpK8rwUl.js} +14 -4
- package/types/features/calls/presentation/media/realtimekit-call-media.d.ts.map +1 -1
|
@@ -2095,7 +2095,7 @@ header h3 {
|
|
|
2095
2095
|
`,uDt=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Y5=class{constructor(e){J(this,e),this.tabChange=ZX(this,`tabChange`,7),this.sidebarClose=ZX(this,`sidebarClose`,7),this.view=`sidebar`,this.tabs=[],this.hideHeader=!1,this.hideCloseAction=!1,this.iconPack=O$,this.focusCloseButton=!0,this.t=D$(),this.onClose=()=>{this.sidebarClose.emit(),document.activeElement instanceof HTMLElement&&document.activeElement.tagName?.includes(`RTK-`)&&document.activeElement.blur instanceof Function&&document.activeElement.blur()}}componentDidLoad(){this.keydownListener=e=>{e.key===`Escape`&&this.onClose()},this.hostEl.addEventListener(`keydown`,this.keydownListener),this.handleFocusCloseButton()}handleFocusCloseButton(){this.currentTab!==`chat`&&!this.hideCloseAction&&this.closeButton.focus()}disconnectedCallback(){this.hostEl.removeEventListener(`keydown`,this.keydownListener)}render(){let e=this.view===`full-screen`,t=this.tabs.find(e=>e.id===this.currentTab);return Y(X,{key:`239f279ceccceeaa57181d4a71f3e04ede4132ce`,ref:e=>this.hostEl=e,class:this.view},!this.hideCloseAction&&Y(`rtk-button`,{key:`921847fd946de305dce6f1fc7fe8a9ff175e38ee`,ref:e=>this.closeButton=e,variant:`ghost`,kind:`icon`,class:`close`,onClick:this.onClose,"aria-label":this.t(`close`)},Y(`rtk-icon`,{key:`1de9f1edf8ecce2d0390b7b8a1253de02affd9d1`,icon:this.iconPack.dismiss})),t&&!this.hideHeader&&Y(`header`,{key:`4cd288feeb658e62d3ad1efd47aea237119918e1`,class:`main-header`},Y(`h3`,{key:`d6c4129537b4e090f3c429c66057be9a1072a864`},t.name),Y(`slot`,{key:`dfb1ea30cfa476b515a3a4b628c036083f1fe0a5`,name:`pinned-state`})),e&&Y(`header`,{key:`7dafb426628960ba26718530417854a533de3664`,class:`mobile-tabs`},this.tabs.map(e=>Y(`button`,{onClick:()=>{this.tabChange.emit(e.id)},class:{active:this.currentTab===e.id}},e.name))),Y(`slot`,{key:`2696ccd9fcad418ad7738164cd5a9e6305320899`,name:this.currentTab}))}static get watchers(){return{currentTab:[`handleFocusCloseButton`]}}},uDt([K()],Y5.prototype,`t`,void 0),Y5.style=lDt,dDt=Object.freeze({__proto__:null,rtk_sidebar_ui:Y5}),fDt=`:host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{font-size:12px}#sync-button{flex-direction:row;border-radius:var(--rtk-border-radius-sm, 4px);padding-left:var(--rtk-space-1, 4px);display:flex;align-items:center;justify-content:center;margin-bottom:var(--rtk-space-1, 4px);font-size:12px;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-700, 44 44 44) / var(--tw-bg-opacity))}:host([size='sm']) rtk-tooltip,:host([size='md']) rtk-tooltip{width:100%}:host([size='sm'])>#sync-button{height:var(--rtk-space-8, 32px);width:var(--rtk-space-16, 64px);padding-left:var(--rtk-space-0, 0px)}:host([size='md'])>#sync-button{height:var(--rtk-space-8, 32px);width:var(--rtk-space-16, 64px)}:host([size='lg'])>#sync-button{flex-direction:row;height:var(--rtk-space-8, 32px);width:var(--rtk-space-16, 64px)}@media (orientation: portrait){:host([size='lg']) #sync-button{flex-direction:column-reverse;height:var(--rtk-space-16, 64px);width:var(--rtk-space-16, 64px)}:host([size='md']) #sync-button{height:var(--rtk-space-16, 64px);width:var(--rtk-space-16, 64px)}:host([size='sm']) #sync-button{height:var(--rtk-space-10, 40px);width:var(--rtk-space-16, 64px);flex-direction:row}}#sync-button>rtk-icon{max-height:14px}#sync-button rtk-icon{--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}:host([size='sm']) #sync-button>rtk-icon{width:auto}#sync-button.active rtk-icon{color:rgb(var(--rtk-colors-text-1000, 255 255 255))}div{align-content:center;line-height:2rem}rtk-icon{height:var(--rtk-space-6, 24px);width:var(--rtk-space-8, 32px)}#sync-button.active{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-success, 98 165 4) / var(--tw-bg-opacity))}`,X5=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Z5=class{constructor(e){J(this,e),this.iconPack=O$,this.t=D$(),this.permissionsUpdateListener=()=>{this.canSpotlight=this.meeting.self.permissions.canSpotlight}}connectedCallback(){this.meetingChanged(this.meeting)}disconnectedCallback(){var e;(e=this.meeting)==null||e.self.permissions.removeListener(`permissionsUpdate`,this.permissionsUpdateListener)}meetingChanged(e){e!=null&&(this.canSpotlight=e.self.permissions.canSpotlight,this.isSpotlighted=e.meta?.broadcastTabChanges??!1,e.self.permissions.addListener(`permissionsUpdate`,this.permissionsUpdateListener))}updateSpotlightState(e){var t;try{(t=this.meeting.meta)==null||t.setBroadcastTabChanges(e),this.isSpotlighted=e}catch(e){console.error(e)}}render(){if(this.canSpotlight)return Y(X,null,Y(`rtk-tooltip`,{size:`md`,label:this.t(`remote_access.indicator`)},Y(`div`,{id:`sync-button`,class:{tab:!0,active:this.isSpotlighted},onClick:()=>this.updateSpotlightState(!this.isSpotlighted)},Y(`span`,{class:`name`},`Sync`),Y(`rtk-icon`,{id:`icon`,icon:this.isSpotlighted?this.iconPack.checkmark:this.iconPack.warning,tabIndex:-1,"aria-hidden":!0}))))}static get watchers(){return{meeting:[`meetingChanged`]}}},X5([K()],Z5.prototype,`meeting`,void 0),X5([K()],Z5.prototype,`iconPack`,void 0),X5([K()],Z5.prototype,`t`,void 0),Z5.style=fDt,pDt=Object.freeze({__proto__:null,rtk_spotlight_indicator:Z5}),mDt=`:host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgb(var(--rtk-colors-text-1000, 255 255 255));height:100%;width:auto}svg,img{height:100%;width:auto}.brand-color{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-text-opacity))}`,Q5=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},$5=class{constructor(e){J(this,e),this.config=h$(),this.t=D$()}connectedCallback(){this.configChanged(this.config),this.meetingChanged(this.meeting)}configChanged(e){if(e!=null){let t=e?.designTokens?.logo;t!=null&&this.logoUrl==null&&(this.logoUrl=t)}}meetingChanged(e){if(e!=null){let t=e.self?.config?.header?.elements?.logo;t!=null&&this.logoUrl==null&&(this.logoUrl=t)}}render(){if(!this.logoUrl||this.logoUrl===``)return null;let e=this.logoUrl;return Y(X,{class:`loaded`},Y(`img`,{src:e,alt:this.t(`logo`)}))}static get watchers(){return{config:[`configChanged`],meeting:[`meetingChanged`]}}},Q5([K()],$5.prototype,`config`,void 0),Q5([K()],$5.prototype,`meeting`,void 0),Q5([K()],$5.prototype,`t`,void 0),$5.style=mDt,hDt=Object.freeze({__proto__:null,rtk_logo:$5}),gDt=`:host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{--background-color:var(
|
|
2096
2096
|
--rtk-controlbar-button-background-color,
|
|
2097
2097
|
rgb(var(--rtk-colors-background-1000, 8 8 8))
|
|
2098
|
-
);--icon-size:var(--rtk-controlbar-button-icon-size, var(--rtk-space-7, 28px));position:relative;box-sizing:border-box;display:inline-flex;height:100%;width:auto;min-width:var(--rtk-space-20, 80px);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--rtk-border-radius-md, 8px);transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;color:rgb(var(--rtk-colors-text-1000, 255 255 255));background-color:var(--background-color)}button{padding:var(--rtk-space-1, 4px)}:host(.red-icon) #icon{--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}:host([disabled]){color:rgb(var(--rtk-colors-text-600, 255 255 255 / 0.52))}button{box-sizing:border-box;display:inline-flex;height:100%;width:100%;flex:1 1 0%;flex-direction:column;gap:var(--rtk-space-1, 4px);padding-left:var(--rtk-space-1, 4px);padding-right:var(--rtk-space-1, 4px);align-items:center;justify-content:center;cursor:pointer;border-radius:var(--rtk-border-radius-md, 8px);border-width:var(--rtk-border-width-none, 0);border-style:none;background-color:transparent;color:inherit;outline-offset:-2px;border:var(--rtk-border-width-md, 2px) solid transparent}.label{text-align:center;font-size:12px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}#warning-indicator{position:absolute;top:var(--rtk-space-1, 4px);right:var(--rtk-space-2, 8px);height:var(--rtk-space-4, 16px);width:var(--rtk-space-4, 16px);--tw-text-opacity:1;color:rgba(var(--rtk-colors-warning, 255 205 7) / var(--tw-text-opacity))}:host([size='sm']) #warning-indicator{right:var(--rtk-space-0, 0px);top:var(--rtk-space-0, 0px);height:var(--rtk-space-3, 12px);width:var(--rtk-space-3, 12px)}:host(:hover) button{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-800, 30 30 30) / var(--tw-bg-opacity))}#icon{width:var(--icon-size);height:var(--icon-size)}:host(.leave:hover) button{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-1000, 8 8 8) / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity));border:var(--rtk-border-width-md, 2px) solid rgb(var(--rtk-colors-danger, 255 45 45))}:host(.active) button{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-400, 53 110 253) / var(--tw-text-opacity));border:var(--rtk-border-width-md, 2px) solid rgb(var(--rtk-colors-brand-400, 53 110 253))}button:focus-visible{outline:2px solid rgb(var(--rtk-colors-brand-400, 53 110 253))}:host(.active-livestream){--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}:host([size='sm']){min-width:var(--rtk-space-14, 56px)}:host([size='sm']) .label{display:none}:host([variant='horizontal']){width:100%}:host([variant='horizontal']) button{border-radius:7px;height:var(--rtk-space-12, 48px);width:100%;padding-left:var(--rtk-space-5, 20px);padding-right:var(--rtk-space-5, 20px);padding-top:var(--rtk-space-3, 12px);padding-bottom:var(--rtk-space-3, 12px);flex-direction:row;justify-content:flex-start;gap:var(--rtk-space-3, 12px)}:host([variant='horizontal']) #icon{width:var(--rtk-space-6, 24px)}:host([variant='horizontal']) .label{display:block;font-size:14px;line-height:1.25rem}:host([variant='horizontal']) #warning-indicator{right:auto;left:var(--rtk-space-4, 16px)}:host([brand-icon]) rtk-icon#icon{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-text-opacity))}@media only screen and (max-device-height: 480px) and (orientation: landscape){:host .label{display:none}:slotted(rtk-icon){height:var(--rtk-space-4, 16px);width:var(--rtk-space-4, 16px)}}`,_Dt=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},e7=class{constructor(e){J(this,e),this.variant=`button`,this.showWarning=!1,this.disabled=!1,this.iconPack=O$,this.brandIcon=!1}render(){return Y(X,{key:`90cbc7f04dd7975ef7331aace992aeadd1fdba52`},Y(`button`,{key:`36ea971cf7d69742346dd6a65b41ef57def59a40`,"aria-label":this.label,part:`button`},this.isLoading?Y(`rtk-spinner`,{id:`icon`,part:`spinner`,iconPack:this.iconPack}):Y(`rtk-icon`,{id:`icon`,icon:this.icon,tabIndex:-1,"aria-hidden":!0,part:`icon`}),Y(`span`,{key:`83dda2888c01eec119c1cc21921a682cc2111307`,class:`label`,part:`label`},this.label),this.showWarning&&Y(`rtk-icon`,{key:`abddcd4d3c81f7ba09cc4595c98cb55c76d678ad`,id:`warning-indicator`,icon:this.iconPack.warning,part:`warning-indicator`})))}static get delegatesFocus(){return!0}},_Dt([K()],e7.prototype,`iconPack`,void 0),e7.style=gDt,vDt=Object.freeze({__proto__:null,rtk_controlbar_button:e7})})),bDt=s((()=>{yDt(),(function(){if(typeof window<`u`&&window.Reflect!==void 0&&window.customElements!==void 0){var e=HTMLElement;window.HTMLElement=function(){return Reflect.construct(e,[],this.constructor)},HTMLElement.prototype=e.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,e)}})()})),xDt,SDt=s((()=>{Lat(),bDt(),xht(),xDt=Pat(`rtk-participants-audio`)})),CDt=s((()=>{SDt()})),wDt=s((()=>{xat(),CDt()})),TDt=l({RealtimeKitCallMedia:()=>
|
|
2099
|
-
`)}catch{return null}},
|
|
2100
|
-
`),a=Reflect.get(e,`CSSStyleSheet`);if(typeof a?.prototype.replaceSync!=`function`){let t=e.document.createElement(`style`);t.textContent=i,r.append(t)}else{let e=new a;e.replaceSync(i),r.adoptedStyleSheets=[e]}let o=t.host,s=o.getAttribute(`data-theme`);return s!==null&&n.setAttribute(`data-theme`,s),n.setAttribute(`style`,o.getAttribute(`style`)??``),r},RDt=async(e={},t=document,n=window)=>{let r=n.documentPictureInPicture;if(r===void 0)return null;try{let n=await r.requestWindow({width:e.width??320,height:e.height??220});return t instanceof ShadowRoot?{window:n,container:LDt(n,t)}:(FDt(n,t),IDt(n,t),{window:n,container:n.document.body})}catch{return null}},zDt=(e,t)=>{let[n,r]=(0,y.useState)(null),i=(0,y.useRef)(null);i.current=n;let a=(0,y.useRef)(t);a.current=t;let o=(0,y.useCallback)(()=>{i.current?.window.close(),r(null)},[]),s=(0,y.useCallback)(async()=>{if(i.current!==null)return;let e=a.current.current?.getRootNode(),t=await RDt({},e instanceof ShadowRoot||e instanceof Document?e:document);t!==null&&(t.window.addEventListener(`pagehide`,()=>{r(null)}),r(t))},[]),c=(0,y.useCallback)(()=>{s()},[s]);return(0,y.useEffect)(()=>{let t=Reflect.get(navigator,`mediaSession`);if(!e||!ADt()||t===void 0)return;let n=`enterpictureinpicture`;try{t.setActionHandler(n,()=>{s()})}catch{return}return()=>{try{t.setActionHandler(n,null)}catch{}}},[e,s]),(0,y.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&o()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}},[o]),(0,y.useEffect)(()=>{e||(o(),jDt()?.close())},[e,o]),(0,y.useEffect)(()=>o,[o]),{mount:n,popOut:c}},r7={overlay:`_overlay_1agsz_5`,card:`_card_1agsz_12`,draggable:`_draggable_1agsz_30`,head:`_head_1agsz_40`,info:`_info_1agsz_46`,avatarRing:`_avatarRing_1agsz_53`,avatarRingPulse:`_avatarRingPulse_1agsz_65`,callPulse:`_callPulse_1agsz_1`,avatar:`_avatar_1agsz_53`,name:`_name_1agsz_107`,status:`_status_1agsz_117`,timer:`_timer_1agsz_123`,actions:`_actions_1agsz_130`,btn:`_btn_1agsz_137`,accept:`_accept_1agsz_163`,acceptBob:`_acceptBob_1agsz_1`,decline:`_decline_1agsz_178`,mute:`_mute_1agsz_182`,muteOn:`_muteOn_1agsz_191`,popped:`_popped_1agsz_208`,popOut:`_popOut_1agsz_224`},BDt=e=>{let t=e.trim().split(/\s+/).filter(e=>e.length>0);if(t.length===0)return`?`;let n=t[0]??``,r=t.length>1?t[t.length-1]??``:``;return(n.charAt(0)+r.charAt(0)).toUpperCase()},VDt=e=>e===`unavailable`?`Unavailable`:e===`busy`?`Busy`:e===`failed`?`Call failed`:`Call ended`,HDt=(e,t,n,r)=>{let i=t===`video`?`video`:`voice`;switch(e){case`incoming`:return`Incoming ${i} call`;case`outgoing`:return n?`Ringing…`:`Calling…`;case`active`:return`Connecting…`;case`ended`:return VDt(r);case`idle`:return``}},UDt=({sinceMs:e})=>{let[t,n]=(0,y.useState)(()=>Date.now());(0,y.useEffect)(()=>{let e=window.setInterval(()=>{n(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]);let r=Math.max(0,Math.floor((t-e)/1e3)),i=String(Math.floor(r/60)).padStart(2,`0`),a=String(r%60).padStart(2,`0`);return(0,D.jsxs)(`span`,{className:r7.timer,children:[i,`:`,a]})},WDt=({phase:e,muted:t,actions:n})=>e===`ended`?null:e===`incoming`?(0,D.jsxs)(`div`,{className:r7.actions,children:[(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.decline),onClick:()=>{n.decline()},"aria-label":`Decline call`,children:(0,D.jsx)(Sn,{size:24})}),(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.accept),onClick:()=>{n.accept()},"aria-label":`Accept call`,children:(0,D.jsx)(Cn,{size:24})})]}):(0,D.jsxs)(`div`,{className:r7.actions,children:[e===`active`&&(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.mute,t&&r7.muteOn),onClick:()=>{n.toggleMute()},"aria-label":t?`Unmute`:`Mute`,children:t?(0,D.jsx)(gn,{size:20}):(0,D.jsx)(_n,{size:20})}),(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.decline),onClick:()=>{n.hangup()},"aria-label":`Hang up`,children:(0,D.jsx)(Sn,{size:24})})]}),GDt=e=>{let t=e.phase===`outgoing`&&e.callId!==null,n=e.phase===`active`&&e.connected&&e.activeSinceMs!==null;return{ringing:e.phase===`incoming`||e.phase===`outgoing`,initials:e.peerInitials===``?BDt(e.peerName):e.peerInitials,status:n?(0,D.jsx)(UDt,{sinceMs:e.activeSinceMs}):HDt(e.phase,e.mediaType,t,e.endReason)}},KDt=({peerName:e,initials:t,peerColor:n,ringing:r,status:i,onPopOut:a})=>(0,D.jsxs)(`div`,{className:r7.head,children:[(0,D.jsx)(`div`,{className:E(r7.avatarRing,r&&r7.avatarRingPulse),children:(0,D.jsx)(`div`,{className:r7.avatar,style:n===``?void 0:Xn({"--avatar-color":n}),"aria-hidden":`true`,children:t})}),(0,D.jsxs)(`div`,{className:r7.info,children:[(0,D.jsx)(`div`,{className:r7.name,children:e===``?`Unknown caller`:e}),(0,D.jsx)(`div`,{className:r7.status,children:i})]}),a!==null&&(0,D.jsx)(`button`,{type:`button`,className:r7.popOut,onClick:a,"aria-label":`Keep call on top`,title:`Keep call on top`,children:(0,D.jsx)(wn,{size:16})})]}),qDt=({actions:e})=>{let t=Yh(e=>e.phase),n=Yh(e=>e.callId),r=Yh(e=>e.peerName),i=Yh(e=>e.peerInitials),a=Yh(e=>e.peerColor),o=Yh(e=>e.mediaType),s=Yh(e=>e.muted),c=Yh(e=>e.connected),l=Yh(e=>e.activeSinceMs),u=Yh(e=>e.endReason),d=(0,y.useRef)(null),{mount:f,popOut:p}=zDt(t===`incoming`||t===`outgoing`||t===`active`,d);if(t===`idle`)return null;let m=f!==null,h=t===`active`&&!m,{ringing:g,initials:_,status:v}=GDt({phase:t,callId:n,peerName:r,peerInitials:i,mediaType:o,connected:c,activeSinceMs:l,endReason:u}),x=(0,D.jsx)(`div`,{className:E(r7.overlay,m&&r7.popped),ref:d,role:`dialog`,"aria-label":`Call`,children:(0,D.jsxs)(Zu.div,{className:E(r7.card,h&&r7.draggable),variants:od,initial:`hidden`,animate:`visible`,drag:h,dragConstraints:d,dragElastic:.12,dragMomentum:!1,children:[(0,D.jsx)(KDt,{peerName:r,initials:_,peerColor:a,ringing:g,status:v,onPopOut:!m&&ADt()?p:null}),(0,D.jsx)(WDt,{phase:t,muted:s,actions:e})]})});return f===null?x:(0,b.createPortal)(x,f.container)},JDt=()=>typeof window<`u`&&`Notification`in window,YDt=async()=>{if(!JDt())return`denied`;if(Notification.permission==="default")try{return await Notification.requestPermission()}catch{return`denied`}return Notification.permission},XDt=({callerName:e,mediaType:t,onAccept:n,onDecline:r})=>{if(!JDt()||Notification.permission!==`granted`)return null;let i=`Incoming ${t===`video`?`video`:`voice`} call`,a=`${e||`Someone`} is calling you...`;try{let e=new Notification(i,{body:a,icon:`/favicon.ico`,tag:`incoming-call`,requireInteraction:!0});return e.onclick=()=>{window.focus(),e.close()},e}catch{return null}},ZDt=({phase:e,peerName:t,mediaType:n})=>{(0,y.useEffect)(()=>{if(e!==`incoming`)return;let r=null,i=null,a=document.title,o=()=>{if(document.visibilityState===`hidden`){if(r??=XDt({callerName:t,mediaType:n}),i===null){let e=!1;i=window.setInterval(()=>{e=!e,document.title=e?`📞 Incoming call (${t||`Calling`})...`:a},1e3)}}else r!==null&&(r.close(),r=null),i!==null&&(window.clearInterval(i),i=null,document.title=a)};o();let s=()=>{o()};return document.addEventListener(`visibilitychange`,s),()=>{document.removeEventListener(`visibilitychange`,s),i!==null&&window.clearInterval(i),document.title=a,r!==null&&r.close()}},[e,t,n])},QDt=0,$Dt=(e,t)=>{let n=e.getState();return n.direction===`outgoing`&&n.phase===`outgoing`&&n.callId===null&&n.dialId===t},eOt=async({store:e,cancelCall:t,dialId:n,result:r})=>{let i=$Dt(e,n);if(!r.ok){i&&e.getState().ended(`failed`);return}let a=r.value;if(a.status===`callee_busy`){i&&e.getState().ended(`busy`);return}if(a.status===`callee_unavailable`||a.joinTicket===null){i&&e.getState().ended(`unavailable`);return}if(!i){await t.execute(a.callId);return}e.getState().attachOutgoing({callId:a.callId,ticket:a.joinTicket})},tOt=()=>{let{store:e,startCall:t,acceptCall:n,declineCall:r,cancelCall:i,endCall:a}=Jh();return{startCall:(0,y.useCallback)(async n=>{if(n.userId===``)return;let r=e.getState().phase;if(r!==`idle`&&r!==`ended`)return;let a=String(QDt+=1);e.getState().dialing({peer:n,mediaType:`audio`,dialId:a}),await eOt({store:e,cancelCall:i,dialId:a,result:await t.execute(n.userId,`audio`)})},[e,t,i]),accept:(0,y.useCallback)(async()=>{let{callId:t,direction:r}=e.getState();if(t===null||r!==`incoming`)return;e.getState().activate(null,Date.now());let i=await n.execute(t);if(!i.ok){e.getState().ended(`failed`);return}e.getState().activate(i.value,Date.now())},[e,n]),decline:(0,y.useCallback)(async()=>{let{callId:t}=e.getState();e.getState().reset(),t!==null&&await r.execute(t)},[e,r]),hangup:(0,y.useCallback)(async()=>{let{callId:t,phase:n}=e.getState();e.getState().ended(`hung_up`),t!==null&&(n===`active`?await a.execute(t):await i.execute(t))},[e,a,i]),mediaEnded:(0,y.useCallback)(async()=>{let{callId:t,phase:n}=e.getState();e.getState().ended(`ended`),!(t===null||n!==`active`)&&await a.execute(t)},[e,a]),toggleMute:(0,y.useCallback)(()=>{let t=e.getState();t.setMuted(!t.muted)},[e])}},nOt=15e3,rOt=3e3,iOt=e=>{switch(e){case`outgoing`:case`incoming`:return rOt;case`active`:return nOt;case`idle`:case`ended`:return null}},aOt=(e,t)=>{let{store:n,heartbeatCall:r}=Jh(),i=iOt(t);(0,y.useEffect)(()=>{if(e===null||i===null)return;let t=!1,a=!1,o=async()=>{if(!a){a=!0;try{let i=await r.execute(e);if(t||!i.ok||i.value.active)return;let a=n.getState();a.callId===e&&a.ended(`ended`)}finally{a=!1}}},s=window.setInterval(()=>{o()},i);return()=>{t=!0,window.clearInterval(s)}},[e,i,n,r])},oOt=()=>{let e=Yh(e=>e.phase),t=Yh(e=>e.callId),n=Yh(e=>e.ticket),r=Yh(e=>e.muted),i=Yh(e=>e.peerName),a=Yh(e=>e.mediaType),o=Jh().store,s=tOt(),c=(0,y.useRef)(null);c.current??=fwe();let l=c.current;return(0,y.useEffect)(()=>{YDt();let e=()=>{l.unlock(),YDt()};return window.addEventListener(`pointerdown`,e,{once:!0}),()=>{window.removeEventListener(`pointerdown`,e)}},[l]),ZDt({phase:e,peerName:i,mediaType:a}),aOt(t,e),(0,y.useEffect)(()=>{e===`incoming`?l.playRing():e===`outgoing`?l.playRingback():l.stop()},[e,l]),(0,y.useEffect)(()=>()=>{l.dispose()},[l]),(0,y.useEffect)(()=>{if(e!==`ended`)return;let t=window.setTimeout(()=>{o.getState().reset()},2500);return()=>{window.clearTimeout(t)}},[e,o]),e===`idle`?null:(0,D.jsxs)(D.Fragment,{children:[n!==null&&(e===`outgoing`||e===`active`)&&(0,D.jsx)(kDt,{ticket:n,muted:r,onConnected:()=>{o.getState().markConnected()},onEnded:()=>{s.mediaEnded()}}),(0,D.jsx)(qDt,{actions:s})]})},sOt=()=>{let{startCall:e}=tOt(),t=Yh(e=>e.phase);return{start:t=>{e(t)},busy:t!==`idle`&&t!==`ended`}},cOt={callBtn:`_callBtn_1q44j_1`},lOt=({calleeUserId:e,calleeName:t,calleeInitials:n=``,calleeColor:r=``,className:i})=>{let{start:a,busy:o}=sOt();return e===``?null:(0,D.jsx)(`button`,{type:`button`,className:E(cOt.callBtn,i),disabled:o,onClick:()=>{a({userId:e,name:t,initials:n,color:r})},"aria-label":`Call ${t}`,title:`Call ${t}`,children:(0,D.jsx)(Cn,{size:18})})},uOt=({conversation:e})=>e.isGroup||e.peerUserId===null?null:(0,D.jsx)(`div`,{className:A.headEnd,children:(0,D.jsx)(lOt,{calleeUserId:e.peerUserId,calleeName:e.title,calleeInitials:e.initials,calleeColor:e.color})}),dOt=6e4,fOt=36e5,pOt=864e5,mOt=(e,t)=>{if(e===null)return null;let n=Date.parse(e);if(Number.isNaN(n))return null;let r=Math.max(0,t-n);return r<dOt?`Last seen just now`:r<fOt?`Last seen ${String(Math.floor(r/dOt))}m ago`:r<pOt?`Last seen ${String(Math.floor(r/fOt))}h ago`:`Last seen ${String(Math.floor(r/pOt))}d ago`},hOt=({conversation:e,live:t,liveStatus:n,nowMs:r})=>{if(t?.online??(n===void 0?e.online:n.status!==`offline`)){let t=n?.status??e.status;return{online:!0,subtitle:`Online`,status:t!==`offline`&&t!==`available`?t:null}}return{online:!1,subtitle:(t===void 0?null:mOt(t.lastSeenUtc,r))??`Offline`,status:null}},gOt=`This message was deleted`,_Ot=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`))try{let t=e.substring(22);return JSON.parse(t)}catch{return null}return null},vOt=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`)){let t=_Ot(e);if(t!==null){let e=t.card.title;return e.length>0?`Shared Post: ${e}`:`Shared Post`}return`Shared Post`}return e},yOt=(e,t=null)=>t?.text.startsWith(`__UAPP_SHARED_CARD__::`)?{messageId:e.id,authorName:t.authorName,text:t.text}:e.replyTo?.text.startsWith(`__UAPP_SHARED_CARD__::`)?{messageId:e.id,authorName:e.replyTo.authorName,text:e.replyTo.text}:{messageId:e.id,authorName:e.authorName,text:e.text},bOt=(e,t)=>{if(e.replyTo===null)return null;let n=t.get(e.replyTo.messageId),r=n?.deletedForEveryone?gOt:n?.text??e.replyTo.text,i=n?.authorName??e.replyTo.authorName;return r.startsWith(`__UAPP_SHARED_CARD__::`)?{author:i,text:r}:null},xOt=(e,t)=>{if(e===null)return null;if(e.authorName.length>0||e.text.length>0)return e;let n=t.get(e.messageId);if(n===void 0)return e;let r=n.authorName,i=n.deletedForEveryone?gOt:n.text,a=bOt(n,t);return a!==null&&(r=a.author,i=a.text),{messageId:e.messageId,authorName:r,text:i}},i7=(e,t)=>e.some(e=>e.id===t.id)?e:t.clientMessageId!==null&&e.some(e=>e.clientMessageId===t.clientMessageId)?e.map(e=>e.clientMessageId===t.clientMessageId?t.withFallbackSentAt(e.sentAt):e):[...e,t].sort((e,t)=>e.sequence-t.sequence),SOt=`pending:`,COt=e=>`${SOt}${e}`,a7=e=>e.id.startsWith(SOt),wOt=e=>e.reduce((e,t)=>Math.max(e,t.sequence),0),TOt=e=>e.filter(e=>!a7(e)).reduce((e,t)=>Math.max(e,t.sequence),0),EOt=e=>new lh({id:COt(e.clientMessageId),kind:`text`,authorName:e.viewer.name,authorInitials:e.viewer.initials,authorColor:e.viewer.color,text:e.text.trim(),time:e.timeLabel,sentAt:e.sentAt??``,fromViewer:!0,reactions:[],sequence:e.sequence,senderId:e.viewer.id,clientMessageId:e.clientMessageId,replyTo:e.replyTo??null,mediaUrl:null,isEdited:!1}),DOt=e=>new lh({id:COt(e.clientMessageId),kind:`media`,authorName:e.viewer.name,authorInitials:e.viewer.initials,authorColor:e.viewer.color,text:e.caption.trim(),time:``,sentAt:e.sentAt,fromViewer:!0,reactions:[],sequence:e.sequence,senderId:e.viewer.id,clientMessageId:e.clientMessageId,replyTo:e.replyTo??null,mediaUrl:e.fileUrl,mediaContentType:e.contentType,mediaFileName:e.fileName,isEdited:!1}),OOt=(e,t)=>i7(e??[],t),kOt=(e,t)=>i7(e??[],t),AOt=({selectedMessage:e,onClearSelection:t,onReply:n,onStartEdit:r,onDelete:i})=>{let a=a7(e),o=e.fromViewer&&!e.deletedForEveryone&&e.canEdit(Date.now());return(0,D.jsxs)(`div`,{className:A.mobileSelectionHeader,children:[(0,D.jsxs)(`div`,{className:A.selectionLeft,children:[(0,D.jsx)(`button`,{type:`button`,className:A.selectionActionBtn,"aria-label":`Clear selection`,onClick:t,children:(0,D.jsx)(qn,{size:18})}),(0,D.jsx)(`span`,{className:A.selectionTitle,children:`1 Selected`})]}),(0,D.jsxs)(`div`,{className:A.selectionActions,children:[!a&&n!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:A.selectionActionBtn,title:`Reply`,"aria-label":`Reply`,onClick:()=>{n(yOt(e)),t!==void 0&&t()},children:(0,D.jsx)(An,{size:17})}),!a&&o&&r!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:A.selectionActionBtn,title:`Edit message`,"aria-label":`Edit message`,onClick:()=>{r(e),t!==void 0&&t()},children:(0,D.jsx)(xn,{size:17})}),!a&&e.fromViewer&&i!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:E(A.selectionActionBtn,A.selectionActionDanger),title:`Delete message`,"aria-label":`Delete message`,onClick:()=>{i(e.id),t!==void 0&&t()},children:(0,D.jsx)(Vn,{size:17})})]})]})},jOt=(e,t,n)=>[...e.lastSynced===null?[]:[{label:`Last synced ${e.lastSynced}`,icon:(0,D.jsx)(On,{size:14}),onSelect:()=>{t.refresh(e)}}],{label:`Manage members`,icon:(0,D.jsx)(Wn,{size:14}),onSelect:n.onManageMembers},{label:e.favourite?`Remove from Favourites`:`Add to Favourites`,icon:(0,D.jsx)(Rn,{size:14}),onSelect:()=>{t.toggleFavourite(e)}},{label:e.pinned?`Unpin`:`Pin to top`,icon:(0,D.jsx)(Tn,{size:14}),onSelect:()=>{t.togglePin(e)}},{label:e.archived?`Unarchive`:`Archive`,icon:e.archived?(0,D.jsx)(Ot,{size:14}):(0,D.jsx)(kt,{size:14}),onSelect:()=>{t.toggleArchive(e)}},{label:`Leave group`,icon:(0,D.jsx)(dn,{size:14}),onSelect:()=>{n.onRequestLeave(e)}},{label:`Delete group`,icon:(0,D.jsx)(Vn,{size:14}),danger:!0,onSelect:()=>{n.onRequestDelete(e)}}],MOt=(e,t)=>{let n=t.find(t=>t.id===e.categoryId&&t.tenantId===e.tenantId);return n===void 0?t.find(t=>t.locked&&t.tenantId===e.tenantId)??null:n},NOt=e=>{let t=Object.entries(e.data).filter(([e,t])=>e!==`statusColor`&&t!==``).map(([,e])=>e);return t.length>0?t.join(` · `):e.subtitle},POt=(e,t)=>{let n=MOt(e,t);if(n===null)return{icon:null,accent:e.color,pill:null,subtitle:e.subtitle};let r=t=>e.data[t]??``,i=n.fields.filter(e=>e.visible&&r(e.key)!==``);if(i.length===0)return{icon:n.icon,accent:n.accent,pill:null,subtitle:NOt(e)};let a=i.find(e=>e.type===`pill`),o=i.filter(e=>e.type!==`pill`).map(e=>r(e.key));return{icon:n.icon,accent:n.accent,pill:a===void 0?null:{value:r(a.key),color:e.data.statusColor??n.accent},subtitle:o.length>0?o.join(` · `):e.subtitle}},FOt=4,IOt={Hash:on,GraduationCap:an,Users:Wn,Building2:It,Briefcase:Ft,BookOpen:Nt,Globe:rn},LOt=({conversation:e,header:t,dmOnline:n})=>{let r=t?.icon??null,i=r===null?void 0:IOt[r];return i===void 0?(0,D.jsxs)(`span`,{className:A.viewAvatarWrap,children:[(0,D.jsx)(`span`,{className:A.viewAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),n===!0&&(0,D.jsx)(`span`,{className:E(A.presenceDot,A.viewPresenceDot),"aria-label":`Online`})]}):(0,D.jsx)(`span`,{className:A.viewIcon,style:Xn({"--avatar-color":t?.accent??e.color}),children:(0,D.jsx)(i,{size:18})})},ROt=({members:e})=>{if(e.length===0)return null;let t=e.length-FOt;return(0,D.jsxs)(`div`,{className:A.memberStack,children:[e.slice(0,FOt).map(e=>(0,D.jsx)(`span`,{className:A.memberAvatar,title:e.name,children:(0,D.jsx)(Tpe,{initials:e.initials,color:e.color,size:`xs`})},e.id)),t>0&&(0,D.jsxs)(`span`,{className:A.memberMore,children:[`+`,t]})]})},zOt=(e,t)=>{let n=`${String(e.memberCount)} member${e.memberCount===1?``:`s`}`,r=t?.subtitle??e.subtitle;return r===``||r===e.title?n:`${n} · ${r}`},BOt=({conversation:e,pill:t,presence:n,statusPill:r,subtitle:i})=>(0,D.jsxs)(`span`,{className:A.viewHeadText,children:[(0,D.jsxs)(`span`,{className:A.viewTitleRow,children:[(0,D.jsx)(`span`,{className:A.viewTitle,children:e.title}),e.admin&&(0,D.jsx)(`span`,{className:A.adminBadge,children:`You're admin`}),t?(0,D.jsx)(`span`,{className:A.statusPill,style:Xn({"--pill":t.color}),children:t.value}):null,n===null?null:(0,D.jsx)(XSe,{untilUtc:e.statusUntilUtc,status:n}),r]}),(0,D.jsx)(`span`,{className:A.viewSub,children:i})]}),VOt=({conversation:e,header:t,dmOnline:n,dmStatus:r,pill:i,statusPill:a,subtitle:o,actions:s,onManageMembers:c,onRequestDelete:l,onRequestLeave:u})=>{let d=qe();return(0,D.jsxs)(`div`,{className:A.standardHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:A.backBtn,"aria-label":`Back to conversations`,onClick:()=>{d(`/comms/chats`)},children:(0,D.jsx)(At,{size:18})}),(0,D.jsx)(LOt,{conversation:e,header:t,dmOnline:n}),(0,D.jsx)(BOt,{conversation:e,pill:i,presence:r,statusPill:a,subtitle:o}),e.isGroup&&(0,D.jsxs)(`div`,{className:A.headEnd,children:[(0,D.jsx)(`button`,{type:`button`,className:A.memberStackBtn,"aria-label":`Manage members`,onClick:c,children:(0,D.jsx)(ROt,{members:e.members})}),(0,D.jsx)(bf,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:A.headMenuBtn,"aria-label":`Group options`,children:(0,D.jsx)(Zt,{size:16})}),items:jOt(e,s,{onManageMembers:c,onRequestDelete:l,onRequestLeave:u})})]}),(0,D.jsx)(uOt,{conversation:e})]})},HOt=({conversation:e,categories:t,actions:n,statusPill:r,onManageMembers:i,onRequestDelete:a,onRequestLeave:o,selectedMessage:s=null,onClearSelection:c,onReply:l,onStartEdit:u,onDelete:d})=>{let f=e.isGroup?POt(e,t):null,p=f?.pill??null,m=e.peerUserId,h=hOt({conversation:e,live:ah(e=>m===null?void 0:e.presence[m]),liveStatus:TSe(m),nowMs:Date.now()}),g=e.isGroup?zOt(e,f):h.subtitle,_=s!==null;return(0,D.jsxs)(`header`,{className:E(A.viewHead,_&&A.hasMobileSelection),children:[s!==null&&(0,D.jsx)(AOt,{selectedMessage:s,onClearSelection:c,onReply:l,onStartEdit:u,onDelete:d}),(0,D.jsx)(VOt,{conversation:e,header:f,dmOnline:e.isGroup?null:h.online,dmStatus:e.isGroup?null:h.status,pill:p,statusPill:r,subtitle:g,actions:n,onManageMembers:i,onRequestDelete:a,onRequestLeave:o})]})},UOt=({excludeIds:e,onAdd:t,onBack:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=xh(e,`groupPool`);return(0,D.jsxs)(`div`,{className:A.addPanel,children:[(0,D.jsxs)(`div`,{className:A.addPanelHead,children:[(0,D.jsx)(`button`,{type:`button`,className:A.memberRowMenuBtn,"aria-label":`Back to members`,onClick:n,children:(0,D.jsx)(At,{size:15})}),(0,D.jsx)(`span`,{className:A.addPanelTitle,children:`Add member`})]}),(0,D.jsxs)(`div`,{className:A.addPanelSearch,children:[(0,D.jsx)(Mn,{size:14}),(0,D.jsx)(`input`,{className:A.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(rr,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:A.addPanelList,children:[(0,D.jsx)(Uu,{initial:!1,children:a.map(e=>(0,D.jsxs)(Zu.div,{layout:!0,variants:ad,initial:`hidden`,animate:`visible`,exit:`exit`,className:A.memberRow,children:[(0,D.jsx)(`span`,{className:A.memberRowAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:A.memberRowBody,children:[(0,D.jsx)(`span`,{className:A.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:A.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:A.addMemberBtn,onClick:()=>{t(e)},children:[(0,D.jsx)(En,{size:13}),` Add`]})]},e.id))}),a.length===0&&!o&&(0,D.jsx)(`p`,{className:A.addPanelEmpty,children:s?`No staff match your search.`:`Everyone is already in this group.`})]})]})},WOt=e=>{let{member:t,isAdmin:n,adminCount:r,onMakeAdmin:i,onRemoveAdmin:a,onRemove:o}=e,s=[];return n||s.push({label:`Make admin`,icon:(0,D.jsx)(Pn,{size:14}),onSelect:()=>{i(t.id)}}),n&&r>1&&s.push({label:`Remove admin`,icon:(0,D.jsx)(Dee,{size:14}),onSelect:()=>{a(t.id)}}),s.push({label:`Remove from group`,icon:(0,D.jsx)(Vn,{size:14}),danger:!0,onSelect:()=>{o(t.id)}}),s},GOt=({member:e})=>{let t=TSe(e.id),n=t?.status??e.status??`offline`;return n===`offline`?null:(0,D.jsx)(XSe,{status:n,untilUtc:t===void 0?e.statusUntilUtc??null:t.untilUtc})},KOt=e=>{let{member:t,isAdmin:n,isSelf:r,isNew:i,isPromoted:a,isDemoted:o,canManage:s}=e,c=ah(e=>e.presence[t.id]?.online??!1);return(0,D.jsxs)(Zu.div,{layout:!0,variants:ad,initial:`hidden`,animate:`visible`,className:E(A.memberRow,i&&A.memberRowNew),children:[(0,D.jsxs)(`span`,{className:A.memberRowAvatarWrap,children:[(0,D.jsx)(`span`,{className:A.memberRowAvatar,style:Xn({"--avatar-color":t.color}),children:t.initials}),c&&(0,D.jsx)(`span`,{className:A.presenceDot,"aria-label":`Online`})]}),(0,D.jsxs)(`span`,{className:A.memberRowBody,children:[(0,D.jsxs)(`span`,{className:A.memberRowName,children:[t.name,r&&(0,D.jsx)(`span`,{className:A.memberRowYou,children:` (You)`}),n?(0,D.jsx)(`span`,{className:A.memberBadgeAdmin,children:`ADMIN`}):(0,D.jsx)(`span`,{className:A.memberBadge,children:`MEMBER`}),i&&(0,D.jsx)(`span`,{className:A.memberPillNew,children:`+ NEW`}),a&&!i&&(0,D.jsx)(`span`,{className:A.memberPillUp,children:`↑ PROMOTED`}),o&&(0,D.jsx)(`span`,{className:A.memberPillDown,children:`↓ DEMOTED`})]}),(0,D.jsxs)(`span`,{className:A.memberRowRole,children:[t.role,(0,D.jsx)(GOt,{member:t})]})]}),s&&!r&&(0,D.jsx)(bf,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:A.memberRowMenuBtn,"aria-label":`Actions for ${t.name}`,children:(0,D.jsx)(Zt,{size:14})}),items:WOt(e)})]})},qOt=(e,t,n,r)=>{let i=e.map(e=>e.id),a=n.map(e=>e.id),o=a.filter(e=>!i.includes(e)),s=i.filter(e=>!a.includes(e)),c=r.filter(e=>!t.includes(e)&&a.includes(e)),l=t.filter(e=>!r.includes(e)&&a.includes(e));return{addedIds:o,removedIds:s,promotedIds:c,demotedIds:l,total:o.length+s.length+c.length+l.length}},JOt=(e,t)=>t.some(t=>e.some(e=>e.id===t)),YOt=e=>{let{addedIds:t,removedIds:n,promotedIds:r,demotedIds:i,total:a}=e;if(a===0)return`Save changes`;if(t.length===a)return t.length===1?`Add member`:`Add ${String(t.length)}`;if(n.length===a)return n.length===1?`Remove member`:`Remove ${String(n.length)}`;let o=r.length+i.length;return o===a?o===1?`Confirm`:`Confirm ${String(o)}`:`Save changes (${String(a)})`},XOt=(e,t)=>{let[n,r]=(0,y.useState)(e.members),[i,a]=(0,y.useState)(e.adminIds),[o,s]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{t&&(r(e.members),a(e.adminIds),s(!1))},[t,e.id,e.members,e.adminIds]),{members:n,adminIds:i,adding:o,diff:qOt(e.members,e.adminIds,n,i),adminCount:i.filter(e=>n.some(t=>t.id===e)).length,setAdding:s,addMember:e=>{r(t=>[...t,e]),s(!1)},removeMember:e=>{r(t=>t.filter(t=>t.id!==e)),a(t=>t.filter(t=>t!==e))},makeAdmin:e=>{a(t=>t.includes(e)?t:[...t,e])},removeAdmin:e=>{a(t=>t.filter(t=>t!==e))},undoRemove:e=>{r(t=>[...t,e])}}},ZOt=({member:e,onUndo:t})=>(0,D.jsxs)(`div`,{className:A.removedRow,children:[(0,D.jsx)(`span`,{className:A.memberRowAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:A.memberRowBody,children:[(0,D.jsx)(`span`,{className:A.removedName,children:e.name}),(0,D.jsx)(`span`,{className:A.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:A.undoBtn,onClick:t,children:[(0,D.jsx)(jn,{size:12}),` Undo`]})]}),QOt=e=>{let{conversation:t,draftMembers:n,draftAdminIds:r,diff:i,adminCount:a,iAmAdmin:o}=e,{viewerId:s}=e;return(0,D.jsxs)(`div`,{className:A.membersBody,children:[i.total>0&&(0,D.jsxs)(`div`,{className:A.unsavedBar,children:[i.total,` unsaved `,i.total===1?`change`:`changes`]}),o&&(0,D.jsxs)(`button`,{type:`button`,className:A.addMemberCta,onClick:e.onAddClick,children:[(0,D.jsx)(Un,{size:14}),` Add member`]}),(0,D.jsxs)(`div`,{className:A.membersSectionLabel,children:[`MEMBERS · `,n.length]}),(0,D.jsxs)(`div`,{className:A.membersList,children:[(0,D.jsx)(Uu,{initial:!1,children:n.map(t=>(0,D.jsx)(KOt,{member:t,isAdmin:r.includes(t.id),isSelf:t.id===s,isNew:i.addedIds.includes(t.id),isPromoted:i.promotedIds.includes(t.id),isDemoted:i.demotedIds.includes(t.id),canManage:o,adminCount:a,onMakeAdmin:e.onMakeAdmin,onRemoveAdmin:e.onRemoveAdmin,onRemove:e.onRemove},t.id))}),i.removedIds.length>0&&(0,D.jsxs)(Zu.div,{variants:ad,initial:`hidden`,animate:`visible`,children:[(0,D.jsxs)(`div`,{className:A.removedLabel,children:[`WILL BE REMOVED · `,i.removedIds.length]}),i.removedIds.map(n=>{let r=t.members.find(e=>e.id===n);return r===void 0?null:(0,D.jsx)(ZOt,{member:r,onUndo:()=>{e.onUndoRemove(r)}},n)})]})]})]})},$Ot=({diff:e,saving:t,onCancel:n,onSave:r})=>{let i=e.removedIds.length===e.total&&e.total>0;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ar,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,D.jsx)(ar,{variant:i?`danger`:`primary`,isLoading:t,disabled:e.total===0,onClick:r,children:YOt(e)})]})},ekt=({conversation:e,open:t,onClose:n})=>{let r=Oye(e.id),i=XOt(e,t),{data:a}=bh(),o=a?.id??``,s=()=>{if(i.diff.total===0){n();return}if(!JOt(i.members,i.adminIds)){Nf.error(`A group must keep at least one admin`);return}r.mutate({members:i.members,adminIds:i.adminIds},{onSuccess:()=>{Nf.success(`Members updated`),n()}})},c=i.members.length===1?`member`:`members`,l=i.adminCount===1?`admin`:`admins`;return(0,D.jsx)(cd,{open:t,onOpenChange:e=>{e||n()},title:`Manage members`,description:`${e.title} · ${String(i.members.length)} ${c} · ${String(i.adminCount)} ${l}`,footer:i.adding?void 0:(0,D.jsx)($Ot,{diff:i.diff,saving:r.isPending,onCancel:n,onSave:s}),children:i.adding?(0,D.jsx)(UOt,{excludeIds:i.members.map(e=>e.id),onAdd:i.addMember,onBack:()=>{i.setAdding(!1)}}):(0,D.jsx)(QOt,{conversation:e,draftMembers:i.members,draftAdminIds:i.adminIds,diff:i.diff,adminCount:i.adminCount,iAmAdmin:e.canManageMembers(o),viewerId:o,onAddClick:()=>{i.setAdding(!0)},onMakeAdmin:i.makeAdmin,onRemoveAdmin:i.removeAdmin,onRemove:i.removeMember,onUndoRemove:i.undoRemove})})},tkt=({open:e,canDeleteForEveryone:t,onDeleteForMe:n,onDeleteForEveryone:r,onCancel:i})=>(0,D.jsx)(cd,{open:e,onOpenChange:e=>{e||i()},title:`Delete message?`,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ar,{variant:`ghost`,onClick:i,children:`Cancel`}),(0,D.jsx)(ar,{variant:`secondary`,onClick:n,children:`Delete for me`}),t&&(0,D.jsx)(ar,{variant:`danger`,onClick:r,children:`Delete for everyone`})]}),children:t?`Delete this message for everyone, or just remove it from this device?`:`This message can only be removed from this device — the time limit to delete it for everyone has passed.`}),nkt=e=>e===1?`typing…`:`${String(e)} people typing…`,rkt=({conversationId:e})=>{let t=ah(t=>t.typingUserIds(e,Date.now()).length);return(0,D.jsx)(Uu,{children:t>0&&(0,D.jsxs)(Zu.div,{className:A.typingRow,variants:Zse,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`span`,{className:A.typingDots,"aria-hidden":!0,children:[(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{})]}),(0,D.jsx)(`span`,{className:A.typingText,children:nkt(t)})]})})},ikt=()=>{let e=ah(e=>e.status);if(e===`connected`||e===`connecting`)return null;let t=e===`reconnecting`?`Reconnecting…`:`Offline`;return(0,D.jsxs)(`span`,{className:A.connPill,children:[(0,D.jsx)(Kn,{size:12}),` `,t]})},akt=20*1024*1024,okt=(e,t,n)=>{let r=[],i=!1;for(let a of e){if(r.length>=t)break;if(a.size>n){i=!0;continue}r.push(a)}let a=e.reduce((e,t)=>e+ +(t.size<=n),0);return{accepted:r,skippedOversize:i,overflowed:a>t}},skt=()=>{let[e,t]=(0,y.useState)([]),n=(0,y.useRef)([]);return n.current=e,(0,y.useEffect)(()=>()=>{for(let e of n.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl)},[]),{items:e,add:e=>{let r=10-n.current.length;if(r<=0){Nf.error(`You can attach up to 10 files at once.`);return}let{accepted:i,skippedOversize:a,overflowed:o}=okt(Array.from(e),r,akt);if(a&&Nf.error(`That file is over the 20 MB limit — please send a smaller file.`),o&&Nf.error(`You can attach up to 10 files at once.`),i.length===0)return;let s=i.map(e=>({id:crypto.randomUUID(),file:e,previewUrl:e.type.startsWith(`image/`)?URL.createObjectURL(e):null}));t(e=>[...e,...s])},remove:e=>{let r=n.current.find(t=>t.id===e);r!==void 0&&r.previewUrl!==null&&URL.revokeObjectURL(r.previewUrl),t(t=>t.filter(t=>t.id!==e))},clear:()=>{for(let e of n.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl);t([])}}},ckt=(e,t,n,r)=>{let i=()=>{n.current?.click()},a=()=>{e.items.length>0?(r.onSendMedia(e.items.map(e=>e.file),t),e.clear()):r.onSubmit()};return{openPicker:i,send:a,handleKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),a())},handlePaste:t=>{let n=t.clipboardData.files;n.length>0&&(t.preventDefault(),e.add(n))},onFileChange:t=>{t.target.files!==null&&t.target.files.length>0&&e.add(t.target.files);let r=n.current;r!==null&&(r.value=``)}}},lkt=[`👍`,`🎉`,`❤️`,`😂`,`🙌`,`👏`],ukt=[`😀`,`😄`,`😁`,`😂`,`😍`,`😎`,`🤝`,`🙏`,`👍`,`👏`,`🙌`,`🔥`,`🎉`,`⭐`,`✅`,`❤️`,`💡`,`📌`,`🚀`,`😢`],dkt=({onPick:e})=>{let[t,n]=(0,y.useState)(!1);return(0,D.jsxs)(`div`,{className:A.emojiWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:A.composerIcon,"aria-label":`Insert emoji`,"aria-expanded":t,onClick:()=>{n(e=>!e)},children:(0,D.jsx)(In,{size:18})}),(0,D.jsx)(Uu,{children:t&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:A.emojiBackdrop,"aria-label":`Close emoji picker`,onClick:()=>{n(!1)}}),(0,D.jsx)(Zu.div,{className:A.emojiPop,variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:ukt.map(t=>(0,D.jsx)(`button`,{type:`button`,className:A.emojiBtn,onClick:()=>{e(t),n(!1)},children:t},t))})]})})]})},fkt=({replyTo:e,onClear:t})=>(0,D.jsxs)(`div`,{className:A.replyBar,children:[(0,D.jsxs)(`span`,{className:A.replyBarText,children:[`Replying to `,e.authorName,`: `,vOt(e.text)]}),(0,D.jsx)(`button`,{type:`button`,className:A.replyBarClose,"aria-label":`Cancel reply`,onClick:t,children:(0,D.jsx)(qn,{size:16})})]}),pkt=({attachments:e,onRemove:t,onAddMore:n})=>(0,D.jsxs)(Zu.div,{className:A.attachTray,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.16},children:[e.map(e=>(0,D.jsxs)(`div`,{className:A.attachItem,children:[e.previewUrl===null?(0,D.jsxs)(`div`,{className:A.attachFile,children:[(0,D.jsx)(tn,{size:20}),(0,D.jsx)(`span`,{className:A.attachFileName,children:e.file.name})]}):(0,D.jsx)(`img`,{className:A.attachThumb,src:e.previewUrl,alt:e.file.name}),(0,D.jsx)(`button`,{type:`button`,className:A.attachRemove,"aria-label":`Remove ${e.file.name}`,onClick:()=>{t(e.id)},children:(0,D.jsx)(qn,{size:13})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:A.attachAdd,"aria-label":`Add more files`,onClick:n,children:(0,D.jsx)(En,{size:20})})]}),mkt=({fileRef:e,onAttach:t,onFileChange:n})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:e,type:`file`,multiple:!0,className:A.hiddenFileInput,accept:`image/*,video/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv,.zip`,onChange:n}),(0,D.jsx)(`button`,{type:`button`,className:A.composerIcon,"aria-label":`Attach files`,onClick:t,children:(0,D.jsx)(Cee,{size:18})})]}),hkt=({value:e,title:t,hasAttachments:n,isSending:r,canSend:i,fileRef:a,onChange:o,onTyping:s,onKeyDown:c,onPaste:l,onAttach:u,onFileChange:d,onSend:f})=>{let p=er(`(max-width: 1024px)`),m=$n(e,4e3);return(0,D.jsxs)(`div`,{className:A.composer,children:[(0,D.jsx)(dkt,{onPick:t=>{o(e+t)}}),(0,D.jsx)(mkt,{fileRef:a,onAttach:u,onFileChange:d}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`},children:[(0,D.jsx)(`textarea`,{className:E(A.composerInput,m.isOverLimit&&A.composerInputError),rows:1,placeholder:n?`Add a caption…`:p?`Message ${t}…`:`Message ${t}… (Shift+Enter for new line)`,value:e,onChange:e=>{o(e.target.value),s()},onKeyDown:c,onPaste:l}),m.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:m.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[m.length,` / 4000`]})]}),(0,D.jsx)(`button`,{type:`button`,className:A.sendBtn,"aria-label":n?`Send attachments`:`Send message`,disabled:r||!i||m.isOverLimit,onClick:f,children:(0,D.jsx)(Nn,{size:16})})]})},gkt=({editingText:e,onClear:t})=>(0,D.jsxs)(`div`,{className:A.replyBar,children:[(0,D.jsx)(xn,{size:15,style:{marginRight:6}}),(0,D.jsxs)(`span`,{className:A.replyBarText,children:[`Editing message: `,vOt(e)]}),(0,D.jsx)(`button`,{type:`button`,className:A.replyBarClose,"aria-label":`Cancel edit`,onClick:t,children:(0,D.jsx)(qn,{size:16})})]}),_kt=({value:e,isSending:t,title:n,replyTo:r,editingMessage:i=null,onChange:a,onSubmit:o,onClearReply:s,onClearEditing:c,onSendMedia:l,onTyping:u})=>{let d=(0,y.useRef)(null),f=skt(),p=f.items.length>0,m=p||e.trim().length>0,{openPicker:h,send:g,handleKeyDown:_,handlePaste:v,onFileChange:b}=ckt(f,e,d,{onSubmit:o,onSendMedia:l});return(0,D.jsxs)(D.Fragment,{children:[i!==null&&c!==void 0&&(0,D.jsx)(gkt,{editingText:i.text,onClear:c}),r!==null&&(0,D.jsx)(fkt,{replyTo:r,onClear:s}),p&&(0,D.jsx)(pkt,{attachments:f.items,onRemove:f.remove,onAddMore:h}),(0,D.jsx)(hkt,{value:e,title:n,hasAttachments:p,isSending:t,canSend:m,fileRef:d,onChange:a,onTyping:u,onKeyDown:_,onPaste:v,onAttach:h,onFileChange:b,onSend:g})]})},vkt=({conversation:e,conversationId:t,text:n,replyTo:r,editingMessage:i=null,isSending:a,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(rkt,{conversationId:t}),(0,D.jsx)(_kt,{value:n,isSending:a,title:e.title,replyTo:r,editingMessage:i,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})]}),o7=(e,t,n,r)=>(e[t]?.[n]??0)>=r,ykt=(e,t,n)=>o7(t,e,`read`,n)?`read`:o7(t,e,`delivered`,n)?`delivered`:`sent`,bkt=(e,t,n)=>e.length===0?`sent`:e.every(e=>o7(t,e,`read`,n))?`read`:e.every(e=>o7(t,e,`delivered`,n))?`delivered`:`sent`,xkt=(e,t)=>t.peerUserId===null?bkt(t.otherMemberIds,t.receipts,e.sequence):ykt(t.peerUserId,t.receipts,e.sequence),Skt=(e,t)=>{if(t.length===0)return e;let n=new Map;for(let r of[...t,...e])n.set(r.id,r);return[...n.values()].sort((e,t)=>e.sequence-t.sequence)},Ckt=e=>{let t=e[0];return t===void 0?null:e.reduce((e,t)=>Math.min(e,t.sequence),t.sequence)},wkt=e=>{let{getMessagesBefore:t}=uh(),n=Hm(),[r,i]=(0,y.useState)(!0),[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(!1);return(0,y.useEffect)(()=>{i(!0),o(!1),s.current=!1},[e]),{loadOlder:(0,y.useCallback)(()=>{if(e===null||s.current||!r)return;let a=yh(e),c=Ckt(n.getQueryData(a)??[]);c!==null&&(s.current=!0,o(!0),Zf(t.execute(e,c,50)).then(e=>{n.setQueryData(a,t=>Skt(t??[],e)),e.length<50&&i(!1)}).catch(()=>{}).finally(()=>{s.current=!1,o(!1)}))},[e,t,r,n]),hasMore:r,isLoadingOlder:a}},Tkt=80,Ekt=60,Dkt={tailKey:``,headKey:``,count:0,lastFromViewer:!1},Okt=e=>{let t=e.at(-1);return{tailKey:t?.id??``,headKey:e[0]?.id??``,count:e.length,lastFromViewer:t?.fromViewer??!1}},kkt=(e,t)=>{e!==null&&e.scrollTo({top:e.scrollHeight,behavior:t?`smooth`:`auto`})},Akt=(e,t,n)=>{let r=(0,y.useRef)(null),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(!1),c=(0,y.useRef)(Dkt),l=(0,y.useRef)(!0),u=(0,y.useRef)(null),d=(0,y.useRef)(n);d.current=n;let f=(0,y.useCallback)(e=>{kkt(r.current,e),s(!1)},[]),p=(0,y.useCallback)(()=>{let e=r.current;if(e===null)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<Tkt;l.current=t,a(t),t&&s(!1),e.scrollTop<Ekt&&(u.current=e.scrollHeight,d.current())},[]);return(0,y.useLayoutEffect)(()=>{c.current=Dkt,l.current=!0,u.current=null,a(!0),s(!1)},[e]),(0,y.useLayoutEffect)(()=>{let e=Okt(t),n=c.current;c.current=e;let i=r.current;if(e.tailKey===``||i===null)return;if(n.tailKey===``){kkt(i,!1);return}let a=e.count>n.count,o=a&&e.tailKey!==n.tailKey;a&&e.headKey!==n.headKey&&u.current!==null&&(i.scrollTop+=i.scrollHeight-u.current,u.current=null),o&&(l.current||e.lastFromViewer)?(kkt(i,!0),s(!1)):o&&s(!0)},[t]),(0,y.useEffect)(()=>{p()},[p]),{scrollRef:r,isAtBottom:i,hasNewBelow:o,scrollToBottom:f,onScroll:p}},s7={card:`_card_1bdwl_1`,header:`_header_1bdwl_29`,body:`_body_1bdwl_43`,authorRow:`_authorRow_1bdwl_47`,avatar:`_avatar_1bdwl_54`,authorInfo:`_authorInfo_1bdwl_68`,authorName:`_authorName_1bdwl_73`,category:`_category_1bdwl_80`,catDot:`_catDot_1bdwl_90`,title:`_title_1bdwl_97`,snippet:`_snippet_1bdwl_105`,footer:`_footer_1bdwl_116`},jkt=/\/feed\/posts\/([a-zA-Z0-9-]+)$/,Mkt=({title:e,body:t,authorName:n,authorInitials:r,authorColor:i,categoryLabel:a,categoryColor:o,link:s})=>{let c=qe();return(0,D.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault();let t=jkt.exec(s);if(t?.[1]!==void 0){let e=t[1];c(`/comms/feed?postId=${e}`)}else (s.startsWith(`/`)||s.toLowerCase().startsWith(`http://`)||s.toLowerCase().startsWith(`https://`))&&window.open(s,`_blank`,`noopener,noreferrer`)},className:s7.card,style:{textAlign:`left`},children:[(0,D.jsxs)(`div`,{className:s7.header,children:[(0,D.jsx)(vn,{size:10}),`Shared from News Feed`]}),(0,D.jsxs)(`div`,{className:s7.body,children:[(0,D.jsxs)(`div`,{className:s7.authorRow,children:[(0,D.jsx)(`span`,{className:s7.avatar,style:Xn({"--avatar-color":i}),children:r}),(0,D.jsxs)(`div`,{className:s7.authorInfo,children:[(0,D.jsx)(`div`,{className:s7.authorName,children:n}),a!==null&&o!==null&&(0,D.jsxs)(`div`,{className:s7.category,style:Xn({"--cat-color":o}),children:[(0,D.jsx)(`span`,{className:s7.catDot}),a]})]})]}),(0,D.jsx)(`div`,{className:s7.title,children:e}),(0,D.jsx)(`div`,{className:s7.snippet,children:t}),(0,D.jsx)(`div`,{className:s7.footer,children:`Open in News Feed >`})]})]})},Nkt=e=>e.startsWith(`blob:`),Pkt=e=>e.type.length>0?URL.createObjectURL(e):URL.createObjectURL(new Blob([e],{type:`image/jpeg`})),Fkt=e=>{let{downloadChatMedia:t}=uh(),[n,r]=(0,y.useState)(!1),i=e!==null&&Nkt(e),a=e!==null&&!i?e:null,o=Um({queryKey:[`chat-media`,a],queryFn:()=>Zf(t.execute(a??``)),enabled:a!==null&&a.length>0,staleTime:1/0,gcTime:12e4,retry:1}),[s,c]=(0,y.useState)(null);(0,y.useEffect)(()=>{r(!1),c(null)},[e]),(0,y.useEffect)(()=>{let e=o.data;if(e===void 0)return;let t=Pkt(e);return c(t),()=>{URL.revokeObjectURL(t)}},[o.data]);let l=(0,y.useCallback)(()=>{r(!0)},[]);if(i)return{src:n?null:e,isLoading:!1,isError:n,onImageError:l};let u=o.isPending||o.isFetching;return{src:n?null:s,isLoading:u,isError:o.isError||n,onImageError:l}},c7=jf(e=>({open:!1,urls:[],index:0,openViewer:(t,n)=>{t.length!==0&&e({open:!0,urls:t,index:Math.max(0,Math.min(n,t.length-1))})},close:()=>{e({open:!1})},next:()=>{e(e=>({index:Math.min(e.index+1,e.urls.length-1)}))},prev:()=>{e(e=>({index:Math.max(e.index-1,0)}))}})),Ikt=({mediaUrl:e,album:t,index:n=0})=>{let{src:r,isLoading:i,isError:a,onImageError:o}=Fkt(e),s=c7(e=>e.openViewer);return a?(0,D.jsxs)(`div`,{className:A.msgMediaFallback,children:[(0,D.jsx)(sn,{size:18}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):r===null||i?(0,D.jsx)(`div`,{className:A.msgMediaLoading,children:(0,D.jsx)(rr,{size:`sm`})}):(0,D.jsx)(`button`,{type:`button`,className:E(A.mediaButton,t!==void 0&&A.mediaButtonFill),"aria-label":`Open image preview`,onClick:()=>{s(t??[e],n)},children:(0,D.jsx)(`img`,{className:A.msgMedia,src:r,alt:``,onError:o})})},Lkt=e=>(e??``).toLowerCase().split(`.`).pop()??``,Rkt=[`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`,`avif`,`heic`],zkt=(e,t)=>e!==null&&e.length>0?e.startsWith(`image/`):Rkt.includes(Lkt(t)),Bkt={pdf:`pdf`,zip:`archive`,rar:`archive`,"7z":`archive`,gz:`archive`,tar:`archive`,doc:`document`,docx:`document`,txt:`document`,rtf:`document`,odt:`document`,xls:`spreadsheet`,xlsx:`spreadsheet`,csv:`spreadsheet`,ods:`spreadsheet`,ppt:`presentation`,pptx:`presentation`,odp:`presentation`,mp3:`audio`,wav:`audio`,ogg:`audio`,m4a:`audio`,aac:`audio`,mp4:`video`,mov:`video`,webm:`video`,mkv:`video`,avi:`video`},Vkt=e=>{if(e===`application/pdf`)return`pdf`;if(e.startsWith(`audio/`))return`audio`;if(e.startsWith(`video/`))return`video`;if(e.startsWith(`text/`))return`document`;if(/zip|compressed|tar/.test(e))return`archive`;if(/spreadsheet|excel/.test(e))return`spreadsheet`;if(/presentation|powerpoint/.test(e))return`presentation`;if(e.includes(`word`))return`document`},Hkt=(e,t)=>zkt(e,t)?`image`:Vkt(e??``)??Bkt[Lkt(t)]??`generic`,Ukt={image:`Image`,pdf:`PDF Document`,archive:`Archive`,document:`Document`,spreadsheet:`Spreadsheet`,presentation:`Presentation`,audio:`Audio`,video:`Video`,generic:`File`},Wkt=e=>Ukt[e],Gkt={image:$t,pdf:tn,archive:yee,document:tn,spreadsheet:en,presentation:Dn,audio:Qt,video:bee,generic:nn},Kkt=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t.length>0?t:`download`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)},qkt=({mediaUrl:e,contentType:t,fileName:n,fromViewer:r})=>{let{downloadChatMedia:i}=uh(),[a,o]=(0,y.useState)(!1),s=Hkt(t,n),c=Gkt[s],l=n!==null&&n.length>0?n:`Attachment`,u=(0,y.useCallback)(()=>{o(!0),i.execute(e).then(e=>{o(!1),e.ok?Kkt(e.value,l):Nf.error(`Could not download the file.`)})},[i,e,l]);return(0,D.jsxs)(`button`,{type:`button`,className:E(A.fileCard,r?A.fileCardMe:A.fileCardThem),onClick:u,disabled:a,"aria-label":`Download ${l}`,children:[(0,D.jsx)(`span`,{className:A.fileCardIcon,children:(0,D.jsx)(c,{size:22})}),(0,D.jsxs)(`span`,{className:A.fileCardInfo,children:[(0,D.jsx)(`span`,{className:A.fileCardName,children:l}),(0,D.jsx)(`span`,{className:A.fileCardMetaLabel,children:Wkt(s)})]}),(0,D.jsx)(`span`,{className:A.fileCardDownload,children:a?(0,D.jsx)(rr,{size:`sm`}):(0,D.jsx)(Xt,{size:16})})]})},Jkt=({tick:e})=>e===`read`?(0,D.jsx)(`span`,{className:E(A.tick,A.tickRead),"aria-label":`Read`,children:(0,D.jsx)(zt,{size:13})}):e===`delivered`?(0,D.jsx)(`span`,{className:A.tick,"aria-label":`Delivered`,children:(0,D.jsx)(zt,{size:13})}):(0,D.jsx)(`span`,{className:A.tick,"aria-label":`Sent`,children:(0,D.jsx)(Bt,{size:13})}),Ykt=({message:e,pending:t,tick:n,onRetry:r})=>t===`sending`?(0,D.jsx)(`span`,{className:A.tick,"aria-label":`Sending`,children:(0,D.jsx)(Jt,{size:13})}):t===`failed`?(0,D.jsxs)(`span`,{className:A.sendFailed,children:[(0,D.jsx)(`span`,{className:A.sendFailedText,children:`Not delivered`}),(0,D.jsx)(`button`,{type:`button`,className:A.retryBtn,onClick:()=>{e.clientMessageId!==null&&r(e.clientMessageId,e.text)},children:`Retry`})]}):n===null?null:(0,D.jsx)(Jkt,{tick:n}),Xkt=({initial:e,onSave:t})=>{let[n,r]=(0,y.useState)(e);return(0,D.jsxs)(`span`,{className:A.msgActions,children:[(0,D.jsx)(`input`,{className:A.composerInput,value:n,onChange:e=>{r(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{n.trim().length>0&&t(n.trim())},children:`Save`})]})},Zkt=({message:e,fromViewer:t,onReply:n,onEdit:r,onDelete:i,resolvedReplyTo:a=null})=>{let[o,s]=(0,y.useState)(!1),c=yOt(e,a);return a7(e)?(0,D.jsx)(`span`,{className:A.msgActions}):t?o?(0,D.jsx)(Xkt,{initial:e.text,onSave:t=>{r(e.id,t),s(!1)}}):(0,D.jsxs)(`span`,{className:A.msgActions,children:[(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{n(c)},children:`Reply`}),e.canEdit(Date.now())&&(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{s(!0)},children:`Edit`}),(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{i(e.id)},children:`Delete`})]}):(0,D.jsx)(`span`,{className:A.msgActions,children:(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{n(c)},children:`Reply`})})},Qkt=`comms:chat:jump-to-message`,$kt=e=>{if(typeof window>`u`||e.length===0)return;let t=new CustomEvent(Qkt,{detail:{messageId:e},bubbles:!0});window.dispatchEvent(t)},eAt=(e,t,n=`msg-highlight-flash`)=>{let r=e.closest(t)??e.parentElement;if(r!==null){let t=r.getBoundingClientRect(),n=e.getBoundingClientRect(),i=r.scrollTop+(n.top-t.top)-t.height/2+n.height/2;typeof r.scrollTo==`function`&&r.scrollTo({top:Math.max(0,i),behavior:`smooth`})}e.classList.remove(n),e.offsetWidth,e.classList.add(n),window.setTimeout(()=>{e.classList.remove(n)},1600)},tAt=({replyTo:e})=>{let t=_Ot(e.text);if(t!==null)return(0,D.jsx)(`div`,{style:{marginBottom:6,display:`block`,width:`100%`},children:(0,D.jsx)(Mkt,{...t.card})});let n=e.text.trim().length>0;return(0,D.jsxs)(`span`,{role:`button`,tabIndex:0,className:A.replyPreview,onClick:t=>{t.stopPropagation(),$kt(e.messageId)},onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$kt(e.messageId))},children:[e.authorName.length>0&&(0,D.jsx)(`span`,{className:A.replyPreviewAuthor,children:e.authorName}),(0,D.jsx)(`span`,{className:A.replyPreviewText,children:n?vOt(e.text):`Message`})]})},nAt=`This message was deleted`,rAt=({message:e})=>{let t=e.mediaUrl;return t===null||t.length===0?null:zkt(e.mediaContentType,e.mediaFileName)?(0,D.jsx)(Ikt,{mediaUrl:t}):(0,D.jsx)(qkt,{mediaUrl:t,contentType:e.mediaContentType,fileName:e.mediaFileName,fromViewer:e.fromViewer})},iAt=({message:e,fromViewer:t,deletedForEveryone:n,pending:r,tick:i,onRetry:a})=>{let o=nh();return(0,D.jsxs)(`span`,{className:A.msgMeta,children:[(0,D.jsx)(`span`,{className:A.msgTime,children:Zve(e.sentAt,o.display)||e.time}),!n&&e.isEdited&&(0,D.jsx)(`span`,{className:A.editedLabel,children:`edited`}),t&&(e.kind===`text`||e.kind===`media`)&&(0,D.jsx)(Ykt,{message:e,pending:r,tick:i,onRetry:a})]})},aAt=/(https?:\/\/[^\s]+)/g,oAt=({text:e})=>e?(0,D.jsx)(D.Fragment,{children:e.split(aAt).map((e,t)=>e.match(aAt)?(0,D.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:A.msgLink,children:e},t):(0,D.jsx)(y.Fragment,{children:e},t))}):(0,D.jsx)(D.Fragment,{children:e}),sAt=({sharedComment:e,sharedCardProps:t})=>(0,D.jsxs)(D.Fragment,{children:[e.length>0&&(0,D.jsx)(`span`,{className:E(A.msgText,A.msgTextWithCard),children:(0,D.jsx)(oAt,{text:e})}),(0,D.jsx)(Mkt,{...t})]}),cAt=({messageText:e,deletedForEveryone:t})=>(0,D.jsx)(`span`,{className:E(A.msgText,t&&A.msgTextDeleted),children:t?nAt:(0,D.jsx)(oAt,{text:e})}),lAt=({message:e,authorName:t,showAuthor:n,replyTo:r,fromViewer:i,deletedForEveryone:a,pending:o,tick:s,onRetry:c,isSelected:l,onSelect:u})=>{let d=a?null:_Ot(e.text);return(0,D.jsxs)(`div`,{className:E(A.bubble,i?A.bubbleMe:A.bubbleThem,l&&A.bubbleSelected),onClick:()=>{u!==void 0&&u(e)},children:[n&&(0,D.jsx)(`span`,{className:A.msgAuthor,children:t}),!a&&r!==null&&(0,D.jsx)(tAt,{replyTo:r}),!a&&(0,D.jsx)(rAt,{message:e}),d===null?(0,D.jsx)(cAt,{messageText:e.text,deletedForEveryone:a}):(0,D.jsx)(sAt,{sharedComment:d.comment,sharedCardProps:d.card}),(0,D.jsx)(iAt,{message:e,fromViewer:i,deletedForEveryone:a,pending:o,tick:s,onRetry:c})]})},uAt=({message:e,identity:t,replyTo:n,isSelected:r,onSelect:i,showAvatar:a,showAuthor:o,tick:s,pending:c,onRetry:l,onReply:u,onEdit:d,onDelete:f,quickReact:p,reactions:m})=>{let{fromViewer:h,deletedForEveryone:g}=e,_=!a7(e)&&!g,v=m!==null;return(0,D.jsxs)(D.Fragment,{children:[!h&&(a?(0,D.jsx)(`span`,{className:A.msgAvatar,style:Xn({"--avatar-color":t.color}),children:t.initials}):(0,D.jsx)(`span`,{className:A.msgAvatarSpacer,"aria-hidden":`true`})),(0,D.jsx)(`div`,{className:E(A.msgCol,v&&A.msgColWithReactions),children:(0,D.jsxs)(`div`,{className:A.msgBubbleWrap,children:[(0,D.jsx)(lAt,{message:e,authorName:t.name,showAuthor:o,replyTo:n,fromViewer:h,deletedForEveryone:g,pending:c,tick:s,onRetry:l,isSelected:r,onSelect:i}),v&&m,_&&p,_&&(0,D.jsx)(Zkt,{message:e,fromViewer:h,onReply:u,onEdit:d,onDelete:f,resolvedReplyTo:n})]})})]})},dAt=e=>e.trim().toLowerCase(),fAt=(e,t)=>dAt(e)===dAt(t),pAt=(e,t)=>{if(e.fromViewer)return{name:e.authorName,initials:e.authorInitials,color:e.authorColor};let n=t.members.find(t=>fAt(t.id,e.senderId));return n===void 0?t.kind===`dm`&&t.peerUserId!==null&&fAt(t.peerUserId,e.senderId)?{name:t.title,initials:t.initials,color:t.color}:{name:e.authorName,initials:e.authorInitials,color:e.authorColor}:{name:n.name,initials:n.initials,color:n.color}},mAt=({align:e,onPick:t})=>{let[n,r]=(0,y.useState)(!1);return(0,D.jsxs)(`div`,{className:A.reactWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:A.reactBtn,"aria-label":`Add reaction`,onClick:()=>{r(e=>!e)},children:(0,D.jsx)(Fn,{size:14})}),(0,D.jsx)(Uu,{children:n&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:A.emojiBackdrop,"aria-label":`Close reaction picker`,onClick:()=>{r(!1)}}),(0,D.jsx)(Zu.div,{className:E(A.reactPop,e===`right`?A.reactPopRight:A.reactPopLeft),variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:lkt.map(e=>(0,D.jsx)(`button`,{type:`button`,className:A.reactPopBtn,onClick:()=>{t(e),r(!1)},children:e},e))})]})})]})},hAt=({message:e,onReact:t,fromViewer:n})=>{let r=e.reactions.reduce((e,t)=>e+t.count,0);if(r===0)return null;let i=e.reactions.find(e=>e.reacted);return(0,D.jsxs)(`button`,{type:`button`,className:E(A.reactionPill,n?A.reactionsMe:A.reactionsThem,i!==void 0&&A.reactionPillActive),onClick:()=>{if(i!==void 0)t(e.id,i.emoji);else if(e.reactions.length>0){let n=e.reactions[0]?.emoji;n!==void 0&&t(e.id,n)}},"aria-label":`Reactions`,children:[(0,D.jsx)(`span`,{className:A.reactionEmojis,children:e.reactions.map(e=>e.emoji).join(``)}),r>1&&(0,D.jsx)(`span`,{className:A.reactionCount,children:r})]})},gAt=({text:e})=>(0,D.jsx)(Zu.div,{className:A.systemRow,variants:ad,initial:`hidden`,animate:`visible`,children:(0,D.jsx)(`span`,{className:A.systemPill,children:e})}),_At=(e,t,n)=>!e.deletedForEveryone&&e.reactions.length>0?(0,D.jsx)(hAt,{message:e,onReact:n,fromViewer:t}):null,vAt=({conversation:e,message:t,layoutStatic:n=!1,firstOfGroup:r=!0,lastOfGroup:i=!0,replyTo:a,isSelected:o,onSelect:s,onReact:c,tick:l,pending:u,onRetry:d,onReply:f,onEdit:p,onDelete:m})=>{if(t.isSystem)return(0,D.jsx)(gAt,{text:t.text});let{fromViewer:h}=t,g=pAt(t,e),_=E(A.msgRow,h&&A.msgRowMe,r&&A.msgRowGroupStart),v=(0,D.jsx)(uAt,{message:t,identity:g,replyTo:a??t.replyTo,isSelected:o,onSelect:s,showAvatar:i,showAuthor:r&&e.isGroup,tick:l,pending:u,onRetry:d,onReply:f,onEdit:p,onDelete:m,quickReact:(0,D.jsx)(mAt,{align:h?`right`:`left`,onPick:e=>{c(t.id,e)}}),reactions:_At(t,h,c)});return n?(0,D.jsx)(`div`,{id:`msg-${t.id}`,className:_,children:v}):(0,D.jsx)(Zu.div,{id:`msg-${t.id}`,className:_,variants:ad,initial:`hidden`,animate:`visible`,whileHover:{y:-1,scale:1.005},transition:{type:`spring`,stiffness:500,damping:30},children:v})},yAt=()=>void 0,bAt=e=>e.find(e=>e.text.trim().length>0)?.text??``,xAt=({fromViewer:e,lastOfGroup:t,identity:n})=>e?null:t?(0,D.jsx)(`span`,{className:A.msgAvatar,style:Xn({"--avatar-color":n.color}),children:n.initials}):(0,D.jsx)(`span`,{className:A.msgAvatarSpacer,"aria-hidden":`true`}),SAt=({message:e,onReact:t,onReply:n,onDelete:r})=>(0,D.jsxs)(`div`,{className:A.albumCellActions,children:[(0,D.jsx)(mAt,{align:e.fromViewer?`right`:`left`,onPick:n=>{t(e.id,n)}}),(0,D.jsx)(`button`,{type:`button`,className:A.albumActionBtn,"aria-label":`Reply`,onClick:()=>{n(yOt(e))},children:(0,D.jsx)(An,{size:13})}),e.fromViewer&&(0,D.jsx)(`button`,{type:`button`,className:A.albumActionBtn,"aria-label":`Delete`,onClick:()=>{r(e.id)},children:(0,D.jsx)(Vn,{size:13})})]}),CAt=e=>{let{message:t,album:n,index:r}=e,i=!a7(t)&&!t.deletedForEveryone,a=!t.deletedForEveryone&&t.reactions.length>0;return(0,D.jsxs)(`div`,{id:`msg-${t.id}`,className:A.albumCell,children:[(0,D.jsx)(`div`,{className:A.albumCellMedia,children:t.mediaUrl!==null&&t.mediaUrl.length>0&&(0,D.jsx)(Ikt,{mediaUrl:t.mediaUrl,album:n,index:r})}),i&&(0,D.jsx)(SAt,{...e}),a&&(0,D.jsx)(`div`,{className:A.albumCellReactions,children:(0,D.jsx)(hAt,{message:t,onReact:e.onReact,fromViewer:t.fromViewer})})]})},wAt=({last:e,fromViewer:t,tick:n,pending:r})=>{let i=nh();return(0,D.jsxs)(`span`,{className:A.msgMeta,children:[(0,D.jsx)(`span`,{className:A.msgTime,children:Zve(e.sentAt,i.display)||e.time}),t&&(0,D.jsx)(Ykt,{message:e,pending:r,tick:n,onRetry:yAt})]})},TAt=({conversation:e,messages:t,firstOfGroup:n,lastOfGroup:r,tick:i,pending:a,onReact:o,onReply:s,onDelete:c})=>{let l=t.at(0),u=t.at(-1);if(l===void 0||u===void 0)return(0,D.jsx)(D.Fragment,{});let{fromViewer:d}=l,f=pAt(l,e),p=bAt(t),m=n&&e.isGroup,h=t.map(e=>e.mediaUrl??``);return(0,D.jsxs)(`div`,{id:`msg-${u.id}`,className:E(A.msgRow,d&&A.msgRowMe,n&&A.msgRowGroupStart),children:[(0,D.jsx)(xAt,{fromViewer:d,lastOfGroup:r,identity:f}),(0,D.jsx)(`div`,{className:A.msgCol,children:(0,D.jsx)(`div`,{className:A.msgBubbleWrap,children:(0,D.jsxs)(`div`,{className:E(A.bubble,d?A.bubbleMe:A.bubbleThem),children:[m&&(0,D.jsx)(`span`,{className:A.msgAuthor,children:f.name}),(0,D.jsx)(`div`,{className:A.albumGrid,children:t.map((e,t)=>(0,D.jsx)(CAt,{message:e,album:h,index:t,onReact:o,onReply:s,onDelete:c},e.id))}),p.length>0&&(0,D.jsx)(`span`,{className:A.msgText,children:p}),(0,D.jsx)(wAt,{last:u,fromViewer:d,tick:i,pending:a})]})})})]})},EAt=(e,t)=>{if(e.length===0)return null;let n=ch(e);if(Number.isNaN(n.getTime()))return null;if(t&&t.length>0){let e=Qm(n,t),r=String(e.month).padStart(2,`0`),i=String(e.day).padStart(2,`0`);return`${String(e.year)}-${r}-${i}`}let r=String(n.getMonth()+1).padStart(2,`0`),i=String(n.getDate()).padStart(2,`0`);return`${String(n.getFullYear())}-${r}-${i}`},DAt=(e,t)=>{let[n,r,i]=e.split(`-`);return new Date(Date.UTC(Number(n),Number(r)-1,Number(i))).toLocaleDateString(`en-US`,{weekday:`short`,day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})},OAt=(e,t)=>!e.isSystem&&!t.isSystem&&e.senderId===t.senderId,kAt=(e,t)=>{let n=[],r=null;return e.forEach((i,a)=>{let o=EAt(i.sentAt,t),s=o!==null&&o!==r;s&&n.push({kind:`date`,key:`date:${o}`,label:DAt(o,t)}),r=o??r;let c=e[a-1],l=e[a+1],u=s||c===void 0||!OAt(c,i),d=l===void 0||!OAt(i,l)||EAt(l.sentAt,t)!==o;n.push({kind:`message`,key:i.id,row:{message:i,firstOfGroup:u,lastOfGroup:d}})}),n},AAt=2,jAt=e=>e.kind===`message`&&e.row.message.kind===`media`&&!e.row.message.isSystem&&!e.row.message.deletedForEveryone&&(e.row.message.mediaUrl??``).length>0&&zkt(e.row.message.mediaContentType,e.row.message.mediaFileName),MAt=e=>e.kind===`message`&&e.row.message.kind===`media`&&!e.row.message.isSystem&&e.row.message.deletedForEveryone,NAt=e=>jAt(e)||MAt(e),PAt=(e,t,n)=>({kind:`album`,key:`album:${(e[0]??t).row.message.id}`,messages:e.map(e=>e.row.message),firstOfGroup:t.row.firstOfGroup,lastOfGroup:n.row.lastOfGroup}),FAt=(e,t,n)=>({kind:`message`,key:e.key,row:{message:e.row.message,firstOfGroup:t.row.firstOfGroup,lastOfGroup:n.row.lastOfGroup}}),IAt=(e,t)=>{let n=e[0],r=e[e.length-1];if(n===void 0||r===void 0)return;let i=e.filter(jAt);if(i.length>=AAt){t.push(PAt(i,n,r));return}if(i.length===1&&i[0]!==void 0){t.push(FAt(i[0],n,r));return}t.push(FAt(n,n,r))},LAt=e=>{let t=[],n=[];for(let r of e){if(NAt(r)){let e=n.at(-1);e!==void 0&&e.row.message.senderId!==r.row.message.senderId&&(IAt(n,t),n=[]),n.push(r);continue}IAt(n,t),n=[],t.push(r)}return IAt(n,t),t},RAt=(e,t)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||e.clientMessageId===null?null:t[e.clientMessageId]??null,zAt=({label:e})=>(0,D.jsx)(`div`,{className:A.dateSep,children:(0,D.jsx)(`span`,{className:A.dateSepPill,children:e})}),BAt=({conversation:e,messages:t,pending:n,selectedMessageId:r,onSelectMessage:i,onReact:a,onRetry:o,onReply:s,onEdit:c,onDelete:l,tickFor:u})=>{let d=nh(),f=(0,y.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]);return(0,D.jsx)(D.Fragment,{children:LAt(kAt(t,d.display)).map(t=>{if(t.kind===`date`)return(0,D.jsx)(zAt,{label:t.label},t.key);if(t.kind===`album`){let r=t.messages.at(-1);return(0,D.jsx)(TAt,{conversation:e,messages:t.messages,firstOfGroup:t.firstOfGroup,lastOfGroup:t.lastOfGroup,tick:r===void 0?null:u(r),pending:r===void 0?null:RAt(r,n),onReact:a,onReply:s,onDelete:l},t.key)}return(0,D.jsx)(vAt,{layoutStatic:!0,firstOfGroup:t.row.firstOfGroup,lastOfGroup:t.row.lastOfGroup,conversation:e,message:t.row.message,isSelected:r===t.row.message.id,onSelect:i,replyTo:xOt(t.row.message.replyTo,f),onReact:a,pending:RAt(t.row.message,n),tick:u(t.row.message),onRetry:o,onReply:s,onEdit:c,onDelete:l},t.key)})})},l7={id:`u-shamim`,name:`Shamim Rahman`,initials:`SR`,color:`#e9445a`},VAt=`t-uapp`,HAt={id:`u-andreea`,name:`Andreea Cinpoi`,initials:`AN`,color:`#7c3aed`,role:`Sales Manager`},UAt={id:`u-laura`,name:`Laura Tomova`,initials:`LA`,color:`#3a7bd5`,role:`Compliance Officer`},WAt={id:`s-mahmud`,name:`Mahmud Hasan`,initials:`MH`,color:`#16a34a`,role:`Student`},GAt={id:`u-mihadul`,name:`Mihadul Islam`,initials:`MI`,color:`#65a30d`,role:`Admission Officer`},KAt={id:`u-nur`,name:`Nur Mohammad`,initials:`NM`,color:`#8b5cf6`,role:`Team Leader`},qAt={id:`u-md-shamim`,name:`Md Shamim`,initials:`MS`,color:`#0a6e6f`,role:`Sales Lead`};l7.id,l7.name,l7.initials,l7.color;var u7=(e,t)=>({...t,admin:!1,lastSynced:null,tenantId:VAt,categoryId:null,members:[],adminIds:[],data:{},peerUserId:e,memberReceipts:[]});l7.id,WAt.id,l7.id,GAt.id,KAt.id,WAt.id,l7.id,qAt.id,HAt.id,l7.id,HAt.id,UAt.id,{...u7(`u-tousif`,{id:`c-tousif`,kind:`dm`,title:`Tousif Sadman`,subtitle:`Consultant`,initials:`TS`,color:`#0e7c66`,online:!0,unread:2,pinned:!1,favourite:!0,archived:!1,lastMessage:`Sure, I'll send the documents`,lastTime:`5m`})},l7.id,u7(`u-raj`,{id:`c-raj`,kind:`dm`,title:`Raj Ahmed`,subtitle:`Global Admission Manager`,initials:`RA`,color:`#0ea5e9`,online:!0,unread:1,pinned:!1,favourite:!1,archived:!1,lastMessage:`The offer letter is ready`,lastTime:`1h`}),u7(`u-andreea`,{id:`c-andreea`,kind:`dm`,title:`Andreea Cinpoi`,subtitle:`Sales Manager`,initials:`AN`,color:`#7c3aed`,online:!1,unread:0,pinned:!1,favourite:!1,archived:!1,lastMessage:`Thanks for the update`,lastTime:`2h`}),u7(`u-jennifer`,{id:`c-jennifer`,kind:`dm`,title:`Jennifer Aboje`,subtitle:`Branch Manager`,initials:`JA`,color:`#fc7300`,online:!1,unread:0,pinned:!1,favourite:!1,archived:!1,lastMessage:`Let me check with the team`,lastTime:`Yesterday`}),u7(`u-laura`,{id:`c-laura`,kind:`dm`,title:`Laura Tomova`,subtitle:`Compliance Officer`,initials:`LA`,color:`#3a7bd5`,online:!1,unread:0,pinned:!1,favourite:!1,archived:!0,lastMessage:`Archived — visa file closed`,lastTime:`3d`});var JAt=gm({id:k(),name:k(),initials:k(),color:k(),role:k(),status:pm().optional(),statusUntilUtc:k().nullish()}),YAt=gm({userId:k(),deliveredUpto:pm(),readUpto:pm()}),XAt=gm({id:k(),type:pm(),title:k(),subtitle:k(),initials:k(),color:k(),online:mm(),status:pm().optional(),statusUntilUtc:k().nullish(),unread:pm(),pinned:mm(),favourite:mm(),archived:mm(),unreadCount:pm(),admin:mm(),lastMessage:k(),lastTime:k(),lastMessageAt:k().nullable().optional(),lastSyncedAt:k().nullable(),categoryId:k().nullable(),headerFields:vm(k(),k()).optional(),members:hm(JAt),adminIds:hm(k()),peerUserId:k().nullable().optional().default(null),memberReceipts:hm(YAt).optional().default([])}).passthrough(),ZAt=gm({emoji:k(),count:pm(),reacted:mm()}),d7=gm({id:k(),conversationId:k(),kind:pm(),senderId:k(),authorName:k(),authorInitials:k(),authorColor:k(),text:k(),sentAt:k(),time:k(),sequence:pm(),clientMessageId:k().nullable(),fromViewer:mm(),reactions:hm(ZAt),replyToMessageId:k().nullable().optional().default(null),replyToAuthorName:k().optional().default(``),replyToText:k().optional().default(``),mediaUrl:k().nullable().optional().default(null),mediaContentType:k().nullable().optional().default(null),mediaFileName:k().nullable().optional().default(null),editedAt:k().nullable().optional().default(null),isEdited:mm().optional().default(!1),deletedForEveryone:mm().optional().default(!1)}),QAt=gm({id:k(),name:k(),initials:k(),color:k()}),$At=hm(XAt),ejt=hm(JAt),tjt=gm({totalCount:pm(),items:$At}),njt=gm({unread:pm(),favourites:pm(),groups:pm(),archived:pm()}),rjt=gm({blobName:k(),url:k(),contentType:k().optional().default(`application/octet-stream`),fileName:k().nullable().optional().default(null)}),ijt=hm(d7),ajt=6e4,ojt=60*ajt,sjt=24*ojt,cjt=(e,t)=>{let n=t.getTime()-e.getTime();return n<ajt?`just now`:n<ojt?`${String(Math.floor(n/ajt))}m`:n<sjt?`${String(Math.floor(n/ojt))}h`:`${String(Math.floor(n/sjt))}d`},ljt=e=>e===0?`dm`:`group`,ujt=e=>e===1?`system`:e===2?`media`:`text`,djt=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role,status:Nh(e.status),statusUntilUtc:e.statusUntilUtc??null}),fjt=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color}),pjt=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`))try{let t=e.substring(22),n=JSON.parse(t).card?.title??``;return n.length>0?`Shared Post: ${n}`:`Shared Post`}catch{return`Shared Post`}return e},mjt=(e,t)=>new Xve({id:e.id,kind:ljt(e.type),title:e.title,subtitle:e.subtitle,initials:e.initials,color:e.color,online:e.online,status:Nh(e.status),statusUntilUtc:e.statusUntilUtc??null,unread:e.unreadCount,pinned:e.pinned,favourite:e.favourite,archived:e.archived,admin:e.admin,lastMessage:pjt(e.lastMessage),lastTime:e.lastTime,lastMessageAt:e.lastMessageAt??null,lastSynced:e.lastSyncedAt===null?null:cjt(new Date(e.lastSyncedAt),t),tenantId:``,categoryId:e.categoryId,members:e.members.map(djt),adminIds:e.adminIds,data:e.headerFields??{},peerUserId:e.peerUserId,memberReceipts:e.memberReceipts.map(e=>({userId:e.userId,deliveredUpto:e.deliveredUpto,readUpto:e.readUpto}))}),f7=e=>{let t=e.replyToMessageId!==null&&e.replyToMessageId.length>0?{messageId:e.replyToMessageId,authorName:e.replyToAuthorName,text:e.replyToText}:null;return new lh({id:e.id,kind:ujt(e.kind),authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,text:e.text,time:e.time,sentAt:e.sentAt,fromViewer:e.fromViewer,reactions:e.reactions.map(e=>({emoji:e.emoji,count:e.count,reacted:e.reacted})),sequence:e.sequence,senderId:e.senderId,clientMessageId:e.clientMessageId,replyTo:t,mediaUrl:e.mediaUrl,mediaContentType:e.mediaContentType,mediaFileName:e.mediaFileName,isEdited:e.deletedForEveryone?!1:(e.editedAt??``).length>0||e.isEdited,deletedForEveryone:e.deletedForEveryone})},p7=(e,t,n)=>(e.error(`Chat ${t} returned an unexpected shape`,n),O(new sh(n))),hjt=e=>{if(e.length===0)return;let t=e[0];if(t&&typeof t==`object`&&`message`in t){let e=t.message;if(typeof e==`string`&&e.trim().length>0)return e}},gjt=e=>{if(Array.isArray(e.validationErrors)){let t=hjt(e.validationErrors);if(t!==void 0)return t}if(typeof e.details==`string`&&e.details.trim().length>0&&!e.details.includes(`The following errors were detected`))return e.details;if(typeof e.message==`string`&&e.message.trim().length>0)return e.message},_jt=e=>{if(!e||typeof e!=`object`||!(`body`in e))return;let t=e.body;if(!t||typeof t!=`object`)return;let n=t;return gjt(`error`in n&&n.error&&typeof n.error==`object`?n.error:n)},m7=(e,t)=>(e.error(`Chat request failed`,t),new sh(t,_jt(t))),vjt=(e,t,n)=>{let r=ijt.safeParse(n);return r.success?Yf(r.data.map(f7)):p7(e,t,r.error)},yjt=(e,t,n,r)=>{let i=XAt.safeParse(r);return i.success?Yf(mjt(i.data,t.now())):p7(e,n,i.error)},bjt=`/api/app/chat-media/download?blobName=`,xjt=e=>`${bjt}${encodeURIComponent(decodeURIComponent(e))}`,Sjt=e=>{if(!e.startsWith(`http://`)&&!e.startsWith(`https://`))return e;try{let t=new URL(e);return`${t.pathname}${t.search}`}catch{return e}},Cjt=e=>{let t=/^\/api\/app\/chat-media\/download\?blobName=([^&]+)/.exec(e);if(t?.[1]!==void 0)return t[1];let n=/^\/api\/app\/chat-media\?blobName=([^&]+)/.exec(e);if(n?.[1]!==void 0)return n[1];let r=/^\/api\/app\/chat-media\/([^/?]+)/.exec(e)?.[1];if(r!==void 0&&r!==`upload`&&r!==`download`)return r},wjt=e=>{let t=e.trim();if(t.length===0)return t;let n=Sjt(t),r=Cjt(n);return r===void 0?n.startsWith(`/`)?n:`/${n}`:xjt(r)},h7={conversations:`/api/app/chat/conversations`,conversationCounts:`/api/app/chat/conversation-scope-counts`,listStaff:`/api/app/chat/list-staff`,groupMemberPool:`/api/app/chat/group-member-pool`,viewer:`/api/app/chat/viewer`,createGroup:`/api/app/chat/group`,uploadChatMedia:`/api/app/chat-media/upload`,subscribePush:`/api/app/web-push/subscribe`},g7={afterSequence:`afterSequence`,beforeSequence:`beforeSequence`,skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,scope:`scope`,uptoSequence:`uptoSequence`,favourite:`favourite`,archived:`archived`,pinned:`pinned`},_7=e=>encodeURIComponent(e),v7={conversation:e=>`/api/app/chat/conversation/${_7(e)}`,messages:e=>`/api/app/chat/messages/${_7(e)}`,messagesBefore:e=>`/api/app/chat/messages-before/${_7(e)}`,messagesSince:e=>`/api/app/chat/messages-since/${_7(e)}`,sendMessage:e=>`/api/app/chat/send-message/${_7(e)}`,sendMediaMessage:e=>`/api/app/chat/send-media-message/${_7(e)}`,markDelivered:e=>`/api/app/chat/mark-delivered/${_7(e)}`,markRead:e=>`/api/app/chat/mark-read/${_7(e)}`,reactToMessage:e=>`/api/app/chat/react-to-message/${_7(e)}`,saveMembers:e=>`/api/app/chat/save-members/${_7(e)}`,leaveConversation:e=>`/api/app/chat/leave-conversation/${_7(e)}`,setFavourite:e=>`/api/app/chat/set-favourite/${_7(e)}`,setArchived:e=>`/api/app/chat/set-archived/${_7(e)}`,setPinned:e=>`/api/app/chat/set-pinned/${_7(e)}`,deleteConversation:e=>`/api/app/chat/conversation/${_7(e)}`,refreshPortal:e=>`/api/app/chat/refresh-portal/${_7(e)}`,startDirect:e=>`/api/app/chat/start-direct/${_7(e)}`,editMessage:e=>`/api/app/chat/edit-message/${_7(e)}`,deleteMessage:e=>`/api/app/chat/message/${_7(e)}`,deleteMessageForMe:e=>`/api/app/chat/message-for-me/${_7(e)}`},Tjt=async(e,t,n,r)=>{try{let i=new FormData;i.append(`file`,n,r);let a=await e.httpClient.post(h7.uploadChatMedia,i,{query:{conversationId:t}}),o=rjt.safeParse(a);return o.success?Yf({mediaId:o.data.blobName,url:o.data.url}):p7(e.logger,`upload-media`,o.error)}catch(t){return O(m7(e.logger,t))}},Ejt=async(e,t)=>{try{let n=await Tjt(e,t.conversationId,t.file,t.fileName);if(!n.ok)return n;let r={blobName:n.value.mediaId,clientMessageId:t.clientMessageId};t.file.type.length>0&&(r.contentType=t.file.type),t.fileName.length>0&&(r.fileName=t.fileName),t.caption!==void 0&&t.caption.trim().length>0&&(r.caption=t.caption.trim()),t.replyToMessageId!==void 0&&t.replyToMessageId!==null&&(r.replyToMessageId=t.replyToMessageId);let i=await e.httpClient.post(v7.sendMediaMessage(t.conversationId),r),a=d7.safeParse(i);return a.success?Yf(f7(a.data)):p7(e.logger,`send-media-message`,a.error)}catch(t){return O(m7(e.logger,t))}},Djt=async(e,t)=>{try{let n=wjt(t),r=await e.httpClient.getBlob(n,{headers:{Accept:`image/*,*/*`}});return r.size===0?O(new sh(`Chat media response was empty`)):Yf(r)}catch(t){return O(m7(e.logger,t))}},Ojt=async(e,t,n,r)=>{try{let t=await e.httpClient.post(v7.editMessage(n),{text:r}),i=d7.safeParse(t);return i.success?Yf(f7(i.data)):p7(e.logger,`edit-message`,i.error)}catch(t){return O(m7(e.logger,t))}},kjt=async(e,t,n)=>{try{return await e.httpClient.delete(v7.deleteMessage(n)),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},Ajt=async(e,t,n)=>{try{return await e.httpClient.delete(v7.deleteMessageForMe(n)),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},jjt=async(e,t)=>{try{return await e.httpClient.post(h7.subscribePush,{endpoint:t.endpoint,p256dh:t.p256dh,auth:t.auth}),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},y7=async(e,t,n,r)=>{try{return await e.post(n,void 0,{query:r}),Yf(void 0)}catch(e){return O(m7(t,e))}},Mjt=async e=>{try{return await e.httpClient.post(e.path,e.body,{query:e.query}),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},Njt=async(e,t,n)=>{try{return await e.delete(n),Yf(void 0)}catch(e){return O(m7(t,e))}},Pjt=(e,t,n)=>y7(e.httpClient,e.logger,v7.markDelivered(t),{[g7.uptoSequence]:n}),Fjt=(e,t,n)=>y7(e.httpClient,e.logger,v7.markRead(t),{[g7.uptoSequence]:n}),Ijt=(e,t,n)=>y7(e.httpClient,e.logger,v7.setFavourite(t),{[g7.favourite]:n}),Ljt=(e,t,n)=>y7(e.httpClient,e.logger,v7.setArchived(t),{[g7.archived]:n}),Rjt=(e,t,n)=>y7(e.httpClient,e.logger,v7.setPinned(t),{[g7.pinned]:n}),zjt=(e,t)=>y7(e.httpClient,e.logger,v7.leaveConversation(t),{}),Bjt=(e,t)=>y7(e.httpClient,e.logger,v7.refreshPortal(t),{}),Vjt=(e,t,n)=>Mjt({httpClient:e.httpClient,logger:e.logger,path:v7.reactToMessage(t),query:{},body:{emoji:n}}),Hjt=(e,t,n,r)=>Mjt({httpClient:e.httpClient,logger:e.logger,path:v7.saveMembers(t),query:{},body:{members:n.map(e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role})),adminIds:[...r]}}),Ujt=(e,t)=>Njt(e.httpClient,e.logger,v7.deleteConversation(t)),Wjt={all:`All`,unread:`Unread`,favourites:`Favourites`,groups:`Groups`,archive:`Archive`},Gjt=async(e,t)=>{let n=t.filter?.trim();try{let r=await e.httpClient.get(h7.conversations,{query:{[g7.scope]:Wjt[t.scope],[g7.filter]:n===void 0||n===``?void 0:n,[g7.skipCount]:t.skipCount,[g7.maxResultCount]:t.maxResultCount}}),i=tjt.safeParse(r);if(!i.success)return p7(e.logger,`conversations`,i.error);let a=e.clock.now();return Yf({items:i.data.items.map(e=>mjt(e,a)),totalCount:i.data.totalCount})}catch(t){return O(m7(e.logger,t))}},Kjt=async e=>{try{let t=await e.httpClient.get(h7.conversationCounts),n=njt.safeParse(t);return n.success?Yf(n.data):p7(e.logger,`conversation-counts`,n.error)}catch(t){return O(m7(e.logger,t))}},qjt=async(e,t)=>{try{let n=await e.httpClient.get(v7.conversation(t));return yjt(e.logger,e.clock,`conversation`,n)}catch(t){return O(m7(e.logger,t))}},Jjt=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.post(h7.listStaff,void 0,{query:{[g7.filter]:n===void 0||n===``?void 0:n}}),r=ejt.safeParse(t);return r.success?Yf(r.data.map(djt)):p7(e.logger,`list-staff`,r.error)}catch(t){return O(m7(e.logger,t))}},Yjt=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.get(h7.groupMemberPool,{query:{[g7.filter]:n===void 0||n===``?void 0:n}}),r=ejt.safeParse(t);return r.success?Yf(r.data.map(djt)):p7(e.logger,`group-member-pool`,r.error)}catch(t){return O(m7(e.logger,t))}},Xjt=async e=>{try{let t=await e.httpClient.get(h7.viewer),n=QAt.safeParse(t);return n.success?Yf(fjt(n.data)):p7(e.logger,`viewer`,n.error)}catch(t){return O(m7(e.logger,t))}},Zjt=async(e,t,n)=>{try{let r=n===void 0?void 0:{query:{[g7.maxResultCount]:n}},i=await e.httpClient.get(v7.messages(t),r);return vjt(e.logger,`messages`,i)}catch(t){return O(m7(e.logger,t))}},Qjt=async(e,t,n,r)=>{try{let i=await e.httpClient.get(v7.messagesSince(t),{query:{[g7.afterSequence]:n,[g7.maxResultCount]:r}});return vjt(e.logger,`messages-since`,i)}catch(t){return O(m7(e.logger,t))}},$jt=async(e,t,n,r)=>{try{let i=await e.httpClient.get(v7.messagesBefore(t),{query:{[g7.beforeSequence]:n,[g7.maxResultCount]:r}});return vjt(e.logger,`messages-before`,i)}catch(t){return O(m7(e.logger,t))}},eMt=async(e,t)=>{try{let n=await e.httpClient.post(v7.startDirect(t),void 0);return yjt(e.logger,e.clock,`start-direct`,n)}catch(t){return O(m7(e.logger,t))}},tMt=async(e,t,n)=>{try{let r={title:t,memberIds:[...n]},i=await e.httpClient.post(h7.createGroup,r);return yjt(e.logger,e.clock,`group`,i)}catch(t){return O(m7(e.logger,t))}},nMt=async e=>{let{deps:t,conversationId:n,text:r,clientMessageId:i,replyToMessageId:a}=e;try{let e={text:r,clientMessageId:i};a!=null&&(e.replyToMessageId=a);let o=await t.httpClient.post(v7.sendMessage(n),e),s=d7.safeParse(o);return s.success?Yf(f7(s.data)):p7(t.logger,`send-message`,s.error)}catch(e){return O(m7(t.logger,e))}},rMt=class{httpClient;clock;logger;constructor(e){this.httpClient=e.httpClient,this.clock=e.clock,this.logger=e.logger.child(`http-chat-gateway`)}deps(){return{httpClient:this.httpClient,logger:this.logger}}queryDeps(){return{httpClient:this.httpClient,clock:this.clock,logger:this.logger}}listConversations(e){return Gjt(this.queryDeps(),e)}getConversationCounts(){return Kjt(this.deps())}getConversation(e){return qjt(this.queryDeps(),e)}listStaff(e){return Jjt(this.deps(),e)}getGroupMemberPool(e){return Yjt(this.deps(),e)}getViewer(){return Xjt(this.deps())}getMessages(e,t){return Zjt(this.deps(),e,t)}getMessagesSince(e,t,n){return Qjt(this.deps(),e,t,n)}getMessagesBefore(e,t,n){return $jt(this.deps(),e,t,n)}startDirect(e){return eMt(this.queryDeps(),e)}createGroup(e,t){return tMt(this.queryDeps(),e,t)}sendMessage(e,t,n,r){return nMt({deps:this.deps(),conversationId:e,text:t,clientMessageId:n,replyToMessageId:r})}uploadChatMedia(e,t,n){return Tjt(this.deps(),e,t,n)}sendMediaMessage(e){return Ejt(this.deps(),e)}downloadMedia(e){return Djt(this.deps(),e)}editMessage(e,t,n){return Ojt(this.deps(),e,t,n)}deleteMessage(e,t){return kjt(this.deps(),e,t)}deleteMessageForMe(e,t){return Ajt(this.deps(),e,t)}subscribePush(e){return jjt(this.deps(),e)}markDelivered(e,t){return Pjt(this.deps(),e,t)}markRead(e,t){return Fjt(this.deps(),e,t)}setFavourite(e,t){return Ijt(this.deps(),e,t)}setArchived(e,t){return Ljt(this.deps(),e,t)}setPinned(e,t){return Rjt(this.deps(),e,t)}deleteConversation(e){return Ujt(this.deps(),e)}leaveConversation(e){return zjt(this.deps(),e)}refreshPortal(e){return Bjt(this.deps(),e)}reactToMessage(e,t,n){return Vjt(this.deps(),t,n)}saveMembers(e,t,n){return Hjt(this.deps(),e,t,n)}};function b7(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function iMt(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=b7(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var aMt;function x7(){return aMt||=iMt(`keyval-store`,`keyval`),aMt}function oMt(e,t=x7()){return t(`readonly`,t=>b7(t.get(e)))}function sMt(e,t,n=x7()){return n(`readwrite`,n=>(n.put(t,e),b7(n.transaction)))}function cMt(e,t=x7()){return t(`readwrite`,t=>(t.delete(e),b7(t.transaction)))}function lMt(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},b7(e.transaction)}function uMt(e=x7()){return e(`readonly`,e=>{if(e.getAllKeys)return b7(e.getAllKeys());let t=[];return lMt(e,e=>t.push(e.key)).then(()=>t)})}var S7=iMt(`chat-outbox`,`pending-sends`),dMt=e=>`send:${e}`,fMt=()=>({put:async e=>{await sMt(dMt(e.clientMessageId),e,S7)},remove:async e=>{await cMt(dMt(e),S7)},listAll:async()=>{let e=await uMt(S7);return(await Promise.all(e.map(async e=>oMt(e,S7)))).filter(e=>e!==void 0)},listByConversation:async e=>{let t=await uMt(S7);return(await Promise.all(t.map(async e=>oMt(e,S7)))).filter(t=>t?.conversationId===e)}}),C7={MessageReceived:`MessageReceived`,MessageEdited:`MessageEdited`,MessageDeleted:`MessageDeleted`,MessageDelivered:`MessageDelivered`,MessageRead:`MessageRead`,Typing:`Typing`,PresenceChanged:`PresenceChanged`,StatusChanged:`StatusChanged`,ReactionToggled:`ReactionToggled`,RemovedFromConversation:`RemovedFromConversation`},pMt={MarkRead:`MarkRead`,MarkDelivered:`MarkDelivered`,Typing:`Typing`},mMt=gm({conversationId:k(),byUserId:k(),uptoSequence:pm()}),hMt=gm({conversationId:k(),userId:k(),isTyping:mm()}),gMt=gm({userId:k(),online:mm(),lastSeenUtc:k().nullable()}),_Mt=gm({userId:k(),status:pm(),untilUtc:k().nullish()}),vMt=gm({conversationId:k(),messageId:k(),byUserId:k(),emoji:k(),added:mm()}),yMt=gm({conversationId:k(),messageId:k()}),bMt=gm({conversationId:k()}),w7=(e,t,n,r)=>{let i=e.safeParse(t);return!i.success||i.data===void 0?(r.warn(`Ignoring malformed realtime payload`,{event:n}),null):i.data},xMt=(e,t,n)=>w7(d7,e,t,n),SMt=(e,t,n)=>w7(mMt,e,t,n),CMt=(e,t,n)=>w7(hMt,e,t,n),wMt=(e,t,n)=>w7(gMt,e,t,n),TMt=(e,t,n)=>w7(_Mt,e,t,n),EMt=(e,t,n)=>w7(vMt,e,t,n),DMt=(e,t,n)=>w7(yMt,e,t,n),OMt=(e,t,n)=>w7(bMt,e,t,n),kMt=`chat.hidden-messages`,AMt=hm(k()),jMt=()=>{try{let e=window.localStorage.getItem(kMt);if(e===null)return[];let t=AMt.safeParse(JSON.parse(e));return t.success?t.data:[]}catch{return[]}},MMt=e=>{try{window.localStorage.setItem(kMt,JSON.stringify(e))}catch{}},NMt=jf((e,t)=>({hidden:new Set(jMt()),hideForMe:n=>{if(t().hidden.has(n))return;let r=new Set(t().hidden);r.add(n),MMt([...r]),e({hidden:r})}})),PMt=(e,t)=>t.length>0&&fAt(e,t),FMt=(e,t)=>{let n=PMt(e.senderId,t),r=n?e.reactions:e.reactions.map(e=>e.reacted?{...e,reacted:!1}:e),i=r.length===e.reactions.length&&r.every((t,n)=>{let r=e.reactions[n];return r===void 0?!1:t.reacted===r.reacted&&t.emoji===r.emoji&&t.count===r.count});return n===e.fromViewer&&i?e:e.with({fromViewer:n,reactions:r})},IMt=(e,t)=>t.length===0?e:e.map(e=>FMt(e,t)),LMt=(e,t,n)=>{let r=(0,y.useRef)(null);(0,y.useEffect)(()=>{let t=r.current;if(t===null)return;let i=document.getElementById(`msg-${t}`);i===null?n.hasMore&&!n.isLoadingOlder?n.loadOlder():r.current=null:(r.current=null,eAt(i,e))},[t,n,e]),(0,y.useEffect)(()=>{let t=t=>{let i=t.detail.messageId;if(typeof i!=`string`||i.length===0)return;let a=document.getElementById(`msg-${i}`);a===null?n.hasMore&&(r.current=i,n.loadOlder()):(r.current=null,eAt(a,e))};return window.addEventListener(Qkt,t),()=>{window.removeEventListener(Qkt,t)}},[n,e])},RMt=[],zMt=({isLoadingOlder:e,hasMessages:t})=>!t||!e?null:(0,D.jsx)(`div`,{className:A.olderRow,children:(0,D.jsx)(rr,{size:`sm`,label:`Loading older messages`})}),BMt=(e,t,n,r)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||a7(e)?null:xkt(e,{peerUserId:t,otherMemberIds:n,receipts:r}),VMt=({messages:e,older:t,hasMessages:n})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(zMt,{isLoadingOlder:t.isLoadingOlder,hasMessages:n}),e.isPending&&(0,D.jsx)(`div`,{className:A.center,children:(0,D.jsx)(rr,{label:`Loading messages`})}),e.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not load messages`,children:e.error.message})]}),HMt=({conversation:e,viewerId:t,messages:n,selectedMessageId:r,onSelectMessage:i,onReact:a,onRetry:o,onReply:s,onEdit:c,onDelete:l})=>{let u=e.id,d=NMt(e=>e.hidden),f=(0,y.useMemo)(()=>IMt(n.data??RMt,t).filter(e=>!d.has(e.id)),[n.data,t,d]),p=ah(e=>e.receipts[u]),m=ah(e=>e.pending),h=e.members.map(e=>e.id).filter(e=>e!==t),g=wkt(u),_=Akt(u,f,g.loadOlder);return LMt(`.${A.messages??`messages`}`,f,g),(0,D.jsxs)(`div`,{className:A.threadWrap,children:[(0,D.jsx)(`div`,{className:A.messages,ref:_.scrollRef,onScroll:_.onScroll,children:(0,D.jsxs)(`div`,{className:A.thread,children:[(0,D.jsx)(VMt,{messages:n,older:g,hasMessages:f.length>0}),f.length>0&&(0,D.jsx)(BAt,{conversation:e,messages:f,pending:m,selectedMessageId:r,onSelectMessage:i,tickFor:t=>BMt(t,e.peerUserId,h,p??{}),onReact:a,onRetry:o,onReply:s,onEdit:c,onDelete:l})]})}),_.hasNewBelow&&(0,D.jsxs)(`button`,{type:`button`,className:E(A.newPill),onClick:()=>{_.scrollToBottom(!0)},children:[(0,D.jsx)(Vt,{size:14}),`New messages`]})]})},UMt=e=>(0,D.jsx)(HMt,{...e}),WMt=(e,t,n,r)=>{let[i,a]=(0,y.useState)(null),o=()=>{a(null)};return{requestDelete:t=>{a(e.find(e=>e.id===t)??null)},dialogProps:{open:i!==null,canDeleteForEveryone:i?.canDeleteForEveryone(r.now().getTime())??!1,onDeleteForMe:()=>{i!==null&&n(i.id),o()},onDeleteForEveryone:()=>{i!==null&&t(i.id),o()},onCancel:o}}},GMt=`now`,KMt=(e,t,n)=>{e.outbox.put({clientMessageId:t.clientMessageId,conversationId:e.conversationId,text:t.text,failedAt:n})},qMt=(e,t,n)=>{e.queryClient.setQueryData(yh(e.conversationId),r=>OOt(r,EOt({viewer:t,text:n.text,clientMessageId:n.clientMessageId,sequence:wOt(r??[])+1,timeLabel:GMt,sentAt:e.clock.now().toISOString(),replyTo:n.replyTo??null}))),e.store.getState().markSending(n.clientMessageId),KMt(e,n,null)},JMt=(e,t,n)=>{e.queryClient.setQueryData(yh(e.conversationId),e=>kOt(e,t)),e.store.getState().clearPending(n),e.outbox.remove(n),hh(e.queryClient)},YMt=(e,t,n)=>Zf(t.execute(e.conversationId,n.text,n.clientMessageId,n.replyToMessageId)),XMt=e=>{let{sendMessage:t,outbox:n,clock:r}=uh(),i=Hm(),a=ih(),o=bh().data??null,s={queryClient:i,store:a,outbox:n,conversationId:e,clock:r},c=Wm({mutationFn:e=>YMt(s,t,e),onMutate:e=>{o!==null&&qMt(s,o,e)},onSuccess:(e,t)=>{JMt(s,e,t.clientMessageId)},onError:(e,t)=>{Nf.error(e instanceof Error?e.message:`Failed to send message`),a.getState().markFailed(t.clientMessageId),KMt(s,t,s.clock.now().toISOString()),Nf.error(e.message)}}),l=(0,y.useCallback)(()=>{n.listByConversation(e).then(e=>{for(let t of e)t.failedAt!==null&&(a.getState().markSending(t.clientMessageId),c.mutate({text:t.text,clientMessageId:t.clientMessageId}))})},[e,c,n,a]);return(0,y.useEffect)(()=>{let e=()=>{l()};return window.addEventListener(`online`,e),()=>{window.removeEventListener(`online`,e)}},[l]),{send:(0,y.useCallback)((e,t=null)=>{c.mutate({text:e,clientMessageId:crypto.randomUUID(),replyToMessageId:t?.messageId??null,replyTo:t})},[c]),retry:(0,y.useCallback)((e,t)=>{a.getState().markSending(e),c.mutate({text:t,clientMessageId:e})},[c,a]),isSending:c.isPending}},ZMt=(e,t)=>{let n=e.then(t,t);return{run:n,next:n.then(()=>void 0,()=>void 0)}},QMt=(e,t)=>{let n=e.get(t);n!==void 0&&(e.delete(t),globalThis.setTimeout(()=>{URL.revokeObjectURL(n)},250))},$Mt=(e,t)=>{let n=e.viewer;if(n===null)return;let r=URL.createObjectURL(t.file);e.urls.set(t.clientMessageId,r);let i=e.nowIso();e.queryClient.setQueryData(yh(e.conversationId),e=>OOt(e,DOt({viewer:n,fileUrl:r,caption:t.caption??``,clientMessageId:t.clientMessageId,sequence:wOt(e??[])+1,sentAt:i,contentType:t.file.type,fileName:t.fileName}))),e.store.getState().markSending(t.clientMessageId)},eNt=(e,t,n)=>{e.queryClient.setQueryData(yh(e.conversationId),e=>kOt(e,t)),e.store.getState().clearPending(n),QMt(e.urls,n),hh(e.queryClient)},tNt=(e,t)=>{let n=COt(t.clientMessageId);e.queryClient.setQueryData(yh(e.conversationId),e=>e?.filter(e=>e.id!==n)??[]),e.store.getState().clearPending(t.clientMessageId),QMt(e.urls,t.clientMessageId),Nf.error(`Couldn't send ${t.fileName}.`)},nNt=e=>{let{sendMediaMessage:t,clock:n}=uh(),r=Hm(),i=ih(),a=bh().data??null,o=(0,y.useRef)(new Map),s=(0,y.useRef)(Promise.resolve()),c={queryClient:r,store:i,viewer:a,conversationId:e,nowIso:()=>n.now().toISOString(),urls:o.current},l=Wm({mutationFn:e=>{let{run:n,next:r}=ZMt(s.current,()=>Zf(t.execute(e)));return s.current=r,n},onMutate:e=>{$Mt(c,e)},onSuccess:(e,t)=>{eNt(c,e,t.clientMessageId)},onError:(e,t)=>{tNt(c,t)}});return{sendMedia:(0,y.useCallback)((t,n,r)=>{let i={conversationId:e,file:t,fileName:t.name,clientMessageId:crypto.randomUUID(),...n!==void 0&&n.trim().length>0?{caption:n}:{},...r===void 0?{}:{replyToMessageId:r}};l.mutate(i)},[e,l]),isSending:l.isPending}},rNt=(e,t)=>{let n=gye(),r=(0,y.useRef)({conversationId:null,upto:0,acknowledge:(e,t)=>{}});r.current.acknowledge=(e,t)=>{n.mutate({conversationId:e,uptoSequence:t})},(0,y.useEffect)(()=>{if(e===null||t===void 0||t.length===0)return;let n=TOt(t),i=r.current;i.conversationId===e&&n<=i.upto||(i.conversationId=e,i.upto=n,i.acknowledge(e,n))},[e,t])},iNt=2e3,aNt=3e3,oNt=e=>{let{realtime:t,logger:n}=uh(),r=ah(e=>e.status===`connected`),i=(0,y.useRef)(0),a=(0,y.useRef)(!1),o=(0,y.useRef)(null),s=(0,y.useCallback)(i=>{e===null||!r||t.invoke(pMt.Typing,e,i).catch(()=>{n.debug(`Typing signal dropped (best-effort)`)})},[e,r,t,n]),c=(0,y.useCallback)(()=>{o.current!==null&&(clearTimeout(o.current),o.current=null)},[]),l=(0,y.useCallback)(()=>{c(),a.current&&(a.current=!1,i.current=0,s(!1))},[c,s]),u=(0,y.useCallback)(()=>{let e=Date.now();(!a.current||e-i.current>iNt)&&(a.current=!0,i.current=e,s(!0)),c(),o.current=setTimeout(l,aNt)},[c,s,l]);return(0,y.useEffect)(()=>l,[e,l]),{onInput:u,stop:l}},sNt=e=>{let{subscribePush:t}=uh();(0,y.useEffect)(()=>{!e||!(`serviceWorker`in navigator)||`PushManager`in window},[e,t])},cNt=()=>{let[e,t]=(0,y.useState)(``),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null);return{text:e,setText:t,replyTo:n,setReplyTo:r,editingMessage:i,setEditingMessage:a}},lNt=({messages:e,send:t,media:n,draft:r,actions:i})=>({messages:e,send:t,media:n,text:r.text,setText:r.setText,replyTo:r.replyTo,setReplyTo:r.setReplyTo,editingMessage:r.editingMessage,startEdit:i.startEdit,clearEditing:i.clearEditing,onReact:i.onReact,onEdit:i.onEdit,onDelete:i.onDelete,onDeleteForMe:i.onDeleteForMe,submit:i.submit,onSendMedia:i.onSendMedia,onTyping:i.onTyping,isSending:t.isSending||n.isSending}),uNt=e=>{let t=bye(e),n=XMt(e),r=nNt(e),i=jye(e),a=Mye(e),o=Nye(e),s=Pye(e),c=NMt(e=>e.hideForMe),l=oNt(e),u=cNt();return sNt(!0),rNt(e,t.data),lNt({messages:t,send:n,media:r,draft:u,actions:{startEdit:e=>{u.setEditingMessage({id:e.id,text:e.text}),u.setText(e.text),u.setReplyTo(null)},clearEditing:()=>{u.setEditingMessage(null),u.setText(``)},onReact:(e,t)=>{i.mutate({messageId:e,emoji:t})},onEdit:(e,t)=>{a.mutate({messageId:e,text:t})},onDelete:e=>{o.mutate(e)},onDeleteForMe:e=>{c(e),s.mutate(e)},submit:()=>{if(u.text.trim().length!==0){if(l.stop(),u.editingMessage!==null){a.mutate({messageId:u.editingMessage.id,text:u.text.trim()}),u.setEditingMessage(null),u.setText(``);return}n.send(u.text,u.replyTo),u.setText(``),u.setReplyTo(null)}},onSendMedia:(e,t)=>{e.forEach((e,n)=>{r.sendMedia(e,n===0?t:void 0,n===0?u.replyTo?.messageId??null:null)}),u.setText(``),u.setReplyTo(null)},onTyping:l.onInput}})},dNt=()=>(0,D.jsxs)(`div`,{className:A.removedComposer,children:[(0,D.jsx)(Mt,{size:15}),(0,D.jsx)(`span`,{children:`You can no longer send messages here — you’re no longer a member of this group.`})]}),fNt=({conversation:e,conversationId:t,active:n,removed:r})=>r?(0,D.jsx)(dNt,{}):(0,D.jsx)(vkt,{conversation:e,conversationId:t,text:n.text,replyTo:n.replyTo,editingMessage:n.editingMessage,isSending:n.isSending,onChange:n.setText,onSubmit:n.submit,onClearReply:()=>{n.setReplyTo(null)},onClearEditing:n.clearEditing,onSendMedia:n.onSendMedia,onTyping:n.onTyping}),pNt=({conversation:e,conversationId:t,actions:n,onRequestDelete:r,onRequestLeave:i})=>{let a=pSe(),o=bh(),{clock:s}=uh(),c=uNt(t),l=WMt(c.messages.data??[],c.onDelete,c.onDeleteForMe,s),u=ah(e=>e.isRemovedFromConversation(t)),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null);return(0,y.useEffect)(()=>{m(null)},[t]),(0,D.jsxs)(`div`,{className:A.view,children:[(0,D.jsx)(HOt,{conversation:e,categories:a.data??[],actions:n,statusPill:(0,D.jsx)(ikt,{}),onManageMembers:()=>{f(!0)},onRequestDelete:r,onRequestLeave:i,selectedMessage:p,onClearSelection:()=>{m(null)},onReply:c.setReplyTo,onStartEdit:c.startEdit,onDelete:l.requestDelete}),(0,D.jsx)(UMt,{conversation:e,viewerId:o.data?.id??``,messages:c.messages,selectedMessageId:p?.id??null,onSelectMessage:e=>{m(t=>t?.id===e.id?null:e)},onReact:c.onReact,onRetry:c.send.retry,onReply:c.setReplyTo,onEdit:c.onEdit,onDelete:l.requestDelete}),(0,D.jsx)(fNt,{conversation:e,conversationId:t,active:c,removed:u}),e.isGroup&&(0,D.jsx)(ekt,{conversation:e,open:d,onClose:()=>{f(!1)}}),(0,D.jsx)(tkt,{...l.dialogProps})]})},mNt=()=>(0,D.jsxs)(`div`,{className:A.viewEmpty,children:[(0,D.jsx)(`div`,{className:A.emptyIconWrap,children:(0,D.jsx)(Mt,{size:32})}),(0,D.jsx)(`h3`,{className:A.emptyTitle,children:`No longer available`}),(0,D.jsx)(`p`,{className:A.emptyText,children:`You no longer have access to this conversation — you may have been removed from the group, or it was deleted. You can no longer read or send messages here.`})]}),hNt=()=>{let e=rd(0),t=rd(0),n=Xse(e,{stiffness:60,damping:20}),r=Xse(t,{stiffness:60,damping:20}),i=id(n,[-1,1],[-25,25]),a=id(r,[-1,1],[-25,25]),o=id(n,[-1,1],[20,-20]),s=id(r,[-1,1],[-15,15]),c=id(n,[-1,1],[-15,15]),l=id(r,[-1,1],[20,-20]);return(0,D.jsxs)(`div`,{className:A.viewEmpty,onMouseMove:n=>{let r=n.currentTarget.getBoundingClientRect(),i=(n.clientX-r.left-r.width/2)/(r.width/2),a=(n.clientY-r.top-r.height/2)/(r.height/2);e.set(i),t.set(a)},onMouseLeave:()=>{e.set(0),t.set(0)},children:[(0,D.jsx)(Zu.div,{className:A.emptyFloating1,style:{x:i,y:a},children:(0,D.jsx)(hn,{size:24})}),(0,D.jsx)(Zu.div,{className:A.emptyFloating2,style:{x:o,y:s},children:(0,D.jsx)(Ln,{size:20})}),(0,D.jsx)(Zu.div,{className:A.emptyFloating3,style:{x:c,y:l},children:(0,D.jsx)(Nn,{size:16})}),(0,D.jsx)(`div`,{className:A.emptyIconWrap,children:(0,D.jsx)(mn,{size:32})}),(0,D.jsx)(`h3`,{className:A.emptyTitle,children:`Your Messages`}),(0,D.jsx)(`p`,{className:A.emptyText,children:`Select a conversation from the sidebar or start a new chat.`})]})},gNt=({conversation:e,conversationId:t,lostAccess:n,actions:r,onRequestDelete:i,onRequestLeave:a})=>{let o=ih();return(0,y.useEffect)(()=>(o.getState().setActiveConversationId(t),()=>{o.getState().setActiveConversationId(null)}),[t,o]),e===void 0||t===null?n?(0,D.jsx)(mNt,{}):(0,D.jsx)(hNt,{}):(0,D.jsx)(Zu.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},transition:{type:`spring`,stiffness:350,damping:28},className:A.viewPaneWrapper,children:(0,D.jsx)(pNt,{conversation:e,conversationId:t,actions:r,onRequestDelete:i,onRequestLeave:a})},t)},_Nt=({mediaUrl:e})=>{let{src:t,isLoading:n,isError:r,onImageError:i}=Fkt(e);return r?(0,D.jsxs)(`div`,{className:A.viewerFallback,children:[(0,D.jsx)(sn,{size:30}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):t===null||n?(0,D.jsx)(rr,{label:`Loading image`}):(0,D.jsx)(`img`,{className:A.viewerImg,src:t,alt:``,onError:i})},vNt=(e,t,n,r)=>{(0,y.useEffect)(()=>{if(!e)return;let i=e=>{e.key===`Escape`?t():e.key===`ArrowRight`?n():e.key===`ArrowLeft`&&r()};return window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`keydown`,i)}},[e,t,n,r])},yNt=()=>{let e=c7(e=>e.open),t=c7(e=>e.urls),n=c7(e=>e.index),r=c7(e=>e.close),i=c7(e=>e.next),a=c7(e=>e.prev),o=co();vNt(e,r,i,a);let s=t[n];if(!e||s===void 0)return null;let c=t.length>1;return(0,b.createPortal)((0,D.jsxs)(`div`,{className:A.viewerBackdrop,role:`dialog`,"aria-modal":`true`,"aria-label":`Image preview`,children:[(0,D.jsx)(`button`,{type:`button`,className:A.viewerScrim,"aria-label":`Close preview`,onClick:r}),(0,D.jsx)(`button`,{type:`button`,className:A.viewerClose,"aria-label":`Close preview`,onClick:r,children:(0,D.jsx)(qn,{size:22})}),c&&(0,D.jsx)(`button`,{type:`button`,className:E(A.viewerNav,A.viewerNavPrev),"aria-label":`Previous image`,disabled:n===0,onClick:a,children:(0,D.jsx)(Ht,{size:26})}),(0,D.jsx)(`div`,{className:A.viewerStage,children:(0,D.jsx)(_Nt,{mediaUrl:s})}),c&&(0,D.jsx)(`button`,{type:`button`,className:E(A.viewerNav,A.viewerNavNext),"aria-label":`Next image`,disabled:n===t.length-1,onClick:i,children:(0,D.jsx)(Ut,{size:26})}),c&&(0,D.jsxs)(`span`,{className:A.viewerCount,children:[n+1,` / `,t.length]})]}),o??document.body)},bNt=()=>{let e=Sye(),t=wye(),n=Cye(),r=Tye(),i=Eye(),a=Dye();return{toggleFavourite:t=>{e.mutate({id:t.id,value:!t.favourite},{onSuccess:()=>{Nf.success(t.favourite?`Removed from Favourites`:`Added to Favourites`)}})},togglePin:e=>{t.mutate({id:e.id,value:!e.pinned},{onSuccess:()=>{Nf.success(e.pinned?`Unpinned`:`Pinned to top`)}})},toggleArchive:e=>{n.mutate({id:e.id,value:!e.archived},{onSuccess:()=>{Nf.success(e.archived?`Chat unarchived`:`Chat archived`)}})},remove:e=>{r.mutate(e,{onSuccess:()=>{Nf.success(`Chat deleted`)}})},leave:e=>{i.mutate(e.id,{onSuccess:()=>{Nf.success(`You left "${e.title}"`)}})},refresh:e=>{a.mutate(e.id,{onSuccess:()=>{Nf.success(`Portal data refreshed`)}})}}},xNt=e=>{let t=ih();(0,y.useEffect)(()=>{let{seedReceipts:n}=t.getState();for(let t of e)n(t.id,t.memberReceipts)},[t,e])},SNt=[],CNt=(e,t,n)=>{let r=mh(e,t),i=mh(e,``),a=iye(),o=r.data??SNt,s=i.data??SNt,c=n??s[0]?.id??o[0]?.id??null,l=oye(c);return xNt(o),{conversations:r,counts:a.data,list:o,activeId:c,active:l.data??o.find(e=>e.id===c),lostAccess:n!==null&&l.isError}},wNt=`/comms/chats`,TNt=(e,t,n)=>{let[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null);return{pendingDelete:r,pendingLeave:a,requestDelete:i,requestLeave:o,confirmDelete:()=>{r!==null&&(e.remove(r.id),r.id===t&&n(wNt)),i(null)},confirmLeave:()=>{a!==null&&(e.leave(a),a.id===t&&n(wNt)),o(null)},cancelDelete:()=>{i(null)},cancelLeave:()=>{o(null)}}},ENt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,DNt=`--`,ONt=e=>e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``),kNt=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return t+`=`.repeat((4-t.length%4)%4)},ANt=e=>{let t=e.replace(/-/g,``),n=``;for(let e=0;e<t.length;e+=2)n+=String.fromCharCode(Number.parseInt(t.slice(e,e+2),16));return ONt(btoa(n))},jNt=e=>{let t;try{t=atob(kNt(e))}catch{return null}if(t.length!==16)return null;let n=``;for(let e=0;e<t.length;e+=1)n+=t.charCodeAt(e).toString(16).padStart(2,`0`);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`},MNt=e=>ENt.test(e)?ANt(e):`~${ONt(btoa(e))}`,NNt=e=>{if(e.startsWith(`~`))try{return atob(kNt(e.slice(1)))}catch{return null}return jNt(e)},PNt=e=>{let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,40);return t.length>0?t:`chat`},FNt=(e,t)=>`/comms/chats/${PNt(t)}${DNt}${MNt(e)}`,INt=e=>{let t=e.indexOf(DNt),n=t>=0?e.slice(t+2):e;return ENt.test(n)?n:NNt(n)},LNt=()=>{let e=Xe(),[t,n]=(0,y.useState)(`all`),[r,i]=(0,y.useState)(``),a=Lye(r,250),{conversationId:o}=Ze(),s=o===void 0?null:INt(o),{conversations:c,counts:l,list:u,activeId:d,active:f,lostAccess:p}=CNt(t,a,s),m=bNt(),h=qe(),g=TNt(m,s,h);return c.isPending?(0,D.jsx)($ye,{}):c.isSuccess?(0,D.jsxs)(`div`,{className:E(A.root,s!==null&&A.hasActiveChat),children:[(0,D.jsx)(Qye,{conversations:u,activeId:d,actions:m,filter:{tab:t,onTabChange:n,search:r,onSearchChange:i,counts:l},hasNextPage:c.hasNextPage,isFetchingNextPage:c.isFetchingNextPage,onLoadMore:c.fetchNextPage,onRequestDelete:g.requestDelete,onSelect:e=>{h(FNt(e,u.find(t=>t.id===e)?.title??``))}}),(0,D.jsx)(gNt,{conversation:f,conversationId:d,lostAccess:p,actions:m,onRequestDelete:g.requestDelete,onRequestLeave:g.requestLeave}),(0,D.jsx)(Hpe,{pendingDelete:g.pendingDelete,pendingLeave:g.pendingLeave,onConfirmDelete:g.confirmDelete,onConfirmLeave:g.confirmLeave,onCancelDelete:g.cancelDelete,onCancelLeave:g.cancelLeave}),(0,D.jsx)(yNt,{}),e]}):(0,D.jsx)(`div`,{className:A.fullCenter,children:(0,D.jsx)(sr,{tone:`error`,title:`Could not load chats`,children:c.error?.message??`Please try again.`})})},RNt=`/comms/chats`,zNt=()=>(0,D.jsxs)(gt,{children:[(0,D.jsxs)(mt,{path:RNt,element:(0,D.jsx)(LNt,{}),children:[(0,D.jsx)(mt,{index:!0,element:null}),(0,D.jsx)(mt,{path:`:conversationId`,element:null})]}),(0,D.jsx)(mt,{path:`*`,element:(0,D.jsx)(pt,{to:RNt,replace:!0})})]}),BNt=c((e=>{var t=v();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot}))(),VNt=`__COMMHUB_SDK_CSS__`,T7,HNt=()=>{let e=globalThis[VNt];return typeof e==`string`?e:``},UNt=()=>typeof CSSStyleSheet==`function`&&typeof CSSStyleSheet.prototype.replaceSync==`function`,WNt=()=>{let e=HNt();if(e===``||!UNt())return[];if(T7===void 0)try{let t=new CSSStyleSheet;t.replaceSync(e),T7=t}catch{T7=null}return T7===null?[]:[T7]},GNt=()=>{let e=HNt();if(e===``)return null;let t=document.createElement(`style`);return t.textContent=e,t},KNt=`commhub-widget-root`;function qNt(e,t,n=[]){if(customElements.get(e))return;class r extends HTMLElement{reactRoot=null;mountPoint;configValue={};static get observedAttributes(){return n}get config(){return this.configValue}set config(e){this.configValue=e,this.render()}constructor(){super();let e=this.attachShadow({mode:`open`}),t=WNt();if(t.length>0)e.adoptedStyleSheets=[...t];else{let t=GNt();t!==null&&e.appendChild(t)}this.mountPoint=document.createElement(`div`),this.mountPoint.className=KNt,e.appendChild(this.mountPoint)}connectedCallback(){this.render()}disconnectedCallback(){let e=this.reactRoot;e!==null&&(this.reactRoot=null,queueMicrotask(()=>{if(this.isConnected){this.reactRoot??=e;return}e.unmount()}))}attributeChangedCallback(){this.reactRoot!==null&&this.render()}render(){this.isConnected&&(this.reactRoot??=(0,BNt.createRoot)(this.mountPoint),this.reactRoot.render(t(this)))}}customElements.define(e,r)}var JNt={notice:`_notice_184jj_6`,title:`_title_184jj_23`,detail:`_detail_184jj_29`},YNt=({tagName:e,detail:t})=>(0,D.jsxs)(`div`,{className:JNt.notice,role:`alert`,children:[(0,D.jsxs)(`strong`,{className:JNt.title,children:[`<`,e,`> could not start: invalid configuration`]}),(0,D.jsx)(`span`,{className:JNt.detail,children:t})]}),XNt=class{entries=new Map;getItem(e){return this.entries.get(e)??null}setItem(e,t){this.entries.set(e,t)}removeItem(e){this.entries.delete(e)}},ZNt=e=>{let t=new nwe({storage:new XNt,logger:e.logger,namespace:e.storageNamespace});return rwe({completeSsoLoginUseCase:new FCe({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),logoutUseCase:new ICe({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),restoreSessionUseCase:new LCe({authGateway:e.authGateway,sessionStore:t,clock:e.clock,logger:e.logger}),refreshSessionUseCase:new RCe({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),setAccessToken:e.setAccessToken,loginUrl:``})},QNt=`sdk_signed`,$Nt=`assertion`,ePt=`CommunicationHub`,tPt=class{httpClient;clock;logger;clientKey;scope;constructor(e){this.httpClient=e.httpClient,this.clock=e.clock,this.logger=e.logger.child(`sdk-signed-gateway`),this.clientKey=e.clientKey,this.scope=[ePt,...e.modules].join(` `)}exchangeSsoSecret(e){return e.trim().length===0||this.clientKey.trim().length===0?Promise.resolve(O(new Uh)):this.requestToken({grant_type:QNt,client_id:this.clientKey,[$Nt]:e,scope:this.scope})}refresh(e){return Promise.resolve(O(new Wh(`sdk_signed re-authenticates with a fresh host assertion, not a refresh token.`)))}signOut(e){return Promise.resolve()}async requestToken(e){try{let t=await this.httpClient.postForm(GCe,e,{anonymous:!0}),n=zCe.safeParse(t);return n.success?Gh(n.data,this.clock.now()):(this.logger.error(`Token endpoint returned an unexpected shape`,n.error),O(new Wh(n.error)))}catch(e){return e instanceof up&&e.isClientError()?(this.logger.warn(`Signed assertion was rejected`,{status:e.status}),O(new Uh)):(this.logger.error(`Failed to exchange signed assertion`,{error:e}),O(new Wh(e)))}}},nPt=class{clock;logger;constructor(e){this.clock=e.clock,this.logger=e.logger.child(`sdk-host-token-gateway`)}exchangeSsoSecret(e){if(e.trim().length===0)return Promise.resolve(O(new Uh));try{let t=UCe(e);if(Xf(t))return this.logger.error(`Invalid JWT token provided by host`,t.error),Promise.resolve(O(new Wh(`Invalid host token provided.`)));let n=t.value.exp;if(typeof n!=`number`)return Promise.resolve(O(new Wh(`Host token missing or invalid exp claim.`)));let r=n-Math.floor(this.clock.now().getTime()/1e3);return r<=0?Promise.resolve(O(new Wh(`Host token is already expired.`))):Promise.resolve(Gh({access_token:e,token_type:`Bearer`,expires_in:r,refresh_token:null},this.clock.now()))}catch(e){return this.logger.error(`Failed to parse host token`,{error:e}),Promise.resolve(O(new Wh(e)))}}refresh(e){return Promise.resolve(O(new Wh(`host-token does not support traditional refresh tokens.`)))}signOut(e){return Promise.resolve()}},E7={feed:`CommunicationHub.Feed`,chat:`CommunicationHub.Chat`,meetings:`CommunicationHub.Meetings`,schedule:`CommunicationHub.Schedule`,users:`CommunicationHub.Users`,accessControl:`CommunicationHub.AccessControl`,usage:`CommunicationHub.Usage`,groupCategories:`CommunicationHub.GroupCategories`,webhooks:`CommunicationHub.Webhooks`,promotions:`CommunicationHub.Promotions`,orgSettings:`CommunicationHub.OrgSettings`,orgAccess:`CommunicationHub.OrgAccess`,feedPreference:`CommunicationHub.FeedPreference`,apiKeys:`CommunicationHub.SdkClients`},rPt=class extends Yn{},iPt=class extends rPt{code=`MODULE_ACCESS_UNAVAILABLE`;constructor(e){super(`Your menu access could not be loaded. Please try again.`,{cause:e})}},aPt=[`commhub.chat`,`commhub.bookings`,`commhub.schedule`,`commhub.feed`],D7={"commhub.chat":E7.chat,"commhub.feed":E7.feed,"commhub.schedule":E7.schedule,"commhub.bookings":E7.meetings},oPt=e=>Object.hasOwn(D7,e),sPt=e=>aPt.filter(t=>e.has(D7[t])),cPt=(e,t)=>e.filter(e=>!t.has(D7[e])),lPt=1e4,uPt=1e3,dPt=6e4,fPt=class{deps;timer=null;unwatch=null;started=!1;disposed=!1;inFlight=!1;failures=0;authenticated=!1;constructor(e){this.deps=e}start(){this.started||this.isDisposed()||(this.started=!0,this.watchSession(),this.run())}isDisposed(){return this.disposed}dispose(){this.disposed=!0,this.clearTimer(),this.unwatch?.(),this.unwatch=null}async run(){if(!(this.isDisposed()||this.inFlight)){this.inFlight=!0;try{let e=await this.deps.requestCredential(),t=await this.deps.authStore.getState().completeLogin(e);if(this.isDisposed())return;if(t){await this.onAuthenticated();return}this.onExpired()}catch(e){if(this.isDisposed())return;let t=e instanceof Error?e.message:String(e);this.deps.logger.error(`SDK handshake failed`,{error:e}),this.deps.emit({type:`error`,payload:{code:`HANDSHAKE_FAILED`,message:t}}),this.scheduleRetry()}finally{this.inFlight=!1}}}async onAuthenticated(){this.failures=0,this.authenticated=!0;let e=await this.deps.moduleAccessModule.getModuleAccess.execute();if(!this.isDisposed()){if(e.ok){let t=e.value.grantedModules;this.deps.emit({type:`ready`,payload:{apiVersion:`1.0`,modules:sPt(t)}});let n=cPt(this.deps.requestedModules,t);n.length>0&&this.deps.emit({type:`scope-denied`,payload:{required:[...n],granted:sPt(t)}})}this.scheduleRenewal()}}onExpired(){(this.authenticated||this.failures===0)&&this.deps.emit({type:`auth-expired`,payload:{}}),this.authenticated=!1,this.scheduleRetry()}scheduleRetry(){let e=Math.min(dPt,uPt*2**this.failures);this.failures+=1,this.scheduleAt(e)}scheduleRenewal(){if(!this.deps.renewable)return;let e=this.deps.authStore.getState().session;if(!e)return;let t=e.expiresAt.getTime()-Date.now();this.scheduleAt(Math.max(0,t-lPt))}scheduleAt(e){this.clearTimer(),!this.isDisposed()&&(this.timer=setTimeout(()=>{this.timer=null,this.run()},e))}clearTimer(){this.timer!==null&&(clearTimeout(this.timer),this.timer=null)}watchSession(){this.unwatch=this.deps.authStore.subscribe(e=>{this.inFlight||e.status===`unauthenticated`&&this.authenticated&&(this.deps.logger.warn(`SDK session expired mid-session; re-handshaking`),this.onExpired())})}},pPt=class{createRunner;eventListeners=new Set;statusListeners=new Set;runner=null;currentStatus=`pending`;constructor(e){this.createRunner=e}get status(){return this.currentStatus}attach(e){let t=e;t!==void 0&&this.eventListeners.add(t),this.runner??=this.createRunner(e=>{this.emit(e)}),this.runner.start();let n=!1;return()=>{n||(n=!0,t!==void 0&&this.eventListeners.delete(t),this.eventListeners.size===0&&this.statusListeners.size===0&&(this.runner?.dispose(),this.runner=null,this.setStatus(`pending`)))}}subscribeStatus(e){return this.statusListeners.add(e),()=>{this.statusListeners.delete(e)}}dispose(){this.runner?.dispose(),this.runner=null,this.eventListeners.clear(),this.statusListeners.clear(),this.currentStatus=`pending`}emit(e){e.type===`ready`?this.setStatus(`ready`):e.type===`error`?this.setStatus(`failed`):e.type===`auth-expired`&&this.setStatus(`pending`);for(let t of[...this.eventListeners])t(e)}setStatus(e){if(this.currentStatus!==e){this.currentStatus=e;for(let e of[...this.statusListeners])e()}}},O7=class extends Error{constructor(e,t){let n=new.target.prototype;super(`${e}: Status code '${t}'`),this.statusCode=t,this.__proto__=n}},mPt=class extends Error{constructor(e=`A timeout occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},k7=class extends Error{constructor(e=`An abort occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},hPt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`UnsupportedTransportError`,this.__proto__=n}},gPt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`DisabledTransportError`,this.__proto__=n}},_Pt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`FailedToStartTransportError`,this.__proto__=n}},vPt=class extends Error{constructor(e){let t=new.target.prototype;super(e),this.errorType=`FailedToNegotiateWithServerError`,this.__proto__=t}},yPt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.innerErrors=t,this.__proto__=n}},bPt=class{constructor(e,t,n){this.statusCode=e,this.statusText=t,this.content=n}},A7=class{get(e,t){return this.send({...t,method:`GET`,url:e})}post(e,t){return this.send({...t,method:`POST`,url:e})}delete(e,t){return this.send({...t,method:`DELETE`,url:e})}getCookieString(e){return``}},j7;(function(e){e[e.Trace=0]=`Trace`,e[e.Debug=1]=`Debug`,e[e.Information=2]=`Information`,e[e.Warning=3]=`Warning`,e[e.Error=4]=`Error`,e[e.Critical=5]=`Critical`,e[e.None=6]=`None`})(j7||={});var M7=class{constructor(){}log(e,t){}};M7.instance=new M7;var xPt=`10.0.0`,N7=class{static isRequired(e,t){if(e==null)throw Error(`The '${t}' argument is required.`)}static isNotEmpty(e,t){if(!e||e.match(/^\s*$/))throw Error(`The '${t}' argument should not be empty.`)}static isIn(e,t,n){if(!(e in t))throw Error(`Unknown ${n} value: ${e}.`)}},P7=class e{static get isBrowser(){return!e.isNode&&typeof window==`object`&&typeof window.document==`object`}static get isWebWorker(){return!e.isNode&&typeof self==`object`&&`importScripts`in self}static get isReactNative(){return!e.isNode&&typeof window==`object`&&window.document===void 0}static get isNode(){return typeof process<`u`&&process.release&&process.release.name===`node`}};function F7(e,t){let n=``;return I7(e)?(n=`Binary data of length ${e.byteLength}`,t&&(n+=`. Content: '${SPt(e)}'`)):typeof e==`string`&&(n=`String data of length ${e.length}`,t&&(n+=`. Content: '${e}'`)),n}function SPt(e){let t=new Uint8Array(e),n=``;return t.forEach(e=>{n+=`0x${e<16?`0`:``}${e.toString(16)} `}),n.substring(0,n.length-1)}function I7(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor&&e.constructor.name===`ArrayBuffer`)}async function CPt(e,t,n,r,i,a){let o={},[s,c]=R7();o[s]=c,e.log(j7.Trace,`(${t} transport) sending data. ${F7(i,a.logMessageContent)}.`);let l=I7(i)?`arraybuffer`:`text`,u=await n.post(r,{content:i,headers:{...o,...a.headers},responseType:l,timeout:a.timeout,withCredentials:a.withCredentials});e.log(j7.Trace,`(${t} transport) request complete. Response status: ${u.statusCode}.`)}function wPt(e){return e===void 0?new L7(j7.Information):e===null?M7.instance:e.log===void 0?new L7(e):e}var TPt=class{constructor(e,t){this._subject=e,this._observer=t}dispose(){let e=this._subject.observers.indexOf(this._observer);e>-1&&this._subject.observers.splice(e,1),this._subject.observers.length===0&&this._subject.cancelCallback&&this._subject.cancelCallback().catch(e=>{})}},L7=class{constructor(e){this._minLevel=e,this.out=console}log(e,t){if(e>=this._minLevel){let n=`[${new Date().toISOString()}] ${j7[e]}: ${t}`;switch(e){case j7.Critical:case j7.Error:this.out.error(n);break;case j7.Warning:this.out.warn(n);break;case j7.Information:this.out.info(n);break;default:this.out.log(n);break}}}};function R7(){let e=`X-SignalR-User-Agent`;return P7.isNode&&(e=`User-Agent`),[e,EPt(xPt,DPt(),kPt(),OPt())]}function EPt(e,t,n,r){let i=`Microsoft SignalR/`,a=e.split(`.`);return i+=`${a[0]}.${a[1]}`,i+=` (${e}; `,t&&t!==``?i+=`${t}; `:i+=`Unknown OS; `,i+=`${n}`,r?i+=`; ${r}`:i+=`; Unknown Runtime Version`,i+=`)`,i}function DPt(){if(P7.isNode)switch(process.platform){case`win32`:return`Windows NT`;case`darwin`:return`macOS`;case`linux`:return`Linux`;default:return process.platform}else return``}function OPt(){if(P7.isNode)return process.versions.node}function kPt(){return P7.isNode?`NodeJS`:`Browser`}function APt(e){return e.stack?e.stack:e.message?e.message:`${e}`}function jPt(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`could not find global`)}var MPt=class extends A7{constructor(e){if(super(),this._logger=e,typeof fetch>`u`||P7.isNode){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;this._jar=new(e(`tough-cookie`)).CookieJar,typeof fetch>`u`?this._fetchType=e(`node-fetch`):this._fetchType=fetch,this._fetchType=e(`fetch-cookie`)(this._fetchType,this._jar)}else this._fetchType=fetch.bind(jPt());if(typeof AbortController>`u`){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;this._abortControllerType=e(`abort-controller`)}else this._abortControllerType=AbortController}async send(e){if(e.abortSignal&&e.abortSignal.aborted)throw new k7;if(!e.method)throw Error(`No method defined.`);if(!e.url)throw Error(`No url defined.`);let t=new this._abortControllerType,n;e.abortSignal&&(e.abortSignal.onabort=()=>{t.abort(),n=new k7});let r=null;if(e.timeout){let i=e.timeout;r=setTimeout(()=>{t.abort(),this._logger.log(j7.Warning,`Timeout from HTTP request.`),n=new mPt},i)}e.content===``&&(e.content=void 0),e.content&&(e.headers=e.headers||{},I7(e.content)?e.headers[`Content-Type`]=`application/octet-stream`:e.headers[`Content-Type`]=`text/plain;charset=UTF-8`);let i;try{i=await this._fetchType(e.url,{body:e.content,cache:`no-cache`,credentials:e.withCredentials===!0?`include`:`same-origin`,headers:{"X-Requested-With":`XMLHttpRequest`,...e.headers},method:e.method,mode:`cors`,redirect:`follow`,signal:t.signal})}catch(e){throw n||(this._logger.log(j7.Warning,`Error from HTTP request. ${e}.`),e)}finally{r&&clearTimeout(r),e.abortSignal&&(e.abortSignal.onabort=null)}if(!i.ok)throw new O7(await NPt(i,`text`)||i.statusText,i.status);let a=await NPt(i,e.responseType);return new bPt(i.status,i.statusText,a)}getCookieString(e){let t=``;return P7.isNode&&this._jar&&this._jar.getCookies(e,(e,n)=>t=n.join(`; `)),t}};function NPt(e,t){let n;switch(t){case`arraybuffer`:n=e.arrayBuffer();break;case`text`:n=e.text();break;case`blob`:case`document`:case`json`:throw Error(`${t} is not supported.`);default:n=e.text();break}return n}var PPt=class extends A7{constructor(e){super(),this._logger=e}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new k7):e.method?e.url?new Promise((t,n)=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),r.withCredentials=e.withCredentials===void 0?!0:e.withCredentials,r.setRequestHeader(`X-Requested-With`,`XMLHttpRequest`),e.content===``&&(e.content=void 0),e.content&&(I7(e.content)?r.setRequestHeader(`Content-Type`,`application/octet-stream`):r.setRequestHeader(`Content-Type`,`text/plain;charset=UTF-8`));let i=e.headers;i&&Object.keys(i).forEach(e=>{r.setRequestHeader(e,i[e])}),e.responseType&&(r.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=()=>{r.abort(),n(new k7)}),e.timeout&&(r.timeout=e.timeout),r.onload=()=>{e.abortSignal&&(e.abortSignal.onabort=null),r.status>=200&&r.status<300?t(new bPt(r.status,r.statusText,r.response||r.responseText)):n(new O7(r.response||r.responseText||r.statusText,r.status))},r.onerror=()=>{this._logger.log(j7.Warning,`Error from HTTP request. ${r.status}: ${r.statusText}.`),n(new O7(r.statusText,r.status))},r.ontimeout=()=>{this._logger.log(j7.Warning,`Timeout from HTTP request.`),n(new mPt)},r.send(e.content)}):Promise.reject(Error(`No url defined.`)):Promise.reject(Error(`No method defined.`))}},FPt=class extends A7{constructor(e){if(super(),typeof fetch<`u`||P7.isNode)this._httpClient=new MPt(e);else if(typeof XMLHttpRequest<`u`)this._httpClient=new PPt(e);else throw Error(`No usable HttpClient found.`)}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new k7):e.method?e.url?this._httpClient.send(e):Promise.reject(Error(`No url defined.`)):Promise.reject(Error(`No method defined.`))}getCookieString(e){return this._httpClient.getCookieString(e)}},z7=class e{static write(t){return`${t}${e.RecordSeparator}`}static parse(t){if(t[t.length-1]!==e.RecordSeparator)throw Error(`Message is incomplete.`);let n=t.split(e.RecordSeparator);return n.pop(),n}};z7.RecordSeparatorCode=30,z7.RecordSeparator=String.fromCharCode(z7.RecordSeparatorCode);var IPt=class{writeHandshakeRequest(e){return z7.write(JSON.stringify(e))}parseHandshakeResponse(e){let t,n;if(I7(e)){let r=new Uint8Array(e),i=r.indexOf(z7.RecordSeparatorCode);if(i===-1)throw Error(`Message is incomplete.`);let a=i+1;t=String.fromCharCode.apply(null,Array.prototype.slice.call(r.slice(0,a))),n=r.byteLength>a?r.slice(a).buffer:null}else{let r=e,i=r.indexOf(z7.RecordSeparator);if(i===-1)throw Error(`Message is incomplete.`);let a=i+1;t=r.substring(0,a),n=r.length>a?r.substring(a):null}let r=z7.parse(t),i=JSON.parse(r[0]);if(i.type)throw Error(`Expected a handshake response from the server.`);return[n,i]}},B7;(function(e){e[e.Invocation=1]=`Invocation`,e[e.StreamItem=2]=`StreamItem`,e[e.Completion=3]=`Completion`,e[e.StreamInvocation=4]=`StreamInvocation`,e[e.CancelInvocation=5]=`CancelInvocation`,e[e.Ping=6]=`Ping`,e[e.Close=7]=`Close`,e[e.Ack=8]=`Ack`,e[e.Sequence=9]=`Sequence`})(B7||={});var LPt=class{constructor(){this.observers=[]}next(e){for(let t of this.observers)t.next(e)}error(e){for(let t of this.observers)t.error&&t.error(e)}complete(){for(let e of this.observers)e.complete&&e.complete()}subscribe(e){return this.observers.push(e),new TPt(this,e)}},RPt=class{constructor(e,t,n){this._bufferSize=1e5,this._messages=[],this._totalMessageCount=0,this._waitForSequenceMessage=!1,this._nextReceivingSequenceId=1,this._latestReceivedSequenceId=0,this._bufferedByteCount=0,this._reconnectInProgress=!1,this._protocol=e,this._connection=t,this._bufferSize=n}async _send(e){let t=this._protocol.writeMessage(e),n=Promise.resolve();if(this._isInvocationMessage(e)){this._totalMessageCount++;let e=()=>{},r=()=>{};I7(t)?this._bufferedByteCount+=t.byteLength:this._bufferedByteCount+=t.length,this._bufferedByteCount>=this._bufferSize&&(n=new Promise((t,n)=>{e=t,r=n})),this._messages.push(new zPt(t,this._totalMessageCount,e,r))}try{this._reconnectInProgress||await this._connection.send(t)}catch{this._disconnected()}await n}_ack(e){let t=-1;for(let n=0;n<this._messages.length;n++){let r=this._messages[n];if(r._id<=e.sequenceId)t=n,I7(r._message)?this._bufferedByteCount-=r._message.byteLength:this._bufferedByteCount-=r._message.length,r._resolver();else if(this._bufferedByteCount<this._bufferSize)r._resolver();else break}t!==-1&&(this._messages=this._messages.slice(t+1))}_shouldProcessMessage(e){if(this._waitForSequenceMessage)return e.type===B7.Sequence?(this._waitForSequenceMessage=!1,!0):!1;if(!this._isInvocationMessage(e))return!0;let t=this._nextReceivingSequenceId;return this._nextReceivingSequenceId++,t<=this._latestReceivedSequenceId?(t===this._latestReceivedSequenceId&&this._ackTimer(),!1):(this._latestReceivedSequenceId=t,this._ackTimer(),!0)}_resetSequence(e){if(e.sequenceId>this._nextReceivingSequenceId){this._connection.stop(Error(`Sequence ID greater than amount of messages we've received.`));return}this._nextReceivingSequenceId=e.sequenceId}_disconnected(){this._reconnectInProgress=!0,this._waitForSequenceMessage=!0}async _resend(){let e=this._messages.length===0?this._totalMessageCount+1:this._messages[0]._id;await this._connection.send(this._protocol.writeMessage({type:B7.Sequence,sequenceId:e}));let t=this._messages;for(let e of t)await this._connection.send(e._message);this._reconnectInProgress=!1}_dispose(e){e??=Error(`Unable to reconnect to server.`);for(let t of this._messages)t._rejector(e)}_isInvocationMessage(e){switch(e.type){case B7.Invocation:case B7.StreamItem:case B7.Completion:case B7.StreamInvocation:case B7.CancelInvocation:return!0;case B7.Close:case B7.Sequence:case B7.Ping:case B7.Ack:return!1}}_ackTimer(){this._ackTimerHandle===void 0&&(this._ackTimerHandle=setTimeout(async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:B7.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0},1e3))}},zPt=class{constructor(e,t,n,r){this._message=e,this._id=t,this._resolver=n,this._rejector=r}},BPt=30*1e3,VPt=15*1e3,HPt=1e5,V7;(function(e){e.Disconnected=`Disconnected`,e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Reconnecting=`Reconnecting`})(V7||={});var UPt=class e{static create(t,n,r,i,a,o,s){return new e(t,n,r,i,a,o,s)}constructor(e,t,n,r,i,a,o){this._nextKeepAlive=0,this._freezeEventListener=()=>{this._logger.log(j7.Warning,`The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep`)},N7.isRequired(e,`connection`),N7.isRequired(t,`logger`),N7.isRequired(n,`protocol`),this.serverTimeoutInMilliseconds=i??BPt,this.keepAliveIntervalInMilliseconds=a??VPt,this._statefulReconnectBufferSize=o??HPt,this._logger=t,this._protocol=n,this.connection=e,this._reconnectPolicy=r,this._handshakeProtocol=new IPt,this.connection.onreceive=e=>this._processIncomingData(e),this.connection.onclose=e=>this._connectionClosed(e),this._callbacks={},this._methods={},this._closedCallbacks=[],this._reconnectingCallbacks=[],this._reconnectedCallbacks=[],this._invocationId=0,this._receivedHandshakeResponse=!1,this._connectionState=V7.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:B7.Ping})}get state(){return this._connectionState}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||``}set baseUrl(e){if(this._connectionState!==V7.Disconnected&&this._connectionState!==V7.Reconnecting)throw Error(`The HubConnection must be in the Disconnected or Reconnecting state to change the url.`);if(!e)throw Error(`The HubConnection url must be a valid url.`);this.connection.baseUrl=e}start(){return this._startPromise=this._startWithStateTransitions(),this._startPromise}async _startWithStateTransitions(){if(this._connectionState!==V7.Disconnected)return Promise.reject(Error(`Cannot start a HubConnection that is not in the 'Disconnected' state.`));this._connectionState=V7.Connecting,this._logger.log(j7.Debug,`Starting HubConnection.`);try{await this._startInternal(),P7.isBrowser&&window.document.addEventListener(`freeze`,this._freezeEventListener),this._connectionState=V7.Connected,this._connectionStarted=!0,this._logger.log(j7.Debug,`HubConnection connected successfully.`)}catch(e){return this._connectionState=V7.Disconnected,this._logger.log(j7.Debug,`HubConnection failed to start successfully because of error '${e}'.`),Promise.reject(e)}}async _startInternal(){this._stopDuringStartError=void 0,this._receivedHandshakeResponse=!1;let e=new Promise((e,t)=>{this._handshakeResolver=e,this._handshakeRejecter=t});await this.connection.start(this._protocol.transferFormat);try{let t=this._protocol.version;this.connection.features.reconnect||(t=1);let n={protocol:this._protocol.name,version:t};if(this._logger.log(j7.Debug,`Sending handshake request.`),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(n)),this._logger.log(j7.Information,`Using HubProtocol '${this._protocol.name}'.`),this._cleanupTimeout(),this._resetTimeoutPeriod(),this._resetKeepAliveInterval(),await e,this._stopDuringStartError)throw this._stopDuringStartError;this.connection.features.reconnect&&(this._messageBuffer=new RPt(this._protocol,this.connection,this._statefulReconnectBufferSize),this.connection.features.disconnected=this._messageBuffer._disconnected.bind(this._messageBuffer),this.connection.features.resend=()=>{if(this._messageBuffer)return this._messageBuffer._resend()}),this.connection.features.inherentKeepAlive||await this._sendMessage(this._cachedPingMessage)}catch(e){throw this._logger.log(j7.Debug,`Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`),this._cleanupTimeout(),this._cleanupPingTimer(),await this.connection.stop(e),e}}async stop(){let e=this._startPromise;this.connection.features.reconnect=!1,this._stopPromise=this._stopInternal(),await this._stopPromise;try{await e}catch{}}_stopInternal(e){if(this._connectionState===V7.Disconnected)return this._logger.log(j7.Debug,`Call to HubConnection.stop(${e}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===V7.Disconnecting)return this._logger.log(j7.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;let t=this._connectionState;return this._connectionState=V7.Disconnecting,this._logger.log(j7.Debug,`Stopping HubConnection.`),this._reconnectDelayHandle?(this._logger.log(j7.Debug,`Connection stopped during reconnect delay. Done reconnecting.`),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(t===V7.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=e||new k7(`The connection was stopped before the hub handshake could complete.`),this.connection.stop(e))}async _sendCloseMessage(){try{await this._sendWithProtocol(this._createCloseMessage())}catch{}}stream(e,...t){let[n,r]=this._replaceStreamingParams(t),i=this._createStreamInvocation(e,t,r),a,o=new LPt;return o.cancelCallback=()=>{let e=this._createCancelInvocation(i.invocationId);return delete this._callbacks[i.invocationId],a.then(()=>this._sendWithProtocol(e))},this._callbacks[i.invocationId]=(e,t)=>{if(t){o.error(t);return}else e&&(e.type===B7.Completion?e.error?o.error(Error(e.error)):o.complete():o.next(e.item))},a=this._sendWithProtocol(i).catch(e=>{o.error(e),delete this._callbacks[i.invocationId]}),this._launchStreams(n,a),o}_sendMessage(e){return this._resetKeepAliveInterval(),this.connection.send(e)}_sendWithProtocol(e){return this._messageBuffer?this._messageBuffer._send(e):this._sendMessage(this._protocol.writeMessage(e))}send(e,...t){let[n,r]=this._replaceStreamingParams(t),i=this._sendWithProtocol(this._createInvocation(e,t,!0,r));return this._launchStreams(n,i),i}invoke(e,...t){let[n,r]=this._replaceStreamingParams(t),i=this._createInvocation(e,t,!1,r);return new Promise((e,t)=>{this._callbacks[i.invocationId]=(n,r)=>{if(r){t(r);return}else n&&(n.type===B7.Completion?n.error?t(Error(n.error)):e(n.result):t(Error(`Unexpected message type: ${n.type}`)))};let r=this._sendWithProtocol(i).catch(e=>{t(e),delete this._callbacks[i.invocationId]});this._launchStreams(n,r)})}on(e,t){!e||!t||(e=e.toLowerCase(),this._methods[e]||(this._methods[e]=[]),this._methods[e].indexOf(t)===-1&&this._methods[e].push(t))}off(e,t){if(!e)return;e=e.toLowerCase();let n=this._methods[e];if(n)if(t){let r=n.indexOf(t);r!==-1&&(n.splice(r,1),n.length===0&&delete this._methods[e])}else delete this._methods[e]}onclose(e){e&&this._closedCallbacks.push(e)}onreconnecting(e){e&&this._reconnectingCallbacks.push(e)}onreconnected(e){e&&this._reconnectedCallbacks.push(e)}_processIncomingData(e){if(this._cleanupTimeout(),this._receivedHandshakeResponse||=(e=this._processHandshakeResponse(e),!0),e){let t=this._protocol.parseMessages(e,this._logger);for(let e of t)if(!(this._messageBuffer&&!this._messageBuffer._shouldProcessMessage(e)))switch(e.type){case B7.Invocation:this._invokeClientMethod(e).catch(e=>{this._logger.log(j7.Error,`Invoke client method threw error: ${APt(e)}`)});break;case B7.StreamItem:case B7.Completion:{let t=this._callbacks[e.invocationId];if(t){e.type===B7.Completion&&delete this._callbacks[e.invocationId];try{t(e)}catch(e){this._logger.log(j7.Error,`Stream callback threw error: ${APt(e)}`)}}break}case B7.Ping:break;case B7.Close:{this._logger.log(j7.Information,`Close message received from server.`);let t=e.error?Error(`Server returned an error on close: `+e.error):void 0;e.allowReconnect===!0?this.connection.stop(t):this._stopPromise=this._stopInternal(t);break}case B7.Ack:this._messageBuffer&&this._messageBuffer._ack(e);break;case B7.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(e);break;default:this._logger.log(j7.Warning,`Invalid message type: ${e.type}.`);break}}this._resetTimeoutPeriod()}_processHandshakeResponse(e){let t,n;try{[n,t]=this._handshakeProtocol.parseHandshakeResponse(e)}catch(e){let t=`Error parsing handshake response: `+e;this._logger.log(j7.Error,t);let n=Error(t);throw this._handshakeRejecter(n),n}if(t.error){let e=`Server returned handshake error: `+t.error;this._logger.log(j7.Error,e);let n=Error(e);throw this._handshakeRejecter(n),n}else this._logger.log(j7.Debug,`Server handshake complete.`);return this._handshakeResolver(),n}_resetKeepAliveInterval(){this.connection.features.inherentKeepAlive||(this._nextKeepAlive=new Date().getTime()+this.keepAliveIntervalInMilliseconds,this._cleanupPingTimer())}_resetTimeoutPeriod(){if(!this.connection.features||!this.connection.features.inherentKeepAlive){this._timeoutHandle=setTimeout(()=>this.serverTimeout(),this.serverTimeoutInMilliseconds);let e=this._nextKeepAlive-new Date().getTime();if(e<0){this._connectionState===V7.Connected&&this._trySendPingMessage();return}this._pingServerHandle===void 0&&(e<0&&(e=0),this._pingServerHandle=setTimeout(async()=>{this._connectionState===V7.Connected&&await this._trySendPingMessage()},e))}}serverTimeout(){this.connection.stop(Error(`Server timeout elapsed without receiving a message from the server.`))}async _invokeClientMethod(e){let t=e.target.toLowerCase(),n=this._methods[t];if(!n){this._logger.log(j7.Warning,`No client method with the name '${t}' found.`),e.invocationId&&(this._logger.log(j7.Warning,`No result given for '${t}' method and invocation ID '${e.invocationId}'.`),await this._sendWithProtocol(this._createCompletionMessage(e.invocationId,`Client didn't provide a result.`,null)));return}let r=n.slice(),i=!!e.invocationId,a,o,s;for(let n of r)try{let r=a;a=await n.apply(this,e.arguments),i&&a&&r&&(this._logger.log(j7.Error,`Multiple results provided for '${t}'. Sending error to server.`),s=this._createCompletionMessage(e.invocationId,`Client provided multiple results.`,null)),o=void 0}catch(e){o=e,this._logger.log(j7.Error,`A callback for the method '${t}' threw error '${e}'.`)}s?await this._sendWithProtocol(s):i?(o?s=this._createCompletionMessage(e.invocationId,`${o}`,null):a===void 0?(this._logger.log(j7.Warning,`No result given for '${t}' method and invocation ID '${e.invocationId}'.`),s=this._createCompletionMessage(e.invocationId,`Client didn't provide a result.`,null)):s=this._createCompletionMessage(e.invocationId,null,a),await this._sendWithProtocol(s)):a&&this._logger.log(j7.Error,`Result given for '${t}' method but server is not expecting a result.`)}_connectionClosed(e){this._logger.log(j7.Debug,`HubConnection.connectionClosed(${e}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||e||new k7(`The underlying connection was closed before the hub handshake could complete.`),this._handshakeResolver&&this._handshakeResolver(),this._cancelCallbacksWithError(e||Error(`Invocation canceled due to the underlying connection being closed.`)),this._cleanupTimeout(),this._cleanupPingTimer(),this._connectionState===V7.Disconnecting?this._completeClose(e):this._connectionState===V7.Connected&&this._reconnectPolicy?this._reconnect(e):this._connectionState===V7.Connected&&this._completeClose(e)}_completeClose(e){if(this._connectionStarted){this._connectionState=V7.Disconnected,this._connectionStarted=!1,this._messageBuffer&&=(this._messageBuffer._dispose(e??Error(`Connection closed.`)),void 0),P7.isBrowser&&window.document.removeEventListener(`freeze`,this._freezeEventListener);try{this._closedCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(j7.Error,`An onclose callback called with error '${e}' threw error '${t}'.`)}}}async _reconnect(e){let t=Date.now(),n=0,r=e===void 0?Error(`Attempting to reconnect due to a unknown error.`):e,i=this._getNextRetryDelay(n,0,r);if(i===null){this._logger.log(j7.Debug,`Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.`),this._completeClose(e);return}if(this._connectionState=V7.Reconnecting,e?this._logger.log(j7.Information,`Connection reconnecting because of error '${e}'.`):this._logger.log(j7.Information,`Connection reconnecting.`),this._reconnectingCallbacks.length!==0){try{this._reconnectingCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(j7.Error,`An onreconnecting callback called with error '${e}' threw error '${t}'.`)}if(this._connectionState!==V7.Reconnecting){this._logger.log(j7.Debug,`Connection left the reconnecting state in onreconnecting callback. Done reconnecting.`);return}}for(;i!==null;){if(this._logger.log(j7.Information,`Reconnect attempt number ${n+1} will start in ${i} ms.`),await new Promise(e=>{this._reconnectDelayHandle=setTimeout(e,i)}),this._reconnectDelayHandle=void 0,this._connectionState!==V7.Reconnecting){this._logger.log(j7.Debug,`Connection left the reconnecting state during reconnect delay. Done reconnecting.`);return}try{if(await this._startInternal(),this._connectionState=V7.Connected,this._logger.log(j7.Information,`HubConnection reconnected successfully.`),this._reconnectedCallbacks.length!==0)try{this._reconnectedCallbacks.forEach(e=>e.apply(this,[this.connection.connectionId]))}catch(e){this._logger.log(j7.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`)}return}catch(e){if(this._logger.log(j7.Information,`Reconnect attempt failed because of error '${e}'.`),this._connectionState!==V7.Reconnecting){this._logger.log(j7.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),this._connectionState===V7.Disconnecting&&this._completeClose();return}n++,r=e instanceof Error?e:Error(e.toString()),i=this._getNextRetryDelay(n,Date.now()-t,r)}}this._logger.log(j7.Information,`Reconnect retries have been exhausted after ${Date.now()-t} ms and ${n} failed attempts. Connection disconnecting.`),this._completeClose()}_getNextRetryDelay(e,t,n){try{return this._reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:t,previousRetryCount:e,retryReason:n})}catch(n){return this._logger.log(j7.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${e}, ${t}) threw error '${n}'.`),null}}_cancelCallbacksWithError(e){let t=this._callbacks;this._callbacks={},Object.keys(t).forEach(n=>{let r=t[n];try{r(null,e)}catch(t){this._logger.log(j7.Error,`Stream 'error' callback called with '${e}' threw error: ${APt(t)}`)}})}_cleanupPingTimer(){this._pingServerHandle&&=(clearTimeout(this._pingServerHandle),void 0)}_cleanupTimeout(){this._timeoutHandle&&clearTimeout(this._timeoutHandle)}_createInvocation(e,t,n,r){if(n)return r.length===0?{target:e,arguments:t,type:B7.Invocation}:{target:e,arguments:t,streamIds:r,type:B7.Invocation};{let n=this._invocationId;return this._invocationId++,r.length===0?{target:e,arguments:t,invocationId:n.toString(),type:B7.Invocation}:{target:e,arguments:t,invocationId:n.toString(),streamIds:r,type:B7.Invocation}}}_launchStreams(e,t){if(e.length!==0){t||=Promise.resolve();for(let n in e)e[n].subscribe({complete:()=>{t=t.then(()=>this._sendWithProtocol(this._createCompletionMessage(n)))},error:e=>{let r;r=e instanceof Error?e.message:e&&e.toString?e.toString():`Unknown error`,t=t.then(()=>this._sendWithProtocol(this._createCompletionMessage(n,r)))},next:e=>{t=t.then(()=>this._sendWithProtocol(this._createStreamItemMessage(n,e)))}})}}_replaceStreamingParams(e){let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r];if(this._isObservable(i)){let a=this._invocationId;this._invocationId++,t[a]=i,n.push(a.toString()),e.splice(r,1)}}return[t,n]}_isObservable(e){return e&&e.subscribe&&typeof e.subscribe==`function`}_createStreamInvocation(e,t,n){let r=this._invocationId;return this._invocationId++,n.length===0?{target:e,arguments:t,invocationId:r.toString(),type:B7.StreamInvocation}:{target:e,arguments:t,invocationId:r.toString(),streamIds:n,type:B7.StreamInvocation}}_createCancelInvocation(e){return{invocationId:e,type:B7.CancelInvocation}}_createStreamItemMessage(e,t){return{invocationId:e,item:t,type:B7.StreamItem}}_createCompletionMessage(e,t,n){return t?{error:t,invocationId:e,type:B7.Completion}:{invocationId:e,result:n,type:B7.Completion}}_createCloseMessage(){return{type:B7.Close}}async _trySendPingMessage(){try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}}},WPt=[0,2e3,1e4,3e4,null],GPt=class{constructor(e){this._retryDelays=e===void 0?WPt:[...e,null]}nextRetryDelayInMilliseconds(e){return this._retryDelays[e.previousRetryCount]}},H7=class{};H7.Authorization=`Authorization`,H7.Cookie=`Cookie`;var KPt=class extends A7{constructor(e,t){super(),this._innerClient=e,this._accessTokenFactory=t}async send(e){let t=!0;this._accessTokenFactory&&(!this._accessToken||e.url&&e.url.indexOf(`/negotiate?`)>0)&&(t=!1,this._accessToken=await this._accessTokenFactory()),this._setAuthorizationHeader(e);let n=await this._innerClient.send(e);return t&&n.statusCode===401&&this._accessTokenFactory?(this._accessToken=await this._accessTokenFactory(),this._setAuthorizationHeader(e),await this._innerClient.send(e)):n}_setAuthorizationHeader(e){e.headers||={},this._accessToken?e.headers[H7.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&e.headers[H7.Authorization]&&delete e.headers[H7.Authorization]}getCookieString(e){return this._innerClient.getCookieString(e)}},U7;(function(e){e[e.None=0]=`None`,e[e.WebSockets=1]=`WebSockets`,e[e.ServerSentEvents=2]=`ServerSentEvents`,e[e.LongPolling=4]=`LongPolling`})(U7||={});var W7;(function(e){e[e.Text=1]=`Text`,e[e.Binary=2]=`Binary`})(W7||={});var qPt=class{constructor(){this._isAborted=!1,this.onabort=null}abort(){this._isAborted||(this._isAborted=!0,this.onabort&&this.onabort())}get signal(){return this}get aborted(){return this._isAborted}},JPt=class{get pollAborted(){return this._pollAbort.aborted}constructor(e,t,n){this._httpClient=e,this._logger=t,this._pollAbort=new qPt,this._options=n,this._running=!1,this.onreceive=null,this.onclose=null}async connect(e,t){if(N7.isRequired(e,`url`),N7.isRequired(t,`transferFormat`),N7.isIn(t,W7,`transferFormat`),this._url=e,this._logger.log(j7.Trace,`(LongPolling transport) Connecting.`),t===W7.Binary&&typeof XMLHttpRequest<`u`&&typeof new XMLHttpRequest().responseType!=`string`)throw Error(`Binary protocols over XmlHttpRequest not implementing advanced features are not supported.`);let[n,r]=R7(),i={[n]:r,...this._options.headers},a={abortSignal:this._pollAbort.signal,headers:i,timeout:1e5,withCredentials:this._options.withCredentials};t===W7.Binary&&(a.responseType=`arraybuffer`);let o=`${e}&_=${Date.now()}`;this._logger.log(j7.Trace,`(LongPolling transport) polling: ${o}.`);let s=await this._httpClient.get(o,a);s.statusCode===200?this._running=!0:(this._logger.log(j7.Error,`(LongPolling transport) Unexpected response code: ${s.statusCode}.`),this._closeError=new O7(s.statusText||``,s.statusCode),this._running=!1),this._receiving=this._poll(this._url,a)}async _poll(e,t){try{for(;this._running;)try{let n=`${e}&_=${Date.now()}`;this._logger.log(j7.Trace,`(LongPolling transport) polling: ${n}.`);let r=await this._httpClient.get(n,t);r.statusCode===204?(this._logger.log(j7.Information,`(LongPolling transport) Poll terminated by server.`),this._running=!1):r.statusCode===200?r.content?(this._logger.log(j7.Trace,`(LongPolling transport) data received. ${F7(r.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(r.content)):this._logger.log(j7.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._logger.log(j7.Error,`(LongPolling transport) Unexpected response code: ${r.statusCode}.`),this._closeError=new O7(r.statusText||``,r.statusCode),this._running=!1)}catch(e){this._running?e instanceof mPt?this._logger.log(j7.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._closeError=e,this._running=!1):this._logger.log(j7.Trace,`(LongPolling transport) Poll errored after shutdown: ${e.message}`)}}finally{this._logger.log(j7.Trace,`(LongPolling transport) Polling complete.`),this.pollAborted||this._raiseOnClose()}}async send(e){return this._running?CPt(this._logger,`LongPolling`,this._httpClient,this._url,e,this._options):Promise.reject(Error(`Cannot send until the transport is connected`))}async stop(){this._logger.log(j7.Trace,`(LongPolling transport) Stopping polling.`),this._running=!1,this._pollAbort.abort();try{await this._receiving,this._logger.log(j7.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);let e={},[t,n]=R7();e[t]=n;let r={headers:{...e,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials},i;try{await this._httpClient.delete(this._url,r)}catch(e){i=e}i?i instanceof O7&&(i.statusCode===404?this._logger.log(j7.Trace,`(LongPolling transport) A 404 response was returned from sending a DELETE request.`):this._logger.log(j7.Trace,`(LongPolling transport) Error sending a DELETE request: ${i}`)):this._logger.log(j7.Trace,`(LongPolling transport) DELETE request accepted.`)}finally{this._logger.log(j7.Trace,`(LongPolling transport) Stop finished.`),this._raiseOnClose()}}_raiseOnClose(){if(this.onclose){let e=`(LongPolling transport) Firing onclose event.`;this._closeError&&(e+=` Error: `+this._closeError),this._logger.log(j7.Trace,e),this.onclose(this._closeError)}}},YPt=class{constructor(e,t,n,r){this._httpClient=e,this._accessToken=t,this._logger=n,this._options=r,this.onreceive=null,this.onclose=null}async connect(e,t){return N7.isRequired(e,`url`),N7.isRequired(t,`transferFormat`),N7.isIn(t,W7,`transferFormat`),this._logger.log(j7.Trace,`(SSE transport) Connecting.`),this._url=e,this._accessToken&&(e+=(e.indexOf(`?`)<0?`?`:`&`)+`access_token=${encodeURIComponent(this._accessToken)}`),new Promise((n,r)=>{let i=!1;if(t!==W7.Text){r(Error(`The Server-Sent Events transport only supports the 'Text' transfer format`));return}let a;if(P7.isBrowser||P7.isWebWorker)a=new this._options.EventSource(e,{withCredentials:this._options.withCredentials});else{let t=this._httpClient.getCookieString(e),n={};n.Cookie=t;let[r,i]=R7();n[r]=i,a=new this._options.EventSource(e,{withCredentials:this._options.withCredentials,headers:{...n,...this._options.headers}})}try{a.onmessage=e=>{if(this.onreceive)try{this._logger.log(j7.Trace,`(SSE transport) data received. ${F7(e.data,this._options.logMessageContent)}.`),this.onreceive(e.data)}catch(e){this._close(e);return}},a.onerror=e=>{i?this._close():r(Error(`EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled.`))},a.onopen=()=>{this._logger.log(j7.Information,`SSE connected to ${this._url}`),this._eventSource=a,i=!0,n()}}catch(e){r(e);return}})}async send(e){return this._eventSource?CPt(this._logger,`SSE`,this._httpClient,this._url,e,this._options):Promise.reject(Error(`Cannot send until the transport is connected`))}stop(){return this._close(),Promise.resolve()}_close(e){this._eventSource&&(this._eventSource.close(),this._eventSource=void 0,this.onclose&&this.onclose(e))}},XPt=class{constructor(e,t,n,r,i,a){this._logger=n,this._accessTokenFactory=t,this._logMessageContent=r,this._webSocketConstructor=i,this._httpClient=e,this.onreceive=null,this.onclose=null,this._headers=a}async connect(e,t){N7.isRequired(e,`url`),N7.isRequired(t,`transferFormat`),N7.isIn(t,W7,`transferFormat`),this._logger.log(j7.Trace,`(WebSockets transport) Connecting.`);let n;return this._accessTokenFactory&&(n=await this._accessTokenFactory()),new Promise((r,i)=>{e=e.replace(/^http/,`ws`);let a,o=this._httpClient.getCookieString(e),s=!1;if(P7.isNode||P7.isReactNative){let t={},[r,i]=R7();t[r]=i,n&&(t[H7.Authorization]=`Bearer ${n}`),o&&(t[H7.Cookie]=o),a=new this._webSocketConstructor(e,void 0,{headers:{...t,...this._headers}})}else n&&(e+=(e.indexOf(`?`)<0?`?`:`&`)+`access_token=${encodeURIComponent(n)}`);a||=new this._webSocketConstructor(e),t===W7.Binary&&(a.binaryType=`arraybuffer`),a.onopen=t=>{this._logger.log(j7.Information,`WebSocket connected to ${e}.`),this._webSocket=a,s=!0,r()},a.onerror=e=>{let t=null;t=typeof ErrorEvent<`u`&&e instanceof ErrorEvent?e.error:`There was an error with the transport`,this._logger.log(j7.Information,`(WebSockets transport) ${t}.`)},a.onmessage=e=>{if(this._logger.log(j7.Trace,`(WebSockets transport) data received. ${F7(e.data,this._logMessageContent)}.`),this.onreceive)try{this.onreceive(e.data)}catch(e){this._close(e);return}},a.onclose=e=>{if(s)this._close(e);else{let t=null;t=typeof ErrorEvent<`u`&&e instanceof ErrorEvent?e.error:`WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.`,i(Error(t))}}})}send(e){return this._webSocket&&this._webSocket.readyState===this._webSocketConstructor.OPEN?(this._logger.log(j7.Trace,`(WebSockets transport) sending data. ${F7(e,this._logMessageContent)}.`),this._webSocket.send(e),Promise.resolve()):Promise.reject(`WebSocket is not in the OPEN state`)}stop(){return this._webSocket&&this._close(void 0),Promise.resolve()}_close(e){this._webSocket&&=(this._webSocket.onclose=()=>{},this._webSocket.onmessage=()=>{},this._webSocket.onerror=()=>{},this._webSocket.close(),void 0),this._logger.log(j7.Trace,`(WebSockets transport) socket closed.`),this.onclose&&(this._isCloseEvent(e)&&(e.wasClean===!1||e.code!==1e3)?this.onclose(Error(`WebSocket closed with status code: ${e.code} (${e.reason||`no reason given`}).`)):e instanceof Error?this.onclose(e):this.onclose())}_isCloseEvent(e){return e&&typeof e.wasClean==`boolean`&&typeof e.code==`number`}},ZPt=100,QPt=class{constructor(e,t={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,N7.isRequired(e,`url`),this._logger=wPt(t.logger),this.baseUrl=this._resolveUrl(e),t||={},t.logMessageContent=t.logMessageContent===void 0?!1:t.logMessageContent,typeof t.withCredentials==`boolean`||t.withCredentials===void 0)t.withCredentials=t.withCredentials===void 0?!0:t.withCredentials;else throw Error(`withCredentials option was not a 'boolean' or 'undefined' value`);t.timeout=t.timeout===void 0?100*1e3:t.timeout;let n=null,r=null;if(P7.isNode&&typeof require<`u`){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;n=e(`ws`),r=e(`eventsource`)}!P7.isNode&&typeof WebSocket<`u`&&!t.WebSocket?t.WebSocket=WebSocket:P7.isNode&&!t.WebSocket&&n&&(t.WebSocket=n),!P7.isNode&&typeof EventSource<`u`&&!t.EventSource?t.EventSource=EventSource:P7.isNode&&!t.EventSource&&r!==void 0&&(t.EventSource=r),this._httpClient=new KPt(t.httpClient||new FPt(this._logger),t.accessTokenFactory),this._connectionState=`Disconnected`,this._connectionStarted=!1,this._options=t,this.onreceive=null,this.onclose=null}async start(e){if(e||=W7.Binary,N7.isIn(e,W7,`transferFormat`),this._logger.log(j7.Debug,`Starting connection with transfer format '${W7[e]}'.`),this._connectionState!==`Disconnected`)return Promise.reject(Error(`Cannot start an HttpConnection that is not in the 'Disconnected' state.`));if(this._connectionState=`Connecting`,this._startInternalPromise=this._startInternal(e),await this._startInternalPromise,this._connectionState===`Disconnecting`){let e=`Failed to start the HttpConnection before stop() was called.`;return this._logger.log(j7.Error,e),await this._stopPromise,Promise.reject(new k7(e))}else if(this._connectionState!==`Connected`){let e=`HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!`;return this._logger.log(j7.Error,e),Promise.reject(new k7(e))}this._connectionStarted=!0}send(e){return this._connectionState===`Connected`?(this._sendQueue||=new eFt(this.transport),this._sendQueue.send(e)):Promise.reject(Error(`Cannot send data if the connection is not in the 'Connected' State.`))}async stop(e){if(this._connectionState===`Disconnected`)return this._logger.log(j7.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnected state.`),Promise.resolve();if(this._connectionState===`Disconnecting`)return this._logger.log(j7.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;this._connectionState=`Disconnecting`,this._stopPromise=new Promise(e=>{this._stopPromiseResolver=e}),await this._stopInternal(e),await this._stopPromise}async _stopInternal(e){this._stopError=e;try{await this._startInternalPromise}catch{}if(this.transport){try{await this.transport.stop()}catch(e){this._logger.log(j7.Error,`HttpConnection.transport.stop() threw error '${e}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(j7.Debug,`HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.`)}async _startInternal(e){let t=this.baseUrl;this._accessTokenFactory=this._options.accessTokenFactory,this._httpClient._accessTokenFactory=this._accessTokenFactory;try{if(this._options.skipNegotiation)if(this._options.transport===U7.WebSockets)this.transport=this._constructTransport(U7.WebSockets),await this._startTransport(t,e);else throw Error(`Negotiation can only be skipped when using the WebSocket transport directly.`);else{let n=null,r=0;do{if(n=await this._getNegotiationResponse(t),this._connectionState===`Disconnecting`||this._connectionState===`Disconnected`)throw new k7(`The connection was stopped during negotiation.`);if(n.error)throw Error(n.error);if(n.ProtocolVersion)throw Error(`Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.`);if(n.url&&(t=n.url),n.accessToken){let e=n.accessToken;this._accessTokenFactory=()=>e,this._httpClient._accessToken=e,this._httpClient._accessTokenFactory=void 0}r++}while(n.url&&r<ZPt);if(r===ZPt&&n.url)throw Error(`Negotiate redirection limit exceeded.`);await this._createTransport(t,this._options.transport,n,e)}this.transport instanceof JPt&&(this.features.inherentKeepAlive=!0),this._connectionState===`Connecting`&&(this._logger.log(j7.Debug,`The HttpConnection connected successfully.`),this._connectionState=`Connected`)}catch(e){return this._logger.log(j7.Error,`Failed to start the connection: `+e),this._connectionState=`Disconnected`,this.transport=void 0,this._stopPromiseResolver(),Promise.reject(e)}}async _getNegotiationResponse(e){let t={},[n,r]=R7();t[n]=r;let i=this._resolveNegotiateUrl(e);this._logger.log(j7.Debug,`Sending negotiation request: ${i}.`);try{let e=await this._httpClient.post(i,{content:``,headers:{...t,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials});if(e.statusCode!==200)return Promise.reject(Error(`Unexpected status code returned from negotiate '${e.statusCode}'`));let n=JSON.parse(e.content);return(!n.negotiateVersion||n.negotiateVersion<1)&&(n.connectionToken=n.connectionId),n.useStatefulReconnect&&this._options._useStatefulReconnect!==!0?Promise.reject(new vPt(`Client didn't negotiate Stateful Reconnect but the server did.`)):n}catch(e){let t=`Failed to complete negotiation with the server: `+e;return e instanceof O7&&e.statusCode===404&&(t+=` Either this is not a SignalR endpoint or there is a proxy blocking the connection.`),this._logger.log(j7.Error,t),Promise.reject(new vPt(t))}}_createConnectUrl(e,t){return t?e+(e.indexOf(`?`)===-1?`?`:`&`)+`id=${t}`:e}async _createTransport(e,t,n,r){let i=this._createConnectUrl(e,n.connectionToken);if(this._isITransport(t)){this._logger.log(j7.Debug,`Connection was provided an instance of ITransport, using that directly.`),this.transport=t,await this._startTransport(i,r),this.connectionId=n.connectionId;return}let a=[],o=n.availableTransports||[],s=n;for(let n of o){let o=this._resolveTransportOrError(n,t,r,s?.useStatefulReconnect===!0);if(o instanceof Error)a.push(`${n.transport} failed:`),a.push(o);else if(this._isITransport(o)){if(this.transport=o,!s){try{s=await this._getNegotiationResponse(e)}catch(e){return Promise.reject(e)}i=this._createConnectUrl(e,s.connectionToken)}try{await this._startTransport(i,r),this.connectionId=s.connectionId;return}catch(e){if(this._logger.log(j7.Error,`Failed to start the transport '${n.transport}': ${e}`),s=void 0,a.push(new _Pt(`${n.transport} failed: ${e}`,U7[n.transport])),this._connectionState!==`Connecting`){let e=`Failed to select transport before stop() was called.`;return this._logger.log(j7.Debug,e),Promise.reject(new k7(e))}}}}return a.length>0?Promise.reject(new yPt(`Unable to connect to the server with any of the available transports. ${a.join(` `)}`,a)):Promise.reject(Error(`None of the transports supported by the client are supported by the server.`))}_constructTransport(e){switch(e){case U7.WebSockets:if(!this._options.WebSocket)throw Error(`'WebSocket' is not supported in your environment.`);return new XPt(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case U7.ServerSentEvents:if(!this._options.EventSource)throw Error(`'EventSource' is not supported in your environment.`);return new YPt(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case U7.LongPolling:return new JPt(this._httpClient,this._logger,this._options);default:throw Error(`Unknown transport: ${e}.`)}}_startTransport(e,t){return this.transport.onreceive=this.onreceive,this.features.reconnect?this.transport.onclose=async n=>{let r=!1;if(this.features.reconnect)try{this.features.disconnected(),await this.transport.connect(e,t),await this.features.resend()}catch{r=!0}else{this._stopConnection(n);return}r&&this._stopConnection(n)}:this.transport.onclose=e=>this._stopConnection(e),this.transport.connect(e,t)}_resolveTransportOrError(e,t,n,r){let i=U7[e.transport];if(i==null)return this._logger.log(j7.Debug,`Skipping transport '${e.transport}' because it is not supported by this client.`),Error(`Skipping transport '${e.transport}' because it is not supported by this client.`);if($Pt(t,i))if(e.transferFormats.map(e=>W7[e]).indexOf(n)>=0){if(i===U7.WebSockets&&!this._options.WebSocket||i===U7.ServerSentEvents&&!this._options.EventSource)return this._logger.log(j7.Debug,`Skipping transport '${U7[i]}' because it is not supported in your environment.'`),new hPt(`'${U7[i]}' is not supported in your environment.`,i);this._logger.log(j7.Debug,`Selecting transport '${U7[i]}'.`);try{return this.features.reconnect=i===U7.WebSockets?r:void 0,this._constructTransport(i)}catch(e){return e}}else return this._logger.log(j7.Debug,`Skipping transport '${U7[i]}' because it does not support the requested transfer format '${W7[n]}'.`),Error(`'${U7[i]}' does not support ${W7[n]}.`);else return this._logger.log(j7.Debug,`Skipping transport '${U7[i]}' because it was disabled by the client.`),new gPt(`'${U7[i]}' is disabled by the client.`,i)}_isITransport(e){return e&&typeof e==`object`&&`connect`in e}_stopConnection(e){if(this._logger.log(j7.Debug,`HttpConnection.stopConnection(${e}) called while in state ${this._connectionState}.`),this.transport=void 0,e=this._stopError||e,this._stopError=void 0,this._connectionState===`Disconnected`){this._logger.log(j7.Debug,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is already in the disconnected state.`);return}if(this._connectionState===`Connecting`)throw this._logger.log(j7.Warning,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is still in the connecting state.`),Error(`HttpConnection.stopConnection(${e}) was called while the connection is still in the connecting state.`);if(this._connectionState===`Disconnecting`&&this._stopPromiseResolver(),e?this._logger.log(j7.Error,`Connection disconnected with error '${e}'.`):this._logger.log(j7.Information,`Connection disconnected.`),this._sendQueue&&=(this._sendQueue.stop().catch(e=>{this._logger.log(j7.Error,`TransportSendQueue.stop() threw error '${e}'.`)}),void 0),this.connectionId=void 0,this._connectionState=`Disconnected`,this._connectionStarted){this._connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this._logger.log(j7.Error,`HttpConnection.onclose(${e}) threw error '${t}'.`)}}}_resolveUrl(e){if(e.lastIndexOf(`https://`,0)===0||e.lastIndexOf(`http://`,0)===0)return e;if(!P7.isBrowser)throw Error(`Cannot resolve '${e}'.`);let t=window.document.createElement(`a`);return t.href=e,this._logger.log(j7.Information,`Normalizing '${e}' to '${t.href}'.`),t.href}_resolveNegotiateUrl(e){let t=new URL(e);t.pathname.endsWith(`/`)?t.pathname+=`negotiate`:t.pathname+=`/negotiate`;let n=new URLSearchParams(t.searchParams);return n.has(`negotiateVersion`)||n.append(`negotiateVersion`,this._negotiateVersion.toString()),n.has(`useStatefulReconnect`)?n.get(`useStatefulReconnect`)===`true`&&(this._options._useStatefulReconnect=!0):this._options._useStatefulReconnect===!0&&n.append(`useStatefulReconnect`,`true`),t.search=n.toString(),t.toString()}};function $Pt(e,t){return!e||(t&e)!==0}var eFt=class e{constructor(e){this._transport=e,this._buffer=[],this._executing=!0,this._sendBufferedData=new G7,this._transportResult=new G7,this._sendLoopPromise=this._sendLoop()}send(e){return this._bufferData(e),this._transportResult||=new G7,this._transportResult.promise}stop(){return this._executing=!1,this._sendBufferedData.resolve(),this._sendLoopPromise}_bufferData(e){if(this._buffer.length&&typeof this._buffer[0]!=typeof e)throw Error(`Expected data to be of type ${typeof this._buffer} but was of type ${typeof e}`);this._buffer.push(e),this._sendBufferedData.resolve()}async _sendLoop(){for(;;){if(await this._sendBufferedData.promise,!this._executing){this._transportResult&&this._transportResult.reject(`Connection stopped.`);break}this._sendBufferedData=new G7;let t=this._transportResult;this._transportResult=void 0;let n=typeof this._buffer[0]==`string`?this._buffer.join(``):e._concatBuffers(this._buffer);this._buffer.length=0;try{await this._transport.send(n),t.resolve()}catch(e){t.reject(e)}}}static _concatBuffers(e){let t=e.map(e=>e.byteLength).reduce((e,t)=>e+t),n=new Uint8Array(t),r=0;for(let t of e)n.set(new Uint8Array(t),r),r+=t.byteLength;return n.buffer}},G7=class{constructor(){this.promise=new Promise((e,t)=>[this._resolver,this._rejecter]=[e,t])}resolve(){this._resolver()}reject(e){this._rejecter(e)}},tFt=`json`,nFt=class{constructor(){this.name=tFt,this.version=2,this.transferFormat=W7.Text}parseMessages(e,t){if(typeof e!=`string`)throw Error(`Invalid input for JSON hub protocol. Expected a string.`);if(!e)return[];t===null&&(t=M7.instance);let n=z7.parse(e),r=[];for(let e of n){let n=JSON.parse(e);if(typeof n.type!=`number`)throw Error(`Invalid payload.`);switch(n.type){case B7.Invocation:this._isInvocationMessage(n);break;case B7.StreamItem:this._isStreamItemMessage(n);break;case B7.Completion:this._isCompletionMessage(n);break;case B7.Ping:break;case B7.Close:break;case B7.Ack:this._isAckMessage(n);break;case B7.Sequence:this._isSequenceMessage(n);break;default:t.log(j7.Information,`Unknown message type '`+n.type+`' ignored.`);continue}r.push(n)}return r}writeMessage(e){return z7.write(JSON.stringify(e))}_isInvocationMessage(e){this._assertNotEmptyString(e.target,`Invalid payload for Invocation message.`),e.invocationId!==void 0&&this._assertNotEmptyString(e.invocationId,`Invalid payload for Invocation message.`)}_isStreamItemMessage(e){if(this._assertNotEmptyString(e.invocationId,`Invalid payload for StreamItem message.`),e.item===void 0)throw Error(`Invalid payload for StreamItem message.`)}_isCompletionMessage(e){if(e.result&&e.error)throw Error(`Invalid payload for Completion message.`);!e.result&&e.error&&this._assertNotEmptyString(e.error,`Invalid payload for Completion message.`),this._assertNotEmptyString(e.invocationId,`Invalid payload for Completion message.`)}_isAckMessage(e){if(typeof e.sequenceId!=`number`)throw Error(`Invalid SequenceId for Ack message.`)}_isSequenceMessage(e){if(typeof e.sequenceId!=`number`)throw Error(`Invalid SequenceId for Sequence message.`)}_assertNotEmptyString(e,t){if(typeof e!=`string`||e===``)throw Error(t)}},rFt={trace:j7.Trace,debug:j7.Debug,info:j7.Information,information:j7.Information,warn:j7.Warning,warning:j7.Warning,error:j7.Error,critical:j7.Critical,none:j7.None};function iFt(e){let t=rFt[e.toLowerCase()];if(t!==void 0)return t;throw Error(`Unknown log level: ${e}`)}var aFt=class{configureLogging(e){if(N7.isRequired(e,`logging`),oFt(e))this.logger=e;else if(typeof e==`string`){let t=iFt(e);this.logger=new L7(t)}else this.logger=new L7(e);return this}withUrl(e,t){return N7.isRequired(e,`url`),N7.isNotEmpty(e,`url`),this.url=e,typeof t==`object`?this.httpConnectionOptions={...this.httpConnectionOptions,...t}:this.httpConnectionOptions={...this.httpConnectionOptions,transport:t},this}withHubProtocol(e){return N7.isRequired(e,`protocol`),this.protocol=e,this}withAutomaticReconnect(e){if(this.reconnectPolicy)throw Error(`A reconnectPolicy has already been set.`);return e?Array.isArray(e)?this.reconnectPolicy=new GPt(e):this.reconnectPolicy=e:this.reconnectPolicy=new GPt,this}withServerTimeout(e){return N7.isRequired(e,`milliseconds`),this._serverTimeoutInMilliseconds=e,this}withKeepAliveInterval(e){return N7.isRequired(e,`milliseconds`),this._keepAliveIntervalInMilliseconds=e,this}withStatefulReconnect(e){return this.httpConnectionOptions===void 0&&(this.httpConnectionOptions={}),this.httpConnectionOptions._useStatefulReconnect=!0,this._statefulReconnectBufferSize=e?.bufferSize,this}build(){let e=this.httpConnectionOptions||{};if(e.logger===void 0&&(e.logger=this.logger),!this.url)throw Error(`The 'HubConnectionBuilder.withUrl' method must be called before building the connection.`);let t=new QPt(this.url,e);return UPt.create(t,this.logger||M7.instance,this.protocol||new nFt,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}};function oFt(e){return e.log!==void 0}var sFt=15e3,cFt=5,lFt=(e,t=Math.random)=>{let n=Math.min(sFt,1e3*2**Math.min(Math.max(e,0),cFt));return Math.round(t()*n)},uFt=class{nextRetryDelayInMilliseconds(e){return lFt(e.previousRetryCount)}},dFt=e=>({log(t,n){t>=j7.Error?e.error(n):t>=j7.Warning?e.warn(n):e.debug(n)}}),fFt=e=>{switch(e){case V7.Connected:return`connected`;case V7.Connecting:return`connecting`;case V7.Reconnecting:return`reconnecting`;case V7.Disconnected:case V7.Disconnecting:return`disconnected`;default:return`disconnected`}},pFt=class{connection;logger;statusHandlers=new Set;starting=null;intentionallyStopped=!0;reconnectTimer=null;reconnectAttempt=0;constructor(e,t){this.logger=t.child(`realtime`),this.connection=new aFt().withUrl(e.url,{accessTokenFactory:()=>e.accessTokenProvider()??``}).withAutomaticReconnect(new uFt).configureLogging(dFt(this.logger)).build(),this.connection.onreconnecting(()=>{this.emitStatus(`reconnecting`)}),this.connection.onreconnected(()=>{this.reconnectAttempt=0,this.emitStatus(`connected`)}),this.connection.onclose(()=>{this.emitStatus(`disconnected`),this.scheduleReconnect()})}get status(){return fFt(this.connection.state)}async start(){if(this.intentionallyStopped=!1,this.clearReconnectTimer(),this.connection.state===V7.Disconnecting)for(;this.connection.state===V7.Disconnecting;)await new Promise(e=>setTimeout(e,50));if(this.connection.state===V7.Disconnected)return this.starting===null?(this.emitStatus(`connecting`),this.starting=this.connection.start().then(()=>{this.reconnectAttempt=0,this.emitStatus(`connected`)}).catch(e=>{throw this.emitStatus(`disconnected`),this.logger.warn(`Realtime connection failed to start`),e}).finally(()=>{this.starting=null}),this.starting):this.starting}async stop(){this.intentionallyStopped=!0,this.clearReconnectTimer(),await this.connection.stop(),this.emitStatus(`disconnected`)}on(e,t){let n=e=>{t(e)};return this.connection.on(e,n),()=>{this.connection.off(e,n)}}invoke(e,...t){return this.connection.invoke(e,...t)}onStatusChange(e){return this.statusHandlers.add(e),e(this.status),()=>{this.statusHandlers.delete(e)}}scheduleReconnect(){if(this.intentionallyStopped)return;this.clearReconnectTimer();let e=lFt(this.reconnectAttempt);this.reconnectAttempt+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectNow()},e)}async reconnectNow(){if(this.reconnectTimer=null,!(this.intentionallyStopped||this.connection.state!==V7.Disconnected)){if(!this.isOnline()){this.scheduleReconnect();return}this.emitStatus(`reconnecting`);try{await this.connection.start(),this.reconnectAttempt=0,this.emitStatus(`connected`)}catch{this.emitStatus(`disconnected`),this.scheduleReconnect()}}}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}isOnline(){return typeof navigator>`u`?!0:navigator.onLine}emitStatus(e){for(let t of this.statusHandlers)t(e)}},mFt=class{logger;constructor(e){this.logger=e.logger}create(e){return new pFt(e,this.logger)}},hFt=class{status=`disconnected`;async start(){return Promise.resolve()}async stop(){return Promise.resolve()}on(e,t){return()=>{}}async invoke(e,...t){return Promise.reject(Error(`Cannot invoke method on NullRealtimeConnection`))}onStatusChange(e){return()=>{}}},gFt=class{moduleAccessGateway;logger;constructor(e){this.moduleAccessGateway=e.moduleAccessGateway,this.logger=e.logger.child(`get-module-access`)}async execute(){let e=await this.moduleAccessGateway.getModuleAccess();return e.ok||this.logger.warn(`Loading module access failed`,{code:e.error.code}),e}},_Ft=`/api/app/sdk-capabilities`,vFt=gm({apiVersion:k(),modules:hm(k())}),yFt=e=>{let t=new Set;for(let n of e.modules)oPt(n)&&t.add(D7[n]);return{grantedModules:t,grantedPolicies:new Set,canManageUserAccess:!1}},bFt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`sdk-module-access`)}async getModuleAccess(){let e;try{e=await this.httpClient.get(_Ft)}catch(e){return this.logger.error(`Failed to fetch SDK capabilities`,{error:e}),O(new iPt(e))}let t=vFt.safeParse(e);return t.success?Yf(yFt(t.data)):(this.logger.error(`Malformed capabilities response`,{error:t.error}),O(new iPt(t.error)))}},xFt=e=>({getModuleAccess:new gFt({moduleAccessGateway:new bFt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger}),gateMode:`fail-closed`}),SFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`list-conversations`)}async execute(e){let t=await this.chatGateway.listConversations(e);return t.ok||this.logger.warn(`Listing conversations failed`,{code:t.error.code}),t}},CFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-conversation`)}async execute(e){let t=await this.chatGateway.getConversation(e);return t.ok||this.logger.warn(`Fetching conversation failed`,{code:t.error.code}),t}},wFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-conversation-counts`)}async execute(){let e=await this.chatGateway.getConversationCounts();return e.ok||this.logger.warn(`Fetching conversation counts failed`,{code:e.error.code}),e}},TFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`list-staff`)}async execute(e){let t=await this.chatGateway.listStaff(e);return t.ok||this.logger.warn(`Listing staff failed`,{code:t.error.code}),t}},EFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-group-member-pool`)}async execute(e){let t=await this.chatGateway.getGroupMemberPool(e);return t.ok||this.logger.warn(`Fetching the group member pool failed`,{code:t.error.code}),t}},DFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-viewer`)}async execute(){let e=await this.chatGateway.getViewer();return e.ok||this.logger.warn(`Loading viewer failed`,{code:e.error.code}),e}},OFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-messages`)}async execute(e){let t=await this.chatGateway.getMessages(e,50);return t.ok||this.logger.warn(`Loading messages failed`,{code:t.error.code}),t}},kFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-messages-since`)}async execute(e,t,n){let r=await this.chatGateway.getMessagesSince(e,t,n);return r.ok||this.logger.warn(`Loading messages since cursor failed`,{code:r.error.code}),r}},AFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-messages-before`)}async execute(e,t,n){let r=await this.chatGateway.getMessagesBefore(e,t,n);return r.ok||this.logger.warn(`Loading messages before cursor failed`,{code:r.error.code}),r}},jFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`start-direct`)}async execute(e){let t=e.trim();return t.length===0?(this.logger.warn(`Rejected start-direct with no recipient`),O(new Kve)):this.chatGateway.startDirect(t)}},MFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`create-group`)}async execute(e,t){let n=e.trim();return n.length===0?(this.logger.warn(`Rejected group with no title`),O(new Wve)):t.length===0?(this.logger.warn(`Rejected group with no members`),O(new Gve)):this.chatGateway.createGroup(n,t)}},NFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`send-message`)}async execute(e,t,n,r){let i=t.trim();return i.length===0?(this.logger.warn(`Rejected empty message`,{conversationId:e}),O(new Hve)):i.length>4e3?(this.logger.warn(`Rejected oversized message`,{conversationId:e}),O(new Uve(4e3))):this.chatGateway.sendMessage(e,i,n,r)}},PFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`mark-delivered`)}execute(e,t){return this.logger.debug(`Mark delivered`,{conversationId:e,uptoSequence:t}),this.chatGateway.markDelivered(e,t)}},FFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`mark-read`)}execute(e,t){return this.logger.debug(`Mark read`,{conversationId:e,uptoSequence:t}),this.chatGateway.markRead(e,t)}},IFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`set-favourite`)}async execute(e,t){return this.logger.info(`Set favourite`,{conversationId:e,favourite:t}),this.chatGateway.setFavourite(e,t)}},LFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`set-archived`)}async execute(e,t){return this.logger.info(`Set archived`,{conversationId:e,archived:t}),this.chatGateway.setArchived(e,t)}},RFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`set-pinned`)}async execute(e,t){return this.logger.info(`Set pinned`,{conversationId:e,pinned:t}),this.chatGateway.setPinned(e,t)}},zFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`delete-conversation`)}async execute(e){return this.logger.info(`Delete conversation`,{conversationId:e}),this.chatGateway.deleteConversation(e)}},BFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`leave-conversation`)}async execute(e){return this.logger.info(`Leave conversation`,{conversationId:e}),this.chatGateway.leaveConversation(e)}},VFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`refresh-portal`)}async execute(e){return this.logger.info(`Refresh portal data`,{conversationId:e}),this.chatGateway.refreshPortal(e)}},HFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`react-to-message`)}async execute(e,t,n){return n.trim().length===0?(this.logger.warn(`Rejected empty reaction`,{conversationId:e,messageId:t}),O(new sh)):this.chatGateway.reactToMessage(e,t,n)}},UFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`save-members`)}async execute(e,t,n){return this.logger.info(`Save members`,{conversationId:e,members:t.length,admins:n.length}),this.chatGateway.saveMembers(e,t,n)}},WFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`edit-message`)}async execute(e,t,n){let r=n.trim(),i=await this.chatGateway.editMessage(e,t,r);return i.ok||this.logger.warn(`Edit message failed`,{code:i.error.code}),i}},GFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`delete-message`)}async execute(e,t){let n=await this.chatGateway.deleteMessage(e,t);return n.ok||this.logger.warn(`Delete message failed`,{code:n.error.code}),n}},KFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`delete-message-for-me`)}async execute(e,t){let n=await this.chatGateway.deleteMessageForMe(e,t);return n.ok||this.logger.warn(`Delete message for me failed`,{code:n.error.code}),n}},qFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`send-media-message`)}async execute(e){let t=await this.chatGateway.sendMediaMessage(e);return t.ok||this.logger.warn(`Send media message failed`,{code:t.error.code}),t}},JFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`download-chat-media`)}async execute(e){let t=await this.chatGateway.downloadMedia(e);return t.ok||this.logger.warn(`Downloading media failed`,{code:t.error.code}),t}},YFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`subscribe-push`)}async execute(e){let t=await this.chatGateway.subscribePush(e);return t.ok||this.logger.warn(`Subscribe push failed`,{code:t.error.code}),t}},XFt=e=>{let t={chatGateway:new rMt({httpClient:e.httpClient,clock:e.clock,logger:e.logger}),logger:e.logger},n=fMt();return{listConversations:new SFt(t),getConversation:new CFt(t),getConversationCounts:new wFt(t),listStaff:new TFt(t),getGroupMemberPool:new EFt(t),getViewer:new DFt(t),getMessages:new OFt(t),getMessagesSince:new kFt(t),getMessagesBefore:new AFt(t),startDirect:new jFt(t),createGroup:new MFt(t),sendMessage:new NFt(t),sendMediaMessage:new qFt(t),downloadChatMedia:new JFt(t),editMessage:new WFt(t),deleteMessage:new GFt(t),deleteMessageForMe:new KFt(t),subscribePush:new YFt(t),markDelivered:new PFt(t),markRead:new FFt(t),setFavourite:new IFt(t),setArchived:new LFt(t),setPinned:new RFt(t),deleteConversation:new zFt(t),leaveConversation:new BFt(t),refreshPortal:new VFt(t),reactToMessage:new HFt(t),saveMembers:new UFt(t),clock:e.clock,realtime:e.realtime,realtimeStore:Bve(),logger:e.logger.child(`chat-realtime`),outbox:n}},ZFt=({module:e,children:t})=>(0,D.jsx)(nye.Provider,{value:e,children:(0,D.jsx)(Vve.Provider,{value:e.realtimeStore,children:t})}),QFt=e=>e.connection.on(C7.MessageReceived,t=>{let n=xMt(t,C7.MessageReceived,e.logger);if(n===null)return;let r=e.viewerId()??``,i=FMt(f7(n),r);if(e.queryClient.setQueryData(yh(n.conversationId),e=>i7(e??[],i)),hh(e.queryClient),i.kind===`system`){if(i.text.endsWith(` left the group`)){let t=i.text.slice(0,-15).trim().toLowerCase();_h(e.queryClient,n.conversationId,e=>{let n=e.members.find(e=>e.name.toLowerCase()===t);return n===void 0?e:e.with({members:e.members.filter(e=>e.id!==n.id),adminIds:e.adminIds.filter(e=>e!==n.id)})})}e.queryClient.refetchQueries({queryKey:ph(n.conversationId)})}}),$Ft=(e,t,n)=>e.connection.on(t,r=>{let i=SMt(r,t,e.logger);i===null||i.byUserId===e.viewerId()||e.store.getState().applyReceipt(i.conversationId,i.byUserId,n,i.uptoSequence)}),eIt=e=>e.connection.on(C7.Typing,t=>{let n=CMt(t,C7.Typing,e.logger);n===null||n.userId===e.viewerId()||e.store.getState().applyTyping(n.conversationId,n.userId,n.isTyping,Date.now())}),tIt=e=>e.connection.on(C7.ReactionToggled,t=>{let n=EMt(t,C7.ReactionToggled,e.logger),r=e.viewerId();n===null||n.byUserId===r||e.queryClient.setQueryData(yh(n.conversationId),e=>e?.map(e=>e.id===n.messageId?dye(e,n,r??``):e))}),nIt=e=>e.connection.on(C7.MessageEdited,t=>{let n=xMt(t,C7.MessageEdited,e.logger);if(n===null)return;let r=e.viewerId()??``,i=FMt(f7(n),r);e.queryClient.setQueryData(yh(n.conversationId),e=>e?.map(e=>e.id===i.id?i:e)??[i])}),rIt=e=>e.connection.on(C7.MessageDeleted,t=>{let n=DMt(t,C7.MessageDeleted,e.logger);n!==null&&(e.queryClient.setQueryData(yh(n.conversationId),e=>e?.map(e=>e.id===n.messageId?e.asDeletedForEveryone():e)??[]),hh(e.queryClient))}),iIt=e=>e.connection.on(C7.RemovedFromConversation,t=>{let n=OMt(t,C7.RemovedFromConversation,e.logger);n!==null&&e.store.getState().markRemovedFromConversation(n.conversationId)}),aIt=e=>e.connection.on(C7.PresenceChanged,t=>{let n=wMt(t,C7.PresenceChanged,e.logger);n!==null&&e.store.getState().applyPresence(n.userId,n.online,n.lastSeenUtc)}),oIt=e=>e.connection.on(C7.StatusChanged,t=>{let n=TMt(t,C7.StatusChanged,e.logger);n!==null&&DSe(n.userId,Nh(n.status),n.untilUtc??null)}),sIt=e=>{let t=[QFt(e),nIt(e),rIt(e),$Ft(e,C7.MessageDelivered,`delivered`),$Ft(e,C7.MessageRead,`read`),eIt(e),aIt(e),oIt(e),tIt(e),iIt(e)];return()=>{for(let e of t)e()}},cIt=(e,t,n)=>{n.length!==0&&e.setQueryData(yh(t),e=>n.reduce((e,t)=>i7(e,t),e??[]))},lIt=async(e,t,n,r)=>{let i=e.getState().activeConversationId;if(i===null){gh(t);return}let a=TOt(t.getQueryData(yh(i))??[]);try{cIt(t,i,await Zf(n.execute(i,a,50)))}catch{r.warn(`Reconnect sync failed; conversation list will still refresh`)}gh(t)},uIt=()=>{let{realtime:e,getMessagesSince:t,logger:n}=uh(),r=ih(),i=Hm();(0,y.useEffect)(()=>{let a=e.status;return e.onStatusChange(e=>{e===`connected`&&a!==`connected`&&lIt(r,i,t,n),a=e})},[e,r,i,t,n])},dIt=()=>{let{isAuthenticated:e}=qh(),{realtime:t,logger:n}=uh(),r=ih(),i=Hm(),a=bh();uIt();let o=(0,y.useRef)(null);o.current=a.data?.id??null,(0,y.useEffect)(()=>t.onStatusChange(e=>{r.getState().setStatus(e)}),[t,r]),(0,y.useEffect)(()=>sIt({connection:t,store:r,queryClient:i,viewerId:()=>o.current,logger:n}),[t,r,i,n]),(0,y.useEffect)(()=>{if(!e){t.stop(),r.getState().clear(),kSe();return}return t.start().catch(()=>{}),()=>{t.stop()}},[e,t,r])},fIt=({children:e})=>(dIt(),(0,D.jsx)(D.Fragment,{children:e})),pIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`get-post`)}async execute(e){let t=await this.feedGateway.getPost(e);return t.ok||this.logger.warn(`Fetching post by id failed`,{code:t.error.code}),t}},mIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`list-feed`)}async execute(e){let t=await this.feedGateway.listPosts(e.scope,e.skipCount,e.maxResultCount);return t.ok||this.logger.warn(`Listing feed failed`,{code:t.error.code,scope:e.scope}),t}},hIt=class extends Yn{},K7=class extends hIt{code=`FEED_UNAVAILABLE`;constructor(e){super(`The news feed is currently unavailable. Please try again.`,{cause:e})}},gIt=class extends hIt{code=`FEED_EMPTY_POST`;constructor(){super(`Write something before posting.`)}},_It=class{id;authorUserId;authorName;authorInitials;authorColor;authorRole;categoryLabel;categoryColor;audienceLabel;timestamp;createdAt;pinned;mustAcknowledge;acknowledged;title;body;reactions;myReaction;commentCount;comments;seenCount;bookmarked;taggedUserIds;locationLabel;imageUrls;department;audienceId;feelingId;feelingLabel;feelingEmoji;scheduledAt;isRecurring;recurrenceFrequency;constructor(e){this.id=e.id,this.authorUserId=e.authorUserId,this.authorName=e.authorName,this.authorInitials=e.authorInitials,this.authorColor=e.authorColor,this.authorRole=e.authorRole,this.categoryLabel=e.categoryLabel,this.categoryColor=e.categoryColor,this.audienceLabel=e.audienceLabel,this.timestamp=e.timestamp,this.createdAt=e.createdAt,this.pinned=e.pinned,this.mustAcknowledge=e.mustAcknowledge,this.acknowledged=e.acknowledged,this.title=e.title,this.body=e.body,this.reactions=e.reactions,this.myReaction=e.myReaction,this.commentCount=e.commentCount,this.comments=e.comments,this.seenCount=e.seenCount,this.bookmarked=e.bookmarked,this.taggedUserIds=e.taggedUserIds,this.locationLabel=e.locationLabel,this.imageUrls=e.imageUrls,this.department=e.department,this.audienceId=e.audienceId,this.feelingId=e.feelingId,this.feelingLabel=e.feelingLabel,this.feelingEmoji=e.feelingEmoji,this.scheduledAt=e.scheduledAt??null,this.isRecurring=e.isRecurring??!1,this.recurrenceFrequency=e.recurrenceFrequency??null}get totalReactions(){return this.reactions.like+this.reactions.insightful+this.reactions.celebrate}get needsAcknowledgement(){return this.mustAcknowledge&&!this.acknowledged}},vIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`create-post`)}async execute(e){return e.body.trim().length===0?(this.logger.warn(`Rejected empty post`),O(new gIt)):this.feedGateway.createPost({...e,body:e.body.trim()})}},yIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`update-post`)}async execute(e,t){return t.body.trim().length===0?(this.logger.warn(`Rejected empty body for post update`),O(new gIt)):this.feedGateway.updatePost(e,{...t,body:t.body.trim()})}},bIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`react-to-post`)}async execute(e,t){let n=await this.feedGateway.react(e,t);return n.ok||this.logger.warn(`Reacting to post failed`,{code:n.error.code}),n}},xIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`toggle-bookmark`)}async execute(e){let t=await this.feedGateway.toggleBookmark(e);return t.ok||this.logger.warn(`Bookmarking post failed`,{code:t.error.code}),t}},SIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`acknowledge-post`)}async execute(e){let t=await this.feedGateway.acknowledge(e);return t.ok||this.logger.warn(`Acknowledging post failed`,{code:t.error.code}),t}},CIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`add-comment`)}async execute({postId:e,text:t}){if(t.trim().length===0)return this.logger.warn(`Rejected empty comment`,{postId:e}),O(new K7);let n=await this.feedGateway.addComment(e,t.trim());return n.ok||this.logger.warn(`Adding comment failed`,{code:n.error.code}),n}},wIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listCategories()}},TIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listAudiences()}},EIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listFeelings()}},DIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.searchUsers(e)}},OIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.detectLocation()}},kIt=class{gateway;logger;constructor(e){this.gateway=e.feedGateway,this.logger=e.logger.child(`upload-feed-image-use-case`)}async execute(e){return this.logger.debug(`Uploading feed image`),this.gateway.uploadImage(e)}},AIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`mark-seen`)}async execute(e){let t=await this.feedGateway.markSeen(e);return t.ok||this.logger.warn(`Marking post as seen failed`,{code:t.error.code}),t}},jIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`set-post-pinned`)}async execute(e,t){let n=await this.feedGateway.setPinned(e,t);return n.ok||this.logger.warn(`Pinning post failed`,{code:n.error.code,pinned:t}),n}},MIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.getNotifications()}},NIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.markNotificationAsRead(e)}};function PIt(e){return e.replace(/\s+(division|province|district|state|region)$/i,``).trim()}function FIt(e){let t=PIt(e.regionName??e.region??``),n=t.length>0?t:(e.cityName??e.city??``).trim(),r=(e.countryName??e.country_name??``).trim();return n.length>0&&r.length>0?`${n}, ${r}`:r.length>0?r:null}function IIt(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e){let t=e.split(`/`),n=t[t.length-1];if(n)return n.replace(/_/g,` `)}}catch{}return`London Office`}async function LIt(e){try{let t=await fetch(`/ip-geolocation`);if(t.ok){let e=FIt(await t.json());if(e!==null)return Yf(e)}e.warn(`Proxy location fetch returned unexpected response, falling back to local timezone`)}catch(t){e.warn(`Failed to fetch location via dev proxy, falling back to local timezone`,{error:t})}return Yf(IIt())}var RIt=gm({type:pm(),count:pm(),reacted:mm()}),zIt=gm({id:k(),authorUserId:k(),authorName:k(),authorInitials:k(),authorColor:k(),text:k(),createdAt:k(),time:k()}),BIt=gm({id:k(),authorUserId:k(),authorName:k(),authorInitials:k(),authorColor:k(),authorRole:k(),department:k().nullable().optional(),categoryLabel:k(),categoryColor:k(),audienceLabel:k(),createdAt:k(),timestamp:k(),pinned:mm(),mustAcknowledge:mm(),acknowledged:mm(),title:k().nullable(),body:k(),reactions:hm(RIt),myReaction:pm().nullable().optional(),commentCount:pm(),comments:hm(zIt),seenCount:pm(),bookmarked:mm(),audienceId:k(),taggedUserIds:hm(k()).optional(),scheduledAt:k().nullable().optional(),isRecurring:mm().optional(),recurrenceFrequency:k().nullable().optional(),nextOccurrenceTime:k().nullable().optional(),feelingId:k().nullable().optional(),feelingLabel:k().nullable().optional(),feelingEmoji:k().nullable().optional(),locationLabel:k().nullable().optional(),imageUrls:hm(k()).optional()}).passthrough();hm(BIt);var VIt=gm({totalCount:pm(),items:hm(BIt)}),HIt=hm(gm({id:k(),name:k(),email:k(),userName:k(),role:k(),initials:k(),color:k()})),UIt=hm(gm({id:k(),key:k().optional(),label:k(),color:k(),templateIds:hm(k()).optional(),dataTemplateIds:hm(k()).optional(),webhookId:k().nullable().optional()})),WIt=hm(gm({key:k(),label:k()})),GIt=hm(gm({id:k(),label:k(),emoji:k()})),KIt=e=>e===1?`insightful`:e===2?`celebrate`:`like`,qIt=e=>{let t={like:0,insightful:0,celebrate:0};for(let n of e){let e=KIt(n.type);t[e]=n.count}return t},JIt=e=>({id:e.id,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,text:e.text,time:e.time,createdAt:e.createdAt}),YIt=e=>e==null?null:KIt(e),XIt=e=>({department:e.department??null,feelingId:e.feelingId??null,feelingLabel:e.feelingLabel??null,feelingEmoji:e.feelingEmoji??null,locationLabel:e.locationLabel??null}),ZIt=e=>{let t=XIt(e);return new _It({id:e.id,authorUserId:e.authorUserId,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,authorRole:e.authorRole,categoryLabel:e.categoryLabel,categoryColor:e.categoryColor,audienceLabel:e.audienceLabel,createdAt:e.createdAt,timestamp:e.timestamp,pinned:e.pinned,mustAcknowledge:e.mustAcknowledge,acknowledged:e.acknowledged,title:e.title,body:e.body,reactions:qIt(e.reactions),myReaction:YIt(e.myReaction),commentCount:e.commentCount,comments:e.comments.map(JIt),seenCount:e.seenCount,bookmarked:e.bookmarked,taggedUserIds:e.taggedUserIds??[],imageUrls:e.imageUrls??[],audienceId:e.audienceId,scheduledAt:e.scheduledAt??null,isRecurring:e.isRecurring??!1,recurrenceFrequency:e.recurrenceFrequency??null,...t})},QIt=e=>({id:e.key??e.id,label:e.label,color:e.color,categoryKey:e.key??e.id,templateIds:e.templateIds??[],dataTemplateIds:e.dataTemplateIds??[],webhookId:e.webhookId??void 0}),$It=e=>({id:e.key,label:e.label}),eLt=e=>({id:e.id,label:e.label,emoji:e.emoji}),q7=(e,t,n)=>(e.error(`Feed ${t} returned an unexpected shape`,n),O(new K7(n))),J7=(e,t)=>(e.error(`Feed request failed`,t),new K7(t)),tLt=(e,t,n)=>{let r=VIt.safeParse(n);return r.success?Yf({totalCount:r.data.totalCount,items:r.data.items.map(ZIt)}):q7(e,t,r.error)},Y7=(e,t,n)=>{let r=BIt.safeParse(n);return r.success?Yf(ZIt(r.data)):q7(e,t,r.error)},nLt=(e,t,n)=>{let r=UIt.safeParse(n);return r.success?Yf(r.data.map(QIt)):q7(e,t,r.error)},rLt=(e,t,n)=>{let r=WIt.safeParse(n);return r.success?Yf(r.data.map($It)):q7(e,t,r.error)},iLt=(e,t,n)=>{let r=GIt.safeParse(n);return r.success?Yf(r.data.map(eLt)):q7(e,t,r.error)},aLt=(e,t,n)=>{let r=HIt.safeParse(n);return r.success?Yf(r.data):q7(e,t,r.error)},oLt=hm(gm({id:k(),userId:k(),kind:ym([`meeting`,`group`,`feed`,`member`]),actorName:k(),initials:k(),color:k(),message:k(),detail:k().nullable().optional(),postId:k().nullable().optional(),isRead:mm(),creationTime:k()})),sLt={for_you:0,team:1,company:2,saved:3},cLt={like:0,insightful:1,celebrate:2},lLt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-feed-gateway`)}async listPosts(e,t,n){try{let r=sLt[e],i=await this.httpClient.get(`/api/app/feed/posts`,{query:{scope:r,...t!==void 0&&{skipCount:t},...n!==void 0&&{maxResultCount:n}}});return tLt(this.logger,`listPosts`,i)}catch(e){return O(J7(this.logger,e))}}async getPost(e){try{let t=await this.httpClient.get(`/api/app/feed/post/${e}`);return Y7(this.logger,`getPost`,t)}catch(e){return O(J7(this.logger,e))}}async createPost(e){try{let t=await this.httpClient.post(`/api/app/feed/post`,e);return Y7(this.logger,`createPost`,t)}catch(e){return O(J7(this.logger,e))}}async updatePost(e,t){try{let n=await this.httpClient.put(`/api/app/feed/post/${e}`,t);return Y7(this.logger,`updatePost`,n)}catch(e){return O(J7(this.logger,e))}}async react(e,t){try{let n=await this.httpClient.post(`/api/app/feed/react-to-post/${e}`,{type:cLt[t]});return Y7(this.logger,`react`,n)}catch(e){return O(J7(this.logger,e))}}async toggleBookmark(e){try{let t=await this.httpClient.post(`/api/app/feed/toggle-bookmark/${e}`,void 0);return Y7(this.logger,`toggleBookmark`,t)}catch(e){return O(J7(this.logger,e))}}async setPinned(e,t){try{let n=await this.httpClient.post(`/api/app/feed/set-pinned/${e}`,{pinned:t});return Y7(this.logger,`setPinned`,n)}catch(e){return O(J7(this.logger,e))}}async acknowledge(e){try{let t=await this.httpClient.post(`/api/app/feed/acknowledge/${e}`,void 0);return Y7(this.logger,`acknowledge`,t)}catch(e){return O(J7(this.logger,e))}}async markSeen(e){try{let t=await this.httpClient.post(`/api/app/feed/mark-seen/${e}`,void 0);return Y7(this.logger,`markSeen`,t)}catch(e){return O(J7(this.logger,e))}}async addComment(e,t){try{let n=await this.httpClient.post(`/api/app/feed/comment/${e}`,{text:t});return Y7(this.logger,`addComment`,n)}catch(e){return O(J7(this.logger,e))}}async listCategories(){try{let e=await this.httpClient.get(`/api/app/feed/feed-categories`);return nLt(this.logger,`listCategories`,e)}catch(e){return O(J7(this.logger,e))}}async listAudiences(){try{let e=await this.httpClient.get(`/api/app/feed/feed-audiences`);return rLt(this.logger,`listAudiences`,e)}catch(e){return O(J7(this.logger,e))}}async listFeelings(){try{let e=await this.httpClient.get(`/api/app/feed/feed-feelings`);return iLt(this.logger,`listFeelings`,e)}catch(e){return O(J7(this.logger,e))}}async searchUsers(e){try{let t=await this.httpClient.get(`/api/app/feed/search-users`,{query:{filter:e}});return aLt(this.logger,`searchUsers`,t)}catch(e){return O(J7(this.logger,e))}}async detectLocation(){return LIt(this.logger)}async uploadImage(e){try{let t=new FormData;t.append(`file`,e);let n=await this.httpClient.post(`/api/app/file/upload?category=FeedPost`,t);return typeof n==`object`&&n&&`id`in n&&typeof n.id==`string`?Yf(n.id):O(new K7(`Invalid response shape`))}catch(e){return O(J7(this.logger,e))}}async getNotifications(){try{let e=await this.httpClient.get(`/api/app/notification`);return Yf(oLt.parse(e).map(e=>({id:e.id,kind:e.kind,initials:e.initials,color:e.color,actor:e.actorName,message:e.message,creationTime:e.creationTime,...e.detail!==null&&e.detail!==void 0?{detail:e.detail}:{},...e.postId!==null&&e.postId!==void 0?{postId:e.postId}:{}})))}catch(e){return O(J7(this.logger,e))}}async markNotificationAsRead(e){try{return await this.httpClient.post(`/api/app/notification/${e}/mark-as-read`,void 0),Yf(void 0)}catch(e){return O(J7(this.logger,e))}}async deleteNotification(e){try{return await this.httpClient.delete(`/api/app/notification/${e}`),Yf(void 0)}catch(e){return O(J7(this.logger,e))}}},uLt=e=>{let t={feedGateway:new lLt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listFeed:new mIt(t),getPost:new pIt(t),createPost:new vIt(t),updatePost:new yIt(t),reactToPost:new bIt(t),toggleBookmark:new xIt(t),acknowledgePost:new SIt(t),addComment:new CIt(t),listFeedCategories:new wIt(t),listFeedAudiences:new TIt(t),listFeedFeelings:new EIt(t),searchFeedUsers:new DIt(t),detectLocation:new OIt(t),uploadFeedImage:new kIt(t),setPostPinned:new jIt(t),markSeen:new AIt(t),getNotifications:new MIt(t),markNotificationRead:new NIt(t),notificationRealtime:e.notificationRealtime,logger:e.logger}},dLt=(0,y.createContext)(null),fLt=({module:e,children:t})=>(0,D.jsx)(dLt.Provider,{value:e,children:t}),X7=()=>{let e=(0,y.useContext)(dLt);if(e===null)throw Error(`Feed hooks must be used within <FeedModuleProvider>.`);return e},pLt=e=>[`feed`,e],mLt=e=>{e.invalidateQueries({queryKey:[`feed`]})},Z7=(e,t)=>{e.setQueriesData({queryKey:[`feed`]},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t.id?t:e)}))}),e.setQueryData([`feed-post`,t.id],t)},hLt=e=>{let{listFeed:t}=X7();return cve({queryKey:pLt(e),queryFn:({pageParam:n})=>Zf(t.execute({scope:e,skipCount:n,maxResultCount:10})),initialPageParam:0,getNextPageParam:(e,t)=>{let n=t.reduce((e,t)=>e+t.items.length,0);if(!(n>=e.totalCount))return n}})},gLt=()=>{let{createPost:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:()=>{mLt(t)}})},_Lt=()=>{let{updatePost:e}=X7(),t=Hm();return Wm({mutationFn:({postId:t,input:n})=>Zf(e.execute(t,n)),onSuccess:e=>{Z7(t,e)}})},vLt=()=>{let{reactToPost:e}=X7(),t=Hm();return Wm({mutationFn:({postId:t,type:n})=>Zf(e.execute(t,n)),onSuccess:e=>{Z7(t,e)}})},yLt=()=>{let{toggleBookmark:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e),t.invalidateQueries({queryKey:pLt(`saved`)})}})},bLt=()=>{let{acknowledgePost:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e)}})},xLt=()=>{let{markSeen:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e)}})},SLt=()=>{let{addComment:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e)}})},CLt=()=>{let{setPostPinned:e}=X7(),t=Hm();return Wm({mutationFn:({postId:t,pinned:n})=>Zf(e.execute(t,n)),onSuccess:e=>{Z7(t,e)}})},Q7=()=>{let{listFeedCategories:e}=X7();return Um({queryKey:[`feed-categories`],queryFn:()=>Zf(e.execute())})},wLt=()=>{let{listFeedAudiences:e}=X7();return Um({queryKey:[`feed-audiences`],queryFn:()=>Zf(e.execute())})},TLt=()=>{let{listFeedFeelings:e}=X7();return Um({queryKey:[`feed-feelings`],queryFn:()=>Zf(e.execute())})},ELt=e=>{let{searchFeedUsers:t}=X7();return Um({queryKey:[`feed-search-users`,e],queryFn:()=>Zf(t.execute(e)),enabled:e.trim().length>0})},DLt=()=>{let{uploadFeedImage:e}=X7();return Wm({mutationFn:t=>Zf(e.execute(t))})},OLt=e=>{let{getPost:t}=X7();return Um({queryKey:[`feed-post`,e],queryFn:()=>Zf(t.execute(e??``)),enabled:e!==null})},kLt=e=>{let{data:t=[]}=Q7(),n=t.find(t=>t.id===e.department);return{categoryLabel:n?.label??e.categoryLabel,categoryColor:n?.color??e.categoryColor}},ALt=e=>{if(e.length===0)return[];let t=e[0]?.fullName??e[0]?.name??``;if(e.length===1)return[{text:`with `,bold:!1},{text:t,bold:!0}];let n=e[1]?.fullName??e[1]?.name??``;return e.length===2?[{text:`with `,bold:!1},{text:t,bold:!0},{text:` and `,bold:!1},{text:n,bold:!0}]:[{text:`with `,bold:!1},{text:t,bold:!0},{text:`, `,bold:!1},{text:n,bold:!0},{text:` and `,bold:!1},{text:`${String(e.length-2)} others`,bold:!0}]},$7=e=>{let t=e;return/^\d{4}-\d{2}-\d{2}T/.test(e)&&!e.endsWith(`Z`)&&!/[+-]\d{2}:?\d{2}$/.test(e)&&(t=`${e}Z`),new Date(t)},e9=e=>{let t=String(e.minute).padStart(2,`0`),n=e.hour>=12?`PM`:`AM`,r=e.hour%12;return`${String(r===0?12:r)}:${t} ${n}`},jLt=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],MLt=(e,t)=>e.year===t.year&&e.month===t.month&&e.day===t.day,NLt=(e,t,n)=>{let r=n.getTime()-t.getTime();if(r<0){let t=new Date(e);if(!Number.isNaN(t.getTime())){let e=n.getTime()-t.getTime();if(e>=0)return e}}return r},PLt=(e,t,n)=>{let r=$7(e);if(Number.isNaN(r.getTime()))return null;let i=r.getTime()-t.getTime();if(i<=0)return null;let a=60*1e3,o=60*a,s=24*o;if(i<a)return`Publishes shortly`;if(i<o){let e=Math.floor(i/a);return`Publishes in ${String(e)}m`}if(i<s){let e=Math.floor(i/o);return`Publishes in ${String(e)} ${e===1?`hour`:`hours`}`}let c=Qm(r,n);return MLt(c,Qm(new Date(t.getTime()+s),n))?`Scheduled for tomorrow at ${e9(c)}`:`Scheduled for ${jLt[c.month-1]??``} ${String(c.day)} at ${e9(c)}`},FLt=(e,t,n)=>t&&$7(t).getTime()<=n.getTime()?t:e,ILt=(e,t,n,r)=>{let i=60*1e3,a=60*i,o=24*a;if(e<i)return`now`;if(e<a)return`${String(Math.floor(e/i))}m ago`;if(e<o){let t=Math.floor(e/a);return`${String(t)} ${t===1?`hour`:`hours`} ago`}let s=Qm(t,n);return MLt(s,Qm(new Date(r.getTime()-o),n))?`Yesterday at ${e9(s)}`:`${jLt[s.month-1]??``} ${String(s.day)} at ${e9(s)}`},LLt=(e,t,n=null,r=new Date)=>{if(n&&$7(n).getTime()>r.getTime()){let e=PLt(n,r,t);if(e!==null)return e}let i=FLt(e,n,r),a=$7(i);return Number.isNaN(a.getTime())?`now`:ILt(NLt(i,a,r),a,t,r)},RLt=(e,t,n)=>{let r=document.getElementById(e),i=document.getElementById(t);if(r&&i){let e=i.getBoundingClientRect(),t=r.getBoundingClientRect(),a=t.top-e.top,o=i.scrollTop+a;n===`center`&&(o=o-e.height/2+t.height/2),i.scrollTo({top:o,behavior:`smooth`})}},zLt=(e,t=1600,n=1600,r=.8)=>new Promise(i=>{if(!e.type.startsWith(`image/`)){i(e);return}let a=new Image;a.src=URL.createObjectURL(e),a.onload=()=>{URL.revokeObjectURL(a.src);let o=a.width,s=a.height;if(o>t||s>n){let e=Math.min(t/o,n/s);o=Math.round(o*e),s=Math.round(s*e)}let c=document.createElement(`canvas`);c.width=o,c.height=s;let l=c.getContext(`2d`);if(!l){i(e);return}l.drawImage(a,0,0,o,s),c.toBlob(t=>{if(!t){i(e);return}i(new File([t],e.name.replace(/\.[^/.]+$/,``)+`.jpg`,{type:`image/jpeg`,lastModified:Date.now()}))},`image/jpeg`,r)},a.onerror=()=>{i(e)}}),BLt={ReceiveNotification:`ReceiveNotification`},VLt=gm({id:k(),kind:ym([`meeting`,`group`,`feed`,`member`]),initials:k(),color:k(),actor:k(),time:k(),message:k().nullable().optional(),detail:k().nullable().optional(),postId:k().nullable().optional()}),HLt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-contacts`)}async execute(e){let t=await this.meetingGateway.listContacts(e);return t.ok||this.logger.warn(`Listing booking contacts failed`,{code:t.error.code}),t}},ULt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-available-slots`)}async execute(e){let t=await this.meetingGateway.getAvailableSlots(e);return t.ok||this.logger.warn(`Listing available slots failed`,{code:t.error.code}),t}},WLt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-attendee-availability`)}async execute(e){let t=await this.meetingGateway.listAttendeeAvailability(e);return t.ok||this.logger.warn(`Listing attendee availability failed`,{code:t.error.code}),t}},GLt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-meetings`)}async execute(){let e=await this.meetingGateway.listMeetings();return e.ok||this.logger.warn(`Listing meetings failed`,{code:e.error.code}),e}},KLt=class extends Yn{},qLt=class extends KLt{code=`MEETINGS_UNAVAILABLE`;constructor(e){super(`Meetings are currently unavailable. Please try again.`,{cause:e})}},JLt=class extends KLt{code=`MEETINGS_INCOMPLETE_BOOKING`;constructor(){super(`Pick a person, a date, and a time slot to book a meeting.`)}},YLt=class{id;title;withName;withInitials;withColor;dateLabel;startUtc;endUtc;location;isOrganizer;myStatus;bucket;isGroup;attendeeIds;description;awaitingResponse;constructor(e){this.id=e.id,this.title=e.title,this.withName=e.withName,this.withInitials=e.withInitials,this.withColor=e.withColor,this.dateLabel=e.dateLabel,this.startUtc=e.startUtc,this.endUtc=e.endUtc,this.location=e.location,this.isOrganizer=e.isOrganizer,this.myStatus=e.myStatus,this.bucket=e.bucket,this.isGroup=e.isGroup,this.attendeeIds=e.attendeeIds,this.description=e.description,this.awaitingResponse=e.awaitingResponse}},t9=[{id:`Pacific/Honolulu`,city:`Honolulu`,offset:`GMT-10`},{id:`America/Anchorage`,city:`Anchorage`,offset:`GMT-9`},{id:`America/Los_Angeles`,city:`Los Angeles`,offset:`GMT-8`},{id:`America/Denver`,city:`Denver`,offset:`GMT-7`},{id:`America/Chicago`,city:`Chicago`,offset:`GMT-6`},{id:`America/New_York`,city:`New York`,offset:`GMT-5`},{id:`America/Sao_Paulo`,city:`São Paulo`,offset:`GMT-3`},{id:`Atlantic/Reykjavik`,city:`Reykjavik`,offset:`GMT+0`},{id:`Europe/London`,city:`London`,offset:`GMT+1`},{id:`Europe/Paris`,city:`Paris`,offset:`GMT+2`},{id:`Europe/Athens`,city:`Athens`,offset:`GMT+3`},{id:`Africa/Nairobi`,city:`Nairobi`,offset:`GMT+3`},{id:`Asia/Dubai`,city:`Dubai`,offset:`GMT+4`},{id:`Asia/Karachi`,city:`Karachi`,offset:`GMT+5`},{id:`Asia/Kolkata`,city:`Mumbai`,offset:`GMT+5:30`},{id:`Asia/Dhaka`,city:`Dhaka`,offset:`GMT+6`},{id:`Asia/Bangkok`,city:`Bangkok`,offset:`GMT+7`},{id:`Asia/Singapore`,city:`Singapore`,offset:`GMT+8`},{id:`Asia/Shanghai`,city:`Shanghai`,offset:`GMT+8`},{id:`Asia/Tokyo`,city:`Tokyo`,offset:`GMT+9`},{id:`Australia/Sydney`,city:`Sydney`,offset:`GMT+11`},{id:`Pacific/Auckland`,city:`Auckland`,offset:`GMT+13`}],XLt={id:`Europe/London`,city:`London`,offset:`GMT+1`};XLt.id;var ZLt=e=>{try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`longOffset`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`);if(t){let e=t.value;if(e===`GMT`)return`GMT+0`;e=e.replace(/^GMT/,``);let n=e.startsWith(`-`)?`-`:`+`,[r=`0`,i=`0`]=e.replace(/^[+-]/,``).split(`:`),a=parseInt(r,10),o=parseInt(i,10);return o===0?`GMT${n}${String(a)}`:`GMT${n}${String(a)}:${String(o)}`}}catch{}return`GMT+0`},QLt=e=>{let t=t9.find(t=>t.id===e);if(t)return t;try{let t=ZLt(e),n=e.split(`/`);return{id:e,city:(n[n.length-1]??``).replace(/_/g,` `),offset:t}}catch{return XLt}},$Lt=e=>QLt(e),eRt=(e,t,n)=>{let r=new Date(n.start).getTime(),i=new Date(n.end).getTime();return e.getTime()<i&&t.getTime()>r},tRt=(e,t,n)=>e.userId===t||t===n&&n!==``&&e.userId===void 0,nRt=(e,t)=>e.allBlocks.filter(t=>tRt(t,e.userId,e.selfUserId)&&t.status!==`available`).flatMap(e=>ap(e,t.start,t.end)),rRt=(e,t)=>e.allBlocks.filter(t=>tRt(t,e.userId,e.selfUserId)&&t.status===`available`).flatMap(e=>ap(e,t.start,t.end)).map(e=>({start:new Date(e.start),end:new Date(e.end)})),iRt=(e,t,n)=>t.getTime()>=e.start.getTime()&&n.getTime()<=e.end.getTime(),aRt=e=>{let t={start:e.rangeStart,end:e.rangeEnd},n={userId:e.userId,selfUserId:e.selfUserId,allBlocks:e.allBlocks},r=e.workWindows.some(t=>iRt(t,e.slotStart,e.slotEnd)),i=rRt(n,t).some(t=>iRt(t,e.slotStart,e.slotEnd));return!r&&!i?`ooh`:nRt(n,t).some(t=>eRt(e.slotStart,e.slotEnd,t))?`busy`:`available`},oRt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`book-meeting`)}async execute(e){return e.contactId.length===0||e.dateLabel.length===0||e.slot.length===0?(this.logger.warn(`Rejected incomplete booking`),O(new JLt)):this.meetingGateway.book(e)}},sRt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`respond-to-meeting`)}async execute(e,t){let n=await this.meetingGateway.respond(e,t);return n.ok||this.logger.warn(`Responding to meeting failed`,{code:n.error.code}),n}},cRt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`cancel-meeting`)}async execute(e){let t=await this.meetingGateway.cancel(e);return t.ok||this.logger.warn(`Cancelling meeting failed`,{code:t.error.code}),t}},n9=`Online — link generated automatically`,lRt=null;lRt??=[{id:`mt-1`,title:`1:1 Catch-up`,withName:`Andreea Cinpoi`,withInitials:`AN`,withColor:`#7c3aed`,dateLabel:`Tue, 24 Jun`,startUtc:`2026-06-24T14:00:00Z`,endUtc:`2026-06-24T15:00:00Z`,location:n9,isOrganizer:!0,myStatus:`accepted`,bucket:`upcoming`},{id:`mt-2`,title:`Application review`,withName:`Raj Ahmed`,withInitials:`RA`,withColor:`#0ea5e9`,dateLabel:`Wed, 25 Jun`,startUtc:`2026-06-25T11:00:00Z`,endUtc:`2026-06-25T12:00:00Z`,location:n9,isOrganizer:!1,myStatus:`pending`,bucket:`upcoming`},{id:`mt-3`,title:`Visa cases sync`,withName:`Jennifer Aboje`,withInitials:`JA`,withColor:`#fc7300`,dateLabel:`Thu, 26 Jun`,startUtc:`2026-06-26T10:00:00Z`,endUtc:`2026-06-26T10:30:00Z`,location:n9,isOrganizer:!1,myStatus:`accepted`,bucket:`upcoming`},{id:`mt-4`,title:`Consultant onboarding`,withName:`Tousif Sadman`,withInitials:`TS`,withColor:`#0e7c66`,dateLabel:`Mon, 16 Jun`,startUtc:`2026-06-16T09:00:00Z`,endUtc:`2026-06-16T09:30:00Z`,location:n9,isOrganizer:!0,myStatus:`accepted`,bucket:`passed`},{id:`mt-5`,title:`Compliance check`,withName:`Nur Mohammad`,withInitials:`NM`,withColor:`#8b5cf6`,dateLabel:`Fri, 13 Jun`,startUtc:`2026-06-13T15:00:00Z`,endUtc:`2026-06-13T16:00:00Z`,location:n9,isOrganizer:!0,myStatus:`accepted`,bucket:`canceled`}];var uRt=encodeURIComponent,r9={list:`/api/app/meeting`,contacts:`/api/app/meeting/list-contacts`,availableSlots:`/api/app/meeting/list-available-slots`,attendeeAvailability:`/api/app/meeting/list-attendee-availability`,book:`/api/app/meeting/book`,respond:e=>`/api/app/meeting/${uRt(e)}/respond`,cancel:e=>`/api/app/meeting/${uRt(e)}/cancel`},dRt=gm({id:k(),organizerUserId:k(),title:k(),withName:k(),withInitials:k(),withColor:k(),dateLabel:k(),start:k(),end:k(),location:k(),isOrganizer:mm(),myStatus:pm(),bucket:pm(),awaitingResponse:mm().optional(),isGroup:mm(),attendeeIds:hm(k()),description:k()}).passthrough(),fRt=hm(dRt),pRt=hm(gm({id:k(),name:k(),initials:k(),color:k(),role:k()}).passthrough()),mRt=hm(gm({label:k(),startUtc:k(),endUtc:k(),conflicts:hm(k())}).passthrough()),hRt=hm(gm({userId:k(),busy:hm(gm({startUtc:k(),endUtc:k()})),workingHours:hm(gm({startUtc:k(),endUtc:k()})).optional()}).passthrough()),gRt={0:`pending`,1:`accepted`,2:`rejected`},_Rt={0:`upcoming`,1:`passed`,2:`canceled`},vRt=/[zZ]|[+-]\d{2}:?\d{2}$/,yRt=e=>vRt.test(e)?e:`${e}Z`,bRt=e=>new YLt({id:e.id,title:e.title,withName:e.withName,withInitials:e.withInitials,withColor:e.withColor,dateLabel:e.dateLabel,startUtc:yRt(e.start),endUtc:yRt(e.end),location:e.location,isOrganizer:e.isOrganizer,myStatus:gRt[e.myStatus]??`pending`,bucket:_Rt[e.bucket]??`upcoming`,isGroup:e.isGroup,attendeeIds:e.attendeeIds,description:e.description,awaitingResponse:e.awaitingResponse??!1}),xRt=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role}),SRt=e=>({label:e.label,startUtc:e.startUtc,endUtc:e.endUtc,conflicts:e.conflicts}),CRt=e=>({userId:e.userId,busy:e.busy.map(e=>({startUtc:e.startUtc,endUtc:e.endUtc})),workingHours:(e.workingHours??[]).map(e=>({startUtc:e.startUtc,endUtc:e.endUtc}))}),wRt=e=>({contactId:e.isGroup===!0?null:e.contactId,attendeeIds:e.attendeeIds??[],dateLabel:e.dateLabel,slot:e.slot,isoDate:e.isoDate,startUtc:e.startUtc,endUtc:e.endUtc,isGroup:e.isGroup??!1,title:e.title,location:e.location,description:e.description}),TRt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-meeting-gateway`)}async listContacts(e){try{let t=e?.trim(),n=await this.httpClient.post(r9.contacts,void 0,{query:{search:t===void 0||t===``?void 0:t}}),r=pRt.safeParse(n);return r.success?Yf(r.data.map(xRt)):this.fail(`List contacts returned an unexpected shape`,r.error)}catch(e){return this.fail(`List contacts failed`,e)}}async getAvailableSlots(e){try{let t=await this.httpClient.post(r9.availableSlots,{isoDate:e.isoDate,timeZone:e.timeZone??void 0,isGroup:e.isGroup,contactId:e.contactId??void 0,attendeeIds:e.attendeeIds}),n=mRt.safeParse(t);return n.success?Yf(n.data.map(SRt)):this.fail(`Available slots returned an unexpected shape`,n.error)}catch(e){return this.fail(`Available slots failed`,e)}}async listAttendeeAvailability(e){try{let t=await this.httpClient.post(r9.attendeeAvailability,{isoDate:e.isoDate,attendeeIds:e.attendeeIds}),n=hRt.safeParse(t);return n.success?Yf(n.data.map(CRt)):this.fail(`Attendee availability returned an unexpected shape`,n.error)}catch(e){return this.fail(`Attendee availability failed`,e)}}async listMeetings(){try{let e=await this.httpClient.get(r9.list),t=fRt.safeParse(e);return t.success?Yf(t.data.map(bRt)):this.fail(`List meetings returned an unexpected shape`,t.error)}catch(e){return this.fail(`List meetings failed`,e)}}async book(e){try{let t=await this.httpClient.post(r9.book,wRt(e));return this.parseMeeting(t,`Book meeting`)}catch(e){return this.fail(`Book meeting failed`,e)}}async respond(e,t){try{let n=await this.httpClient.post(r9.respond(e),void 0,{query:{accept:t}});return this.parseMeeting(n,`Respond to meeting`)}catch(e){return this.fail(`Respond to meeting failed`,e)}}async cancel(e){try{let t=await this.httpClient.post(r9.cancel(e));return this.parseMeeting(t,`Cancel meeting`)}catch(e){return this.fail(`Cancel meeting failed`,e)}}parseMeeting(e,t){let n=dRt.safeParse(e);return n.success?Yf(bRt(n.data)):this.fail(`${t} returned an unexpected shape`,n.error)}fail(e,t){return this.logger.error(e,t),O(new qLt(t))}},ERt=e=>{let t={meetingGateway:new TRt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listContacts:new HLt(t),listAvailableSlots:new ULt(t),listAttendeeAvailability:new WLt(t),listMeetings:new GLt(t),bookMeeting:new oRt(t),respondToMeeting:new sRt(t),cancelMeeting:new cRt(t)}},DRt=(0,y.createContext)(null),ORt=({module:e,children:t})=>(0,D.jsx)(DRt.Provider,{value:e,children:t}),i9=()=>{let e=(0,y.useContext)(DRt);if(e===null)throw Error(`Meetings hooks must be used within <MeetingsModuleProvider>.`);return e},kRt=[`meetings`,`list`],ARt=[`meetings`,`contacts`],jRt=[`meetings`,`available-slots`],MRt=[`meetings`,`attendee-availability`],NRt=(e,t)=>{e.setQueryData(kRt,e=>e===void 0?[t]:e.map(e=>e.id===t.id?t:e))},PRt=e=>{let{listContacts:t}=i9(),n=e?.trim()??``;return Um({queryKey:[...ARt,n],queryFn:()=>Zf(t.execute(n||void 0)),placeholderData:p_e})},FRt=e=>{let{listMeetings:t}=i9();return Um({queryKey:kRt,queryFn:()=>Zf(t.execute()),staleTime:0,refetchOnWindowFocus:!0,...e===void 0?{}:{refetchInterval:e}})},IRt=e=>{let{listAvailableSlots:t}=i9();return Um({queryKey:[...jRt,e],queryFn:()=>e===null?Promise.resolve([]):Zf(t.execute(e)),enabled:e!==null,staleTime:0,refetchOnWindowFocus:!0})},LRt=(e,t)=>{let{listAttendeeAvailability:n}=i9(),r=t!==null&&e.length>0;return Um({queryKey:[...MRt,t,[...e].sort()],queryFn:()=>r?Zf(n.execute({isoDate:t,attendeeIds:e})):Promise.resolve([]),enabled:r,staleTime:0,refetchOnWindowFocus:!0})},RRt=()=>{let{bookMeeting:e}=i9(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:kRt})}})},zRt=()=>{let{respondToMeeting:e}=i9(),t=Hm();return Wm({mutationFn:({meetingId:t,accept:n})=>Zf(e.execute(t,n)),onSuccess:e=>{NRt(t,e)}})},BRt=()=>{let{cancelMeeting:e}=i9(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{NRt(t,e)}})},VRt=class{userGateway;logger;constructor(e){this.userGateway=e.userGateway,this.logger=e.logger.child(`list-users`)}async execute(e){let t=await this.userGateway.list(e);return t.ok||this.logger.warn(`Listing users failed`,{code:t.error.code}),t}},HRt=class{userGateway;logger;constructor(e){this.userGateway=e.userGateway,this.logger=e.logger.child(`list-directory-facets`)}async execute(){let[e,t,n]=await Promise.all([this.userGateway.getDepartments(),this.userGateway.getAccessRoles(),this.userGateway.getBranches()]);return e.ok?t.ok?n.ok?Yf({departments:e.value,accessRoles:t.value,branches:n.value}):(this.logger.warn(`Loading directory facets failed`,{code:n.error.code}),O(n.error)):(this.logger.warn(`Loading directory facets failed`,{code:t.error.code}),O(t.error)):(this.logger.warn(`Loading directory facets failed`,{code:e.error.code}),O(e.error))}},URt=class extends Yn{},a9=class extends URt{code=`USERS_UNAVAILABLE`;constructor(e){super(`The users directory is currently unavailable. Please try again.`,{cause:e})}},WRt=class{id;fullName;email;roleName;department;branchKey;branchName;level;online;status;statusUntilUtc;hasAccount;initials;color;permissionSetName;permissionSetColor;constructor(e){this.id=e.id,this.fullName=e.fullName,this.email=e.email,this.roleName=e.roleName,this.department=e.department,this.branchKey=e.branchKey,this.branchName=e.branchName,this.level=e.level,this.online=e.online,this.status=e.status??`offline`,this.statusUntilUtc=e.statusUntilUtc??null,this.hasAccount=e.hasAccount??!0,this.initials=e.initials,this.color=e.color,this.permissionSetName=e.permissionSetName,this.permissionSetColor=e.permissionSetColor}get isSenior(){return this.level<=3}},GRt=gm({id:k(),fullName:k(),email:k(),roleName:k(),department:k(),branchKey:k().nullish(),branchName:k().nullish(),level:pm(),online:mm(),status:pm().nullish(),statusUntilUtc:k().nullish(),hasAccount:mm().nullish(),initials:k(),color:k(),permissionSetName:k().nullish(),permissionSetColor:k().nullish()}),KRt=gm({totalCount:pm(),items:hm(GRt)}),qRt=(e,t)=>(e.error(`Users request failed`,t),new a9(t)),o9={staffMembers:`/api/app/staff-member`,departments:`/api/app/staff-member/departments`,accessRoles:`/api/app/staff-member/access-roles`,branches:`/api/app/staff-member/branches`},s9={skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,department:`department`,accessRole:`accessRole`,branch:`branch`,online:`online`},JRt=e=>new WRt({id:e.id,fullName:e.fullName,email:e.email,roleName:e.roleName,department:e.department,branchKey:e.branchKey??``,branchName:e.branchName??``,level:e.level,online:e.online,status:Nh(e.status),statusUntilUtc:e.statusUntilUtc??null,hasAccount:e.hasAccount??!0,initials:e.initials,color:e.color,permissionSetName:e.permissionSetName??void 0,permissionSetColor:e.permissionSetColor??void 0}),YRt=hm(k()),XRt=hm(gm({key:k(),name:k()})),ZRt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger}async list(e){try{let t={[s9.skipCount]:(e.page-1)*e.pageSize,[s9.maxResultCount]:e.pageSize};e.filter!==``&&(t[s9.filter]=e.filter),e.department!==``&&(t[s9.department]=e.department),e.accessRole!==``&&(t[s9.accessRole]=e.accessRole),e.branch!==``&&(t[s9.branch]=e.branch),e.status!==`all`&&(t[s9.online]=e.status===`online`);let n=await this.httpClient.get(o9.staffMembers,{query:t}),r=KRt.safeParse(n);if(!r.success)throw this.logger.error(`Users staff-member list returned an unexpected shape`,r.error),new a9(r.error);return Yf({users:r.data.items.map(JRt),totalCount:r.data.totalCount})}catch(e){return O(qRt(this.logger,e))}}async getDepartments(){return this.getStringList(o9.departments,`departments`)}async getAccessRoles(){return this.getStringList(o9.accessRoles,`access roles`)}async getBranches(){try{let e=await this.httpClient.get(o9.branches),t=XRt.safeParse(e);if(!t.success)throw this.logger.error(`Users branches returned an unexpected shape`,t.error),new a9(t.error);return Yf(t.data)}catch(e){return O(qRt(this.logger,e))}}async getStringList(e,t){try{let n=await this.httpClient.get(e),r=YRt.safeParse(n);if(!r.success)throw this.logger.error(`Users ${t} returned an unexpected shape`,r.error),new a9(r.error);return Yf(r.data)}catch(e){return O(qRt(this.logger,e))}}},QRt=e=>{let t={userGateway:new ZRt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listUsers:new VRt(t),listDirectoryFacets:new HRt(t)}},$Rt=(0,y.createContext)(null),ezt=({module:e,children:t})=>(0,D.jsx)($Rt.Provider,{value:e,children:t}),tzt=()=>{let e=(0,y.useContext)($Rt);if(e===null)throw Error(`Users hooks must be used within <UsersModuleProvider>.`);return e},nzt=[`users`],rzt=e=>{let{listUsers:t}=tzt();return Um({queryKey:[...nzt,e],queryFn:()=>Zf(t.execute(e)),placeholderData:p_e,staleTime:3e4})},izt=class{gateway;logger;constructor(e){this.gateway=e.meetingVideoGateway,this.logger=e.logger.child(`join-meeting-video`)}async execute(e){let t=await this.gateway.join(e);return t.ok||this.logger.warn(`Joining meeting video failed`,{code:t.error.code}),t}},azt=class extends Yn{},ozt=class extends azt{code=`MEETING_VIDEO_UNAVAILABLE`;constructor(e){super(`This meeting could not be joined right now. Please try again.`,{cause:e})}},szt=gm({token:k(),providerType:k(),roomId:k(),participantName:k(),title:k().nullish()}).passthrough(),czt=encodeURIComponent,lzt={join:e=>`/api/app/meeting-video/${czt(e)}/join`},uzt=e=>({token:e.token,providerType:e.providerType,roomId:e.roomId,participantName:e.participantName,title:e.title??``}),dzt=class{http;logger;constructor(e){this.http=e.httpClient,this.logger=e.logger.child(`http-meeting-video-gateway`)}async join(e){try{let t=await this.http.post(lzt.join(e)),n=szt.safeParse(t);return n.success?Yf(uzt(n.data)):this.fail(`Join returned an unexpected shape`,n.error)}catch(e){return this.fail(`Joining meeting video failed`,e)}}fail(e,t){return this.logger.error(e,t),O(new ozt(t))}},fzt=e=>({joinMeetingVideo:new izt({meetingVideoGateway:new dzt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger})}),pzt=(0,y.createContext)(null),mzt=({module:e,children:t})=>(0,D.jsx)(pzt.Provider,{value:e,children:t}),hzt=jf(e=>({activeMeeting:null,isJoined:!1,requestedMeetingId:null,setActiveMeeting:t=>{e({activeMeeting:t})},setJoined:t=>{e({isJoined:t})},setRequestedMeetingId:t=>{e({requestedMeetingId:t})},leaveActiveMeeting:()=>{e({activeMeeting:null,isJoined:!1,requestedMeetingId:null})}})),gzt=15e3,_zt=5*6e4,vzt=(e,t,n)=>{let r=new mFt({logger:t}),i=t=>e.modules===void 0||e.modules.includes(t);return{chat:i(`commhub.chat`)?r.create({url:`${e.apiBaseUrl}/signalr/chat`,accessTokenProvider:n}):new hFt,calls:i(`commhub.chat`)?r.create({url:`${e.apiBaseUrl}/signalr/calls`,accessTokenProvider:n}):new hFt,notifications:i(`commhub.feed`)?r.create({url:`${e.apiBaseUrl}/signalr/notifications`,accessTokenProvider:n}):new hFt}},yzt=e=>{let t=e.logger??new mp(`info`),n=new Xm,r=e.authStore,i=r.getState().session?.accessToken??null,a=r.subscribe(e=>{i=e.session?.accessToken??null}),o=()=>i??void 0,s=new whe(new Che(new yhe(new fp({logger:t,baseUrl:e.apiBaseUrl,getAuthToken:o}),{timeoutMs:gzt,logger:t}),{logger:t}),{logger:t,refresh:()=>r.getState().refreshSession()}),c=new K_e({defaultOptions:{queries:{staleTime:_zt,retry:1,refetchOnWindowFocus:!0}}}),l=vzt(e,t,o);return{logger:t,authStore:r,moduleAccessModule:xFt({httpClient:s,logger:t}),chatModule:XFt({logger:t,httpClient:s,realtime:l.chat,clock:n}),feedModule:uLt({logger:t,httpClient:s,notificationRealtime:l.notifications}),meetingsModule:ERt({logger:t,httpClient:s}),meetingVideoModule:fzt({logger:t,httpClient:s}),scheduleModule:qge({logger:t,httpClient:s,clock:n}),settingsModule:oSe({logger:t,httpClient:s}),usersModule:QRt({logger:t,httpClient:s}),presenceModule:USe({logger:t,httpClient:s}),callsModule:OCe({logger:t,httpClient:s,realtime:l.calls}),queryClient:c,dispose:async()=>{a(),c.clear(),await Promise.all([l.chat.stop(),l.calls.stop(),l.notifications.stop()])}}},c9=new Map,bzt=e=>`${e.apiBaseUrl}|${e.clientKey}|${e.authKind}`,xzt=(e,t,n)=>{let r=c9.get(e);if(r===void 0){let n=t();r={composition:n.composition,handshake:n.handshake,refCount:0},c9.set(e,r)}r.refCount+=1;let i=!1,a=r;return{composition:a.composition,handshake:a.handshake,release:()=>{i||(i=!0,--a.refCount,!(a.refCount>0)&&(c9.get(e)===a&&c9.delete(e),a.handshake.dispose(),a.composition.dispose().catch(e=>{n?.warn(`Disposing the shared SDK runtime failed`,{error:e})})))}}},Szt=`*`,Czt=e=>{switch(e.kind){case`sso`:return e.getSecret();case`signed`:return e.getAssertion();case`host-token`:return e.getToken()}},wzt=e=>{let t=new Xm,n=new fp({logger:e.logger,baseUrl:e.apiBaseUrl,getAuthToken:()=>void 0});switch(e.kind){case`sso`:return new ZCe({httpClient:n,clock:t,logger:e.logger});case`signed`:return new tPt({httpClient:n,clock:t,logger:e.logger,clientKey:e.clientKey,modules:e.modules});case`host-token`:return new nPt({clock:t,logger:e.logger})}},Tzt=e=>{let{apiBaseUrl:t,clientKey:n,authKind:r}=e,i=e.modules===void 0?Szt:e.modules.join(`,`),a=(0,y.useRef)(e.logger);a.current=e.logger;let o=(0,y.useMemo)(()=>i===Szt?void 0:Ezt(i),[i]),s=(0,y.useRef)(e.requestCredential);s.current=e.requestCredential;let c=bzt({apiBaseUrl:t,clientKey:n,authKind:r}),[l]=(0,y.useState)(()=>xzt(c,()=>{let e=a.current??new mp(`info`,`commhub-sdk`),i=wzt({kind:r,clientKey:n,apiBaseUrl:t,logger:e,modules:o??[]}),c=yzt({apiBaseUrl:t,authStore:ZNt({clock:new Xm,logger:e,storageNamespace:`sdk:${n}`,authGateway:i,setAccessToken:()=>{}}),modules:o,logger:e});return{composition:c,handshake:new pPt(t=>new fPt({authStore:c.authStore,moduleAccessModule:c.moduleAccessModule,requestCredential:()=>s.current(),requestedModules:o??[],emit:t,logger:e,renewable:r!==`sso`}))}},a.current));return(0,y.useEffect)(()=>()=>{l.release()},[l]),{composition:l.composition,handshake:l.handshake}},Ezt=e=>e===``?[]:e.split(`,`),Dzt=({handshake:e,auth:t,onEvent:n})=>{let r=(0,y.useRef)(n);r.current=n;let i=(0,y.useRef)(t);return i.current=t,(0,y.useEffect)(()=>e.attach(e=>{r.current?.(e)}),[e]),(0,y.useSyncExternalStore)(t=>e.subscribeStatus(t),()=>e.status,()=>e.status)},l9=e=>Math.min(100,Math.max(0,e)),u9=([e,t,n],r=0)=>`hsl(${String(e)} ${String(l9(t))}% ${String(l9(n+r))}%)`,d9=([e,t,n],r)=>`hsl(${String(e)} ${String(l9(t))}% ${String(l9(n))}% / ${String(r)})`,Ozt=60,kzt=e=>e[2]>Ozt?`#0f172a`:`#ffffff`,f9={a30:.18,a20:.12,a10:.06,a05:.035,border:.22},p9=e=>`${String(Math.max(0,Math.round(e)))}px`,Azt=e=>({"--color-primary":u9(e),"--color-primary-strong":u9(e,-12),"--color-primary-light":u9(e,12),"--color-primary-30":d9(e,f9.a30),"--color-primary-20":d9(e,f9.a20),"--color-primary-10":d9(e,f9.a10),"--color-primary-05":d9(e,f9.a05),"--color-primary-border":d9(e,f9.border),"--color-on-primary":kzt(e)}),jzt=e=>({"--color-secondary":u9(e),"--color-secondary-strong":u9(e,-12),"--color-secondary-30":d9(e,.3),"--color-secondary-20":d9(e,f9.a20),"--color-secondary-10":d9(e,.07),"--color-secondary-border":d9(e,.3)}),Mzt=e=>({"--radius-sm":p9(e-4),"--radius-md":p9(e),"--radius-lg":p9(e+4),"--radius-xl":p9(e+6)}),Nzt=[4,6,9,12,15,18,24],Pzt=()=>{let e={"--height-btn":p9(32),"--height-input":p9(34),"--height-row":p9(44),"--height-nav":p9(36)};return Nzt.forEach((t,n)=>{e[`--space-${String(n+1)}`]=p9(t)}),e},Fzt=e=>e?{...e.brand?Azt(e.brand):{},...e.accent?jzt(e.accent):{},...e.radius===void 0?{}:Mzt(e.radius),...e.font===void 0?{}:{"--font-sans":e.font},...e.density===`compact`?Pzt():{}}:{},Izt=e=>{let t=e?.mode??`system`;return t===`system`?null:t},Lzt=`data-theme`,Rzt=e=>{let t=e.getRootNode();return t instanceof ShadowRoot?t.host:e},zzt=e=>{let t=(0,y.useRef)(null),n=JSON.stringify(e??null),r=(0,y.useMemo)(()=>JSON.parse(n),[n]);return(0,y.useEffect)(()=>{let e=t.current;if(e===null)return;let n=Rzt(e),i=Fzt(r??void 0),a=Izt(r??void 0);for(let[e,t]of Object.entries(i))n.style.setProperty(e,t);return a===null?n.removeAttribute(Lzt):n.setAttribute(Lzt,a),()=>{for(let e of Object.keys(i))n.style.removeProperty(e);n.removeAttribute(Lzt)}},[r]),t},Bzt=e=>{if(e)return e;try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e)return e}catch{}return`UTC`},Vzt=class extends y.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.logger.error(`Unhandled error inside the Communication Hub widget`,e,{componentStack:t.componentStack}),this.props.onEvent?.({type:`error`,payload:{code:`WIDGET_CRASHED`,message:e.message}})}render(){let{error:e}=this.state;return e===null?this.props.children:(0,D.jsx)(sr,{tone:`error`,title:`This widget could not be displayed`,children:`Something went wrong inside the Communication Hub widget. Reloading the page usually fixes it.`})}};gm({grantedModules:hm(k()).nullish(),grantedPolicies:hm(k()).nullish(),canManageUserAccess:mm().nullish()});var Hzt=(0,y.createContext)(null),Uzt=({module:e,children:t})=>(0,D.jsx)(Hzt.Provider,{value:e,children:t}),Wzt=e=>{let t=VLt.safeParse(e);if(!t.success)return null;let{id:n,kind:r,actor:i,message:a,detail:o,time:s,postId:c}=t.data;return{id:n,kind:r,actor:i,occurredAt:s,...a==null?{}:{message:a},...o==null?{}:{detail:o},...c==null?{}:{postId:c}}},Gzt=({onEvent:e})=>{let{notificationRealtime:t,logger:n}=X7();return(0,y.useEffect)(()=>{if(e===void 0)return;let r=t.on(BLt.ReceiveNotification,t=>{let r=Wzt(t);if(r===null){n.error(`Discarded a malformed notification payload`,{rawPayload:t});return}e({type:`notification`,payload:r})});return t.start().catch(e=>{n.error(`Could not open the notification connection`,e)}),()=>{r()}},[t,n,e]),null},Kzt=({composition:e,children:t,onEvent:n})=>(0,D.jsx)(J_e,{client:e.queryClient,children:(0,D.jsx)(Aae,{reducedMotion:`user`,children:(0,D.jsx)(hpe,{children:(0,D.jsx)(awe,{store:e.authStore,children:(0,D.jsx)(Uzt,{module:e.moduleAccessModule,children:(0,D.jsx)(ZFt,{module:e.chatModule,children:(0,D.jsx)(fIt,{children:(0,D.jsx)(fLt,{module:e.feedModule,children:(0,D.jsx)(ORt,{module:e.meetingsModule,children:(0,D.jsx)(mzt,{module:e.meetingVideoModule,children:(0,D.jsx)(Yge,{module:e.scheduleModule,children:(0,D.jsx)(cSe,{module:e.settingsModule,children:(0,D.jsx)(ezt,{module:e.usersModule,children:(0,D.jsx)(YSe,{module:e.presenceModule,children:(0,D.jsx)(ACe,{module:e.callsModule,children:(0,D.jsxs)(lwe,{children:[t,(0,D.jsx)(oOt,{}),(0,D.jsx)(Gzt,{onEvent:n}),(0,D.jsx)(xpe,{})]})})})})})})})})})})})})})})})}),qzt={scope:`_scope_p8b6f_6`},Jzt=e=>{let{auth:t,apiBaseUrl:n,clientKey:r,modules:i,theme:a,timezone:o,logger:s,onEvent:c}=e,{composition:l,handshake:u}=Tzt({apiBaseUrl:n,clientKey:r,authKind:t.kind,modules:i,logger:s,requestCredential:()=>Czt(t)}),d=Dzt({handshake:u,auth:t,onEvent:c}),f=zzt(a),[p,m]=(0,y.useState)(null);return(0,D.jsx)(`div`,{ref:e=>{f.current=e,m(e)},className:qzt.scope,"data-timezone":Bzt(o),"data-handshake":d,children:(0,D.jsx)(Vpe,{container:p,children:(0,D.jsx)(Vzt,{logger:l.logger,onEvent:c,children:d===`ready`?(0,D.jsx)(Kzt,{composition:l,onEvent:c,children:e.children}):null})})})},Yzt=({children:e,initialRoute:t,...n})=>(0,D.jsx)(Jzt,{...n,children:(0,D.jsx)(ft,{initialEntries:[t??`/`],children:e})}),Xzt=class extends Jn{code=`SDK_WIDGET_CONFIG_INVALID`},Zzt=()=>uge(e=>typeof e==`function`,{message:`Expected a function`}),Qzt=fge(`kind`,[gm({kind:mge(`signed`),getAssertion:Zzt()})]),$zt=pge([pm(),pm(),pm()]),eBt=gm({brand:$zt.optional(),accent:$zt.optional(),radius:pm().optional(),font:k().optional(),density:ym([`comfortable`,`compact`]).optional(),mode:ym([`light`,`dark`,`system`]).optional()}),tBt=gm({apiBaseUrl:k().url(),clientKey:k().min(1),auth:Qzt,modules:hm(ym(aPt)).optional(),theme:eBt.optional(),timezone:k().optional(),locale:k().optional(),logger:uge().optional(),onEvent:Zzt().optional()}),nBt=e=>{let t=tBt.safeParse(e);return t.success?Yf(t.data):O(new Xzt(t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)))},rBt=`route`,m9=(e,t,n=[])=>{qNt(e,n=>{let r=nBt(n.config);if(!r.ok)return(0,D.jsx)(YNt,{tagName:e,detail:r.error.message});let i=n.getAttribute(rBt);return(0,D.jsx)(Yzt,{...r.value,...i===null?{}:{initialRoute:i},children:t()})},[rBt,...n])},iBt=()=>{m9(`uapp-chat`,()=>(0,D.jsx)(zNt,{}))},aBt={date:``,time:``,recurring:!1,frequency:`weekly`},oBt=[{value:`now`,label:`Post now`},{value:`schedule`,label:`Schedule`}],sBt=[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],cBt={photo:`Add photos`,tag:`Tag people`,feeling:`How are you feeling?`,category:`POST CATEGORY`,item:`Select Item`,template:`Choose Template`},$={screen:`_screen_ltjgo_1`,toolbar:`_toolbar_ltjgo_8`,toolbarContainer:`_toolbarContainer_ltjgo_14`,search:`_search_ltjgo_23`,toolbarRailSpacer:`_toolbarRailSpacer_ltjgo_31`,searchIcon:`_searchIcon_ltjgo_36`,searchInput:`_searchInput_ltjgo_44`,textareaError:`_textareaError_ltjgo_59`,commentComposerError:`_commentComposerError_ltjgo_60`,shareCommentError:`_shareCommentError_ltjgo_61`,wrapper:`_wrapper_ltjgo_70`,column:`_column_ltjgo_80`,rail:`_rail_ltjgo_91`,railHead:`_railHead_ltjgo_102`,railHeadTitle:`_railHeadTitle_ltjgo_109`,railSeeAll:`_railSeeAll_ltjgo_123`,railList:`_railList_ltjgo_132`,cardBody:`_cardBody_ltjgo_142`,seeMoreBtn:`_seeMoreBtn_ltjgo_151`,railFoot:`_railFoot_ltjgo_166`,missed:`_missed_ltjgo_177`,missedHead:`_missedHead_ltjgo_184`,missedSpark:`_missedSpark_ltjgo_192`,missedTitle:`_missedTitle_ltjgo_196`,missedBadge:`_missedBadge_ltjgo_203`,missedScroller:`_missedScroller_ltjgo_212`,missedScrollerFade:`_missedScrollerFade_ltjgo_217`,missedTrack:`_missedTrack_ltjgo_217`,missedNav:`_missedNav_ltjgo_229`,missedNavLeft:`_missedNavLeft_ltjgo_264`,missedNavRight:`_missedNavRight_ltjgo_268`,missedCard:`_missedCard_ltjgo_272`,missedCardTop:`_missedCardTop_ltjgo_282`,missedDot:`_missedDot_ltjgo_289`,missedCat:`_missedCat_ltjgo_297`,missedTime:`_missedTime_ltjgo_304`,missedSummary:`_missedSummary_ltjgo_311`,missedFoot:`_missedFoot_ltjgo_323`,missedCta:`_missedCta_ltjgo_329`,missedPriority:`_missedPriority_ltjgo_338`,compChips:`_compChips_ltjgo_354`,compChip:`_compChip_ltjgo_354`,actionBar:`_actionBar_ltjgo_374`,actionBarLabel:`_actionBarLabel_ltjgo_386`,actionBarBtns:`_actionBarBtns_ltjgo_392`,actionIcon:`_actionIcon_ltjgo_397`,actionIconActive:`_actionIconActive_ltjgo_414`,sheet:`_sheet_ltjgo_419`,sheetHead:`_sheetHead_ltjgo_427`,sheetLabel:`_sheetLabel_ltjgo_435`,sheetClose:`_sheetClose_ltjgo_443`,sheetChips:`_sheetChips_ltjgo_465`,catChip:`_catChip_ltjgo_471`,catChipOn:`_catChipOn_ltjgo_483`,feelGrid:`_feelGrid_ltjgo_488`,feelBtn:`_feelBtn_ltjgo_494`,feelBtnOn:`_feelBtnOn_ltjgo_509`,feelEmoji:`_feelEmoji_ltjgo_515`,photoInput:`_photoInput_ltjgo_519`,photoZone:`_photoZone_ltjgo_523`,photoZoneDrag:`_photoZoneDrag_ltjgo_528`,dropzone:`_dropzone_ltjgo_533`,dropIcon:`_dropIcon_ltjgo_554`,dropTitle:`_dropTitle_ltjgo_566`,dropHint:`_dropHint_ltjgo_572`,photoGrid:`_photoGrid_ltjgo_577`,photoThumb:`_photoThumb_ltjgo_584`,photoImg:`_photoImg_ltjgo_592`,photoRemove:`_photoRemove_ltjgo_599`,photoAddMore:`_photoAddMore_ltjgo_619`,mobilePromoTrigger:`_mobilePromoTrigger_ltjgo_642`,promoPulseGlow:`_promoPulseGlow_ltjgo_1`,mobilePromoTriggerBarHidden:`_mobilePromoTriggerBarHidden_ltjgo_739`,mobilePromoExpanded:`_mobilePromoExpanded_ltjgo_745`,promoShimmerSweep:`_promoShimmerSweep_ltjgo_758`,promoShimmer:`_promoShimmer_ltjgo_758`,promoIconWrap:`_promoIconWrap_ltjgo_774`,sparkleIcon:`_sparkleIcon_ltjgo_787`,sparkleTwinkle:`_sparkleTwinkle_ltjgo_1`,promoBtnText:`_promoBtnText_ltjgo_791`,mobilePromoBadge:`_mobilePromoBadge_ltjgo_810`,promoPopoverOverlay:`_promoPopoverOverlay_ltjgo_827`,promoPopoverCard:`_promoPopoverCard_ltjgo_839`,popoverHeader:`_popoverHeader_ltjgo_853`,popoverCloseX:`_popoverCloseX_ltjgo_862`,popoverBadgeIcon:`_popoverBadgeIcon_ltjgo_883`,popoverTitleRow:`_popoverTitleRow_ltjgo_895`,popoverTitle:`_popoverTitle_ltjgo_895`,popoverSeeAllBtn:`_popoverSeeAllBtn_ltjgo_911`,popoverSub:`_popoverSub_ltjgo_927`,popoverContent:`_popoverContent_ltjgo_934`,popoverEmpty:`_popoverEmpty_ltjgo_943`,missedClose:`_missedClose_ltjgo_992`,missedRead:`_missedRead_ltjgo_1029`,comments:`_comments_ltjgo_1055`,commentRow:`_commentRow_ltjgo_1064`,commentAvatar:`_commentAvatar_ltjgo_1069`,commentBubble:`_commentBubble_ltjgo_1083`,commentAuthor:`_commentAuthor_ltjgo_1091`,commentTime:`_commentTime_ltjgo_1097`,commentText:`_commentText_ltjgo_1102`,commentComposer:`_commentComposer_ltjgo_60`,commentInput:`_commentInput_ltjgo_1128`,commentSend:`_commentSend_ltjgo_1138`,sharePreviewWrap:`_sharePreviewWrap_ltjgo_1168`,sharePreview:`_sharePreview_ltjgo_1168`,sharePreviewAvatar:`_sharePreviewAvatar_ltjgo_1184`,sharePreviewBody:`_sharePreviewBody_ltjgo_1198`,sharePreviewMeta:`_sharePreviewMeta_ltjgo_1203`,sharePreviewCat:`_sharePreviewCat_ltjgo_1209`,sharePreviewTitle:`_sharePreviewTitle_ltjgo_1214`,shareField:`_shareField_ltjgo_1224`,shareComment:`_shareComment_ltjgo_61`,shareSearchWrap:`_shareSearchWrap_ltjgo_1248`,shareSearch:`_shareSearch_ltjgo_1248`,shareSearchInput:`_shareSearchInput_ltjgo_1264`,shareList:`_shareList_ltjgo_1281`,shareSectionLabel:`_shareSectionLabel_ltjgo_1288`,shareRow:`_shareRow_ltjgo_1297`,shareRowOn:`_shareRowOn_ltjgo_1315`,shareAvatar:`_shareAvatar_ltjgo_1321`,shareAvatarSquare:`_shareAvatarSquare_ltjgo_1335`,shareRowBody:`_shareRowBody_ltjgo_1339`,shareRowName:`_shareRowName_ltjgo_1346`,shareRowSub:`_shareRowSub_ltjgo_1352`,shareCheck:`_shareCheck_ltjgo_1357`,shareCheckOn:`_shareCheckOn_ltjgo_1370`,shareEmpty:`_shareEmpty_ltjgo_1375`,shareFootText:`_shareFootText_ltjgo_1383`,shareFootBtns:`_shareFootBtns_ltjgo_1388`,shareCancelBtn:`_shareCancelBtn_ltjgo_1393`,shareSendBtn:`_shareSendBtn_ltjgo_1408`,shareRoot:`_shareRoot_ltjgo_1429`,shareBackdrop:`_shareBackdrop_ltjgo_1439`,shareFade:`_shareFade_ltjgo_1`,shareModal:`_shareModal_ltjgo_1449`,shareIn:`_shareIn_ltjgo_1`,shareHead:`_shareHead_ltjgo_1483`,shareHeadIcon:`_shareHeadIcon_ltjgo_1491`,shareHeadText:`_shareHeadText_ltjgo_1503`,shareTitle:`_shareTitle_ltjgo_1508`,shareDesc:`_shareDesc_ltjgo_1515`,shareCloseBtn:`_shareCloseBtn_ltjgo_1521`,shareFooter:`_shareFooter_ltjgo_1540`,ppRoot:`_ppRoot_ltjgo_1551`,ppOverlay:`_ppOverlay_ltjgo_1559`,ppFade:`_ppFade_ltjgo_1`,ppPanel:`_ppPanel_ltjgo_1569`,ppSlide:`_ppSlide_ltjgo_1`,ppHead:`_ppHead_ltjgo_1601`,ppHeadIcon:`_ppHeadIcon_ltjgo_1610`,ppHeadText:`_ppHeadText_ltjgo_1621`,ppTitle:`_ppTitle_ltjgo_1626`,ppSubtitle:`_ppSubtitle_ltjgo_1643`,ppManaged:`_ppManaged_ltjgo_1649`,ppClose:`_ppClose_ltjgo_1654`,ppTabs:`_ppTabs_ltjgo_1674`,ppTab:`_ppTab_ltjgo_1674`,ppSearch:`_ppSearch_ltjgo_1683`,ppTabActive:`_ppTabActive_ltjgo_1704`,ppTabBg:`_ppTabBg_ltjgo_1708`,ppTabLabel:`_ppTabLabel_ltjgo_1716`,ppSearchIcon:`_ppSearchIcon_ltjgo_1726`,ppSearchInput:`_ppSearchInput_ltjgo_1734`,ppList:`_ppList_ltjgo_1753`,ppListInner:`_ppListInner_ltjgo_1761`,ppEmpty:`_ppEmpty_ltjgo_1776`,emptyState:`_emptyState_ltjgo_1790`,emptyIconWrap:`_emptyIconWrap_ltjgo_1802`,emptyTitle:`_emptyTitle_ltjgo_1814`,emptyText:`_emptyText_ltjgo_1821`,tabs:`_tabs_ltjgo_1830`,tab:`_tab_ltjgo_1830`,tabActive:`_tabActive_ltjgo_1852`,tabBadge:`_tabBadge_ltjgo_1858`,composerCollapsed:`_composerCollapsed_ltjgo_1866`,ccAvatar:`_ccAvatar_ltjgo_1876`,compAvatar:`_compAvatar_ltjgo_1877`,avatar:`_avatar_ltjgo_1878`,ccInput:`_ccInput_ltjgo_1895`,composer:`_composer_ltjgo_1866`,compHead:`_compHead_ltjgo_1921`,compAvatarWrapper:`_compAvatarWrapper_ltjgo_1928`,statusDot:`_statusDot_ltjgo_1933`,compHeaderTagline:`_compHeaderTagline_ltjgo_1950`,compMutedText:`_compMutedText_ltjgo_1956`,taggedTagline:`_taggedTagline_ltjgo_1961`,audiencePill:`_audiencePill_ltjgo_1973`,audienceSection:`_audienceSection_ltjgo_1992`,audienceLabel:`_audienceLabel_ltjgo_2003`,audienceRow:`_audienceRow_ltjgo_2011`,audienceBtn:`_audienceBtn_ltjgo_2017`,audienceBtnActive:`_audienceBtnActive_ltjgo_2035`,compClose:`_compClose_ltjgo_2041`,titleInput:`_titleInput_ltjgo_2060`,textarea:`_textarea_ltjgo_59`,compOption:`_compOption_ltjgo_2093`,compOptionLabel:`_compOptionLabel_ltjgo_2105`,compFooter:`_compFooter_ltjgo_2118`,submitRight:`_submitRight_ltjgo_2127`,modeToggle:`_modeToggle_ltjgo_2133`,cancelBtn:`_cancelBtn_ltjgo_2137`,postBtn:`_postBtn_ltjgo_2152`,card:`_card_ltjgo_142`,urgentStripe:`_urgentStripe_ltjgo_2186`,pinnedRow:`_pinnedRow_ltjgo_2197`,pin:`_pin_ltjgo_2197`,cardHead:`_cardHead_ltjgo_2212`,cardAuthor:`_cardAuthor_ltjgo_2224`,authorName:`_authorName_ltjgo_2229`,metaRow:`_metaRow_ltjgo_2239`,cardRight:`_cardRight_ltjgo_2249`,badge:`_badge_ltjgo_2257`,badgeDot:`_badgeDot_ltjgo_2270`,bookmarkBtn:`_bookmarkBtn_ltjgo_2277`,bookmarkActive:`_bookmarkActive_ltjgo_2295`,pinBtn:`_pinBtn_ltjgo_2300`,pinActive:`_pinActive_ltjgo_2318`,editBtn:`_editBtn_ltjgo_2323`,cardActions:`_cardActions_ltjgo_2341`,cardTitle:`_cardTitle_ltjgo_2347`,ackBanner:`_ackBanner_ltjgo_2367`,ackBtn:`_ackBtn_ltjgo_2382`,ackDone:`_ackDone_ltjgo_2394`,summary:`_summary_ltjgo_2408`,summaryLeft:`_summaryLeft_ltjgo_2418`,summaryIcons:`_summaryIcons_ltjgo_2424`,summaryDot:`_summaryDot_ltjgo_2429`,summaryCount:`_summaryCount_ltjgo_2445`,summaryComments:`_summaryComments_ltjgo_2450`,summaryCommentsClickable:`_summaryCommentsClickable_ltjgo_2454`,postBar:`_postBar_ltjgo_2464`,reactWrap:`_reactWrap_ltjgo_2472`,actionBtn:`_actionBtn_ltjgo_2478`,actionActive:`_actionActive_ltjgo_2502`,picker:`_picker_ltjgo_2519`,pickerVisible:`_pickerVisible_ltjgo_2551`,pickerBtn:`_pickerBtn_ltjgo_2557`,pickerActive:`_pickerActive_ltjgo_2579`,schedule:`_schedule_ltjgo_2622`,scheduleHead:`_scheduleHead_ltjgo_2633`,scheduleGrid:`_scheduleGrid_ltjgo_2647`,scheduleField:`_scheduleField_ltjgo_2653`,scheduleLabel:`_scheduleLabel_ltjgo_2659`,scheduleInput:`_scheduleInput_ltjgo_2665`,scheduleRow:`_scheduleRow_ltjgo_2682`,scheduleRowLabel:`_scheduleRowLabel_ltjgo_2692`,switch:`_switch_ltjgo_2705`,switchOn:`_switchOn_ltjgo_2717`,switchKnob:`_switchKnob_ltjgo_2721`,scheduleFreq:`_scheduleFreq_ltjgo_2736`,scheduleTz:`_scheduleTz_ltjgo_2740`,tagSearch:`_tagSearch_ltjgo_2754`,tagSearchInput:`_tagSearchInput_ltjgo_2765`,tagList:`_tagList_ltjgo_2774`,tagRow:`_tagRow_ltjgo_2782`,tagRowActive:`_tagRowActive_ltjgo_2799`,tagRowContent:`_tagRowContent_ltjgo_2804`,tagAvatar:`_tagAvatar_ltjgo_2810`,tagInfo:`_tagInfo_ltjgo_2823`,tagName:`_tagName_ltjgo_2828`,tagRole:`_tagRole_ltjgo_2834`,tagCheckbox:`_tagCheckbox_ltjgo_2839`,tagCheckboxActive:`_tagCheckboxActive_ltjgo_2850`,postImagesGrid:`_postImagesGrid_ltjgo_2857`,grid1:`_grid1_ltjgo_2876`,grid2:`_grid2_ltjgo_2880`,grid3:`_grid3_ltjgo_2884`,grid4:`_grid4_ltjgo_2889`,gridImageWrap:`_gridImageWrap_ltjgo_2894`,gridImage:`_gridImage_ltjgo_2894`,moreImagesOverlay:`_moreImagesOverlay_ltjgo_2920`,lightboxOverlay:`_lightboxOverlay_ltjgo_2943`,lightboxContainer:`_lightboxContainer_ltjgo_2960`,lightboxLeft:`_lightboxLeft_ltjgo_2973`,lightboxRight:`_lightboxRight_ltjgo_2983`,lightboxScrollableContent:`_lightboxScrollableContent_ltjgo_2993`,lightboxDivider:`_lightboxDivider_ltjgo_3004`,lightboxClose:`_lightboxClose_ltjgo_3028`,lightboxImage:`_lightboxImage_ltjgo_3041`,lightboxArrow:`_lightboxArrow_ltjgo_3077`,lightboxArrowLeft:`_lightboxArrowLeft_ltjgo_3099`,lightboxArrowRight:`_lightboxArrowRight_ltjgo_3107`,lightboxCounter:`_lightboxCounter_ltjgo_3115`,templateSheet:`_templateSheet_ltjgo_3133`,templateSheetHeader:`_templateSheetHeader_ltjgo_3139`,templateBackBtn:`_templateBackBtn_ltjgo_3147`,templateSheetTitle:`_templateSheetTitle_ltjgo_3170`,templateSheetMeta:`_templateSheetMeta_ltjgo_3179`,templateSearch:`_templateSearch_ltjgo_3191`,templateSearchIcon:`_templateSearchIcon_ltjgo_3197`,templateSearchInput:`_templateSearchInput_ltjgo_3206`,templateList:`_templateList_ltjgo_3223`,templateItem:`_templateItem_ltjgo_3230`,templateItemBody:`_templateItemBody_ltjgo_3254`,templateItemTitle:`_templateItemTitle_ltjgo_3262`,templateItemSub:`_templateItemSub_ltjgo_3271`,templateUseBtn:`_templateUseBtn_ltjgo_3279`,templateEmpty:`_templateEmpty_ltjgo_3300`,itemIconContainer:`_itemIconContainer_ltjgo_3307`,itemBadge:`_itemBadge_ltjgo_3319`,itemMetaRow:`_itemMetaRow_ltjgo_3329`},lBt=({on:e,label:t,onToggle:n})=>(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":t,className:E($.switch,e&&$.switchOn),onClick:n,children:(0,D.jsx)(`span`,{className:$.switchKnob})}),uBt=e=>{let t=Qm(new Date,e),n=t.hour*60+t.minute+1,r=Math.floor(n/60)%24,i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`},dBt=({value:e,todayStr:t,clampTime:n,onChange:r})=>(0,D.jsxs)(`label`,{className:$.scheduleField,children:[(0,D.jsx)(`span`,{className:$.scheduleLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:$.scheduleInput,value:e.date,min:t,onChange:i=>{let a=i.target.value;r({...e,date:a,time:a===t?n(e.time):e.time})}})]}),fBt=({value:e,minTimeStr:t,isPastTime:n,clampTime:r,onChange:i})=>(0,D.jsxs)(`label`,{className:$.scheduleField,children:[(0,D.jsx)(`span`,{className:$.scheduleLabel,children:`Time`}),(0,D.jsx)(`input`,{type:`time`,className:E($.scheduleInput,n&&$.scheduleInputError),"aria-invalid":n,"aria-describedby":n?`schedule-time-error`:void 0,value:e.time,min:t,onChange:t=>{i({...e,time:r(t.target.value)})},onBlur:()=>{n&&i({...e,time:t})}}),n&&(0,D.jsx)(`span`,{id:`schedule-time-error`,className:$.scheduleTimeError,role:`alert`,children:`Past time — snapped to earliest available time.`})]}),pBt=({value:e,onChange:t,timezone:n})=>{let r=Qm(new Date,n),i=`${String(r.year)}-${String(r.month).padStart(2,`0`)}-${String(r.day).padStart(2,`0`)}`,a=e.date===i,o=uBt(n),s=e=>a&&e<o?o:e,c=a&&e.time<o;return(0,D.jsxs)(`div`,{className:$.schedule,children:[(0,D.jsxs)(`div`,{className:$.scheduleHead,children:[(0,D.jsx)(_ee,{size:13}),` SCHEDULE THIS POST`]}),(0,D.jsxs)(`div`,{className:$.scheduleGrid,children:[(0,D.jsx)(dBt,{value:e,todayStr:i,clampTime:s,onChange:t}),(0,D.jsx)(fBt,{value:e,minTimeStr:o,isPastTime:c,clampTime:s,onChange:t})]}),(0,D.jsxs)(`div`,{className:$.scheduleRow,children:[(0,D.jsxs)(`span`,{className:$.scheduleRowLabel,children:[(0,D.jsx)(jn,{size:13}),` Recurring`]}),(0,D.jsx)(lBt,{on:e.recurring,label:`Repeat this post`,onToggle:()=>{t({...e,recurring:!e.recurring})}})]}),e.recurring&&(0,D.jsx)(Ape,{ariaLabel:`Repeat frequency`,className:$.scheduleFreq??``,options:sBt,value:e.frequency,onChange:n=>{t({...e,frequency:n})}}),(0,D.jsxs)(`div`,{className:$.scheduleTz,children:[(0,D.jsx)(rn,{size:12}),` Timezone: `,(0,D.jsx)(`strong`,{children:n})]})]})},mBt=({mode:e,disabled:t,submitLabels:n,hideToggle:r,onMode:i,onCancel:a,onSubmit:o})=>(0,D.jsxs)(`div`,{className:$.compFooter,children:[(0,D.jsx)(`button`,{type:`button`,className:$.cancelBtn,onClick:a,children:`Cancel`}),(0,D.jsxs)(`div`,{className:$.submitRight,children:[!r&&(0,D.jsx)(Ape,{ariaLabel:`Publish timing`,className:$.modeToggle??``,options:oBt,value:e,onChange:i}),(0,D.jsx)(`button`,{type:`button`,className:$.postBtn,disabled:t,onClick:o,children:e===`schedule`?n?.schedule??(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Jt,{size:12}),` Schedule post`]}):n?.now??(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Nn,{size:12}),` Post now`]})})]})]});function hBt(e,t,n){if(e===`schedule`)return eh(t.date,t.time,n)}function gBt(){let[e,t]=(0,y.useState)(``),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(`general`),[c,l]=(0,y.useState)(`all`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(`now`),[v,b]=(0,y.useState)(aBt),[x,S]=(0,y.useState)([]),[C,w]=(0,y.useState)([]),[T,ee]=(0,y.useState)(null);return{body:e,setBody:t,title:n,setTitle:r,mustRead:i,setMustRead:a,categoryId:o,setCategoryId:s,audienceId:c,setAudienceId:l,feeling:u,setFeeling:d,location:f,setLocation:p,sheet:m,setSheet:h,mode:g,setMode:_,schedule:v,setSchedule:b,taggedUsers:x,setTaggedUsers:S,photos:C,setPhotos:w,selectedItem:T,setSelectedItem:ee}}function _Bt(e,t){return e.title.trim().length>300?`Post title cannot exceed 300 characters.`:e.body.trim().length>8e3?`Post body cannot exceed 8000 characters.`:e.mode===`schedule`&&t&&Date.parse(t)<Date.now()?`Schedule time must be in the future.`:null}function vBt(e,t,n){let r=gLt(),i=DLt(),a=e.body.trim().length===0||r.isPending||i.isPending||e.mode===`schedule`&&(!e.schedule.date||!e.schedule.time);return{submitDisabled:a,submit:async()=>{if(a)return;let o=hBt(e.mode,e.schedule,n),s=_Bt(e,o);if(s){Nf.error(s);return}try{let n=[];e.photos.length>0&&(n=await Promise.all(e.photos.map(e=>i.mutateAsync(e)))),r.mutate({body:e.body,categoryId:e.categoryId,audienceId:e.audienceId,mustAcknowledge:e.mustRead,taggedUserIds:e.taggedUsers.map(e=>e.id),...e.title.trim()?{title:e.title.trim()}:{},scheduledAt:o,isRecurring:e.mode===`schedule`?e.schedule.recurring:!1,recurrenceFrequency:e.mode===`schedule`&&e.schedule.recurring?e.schedule.frequency:void 0,locationLabel:e.location??void 0,imageIds:n.length>0?n:void 0},{onSuccess:()=>{e.mode===`schedule`&&Nf.success(`Post scheduled for ${e.schedule.date} at ${e.schedule.time}`),t()},onError:()=>{Nf.error(`Failed to publish post. Please try again.`)}})}catch{Nf.error(`Invalid schedule date or time, or image upload failed.`)}}}}function yBt(e,t){let n=gBt(),r=nh().display,{submitDisabled:i,submit:a}=vBt(n,e,r),o=e=>{n.setTaggedUsers(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])},s=(e,t)=>{n.setTitle(e),n.setBody(t),n.setSheet(null),n.setSelectedItem(null)},c=e=>{let t=typeof e==`function`?e(n.mode):e;if(n.setMode(t),t===`schedule`&&!n.schedule.date){let e=Qm(new Date,r),t=`${String(e.year)}-${String(e.month).padStart(2,`0`)}-${String(e.day).padStart(2,`0`)}`,i=`${String(e.hour).padStart(2,`0`)}:${String(e.minute).padStart(2,`0`)}`;n.setSchedule({...n.schedule,date:t,time:i})}};return{...n,setMode:c,category:t.find(e=>e.id===n.categoryId),timezone:r,submitDisabled:i,toggleTag:o,applyTemplate:s,submit:a}}var bBt=e=>{let t=e.values,n=[`item_title`,`student_name`,`university_name`,`course_name`,`name`,`title`].find(e=>{let n=t[e];return n?n.trim()!==``:!1}),r=n===void 0?void 0:t[n],i=Object.entries(t).find(([e,t])=>t.trim()!==``),a=r??i?.[1]??e.id,o=n??i?.[0],s=[`item_description`,`university`,`status`].find(e=>{let n=t[e];return n?n.trim()!==``:!1}),c=s===void 0?void 0:t[s],l=Object.entries(t).find(([e,t])=>e!==o&&t.trim()!==``),u=c??l?.[1]??``;return{id:e.id,label:a,sublabel:u,values:t}},xBt=(e,t)=>e===void 0?[]:t.filter(t=>e.templateIds.includes(t.id)||e.dataTemplateIds.includes(t.id)),SBt=(e,t)=>{let n=!!e?.webhookId,r=hSe(n?void 0:e?.categoryKey),i=gSe(e?.categoryKey??``,t,n),a=n?i:r;return{rawItems:a.data??[],isLoadingItems:a.isPending,hasWebhook:n}},CBt={all:Wn,sales:Ft,admission:an,leadership:Rn},wBt=e=>CBt[e]??Wn,TBt=({audienceId:e,onChange:t})=>{let{data:n=[]}=wLt(),r=n.find(t=>t.id===e)??n[0],i=wBt(r?.id??`all`);return(0,D.jsx)(bf,{align:`start`,trigger:(0,D.jsxs)(`button`,{type:`button`,className:$.audiencePill,"aria-label":`Audience`,children:[(0,D.jsx)(i,{size:12}),` `,r?.label??`Everyone`,(0,D.jsx)(Vt,{size:12})]}),items:n.map(e=>{let n=wBt(e.id);return{label:e.label,icon:(0,D.jsx)(n,{size:14}),onSelect:()=>{t(e.id)}}})})},EBt=({audienceId:e,onChange:t})=>{let{data:n=[]}=wLt();return(0,D.jsxs)(`div`,{className:$.audienceSection,children:[(0,D.jsx)(`span`,{className:$.audienceLabel,children:`Who can see this post?`}),(0,D.jsx)(`div`,{className:$.audienceRow,children:n.map(n=>{let r=wBt(n.id),i=n.id===e;return(0,D.jsxs)(`button`,{type:`button`,className:E($.audienceBtn,i&&$.audienceBtnActive),"aria-pressed":i,onClick:()=>{t(n.id)},children:[(0,D.jsx)(r,{size:14}),` `,n.label,i&&(0,D.jsx)(Bt,{size:13})]},n.id)})})]})},DBt=({user:e,isSelected:t,onToggleTag:n})=>(0,D.jsxs)(`button`,{type:`button`,className:E($.tagRow,t&&$.tagRowActive),onClick:()=>{n(e)},children:[(0,D.jsxs)(`div`,{className:$.tagRowContent,children:[(0,D.jsx)(`span`,{className:$.tagAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`div`,{className:$.tagInfo,children:[(0,D.jsx)(`span`,{className:$.tagName,children:e.name}),(0,D.jsx)(`span`,{className:$.tagRole,children:e.role})]})]}),(0,D.jsx)(`div`,{className:E($.tagCheckbox,t&&$.tagCheckboxActive),children:(0,D.jsx)(Bt,{size:12})})]}),OBt=({isSearching:e,isPending:t,search:n,activeList:r,taggedUserIds:i,onToggleTag:a})=>e?t?(0,D.jsx)(`span`,{className:$.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Searching...`}):r.length===0?(0,D.jsxs)(`span`,{className:$.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:[`No teammates found matching "`,n,`".`]}):(0,D.jsx)(D.Fragment,{children:r.map(e=>(0,D.jsx)(DBt,{user:e,isSelected:i.includes(e.id),onToggleTag:a},e.id))}):(0,D.jsx)(`span`,{className:$.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Type a name or email to search teammates.`}),kBt=({taggedUserIds:e,onToggleTag:t})=>{let[n,r]=(0,y.useState)(``),i=ELt(n),{user:a}=qh(),o=n.trim().length>0,s=(i.data??[]).filter(e=>e.id!==a?.id);return(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:$.tagSearch,children:[(0,D.jsx)(Mn,{size:14,className:$.actionBarLabel}),(0,D.jsx)(`input`,{type:`text`,className:$.tagSearchInput,placeholder:`Search teammates`,value:n,onChange:e=>{r(e.target.value)}}),n&&(0,D.jsx)(`button`,{type:`button`,onClick:()=>{r(``)},style:{border:`none`,background:`transparent`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`2px`,color:`var(--color-text-soft)`,borderRadius:`50%`},"aria-label":`Clear search`,children:(0,D.jsx)(qn,{size:14})})]}),(0,D.jsx)(`div`,{className:$.tagList,children:(0,D.jsx)(OBt,{isSearching:o,isPending:i.isPending,search:n,activeList:s,taggedUserIds:e,onToggleTag:t})})]})},ABt=({categoryId:e,onCategory:t})=>{let{data:n=[]}=Q7();return(0,D.jsx)(`div`,{className:$.sheetChips,children:n.map(n=>(0,D.jsx)(`button`,{type:`button`,className:E($.catChip,e===n.id&&$.catChipOn),style:Xn({"--chip":n.color}),onClick:()=>{t(n)},children:n.label},n.id))})},jBt=({feeling:e,onFeeling:t})=>{let{data:n=[]}=TLt();return(0,D.jsx)(`div`,{className:$.feelGrid,children:n.map(n=>(0,D.jsxs)(`button`,{type:`button`,className:E($.feelBtn,e===n.id&&$.feelBtnOn),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:$.feelEmoji,children:n.emoji}),n.label]},n.id))})},h9=(e,t)=>{let n={};return Object.entries(t).forEach(([e,t])=>{n[e.toLowerCase()]=t}),e.replace(/\{\{\s*([a-z0-9_]+)\s*\}\}/gi,(e,t)=>n[t.toLowerCase()]??``)},MBt=e=>e.length>120?`${e.slice(0,120)}…`:e,NBt=(e,t,n,r)=>{t(e),e.dataTemplateIds.length>0||e.templateIds.length>0?n(`item`):r()},PBt=(e,t)=>{t(`item`)},FBt=e=>{let t=new Set,n=/\{\{\s*([a-z0-9_]+)\s*\}\}/gi;return e.forEach(e=>{let r=`${e.postTitle} ${e.postBody}`.matchAll(n);for(let e of r)e[1]!==void 0&&t.add(e[1].toLowerCase())}),t},IBt=({item:e,templates:t})=>{let n=FBt(t),r=Object.entries(e.values).filter(([e,t])=>(n.size===0||n.has(e.toLowerCase()))&&e!==`item_title`&&e!==`student_name`&&e!==`university_name`&&e!==`course_name`&&e!==`name`&&e!==`title`&&e!==`item_description`&&e!==`university`&&e!==`status`&&t.trim()!==``);return r.length===0?null:(0,D.jsx)(`div`,{className:$.itemMetaRow,children:r.map(([e,t])=>(0,D.jsxs)(`span`,{className:$.itemBadge,children:[e.replace(/_/g,` `),`: `,t]},e))})},LBt=({item:e,templates:t,onSelect:n})=>{let r=e.label,i=(0,D.jsxs)(D.Fragment,{children:[e.sublabel!==``&&(0,D.jsx)(`span`,{className:$.templateItemSub,children:e.sublabel}),(0,D.jsx)(IBt,{item:e,templates:t})]});if(t.length>0&&t[0]!==void 0){let n=t[0],a=new Date,o={item_count:`1`,current_year:String(a.getFullYear()),current_date:a.toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}),...e.values};r=h9(n.postTitle,o),i=(0,D.jsx)(`span`,{className:$.templateItemSub,children:MBt(h9(n.postBody,o))})}return(0,D.jsxs)(`button`,{type:`button`,className:$.templateItem,onClick:()=>{n(e)},children:[(0,D.jsx)(`div`,{className:$.itemIconContainer,children:(0,D.jsx)(tn,{size:16})}),(0,D.jsxs)(`div`,{className:$.templateItemBody,children:[(0,D.jsx)(`span`,{className:$.templateItemTitle,children:r}),i]}),(0,D.jsx)(`span`,{className:$.templateUseBtn,children:`SELECT`})]})},RBt=({category:e,items:t,templates:n,searchQuery:r,onSearchQuery:i,isLoading:a,onBack:o,onSelectItem:s})=>{let[c,l]=(0,y.useState)(``),u=i!==void 0,d=u?r??``:c,f=u?i:l,p=u||d.trim()===``?t:t.filter(e=>[e.label,e.sublabel,e.id].join(` `).toLowerCase().includes(d.toLowerCase()));return(0,D.jsxs)(`div`,{className:$.templateSheet,children:[(0,D.jsxs)(`div`,{className:$.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:$.templateBackBtn,onClick:o,children:(0,D.jsx)(At,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:$.templateSheetTitle,children:`Select Item`}),(0,D.jsxs)(`span`,{className:$.templateSheetMeta,children:[`Showing items for `,(0,D.jsx)(`strong`,{children:e.label})]})]})]}),(0,D.jsxs)(`div`,{className:$.templateSearch,children:[(0,D.jsx)(Mn,{size:13,className:$.templateSearchIcon}),(0,D.jsx)(`input`,{type:`text`,className:$.templateSearchInput,placeholder:`Search items…`,value:d,onChange:e=>{f(e.target.value)}}),a&&p.length>0&&(0,D.jsx)(`div`,{style:{marginLeft:`8px`,display:`flex`,alignItems:`center`},children:(0,D.jsx)(rr,{size:`sm`})})]}),(0,D.jsx)(`div`,{className:$.templateList,children:a&&p.length===0?(0,D.jsx)(`div`,{style:{padding:`2rem`,display:`flex`,justifyContent:`center`},children:(0,D.jsx)(rr,{})}):p.length===0?(0,D.jsx)(`p`,{className:$.templateEmpty,children:`No items found.`}):p.map(e=>(0,D.jsx)(LBt,{item:e,templates:n,onSelect:s},e.id))})]})},zBt=({selectedItem:e,templates:t,onBack:n,onUse:r})=>(0,D.jsxs)(`div`,{className:$.templateSheet,children:[(0,D.jsxs)(`div`,{className:$.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:$.templateBackBtn,onClick:n,children:(0,D.jsx)(At,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:$.templateSheetTitle,children:`Choose Template`}),(0,D.jsxs)(`span`,{className:$.templateSheetMeta,children:[e.label,` · `,(0,D.jsx)(`strong`,{children:e.sublabel})]})]})]}),(0,D.jsx)(`div`,{className:$.templateList,children:t.length===0?(0,D.jsx)(`p`,{className:$.templateEmpty,children:`No templates linked to this category.`}):t.map(t=>{let n=new Date,i={item_count:`1`,current_year:String(n.getFullYear()),current_date:n.toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}),...e.values},a=h9(t.postBody,i),o=h9(t.postTitle,i);return(0,D.jsxs)(`button`,{type:`button`,className:$.templateItem,onClick:()=>{r(o,a)},children:[(0,D.jsxs)(`div`,{className:$.templateItemBody,children:[(0,D.jsx)(`span`,{className:$.templateItemTitle,children:t.name}),(0,D.jsx)(`span`,{className:$.templateItemSub,children:MBt(a)})]}),(0,D.jsxs)(`span`,{className:$.templateUseBtn,children:[(0,D.jsx)(Bt,{size:11}),`USE`]})]},t.id)})})]}),BBt=({category:e})=>e===void 0?null:(0,D.jsx)(`div`,{className:$.compChips,children:(0,D.jsxs)(`span`,{className:$.compChip,children:[`🏷️ `,e.label]})}),VBt=({sheet:e,location:t,onSheet:n,onToggleLocation:r,showPhoto:i=!0})=>(0,D.jsxs)(`div`,{className:$.actionBar,children:[(0,D.jsx)(`span`,{className:$.actionBarLabel,children:`Add to your post`}),(0,D.jsxs)(`div`,{className:$.actionBarBtns,children:[i&&(0,D.jsx)(`button`,{type:`button`,title:`Photo/video`,className:E($.actionIcon,e===`photo`&&$.actionIconActive),onClick:()=>{n(`photo`)},children:(0,D.jsx)(xee,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Tag people`,className:E($.actionIcon,e===`tag`&&$.actionIconActive),onClick:()=>{n(`tag`)},children:(0,D.jsx)(Un,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Feeling/activity`,className:E($.actionIcon,e===`feeling`&&$.actionIconActive),onClick:()=>{n(`feeling`)},children:(0,D.jsx)(In,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Location`,className:E($.actionIcon,t!==null&&$.actionIconActive),onClick:r,children:(0,D.jsx)(fn,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Category`,className:E($.actionIcon,(e===`category`||e===`item`||e===`template`)&&$.actionIconActive),onClick:()=>{n(`category`)},children:(0,D.jsx)(kee,{size:15})})]})]}),HBt=({currentCategory:e,categoryItems:t,categoryTemplates:n,searchQuery:r,onSearchQuery:i,isLoadingItems:a,onSetSheet:o,onSelectItem:s})=>(0,D.jsx)(RBt,{category:e,items:t,templates:n.filter(t=>e.dataTemplateIds.includes(t.id)),searchQuery:r,onSearchQuery:i,isLoading:a,onBack:()=>{o(`category`)},onSelectItem:e=>{s(e),o(`template`)}}),UBt=({currentCategory:e,categoryTemplates:t,selectedItem:n,onSetSheet:r,onApplyTemplate:i})=>n===null?null:(0,D.jsx)(zBt,{selectedItem:n,templates:t.filter(t=>e?.templateIds.includes(t.id)),onBack:()=>{PBt(e,r)},onUse:i}),WBt=e=>{let{sheet:t,categoryId:n,feeling:r,taggedUserIds:i,selectedItem:a,categoryItems:o,categoryTemplates:s,currentCategory:c,onCategory:l,onFeeling:u,onToggleTag:d,onSelectItem:f,onApplyTemplate:p,onClose:m,onSetSheet:h,searchQuery:g,onSearchQuery:_,isLoadingItems:v}=e;switch(t){case`category`:return(0,D.jsx)(ABt,{categoryId:n,onCategory:e=>{NBt(e,l,h,m)}});case`feeling`:return(0,D.jsx)(jBt,{feeling:r,onFeeling:u});case`tag`:return(0,D.jsx)(kBt,{taggedUserIds:i,onToggleTag:d});case`item`:return c===void 0?null:(0,D.jsx)(HBt,{currentCategory:c,categoryItems:o,categoryTemplates:s,searchQuery:g,onSearchQuery:_,isLoadingItems:v,onSetSheet:h,onSelectItem:f});case`template`:return(0,D.jsx)(UBt,{currentCategory:c,categoryTemplates:s,selectedItem:a,onSetSheet:h,onApplyTemplate:p});case null:case`photo`:return null;default:return null}},GBt=e=>{let{sheet:t,onClose:n}=e;if(t===null||t===`photo`)return null;let r=t!==`item`&&t!==`template`;return(0,D.jsxs)(`div`,{className:$.sheet,children:[r&&(0,D.jsxs)(`div`,{className:$.sheetHead,children:[(0,D.jsx)(`span`,{className:$.sheetLabel,children:cBt[t]}),(0,D.jsx)(`button`,{type:`button`,className:$.sheetClose,"aria-label":`Close`,onClick:n,children:(0,D.jsx)(qn,{size:14})})]}),(0,D.jsx)(WBt,{...e})]})},KBt=e=>e.map(e=>({url:URL.createObjectURL(e),name:e.name,size:e.size,file:e})),qBt=({onOpen:e})=>(0,D.jsxs)(`button`,{type:`button`,className:$.dropzone,onClick:e,children:[(0,D.jsx)(`span`,{className:$.dropIcon,children:(0,D.jsx)(Yt,{size:20})}),(0,D.jsx)(`span`,{className:$.dropTitle,children:`Click to upload or drag & drop`}),(0,D.jsx)(`span`,{className:$.dropHint,children:`Supported image formats: PNG, JPG, JPEG, GIF, WEBP, HEIC (Max 10MB)`})]}),JBt=({photos:e,onOpen:t,onRemove:n})=>(0,D.jsxs)(`div`,{className:$.photoGrid,children:[e.map(e=>(0,D.jsxs)(`div`,{className:$.photoThumb,children:[(0,D.jsx)(`img`,{src:e.url,alt:e.name,className:$.photoImg}),(0,D.jsx)(`button`,{type:`button`,className:$.photoRemove,"aria-label":`Remove ${e.name}`,onClick:()=>{n(e.id)},children:(0,D.jsx)(qn,{size:12})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:$.photoAddMore,"aria-label":`Add more photos`,onClick:t,children:(0,D.jsx)(cn,{size:18})})]}),YBt=(e,t)=>KBt(e).map((e,n)=>({id:`${e.name}-${String(e.size)}-${String(t+n)}`,url:e.url,name:e.name,file:e.file})),XBt=async e=>{if(e.files===null)return;let t=5-e.currentCount;if(t<=0){Nf.error(`You can only upload a maximum of 5 images.`);return}let n=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/heic`,`image/heif`],r=e=>{if(n.includes(e.type))return!0;let t=e.name.split(`.`).pop()?.toLowerCase();return t===`heic`||t===`heif`},i=10*1024*1024,a=Array.from(e.files);a.some(e=>!r(e))&&Nf.error(`Only PNG, JPG, JPEG, GIF, WEBP, and HEIC images are supported.`);let o=a.filter(r);o.filter(e=>e.size>i).length>0&&Nf.error(`Some images exceed the 10MB limit and were skipped.`);let s=o.filter(e=>e.size<=i).slice(0,t);if(s.length===0)return;o.length>t&&Nf.error(`Only the first ${String(t)} images were added. Maximum limit is 5.`);let c=YBt(await Promise.all(s.map(e=>zLt(e))),e.existingPicked.length);if(c.length===0)return;let l=[...e.existingPicked,...c];e.onResult(l,l.map(e=>e.file))},ZBt=({photos:e,setPhotos:t})=>{let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(null),s=(0,y.useRef)([]);s.current=n,(0,y.useEffect)(()=>()=>{for(let e of s.current)URL.revokeObjectURL(e.url)},[]);let c=i=>{XBt({files:i,currentCount:e.length,existingPicked:n,onResult:(e,n)=>{r(e),t(n)}})};return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,multiple:!0,className:$.photoInput,onChange:e=>{c(e.target.files),o.current!==null&&(o.current.value=``)}}),(0,D.jsx)(`div`,{className:E($.photoZone,i&&$.photoZoneDrag),onDragOver:e=>{e.preventDefault(),a(!0)},onDragLeave:()=>{a(!1)},onDrop:e=>{e.preventDefault(),a(!1),c(e.dataTransfer.files)},children:n.length===0?(0,D.jsx)(qBt,{onOpen:()=>o.current?.click()}):(0,D.jsx)(JBt,{photos:n,onOpen:()=>o.current?.click(),onRemove:e=>{r(n=>{let r=n.find(t=>t.id===e);r!==void 0&&URL.revokeObjectURL(r.url);let i=n.filter(t=>t.id!==e);return t(i.map(e=>e.file)),i})}})})]})},QBt=({value:e,onChange:t,className:n})=>(0,D.jsx)(`input`,{className:E($.titleInput,n),placeholder:`Add a headline (optional)`,value:e,onChange:e=>{t(e.target.value)}}),$Bt=({on:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:$.compOption,children:[(0,D.jsxs)(`span`,{className:$.compOptionLabel,children:[(0,D.jsx)(Kt,{size:14}),` Must-read — require acknowledgement`]}),(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":`Require acknowledgement`,className:E($.switch,e&&$.switchOn),onClick:t,children:(0,D.jsx)(`span`,{className:$.switchKnob})})]}),eVt=(e,t)=>{let{detectLocation:n}=X7();return()=>{if(e!==null){t(null);return}t(`Detecting location...`),n.execute().then(e=>{t(t=>t===`Detecting location...`?e.ok?e.value:`London Office`:t)})}},tVt=e=>{let{category:t,feeling:n,location:r,sheet:i,categoryId:a,audienceId:o,mustRead:s,taggedUserIds:c,selectedItem:l,categoryItems:u,categoryTemplates:d,setSheet:f,setLocation:p,setCategoryId:m,setFeeling:h,setAudienceId:g,setMustRead:_,onToggleTag:v,onSelectItem:y,onApplyTemplate:b,photos:x,setPhotos:S,isEditMode:C,editImagesNode:w}=e,T=eVt(r,p);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(BBt,{category:t}),C?w:(i===`photo`||x.length>0)&&(0,D.jsx)(ZBt,{photos:x,setPhotos:S}),(0,D.jsx)(VBt,{sheet:i,location:r,onSheet:e=>{f(t=>t===e?null:e)},onToggleLocation:T,showPhoto:!C||w===void 0||i===`photo`}),(0,D.jsx)(GBt,{sheet:i,categoryId:a,feeling:n,taggedUserIds:c,selectedItem:l,categoryItems:u,categoryTemplates:d,currentCategory:t,onCategory:m,onFeeling:e=>{h(t=>t===e?null:e)},onToggleTag:v,onSelectItem:y,onApplyTemplate:b,onClose:()=>{f(null)},onSetSheet:f,searchQuery:e.searchQuery,onSearchQuery:e.onSearchQuery,isLoadingItems:e.isLoadingItems}),(0,D.jsx)(EBt,{audienceId:o,onChange:g}),(0,D.jsx)($Bt,{on:s,onToggle:()=>{_(e=>!e)}})]})},nVt=({length:e,limit:t,color:n,fontSize:r,padding:i})=>(0,D.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,fontSize:r,color:n===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,padding:i,fontWeight:500},children:[e,` / `,t]}),rVt=e=>{let{title:t,setTitle:n,body:r,setBody:i,bodyPlaceholder:a,isEditMode:o=!1,editImagesNode:s}=e,c=$n(t,300,250),l=$n(r,8e3,7e3);return(0,D.jsxs)(D.Fragment,{children:[o?(0,D.jsx)(`input`,{type:`text`,className:E($.titleInput,c.isOverLimit&&$.textareaError),value:t,placeholder:`Add a headline (optional)...`,onChange:e=>{n(e.target.value)},style:{width:`100%`}}):(0,D.jsx)(QBt,{value:t,onChange:n,className:c.isOverLimit?$.textareaError:void 0}),c.showCounter&&(0,D.jsx)(nVt,{length:c.length,limit:300,color:c.counterColor,fontSize:`11px`,padding:`2px 16px 4px`}),(0,D.jsx)(`textarea`,{className:E($.textarea,l.isOverLimit&&$.textareaError),placeholder:a,value:r,onChange:e=>{i(e.target.value)},style:o?{width:`100%`,minHeight:`100px`}:void 0}),l.showCounter&&(0,D.jsx)(nVt,{length:l.length,limit:8e3,color:l.counterColor,fontSize:`12px`,padding:`2px 16px 6px`}),(0,D.jsx)(tVt,{...e,isEditMode:o,...s===void 0?{}:{editImagesNode:s}})]})},iVt=({authorInfo:e,audienceId:t,taggedUsers:n,feeling:r,location:i,onAudience:a,onClose:o})=>{let{data:s=[]}=TLt(),c=s.find(e=>e.id===r);return(0,D.jsxs)(`div`,{className:$.compHead,style:o?void 0:{borderBottom:`none`,padding:`0 0 10px`},children:[(0,D.jsxs)(`div`,{className:$.compAvatarWrapper,children:[(0,D.jsx)(`span`,{className:$.compAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),o&&(0,D.jsx)(`span`,{className:$.statusDot})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:$.compHeaderTagline,children:[(0,D.jsx)(`strong`,{children:e.name}),c&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:$.compMutedText,children:` is feeling `}),(0,D.jsxs)(`strong`,{children:[c.emoji,` `,c.label]})]}),i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:$.compMutedText,children:r||n.length>0?n.length>0?` at `:` — at `:` is at `}),(0,D.jsx)(`strong`,{children:i===`Detecting location...`?`Detecting...`:i})]})]}),n.length>0&&(0,D.jsx)(`div`,{className:$.taggedTagline,children:ALt(n).map((e,t)=>{let n=!o&&t===0&&e.text.startsWith(`with `)&&!r?`is ${e.text}`:e.text;return e.bold?(0,D.jsx)(`strong`,{children:n},t):n})}),(0,D.jsx)(TBt,{audienceId:t,onChange:a})]}),o&&(0,D.jsx)(`button`,{type:`button`,className:$.compClose,"aria-label":`Close`,onClick:o,children:(0,D.jsx)(qn,{size:16})})]})},aVt=e=>e.split(/[\s_-]+/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `),oVt=e=>aVt((e.split(`@`)[0]??e).replace(/[._-]+/g,` `)),sVt=(e,t)=>{let n=e.length>0?e:t;return n.includes(`@`)?oVt(n):n},cVt=(e,t,n)=>{let r=e.length>0?e:t;return r.length===0||r.includes(`@`)?sVt(t,n):r},lVt=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?Zn(n):`?`,uVt=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?Qn(n):`#6b7280`,dVt=(e,t)=>{if(!t)return{name:``,initials:`?`,color:`#6b7280`};let n=cVt(e?e.name:``,t.fullName,t.email.value);return{name:n,initials:lVt(e?e.initials:void 0,!0,n),color:uVt(e?e.color:void 0,!0,t.id)}};function fVt({profile:e,onClose:t}){let{data:n=[]}=Q7(),r=yBt(t,n),i=r.category,[a,o]=(0,y.useState)(``),{rawItems:s,isLoadingItems:c,hasWebhook:l}=SBt(i,a),{data:u=[]}=mSe(),d=xBt(i,u),f=s.map(bBt);return(0,D.jsxs)(`div`,{className:$.composer,children:[(0,D.jsx)(iVt,{authorInfo:e,audienceId:r.audienceId,taggedUsers:r.taggedUsers,feeling:r.feeling,location:r.location,onAudience:r.setAudienceId,onClose:t}),(0,D.jsx)(rVt,{title:r.title,setTitle:r.setTitle,body:r.body,setBody:r.setBody,bodyPlaceholder:`What's on your mind, ${e.name.split(` `)[0]??``}?`,category:r.category,feeling:r.feeling,location:r.location,sheet:r.sheet,categoryId:r.categoryId,audienceId:r.audienceId,mustRead:r.mustRead,taggedUserIds:r.taggedUsers.map(e=>e.id),selectedItem:r.selectedItem,categoryItems:f,categoryTemplates:d,setSheet:r.setSheet,setLocation:r.setLocation,setCategoryId:e=>{o(``),r.setCategoryId(e.id)},setFeeling:r.setFeeling,setAudienceId:r.setAudienceId,setMustRead:r.setMustRead,onToggleTag:r.toggleTag,onSelectItem:r.setSelectedItem,onApplyTemplate:r.applyTemplate,photos:r.photos,setPhotos:r.setPhotos,isEditMode:!1,searchQuery:a,onSearchQuery:l?o:void 0,isLoadingItems:c}),r.mode===`schedule`&&(0,D.jsx)(pBt,{value:r.schedule,onChange:r.setSchedule,timezone:r.timezone}),(0,D.jsx)(mBt,{mode:r.mode,disabled:r.submitDisabled,onMode:r.setMode,onCancel:t,onSubmit:()=>{r.submit()}})]})}var pVt=()=>{let[e,t]=(0,y.useState)(!1),{user:n}=qh(),r=bh(),i=dVt(r.data,n),a=r.isPending;if(!e){let e=a?``:i.name.split(` `)[0]??``,n=e.length>0?`What's on your mind, ${e}?`:`What's on your mind?`;return(0,D.jsxs)(`div`,{className:$.composerCollapsed,children:[a?(0,D.jsx)(kpe,{variant:`circle`,width:`36px`,height:`36px`}):(0,D.jsx)(`span`,{className:$.ccAvatar,style:Xn({"--avatar-color":i.color}),children:i.initials}),(0,D.jsx)(`button`,{type:`button`,className:$.ccInput,onClick:()=>{t(!0)},children:n})]})}return(0,D.jsx)(fVt,{profile:i,onClose:()=>{t(!1)}})},mVt=()=>(0,D.jsxs)(`div`,{className:$.emptyState,children:[(0,D.jsx)(`div`,{className:$.emptyIconWrap,children:(0,D.jsx)(See,{size:32})}),(0,D.jsx)(`h3`,{className:$.emptyTitle,children:`It's quiet in here`}),(0,D.jsx)(`p`,{className:$.emptyText,children:`There are no posts in this feed yet. Be the first to share an update!`})]}),hVt=({post:e,taggedUsers:t})=>(0,D.jsxs)(`div`,{className:$.compHeaderTagline,style:{display:`block`,fontSize:`14px`,lineHeight:`1.4`},children:[(0,D.jsx)(`span`,{className:$.authorName,style:{fontWeight:600,color:`var(--color-text-main)`},children:e.authorName}),e.feelingEmoji&&e.feelingLabel&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{style:{color:`var(--color-text-soft)`},children:` is feeling `}),(0,D.jsxs)(`span`,{style:{fontWeight:600,color:`var(--color-text-main)`},children:[e.feelingEmoji,` `,e.feelingLabel]})]}),t.length>0&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{children:` `}),ALt(t).map((t,n)=>{let r=n===0&&t.text.startsWith(`with `)&&!e.feelingId?`is ${t.text}`:t.text;return(0,D.jsx)(`span`,{style:{fontWeight:t.bold?600:`normal`,color:t.bold?`var(--color-text-main)`:`var(--color-text-soft)`},children:r},n)})]}),e.locationLabel&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{style:{color:`var(--color-text-soft)`},children:e.feelingId||t.length>0?t.length>0?` at `:` — at `:` is at `}),(0,D.jsx)(`span`,{style:{fontWeight:600,color:`var(--color-text-main)`},children:e.locationLabel})]})]}),gVt=({post:e,taggedUsers:t})=>{let n=nh().display;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:$.avatar,style:Xn({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:$.cardAuthor,children:[(0,D.jsx)(hVt,{post:e,taggedUsers:t}),(0,D.jsxs)(`div`,{className:$.metaRow,style:{marginTop:`4px`,display:`flex`,alignItems:`center`,gap:`6px`,fontSize:`12px`,color:`var(--color-text-soft)`},children:[e.authorRole&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{children:e.authorRole}),(0,D.jsx)(`span`,{style:{color:`var(--color-text-muted)`},children:`·`})]}),(0,D.jsx)(`span`,{children:LLt(e.createdAt,n,e.scheduledAt)}),(0,D.jsx)(`span`,{style:{color:`var(--color-text-muted)`},children:`·`}),(0,D.jsx)(`span`,{children:e.audienceLabel}),(0,D.jsx)(`span`,{style:{color:`var(--color-text-muted)`},children:`·`}),(0,D.jsxs)(`span`,{children:[e.seenCount,` `,e.seenCount===1?`view`:`views`]})]})]})]})},_Vt=e=>{let t=rzt({page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`}).data;return t?t.users.filter(t=>e.includes(t.id)):[]},vVt=({post:e,onBookmark:t,onPin:n,showPinButton:r,onEdit:i,showEditButton:a})=>{let o=_Vt(e.taggedUserIds),{categoryLabel:s,categoryColor:c}=kLt(e);return(0,D.jsxs)(`header`,{className:$.cardHead,children:[(0,D.jsx)(gVt,{post:e,taggedUsers:o}),(0,D.jsxs)(`div`,{className:$.cardRight,children:[(0,D.jsxs)(`span`,{className:$.badge,style:Xn({"--badge-color":c}),children:[(0,D.jsx)(`span`,{className:$.badgeDot}),s]}),(0,D.jsxs)(`div`,{className:$.cardActions,children:[(0,D.jsx)(`button`,{type:`button`,className:E($.bookmarkBtn,e.bookmarked&&$.bookmarkActive),"aria-label":e.bookmarked?`Remove bookmark`:`Save post`,onClick:t,children:(0,D.jsx)(Pt,{size:15,fill:e.bookmarked?`currentColor`:`none`})}),r&&n&&(0,D.jsx)(`button`,{type:`button`,className:E($.pinBtn,e.pinned&&$.pinActive),"aria-label":e.pinned?`Unpin post`:`Pin post`,onClick:n,children:(0,D.jsx)(Tn,{size:15,fill:e.pinned?`currentColor`:`none`})}),a&&i&&(0,D.jsx)(`button`,{type:`button`,className:$.editBtn,"aria-label":`Edit post`,onClick:i,children:(0,D.jsx)(xn,{size:15})})]})]})]})},yVt=({url:e,onRemove:t})=>(0,D.jsxs)(`div`,{className:$.photoThumb,children:[(0,D.jsx)(`img`,{src:e,alt:`thumbnail`,className:$.photoImg}),(0,D.jsx)(`button`,{type:`button`,onClick:t,className:$.photoRemove,children:(0,D.jsx)(qn,{size:12})})]}),bVt=({file:e,onRemove:t})=>{let[n,r]=(0,y.useState)(``);return(0,y.useEffect)(()=>{let t=URL.createObjectURL(e);return r(t),()=>{URL.revokeObjectURL(t)}},[e]),n?(0,D.jsx)(yVt,{url:n,onRemove:t}):null},xVt=({existingImages:e,newPhotos:t,onAddPhotos:n,onRemoveExisting:r,onRemoveNew:i})=>{let a=(0,y.useRef)(null);return e.length===0&&t.length===0?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:a,type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&n(e.target.files)},style:{display:`none`}}),(0,D.jsx)(qBt,{onOpen:()=>a.current?.click()})]}):(0,D.jsxs)(`div`,{className:$.photoGrid,children:[e.map(e=>(0,D.jsx)(yVt,{url:e,onRemove:()=>{r(e)}},e)),t.map((e,t)=>(0,D.jsx)(bVt,{file:e,onRemove:()=>{i(t)}},t)),(0,D.jsxs)(`label`,{className:$.photoAddMore,children:[(0,D.jsx)(cn,{size:18}),(0,D.jsx)(`input`,{type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&n(e.target.files)},style:{display:`none`}})]})]})},SVt=e=>({id:e.id,name:e.fullName,email:e.email,userName:e.fullName,role:e.roleName,initials:e.initials,color:e.color}),CVt=e=>{let[t,n]=(0,y.useState)(e),[r,i]=(0,y.useState)([]);return{existingImages:t,setExistingImages:n,newPhotos:r,setNewPhotos:i,handleAddPhotos:async e=>{let n=5-(t.length+r.length);if(n<=0){Nf.error(`You can only have a maximum of 5 images.`);return}let a=Array.from(e).filter(e=>e.type.startsWith(`image/`)||e.name.toLowerCase().endsWith(`.heic`)||e.name.toLowerCase().endsWith(`.heif`)),o=10*1024*1024;a.filter(e=>e.size>o).length>0&&Nf.error(`Some images exceed the 10MB limit and were skipped.`);let s=a.filter(e=>e.size<=o),c=s.slice(0,n);s.length>n&&Nf.error(`Only the first ${String(n)} images were added. Maximum limit is 5.`);let l=await Promise.all(c.map(e=>zLt(e)));i(e=>[...e,...l])},handleRemoveExisting:e=>{n(t=>t.filter(t=>t!==e))},handleRemoveNew:e=>{i(t=>t.filter((t,n)=>n!==e))}}},wVt=(e,t)=>{if(e.scheduledAt){let n=Qm(new Date(e.scheduledAt),t);return{date:`${String(n.year)}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`,time:`${String(n.hour).padStart(2,`0`)}:${String(n.minute).padStart(2,`0`)}`,recurring:e.isRecurring,frequency:e.recurrenceFrequency??`weekly`}}return aBt},TVt=(e,t,n,r)=>{let[i,a]=(0,y.useState)(e.department??`general`),[o,s]=(0,y.useState)(e.audienceId),[c,l]=(0,y.useState)(e.feelingId),[u,d]=(0,y.useState)(e.locationLabel),[f,p]=(0,y.useState)(e.mustAcknowledge),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),v=!e.scheduledAt||new Date(e.scheduledAt).getTime()<=Date.now(),[b,x]=(0,y.useState)(v?`now`:`schedule`),[S,C]=(0,y.useState)(()=>wVt(e,r)),w=e=>{let t=typeof e==`function`?e(b):e;if(x(t),t===`schedule`&&!S.date){let e=Qm(new Date,r),t=`${String(e.year)}-${String(e.month).padStart(2,`0`)}-${String(e.day).padStart(2,`0`)}`,n=`${String(e.hour).padStart(2,`0`)}:${String(e.minute).padStart(2,`0`)}`;C({...S,date:t,time:n})}},[T,ee]=(0,y.useState)(t.filter(t=>e.taggedUserIds.includes(t.id)).map(SVt));return{categoryId:i,setCategoryId:a,audienceId:o,setAudienceId:s,feeling:c,setFeeling:l,location:u,setLocation:d,mustRead:f,setMustRead:p,taggedUsers:T,setTaggedUsers:ee,sheet:m,setSheet:h,selectedItem:g,setSelectedItem:_,mode:b,setMode:w,schedule:S,setSchedule:C,toggleTag:e=>{ee(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])},handleToggleLocation:()=>{if(u!==null){d(null);return}d(`Detecting location...`),n.execute().then(e=>{d(t=>t===`Detecting location...`?e.ok?e.value:`London Office`:t)})},isAlreadyPublished:v}},EVt=e=>{let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,n=e.indexOf(`#`);if(n!==-1){let r=e.substring(n+1);if(t.test(r))return r}let r=(e.split(`?`)[0]??e).split(`/`).pop()??``;return t.test(r)?r:null},DVt=e=>e.map(e=>EVt(e)).filter(e=>e!==null),OVt=async(e,t)=>{if(e.length===0)return[];let n=await Promise.allSettled(e.map(e=>t(e))),r=[],i=0;for(let e of n)e.status===`fulfilled`?r.push(e.value):i+=1;return i>0&&Nf.error(`${String(i)} image${i>1?`s`:``} failed to upload.`),r},kVt=async({post:e,editTitle:t,editBody:n,photosState:r,composerState:i,updatePostMutation:a,uploadImageMutation:o,setIsEditing:s,timezone:c})=>{if(t.trim().length>300){Nf.error(`Post title cannot exceed 300 characters.`);return}if(n.trim().length>8e3){Nf.error(`Post body cannot exceed 8000 characters.`);return}let l;if(i.mode===`schedule`&&(l=eh(i.schedule.date,i.schedule.time,c),l&&Date.parse(l)<Date.now())){Nf.error(`Schedule time must be in the future.`);return}try{let c=await OVt(r.newPhotos,e=>o.mutateAsync(e)),u=DVt(r.existingImages);a.mutate({postId:e.id,input:{title:t.trim()||null,body:n,imageIds:[...u,...c],categoryId:i.categoryId,audienceId:i.audienceId,mustAcknowledge:i.mustRead,taggedUserIds:i.taggedUsers.map(e=>e.id),feelingId:i.feeling,locationLabel:i.location,scheduledAt:l,isRecurring:i.mode===`schedule`?i.schedule.recurring:!1,recurrenceFrequency:i.mode===`schedule`&&i.schedule.recurring?i.schedule.frequency:void 0}},{onSuccess:()=>{s(!1),r.setNewPhotos([])},onError:()=>{Nf.error(`Failed to update the post. Please try again.`)}})}catch{Nf.error(`Failed to process post images. Please try again.`)}},AVt=({post:e,setTitle:t,setBody:n,photos:r,composer:i,allUsers:a,timezone:o})=>{if(t(e.title??``),n(e.body),r.setExistingImages(e.imageUrls),r.setNewPhotos([]),i.setCategoryId(e.department??`general`),i.setAudienceId(e.audienceId),i.setFeeling(e.feelingId),i.setLocation(e.locationLabel),i.setMustRead(e.mustAcknowledge),i.setSheet(null),i.setSelectedItem(null),i.setMode(i.isAlreadyPublished?`now`:`schedule`),e.scheduledAt){let t=Qm(new Date(e.scheduledAt),o),n=`${String(t.year)}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`,r=`${String(t.hour).padStart(2,`0`)}:${String(t.minute).padStart(2,`0`)}`;i.setSchedule({date:n,time:r,recurring:e.isRecurring,frequency:e.recurrenceFrequency??`weekly`})}else i.setSchedule(aBt);i.setTaggedUsers(a.filter(t=>e.taggedUserIds.includes(t.id)).map(SVt))},jVt=()=>{let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!1);return{commentsOpen:e,setCommentsOpen:t,shareOpen:n,setShareOpen:r,lightboxIndex:i,setLightboxIndex:a,isEditing:o,setIsEditing:s}},MVt={page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`},NVt=e=>({...e.ui,editTitle:e.editTitle,setEditTitle:e.setEditTitle,editBody:e.editBody,setEditBody:e.setEditBody,existingImages:e.photosState.existingImages,newPhotos:e.photosState.newPhotos,isPending:e.isPending,timezone:e.timezone,handleAddPhotos:t=>{e.photosState.handleAddPhotos(t)},handleRemoveExisting:e.photosState.handleRemoveExisting,handleRemoveNew:e.photosState.handleRemoveNew,handleSave:()=>{kVt({post:e.post,editTitle:e.editTitle,editBody:e.editBody,photosState:e.photosState,composerState:e.composerState,updatePostMutation:e.updatePostMutation,uploadImageMutation:e.uploadImageMutation,setIsEditing:e.ui.setIsEditing,timezone:e.timezone})},handleCancel:()=>{AVt({post:e.post,setTitle:e.setEditTitle,setBody:e.setEditBody,photos:e.photosState,composer:e.composerState,allUsers:e.allUsers,timezone:e.timezone}),e.ui.setIsEditing(!1)},categoryId:e.composerState.categoryId,setCategoryId:e.composerState.setCategoryId,audienceId:e.composerState.audienceId,setAudienceId:e.composerState.setAudienceId,feeling:e.composerState.feeling,setFeeling:e.composerState.setFeeling,location:e.composerState.location,setLocation:e.composerState.setLocation,mustRead:e.composerState.mustRead,setMustRead:e.composerState.setMustRead,taggedUsers:e.composerState.taggedUsers,sheet:e.composerState.sheet,setSheet:e.composerState.setSheet,selectedItem:e.composerState.selectedItem,setSelectedItem:e.composerState.setSelectedItem,mode:e.composerState.mode,setMode:e.composerState.setMode,schedule:e.composerState.schedule,setSchedule:e.composerState.setSchedule,isAlreadyPublished:e.composerState.isAlreadyPublished,toggleTag:e.composerState.toggleTag,handleToggleLocation:e.composerState.handleToggleLocation}),PVt=e=>{let t=jVt(),[n,r]=(0,y.useState)(e.title??``),[i,a]=(0,y.useState)(e.body),o=nh().display,s=rzt(MVt).data?.users??[],{detectLocation:c}=X7(),l=CVt(e.imageUrls),u=TVt(e,s,c,o),d=_Lt(),f=DLt();return(0,y.useEffect)(()=>{t.isEditing||AVt({post:e,setTitle:r,setBody:a,photos:l,composer:u,allUsers:s,timezone:o})},[t.isEditing,e,s,o]),NVt({ui:t,editTitle:n,setEditTitle:r,editBody:i,setEditBody:a,timezone:o,photosState:l,composerState:u,isPending:d.isPending||f.isPending,post:e,allUsers:s,updatePostMutation:d,uploadImageMutation:f})},FVt=()=>{},IVt=e=>{if(!(e.existingImages.length===0&&e.newPhotos.length===0&&e.sheet!==`photo`))return(0,D.jsx)(xVt,{existingImages:e.existingImages,newPhotos:e.newPhotos,onAddPhotos:t=>{e.handleAddPhotos(t)},onRemoveExisting:e.handleRemoveExisting,onRemoveNew:e.handleRemoveNew})},LVt=e=>{let{data:t=[]}=Q7(),n=t.find(t=>t.id===e),[r,i]=(0,y.useState)(``),{rawItems:a,isLoadingItems:o,hasWebhook:s}=SBt(n,r),{data:c=[]}=mSe();return{category:n,searchQuery:r,setSearchQuery:i,isLoadingItems:o,hasWebhook:s,categoryTemplates:xBt(n,c),categoryItems:a.map(bBt)}},RVt=e=>{let t=LVt(e.categoryId),n=n=>{t.setSearchQuery(``),e.setCategoryId(n.id)},r=(t,n)=>{e.setEditTitle(t),e.setEditBody(n),e.setSheet(null),e.setSelectedItem(null)};return{...t,handleSetCategory:n,handleApplyTemplate:r}},zVt=({post:e,state:t})=>{let n=RVt(t);return(0,D.jsxs)(`div`,{style:{padding:`20px`,display:`flex`,flexDirection:`column`,gap:`12px`},children:[(0,D.jsx)(iVt,{authorInfo:{name:e.authorName,initials:e.authorInitials,color:e.authorColor},audienceId:t.audienceId,taggedUsers:t.taggedUsers,feeling:t.feeling,location:t.location,onAudience:t.setAudienceId}),(0,D.jsx)(rVt,{title:t.editTitle,setTitle:t.setEditTitle,body:t.editBody,setBody:t.setEditBody,bodyPlaceholder:`What's on your mind?`,category:n.category,feeling:t.feeling,location:t.location,sheet:t.sheet,categoryId:t.categoryId,audienceId:t.audienceId,mustRead:t.mustRead,taggedUserIds:t.taggedUsers.map(e=>e.id),setSheet:t.setSheet,setLocation:t.setLocation,setCategoryId:n.handleSetCategory,selectedItem:t.selectedItem,categoryItems:n.categoryItems,categoryTemplates:n.categoryTemplates,onSelectItem:t.setSelectedItem,onApplyTemplate:n.handleApplyTemplate,setFeeling:t.setFeeling,setAudienceId:t.setAudienceId,setMustRead:t.setMustRead,onToggleTag:t.toggleTag,photos:[],setPhotos:FVt,isEditMode:!0,searchQuery:n.searchQuery,onSearchQuery:n.hasWebhook?n.setSearchQuery:void 0,isLoadingItems:n.isLoadingItems,editImagesNode:IVt(t)}),t.mode===`schedule`&&(0,D.jsx)(pBt,{value:t.schedule,timezone:t.timezone,onChange:t.setSchedule}),(0,D.jsx)(mBt,{mode:t.mode,hideToggle:t.isAlreadyPublished,disabled:t.isPending||!t.editBody.trim(),submitLabels:{schedule:t.isPending?`Saving...`:`Save schedule`,now:t.isPending?`Saving...`:`Save`},onMode:t.setMode,onCancel:t.handleCancel,onSubmit:t.handleSave})]})},BVt=({comment:e,displayZone:t})=>(0,D.jsxs)(`div`,{className:$.commentRow,children:[(0,D.jsx)(`span`,{className:$.commentAvatar,style:Xn({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:$.commentBubble,children:[(0,D.jsxs)(`div`,{className:$.commentAuthor,children:[e.authorName,` `,(0,D.jsxs)(`span`,{className:$.commentTime,children:[`· `,LLt(e.createdAt,t)]})]}),(0,D.jsx)(`div`,{className:$.commentText,children:e.text})]})]}),VVt=({profile:e,isViewerLoading:t,pending:n,onAdd:r})=>{let[i,a]=(0,y.useState)(``),o=$n(i,4e3),s=()=>{i.trim()!==``&&(r(i.trim()),a(``))};return(0,D.jsxs)(`div`,{className:$.commentRow,children:[t?(0,D.jsx)(kpe,{variant:`circle`,width:`26px`,height:`26px`}):(0,D.jsx)(`span`,{className:$.commentAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsxs)(`div`,{className:E($.commentComposer,o.isOverLimit&&$.commentComposerError),children:[(0,D.jsx)(`input`,{className:$.commentInput,placeholder:`Write a comment…`,value:i,onChange:e=>{a(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&!o.isOverLimit&&s()}}),(0,D.jsx)(`button`,{type:`button`,className:$.commentSend,disabled:i.trim()===``||n||o.isOverLimit,onClick:s,children:(0,D.jsx)(Nn,{size:13})})]}),o.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:o.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[o.length,` / 4000`]})]})]})},HVt=({comments:e,pending:t,onAdd:n})=>{let{user:r}=qh(),i=bh(),a=nh().display,o=dVt(i.data,r);return(0,D.jsxs)(`div`,{className:$.comments,children:[e.map(e=>(0,D.jsx)(BVt,{comment:e,displayZone:a},e.id)),(0,D.jsx)(VVt,{profile:o,isViewerLoading:i.isPending,pending:t,onAdd:n})]})},UVt=({url:e,alt:t,className:n})=>(0,D.jsx)(`img`,{src:e,alt:t,className:n,loading:`lazy`}),WVt=({urls:e,onImageClick:t})=>{let n=e.length;if(n===0)return null;let r=$.grid1;n===2&&(r=$.grid2),n===3&&(r=$.grid3),n>=4&&(r=$.grid4);let i=n>4?e.slice(0,4):e;return(0,D.jsx)(`div`,{className:E($.postImagesGrid,r),children:i.map((e,r)=>{let i=r===3&&n>4;return(0,D.jsx)(`div`,{className:E($.gridImageWrap,i&&$.moreImagesOverlay),"data-more":i?`+${String(n-4)}`:void 0,onClick:()=>{t(r)},role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&t(r)},children:(0,D.jsx)(UVt,{url:e,alt:`Attached`,className:$.gridImage})},r)})})},GVt=(e,t,n)=>e===``||t.toLowerCase().includes(e)||n.toLowerCase().includes(e),KVt=e=>({id:`conv_${e.id}`,name:e.title,subtitle:e.subtitle||(e.kind===`group`?`${String(e.memberCount)} members`:``),initials:e.initials,color:e.color,square:e.kind===`group`,targetType:`conversation`,originalId:e.id}),qVt=e=>({id:`user_${e.id}`,name:e.name,subtitle:e.role,initials:e.initials,color:e.color,square:!1,targetType:`user`,originalId:e.id}),JVt=({post:e,comment:t,selected:n,sendMessage:r,startDirect:i,setIsSending:a,close:o,count:s,allTargets:c})=>{a(!0);let l=`${window.location.origin}/feed/posts/${e.postId}`,u={comment:t.trim(),card:{title:e.title,body:e.bodySnippet,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,categoryLabel:e.categoryLabel,categoryColor:e.categoryColor,link:l}},d=`__UAPP_SHARED_CARD__::${JSON.stringify(u)}`,f=Array.from(n).map(async e=>{let t=c.get(e);if(!t)return;let n=t.originalId;if(t.targetType===`user`){let e=await i.execute(n);if(e.ok)n=e.value.id;else throw Error(`Could not create DM`)}return r.execute(n,d,crypto.randomUUID())});Promise.allSettled(f).then(()=>{Nf.success(`Shared to ${String(s)} ${s===1?`chat`:`chats`}`),o()}).catch(()=>{Nf.error(`Failed to share post`),a(!1)})},YVt=(e,t,n)=>{let[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(()=>new Set),[l,u]=(0,y.useState)(!1),{sendMessage:d,startDirect:f}=uh(),{data:p}=bh(),{data:m=[]}=mh(`all`,``,{enabled:n}),h=m.filter(e=>e.kind===`dm`&&e.peerUserId!==null).map(e=>e.peerUserId??``),g=xh(p?[p.id,...h]:h,`directory`),_=a.trim().toLowerCase(),v=e=>{o(e),g.setSearch(e)},b=[...m.filter(e=>e.kind===`dm`).map(KVt).filter(e=>GVt(_,e.name,e.subtitle)),...g.results.map(qVt)],x=m.filter(e=>e.kind===`group`).map(KVt).filter(e=>GVt(_,e.name,e.subtitle)),S=e=>{c(t=>{let n=new Set(t);return n.delete(e)?n:n.add(e)})},C=()=>{i(``),o(``),g.setSearch(``),c(new Set),u(!1),t()},w=new Map([...x,...b].map(e=>[e.id,e])),T=s.size;return{comment:r,setComment:i,query:a,setQuery:v,selected:s,isSending:l,dms:b,groups:x,count:T,toggle:S,close:C,send:()=>{T===0||l||r.length>1e3||JVt({post:e,comment:r,selected:s,sendMessage:d,startDirect:f,setIsSending:u,close:C,count:T,allTargets:w})}}},XVt=({onClose:e})=>(0,D.jsxs)(`div`,{className:$.shareHead,children:[(0,D.jsx)(`div`,{className:$.shareHeadIcon,children:(0,D.jsx)(kn,{size:15})}),(0,D.jsxs)(`div`,{className:$.shareHeadText,children:[(0,D.jsx)(`h3`,{className:$.shareTitle,children:`Share Post`}),(0,D.jsx)(`p`,{className:$.shareDesc,children:`Share this post to chat conversations`})]}),(0,D.jsx)(`button`,{type:`button`,className:$.shareCloseBtn,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(qn,{size:18})})]}),ZVt=({count:e,disabled:t,onCancel:n,onSend:r})=>(0,D.jsxs)(`div`,{className:$.shareFooter,children:[(0,D.jsx)(`span`,{className:$.shareFootText,children:e===0?`Select at least one chat`:`${String(e)} ${e===1?`chat`:`chats`} selected`}),(0,D.jsxs)(`div`,{className:$.shareFootBtns,children:[(0,D.jsx)(`button`,{type:`button`,className:$.shareCancelBtn,onClick:n,children:`Cancel`}),(0,D.jsxs)(`button`,{type:`button`,className:$.shareSendBtn,disabled:e===0||t,onClick:r,children:[(0,D.jsx)(Nn,{size:12}),` Send`]})]})]}),QVt=({post:e})=>(0,D.jsx)(`div`,{className:$.sharePreviewWrap,children:(0,D.jsxs)(`div`,{className:$.sharePreview,children:[(0,D.jsx)(`span`,{className:$.sharePreviewAvatar,style:Xn({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:$.sharePreviewBody,children:[(0,D.jsxs)(`div`,{className:$.sharePreviewMeta,children:[e.authorName,` ·`,` `,(0,D.jsx)(`span`,{className:$.sharePreviewCat,style:Xn({"--cat":e.categoryColor}),children:e.categoryLabel})]}),e.authorRole?(0,D.jsx)(`div`,{style:{fontSize:`11px`,color:`var(--color-text-soft)`,marginTop:`1px`,marginBottom:`2px`},children:e.authorRole}):null,(0,D.jsx)(`div`,{className:$.sharePreviewTitle,children:e.title})]})]})}),$Vt=({target:e,selected:t,onToggle:n})=>(0,D.jsxs)(`button`,{type:`button`,className:E($.shareRow,t&&$.shareRowOn),"aria-pressed":t,onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:E($.shareAvatar,e.square&&$.shareAvatarSquare),style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:$.shareRowBody,children:[(0,D.jsx)(`span`,{className:$.shareRowName,children:e.name}),(0,D.jsx)(`span`,{className:$.shareRowSub,children:e.subtitle})]}),(0,D.jsx)(`span`,{className:E($.shareCheck,t&&$.shareCheckOn),children:t&&(0,D.jsx)(Bt,{size:11,strokeWidth:3})})]}),eHt=({label:e,targets:t,selected:n,onToggle:r})=>t.length===0?null:(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:$.shareSectionLabel,children:e}),t.map(e=>(0,D.jsx)($Vt,{target:e,selected:n.has(e.id),onToggle:r},e.id))]}),tHt=({comment:e,query:t,onComment:n,onQuery:r})=>{let i=$n(e,1e3);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:$.shareField,style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsx)(`input`,{className:E($.shareComment,i.isOverLimit&&$.shareCommentError),placeholder:`Add a comment (optional)`,value:e,onChange:e=>{n(e.target.value)}}),i.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:i.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[i.length,` / 1000`]})]}),(0,D.jsx)(`div`,{className:$.shareSearchWrap,children:(0,D.jsxs)(`div`,{className:$.shareSearch,children:[(0,D.jsx)(Mn,{size:13}),(0,D.jsx)(`input`,{className:$.shareSearchInput,placeholder:`Search people or groups…`,value:t,onChange:e=>{r(e.target.value)}})]})})]})},nHt=({groups:e,dms:t,selected:n,onToggle:r})=>(0,D.jsxs)(`div`,{className:$.shareList,children:[(0,D.jsx)(eHt,{label:`Groups`,targets:e,selected:n,onToggle:r}),(0,D.jsx)(eHt,{label:`People`,targets:t,selected:n,onToggle:r}),e.length===0&&t.length===0&&(0,D.jsx)(`div`,{className:$.shareEmpty,children:`No matches.`})]}),rHt=({open:e,post:t,onClose:n})=>{let r=YVt(t,n,e),i=co();return e?(0,b.createPortal)((0,D.jsxs)(`div`,{className:$.shareRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:$.shareBackdrop,"aria-label":`Close`,onClick:r.close}),(0,D.jsxs)(`div`,{className:$.shareModal,role:`dialog`,"aria-label":`Share post`,children:[(0,D.jsx)(XVt,{onClose:r.close}),(0,D.jsx)(QVt,{post:t}),(0,D.jsx)(tHt,{comment:r.comment,query:r.query,onComment:r.setComment,onQuery:r.setQuery}),(0,D.jsx)(nHt,{groups:r.groups,dms:r.dms,selected:r.selected,onToggle:r.toggle}),(0,D.jsx)(ZVt,{count:r.count,disabled:r.comment.length>1e3,onCancel:r.close,onSend:r.send})]})]}),i??document.body):null},iHt=[{id:`like`,label:`Like`,Icon:Aee,color:`#2563eb`},{id:`insightful`,label:`Insightful`,Icon:un,color:`#f59e0b`},{id:`celebrate`,label:`Celebrate`,Icon:yn,color:`#ec4899`}],aHt=({post:e,onCommentClick:t})=>{if(e.totalReactions===0&&e.commentCount===0)return null;let n=iHt.filter(t=>e.reactions[t.id]>0).slice(0,3);return(0,D.jsxs)(`div`,{className:$.summary,children:[(0,D.jsxs)(`div`,{className:$.summaryLeft,children:[n.length>0&&(0,D.jsx)(`span`,{className:$.summaryIcons,children:n.map(({id:e,Icon:t,color:n})=>(0,D.jsx)(`span`,{className:$.summaryDot,style:Xn({"--react-color":n}),children:(0,D.jsx)(t,{size:10})},e))}),e.totalReactions>0&&(0,D.jsx)(`span`,{className:$.summaryCount,children:e.totalReactions})]}),e.commentCount>0&&(0,D.jsxs)(`span`,{className:E($.summaryComments,t!==void 0&&$.summaryCommentsClickable),onClick:t,role:t===void 0?void 0:`button`,tabIndex:t===void 0?void 0:0,onKeyDown:t===void 0?void 0:e=>{(e.key===`Enter`||e.key===` `)&&t()},children:[e.commentCount,` `,e.commentCount===1?`comment`:`comments`]})]})},oHt=({post:e,commentsOpen:t,onReact:n,onComment:r,onShare:i})=>{let[a,o]=(0,y.useState)(!1),s=iHt.find(t=>t.id===e.myReaction),c=s?.Icon??Aee;return(0,D.jsxs)(`div`,{className:$.postBar,children:[(0,D.jsxs)(`div`,{className:$.reactWrap,onMouseEnter:()=>{o(!0)},onMouseLeave:()=>{o(!1)},children:[(0,D.jsxs)(`button`,{type:`button`,className:E($.actionBtn,s!==void 0&&$.actionActive),style:s===void 0?void 0:Xn({"--react-color":s.color}),onClick:()=>{n(e.myReaction??`like`),o(!1)},children:[(0,D.jsx)(c,{size:16}),` `,s?.label??`Like`]}),(0,D.jsx)(`div`,{className:E($.picker,a&&$.pickerVisible),children:iHt.map(({id:t,label:r,Icon:i,color:a})=>(0,D.jsx)(`button`,{type:`button`,className:E($.pickerBtn,e.myReaction===t&&$.pickerActive),style:Xn({"--react-color":a}),title:r,onClick:()=>{n(t),o(!1)},children:(0,D.jsx)(i,{size:18})},t))})]}),(0,D.jsxs)(`button`,{type:`button`,className:E($.actionBtn,t&&$.actionActive),onClick:r,children:[(0,D.jsx)(hn,{size:16}),` Comment`]}),(0,D.jsxs)(`button`,{type:`button`,className:$.actionBtn,onClick:i,children:[(0,D.jsx)(Eee,{size:16}),` Share`]})]})},sHt=({post:e,onAcknowledge:t})=>e.mustAcknowledge?e.acknowledged?(0,D.jsx)(`div`,{className:$.ackDone,children:`✓ You acknowledged this`}):(0,D.jsxs)(`div`,{className:$.ackBanner,children:[(0,D.jsx)(`span`,{children:`Must read — please confirm you have seen this.`}),(0,D.jsx)(`button`,{type:`button`,className:$.ackBtn,onClick:t,children:`Acknowledge`})]}):null,g9={lightboxOverlay:`_lightboxOverlay_z9s6t_5`,lightboxContainer:`_lightboxContainer_z9s6t_20`,lightboxContainerTextOnly:`_lightboxContainerTextOnly_z9s6t_33`,lightboxLeft:`_lightboxLeft_z9s6t_48`,lightboxRight:`_lightboxRight_z9s6t_58`,lightboxRightFull:`_lightboxRightFull_z9s6t_69`,lightboxHeaderWrapper:`_lightboxHeaderWrapper_z9s6t_82`,lightboxScrollableContent:`_lightboxScrollableContent_z9s6t_91`,lightboxDivider:`_lightboxDivider_z9s6t_108`,lightboxClose:`_lightboxClose_z9s6t_138`,lightboxImage:`_lightboxImage_z9s6t_151`,lightboxArrow:`_lightboxArrow_z9s6t_186`,lightboxArrowLeft:`_lightboxArrowLeft_z9s6t_208`,lightboxArrowRight:`_lightboxArrowRight_z9s6t_216`,lightboxCounter:`_lightboxCounter_z9s6t_224`},cHt=({urls:e,index:t,onPrev:n,onNext:r})=>(0,D.jsxs)(`div`,{className:g9.lightboxLeft,children:[e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:E(g9.lightboxArrow,g9.lightboxArrowLeft),onClick:n,"aria-label":`Previous image`,children:(0,D.jsx)(Ht,{size:24})}),(0,D.jsx)(UVt,{url:e[t]??``,alt:`Fullscreen view`,className:g9.lightboxImage}),e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:E(g9.lightboxArrow,g9.lightboxArrowRight),onClick:r,"aria-label":`Next image`,children:(0,D.jsx)(Ut,{size:24})}),(0,D.jsxs)(`div`,{className:g9.lightboxCounter,children:[t+1,` / `,e.length]})]}),lHt=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,onShare:o,onPin:s,showPinButton:c,onEdit:l,showEditButton:u,fullWidth:d=!1})=>(0,D.jsxs)(`div`,{className:d?g9.lightboxRightFull:g9.lightboxRight,children:[(0,D.jsx)(`div`,{className:g9.lightboxHeaderWrapper,children:(0,D.jsx)(vVt,{post:e,onBookmark:r,onPin:s,showPinButton:c,onEdit:l,showEditButton:u})}),(0,D.jsxs)(`div`,{className:g9.lightboxScrollableContent,children:[e.title!==null&&(0,D.jsx)(`h2`,{className:$.cardTitle,children:e.title}),(0,D.jsx)(`p`,{className:$.cardBody,children:e.body}),(0,D.jsx)(sHt,{post:e,onAcknowledge:i}),(0,D.jsx)(`div`,{className:g9.lightboxDivider}),(0,D.jsx)(aHt,{post:e}),(0,D.jsx)(oHt,{post:e,commentsOpen:!0,onReact:n,onComment:()=>{},onShare:o}),(0,D.jsx)(`div`,{className:g9.lightboxDivider}),(0,D.jsx)(HVt,{comments:e.comments,pending:t,onAdd:a})]})]}),uHt=({hasImages:e,index:t,urlsLength:n,onClose:r,onChange:i})=>{(0,y.useEffect)(()=>{let a=a=>{a.key===`Escape`&&r(),e&&i!==void 0&&(a.key===`ArrowLeft`&&i((t-1+n)%n),a.key===`ArrowRight`&&i((t+1)%n))};return window.addEventListener(`keydown`,a),()=>{window.removeEventListener(`keydown`,a)}},[e,t,r,i,n])},dHt=({urls:e=[],index:t=0,onClose:n,onChange:r,post:i,commentPending:a,onReact:o,onBookmark:s,onAcknowledge:c,onAddComment:l,onShare:u,onPin:d,showPinButton:f,onEdit:p,showEditButton:m})=>{let{data:h}=OLt(i.id),g=h??i,_=e.length>0,v=co();return uHt({hasImages:_,index:t,urlsLength:e.length,onClose:n,onChange:r}),(0,b.createPortal)((0,D.jsx)(`div`,{className:g9.lightboxOverlay,onClick:n,role:`presentation`,children:(0,D.jsxs)(`div`,{className:_?g9.lightboxContainer:g9.lightboxContainerTextOnly,onClick:e=>{e.stopPropagation()},role:`presentation`,children:[(0,D.jsx)(`button`,{type:`button`,className:g9.lightboxClose,onClick:n,"aria-label":`Close lightbox`,children:(0,D.jsx)(qn,{size:20})}),_&&(0,D.jsx)(cHt,{urls:e,index:t,onPrev:()=>{r!==void 0&&r((t-1+e.length)%e.length)},onNext:()=>{r!==void 0&&r((t+1)%e.length)}}),(0,D.jsx)(lHt,{post:g,commentPending:a,onReact:o,onBookmark:s,onAcknowledge:c,onAddComment:l,onShare:u,onPin:d,showPinButton:f,onEdit:p,showEditButton:m,fullWidth:!_})]})}),v??document.body)},fHt=({open:e,post:t,onClose:n})=>{let{categoryLabel:r,categoryColor:i}=kLt(t);return(0,D.jsx)(rHt,{open:e,post:{postId:t.id,authorName:t.authorName,authorRole:t.authorRole,authorInitials:t.authorInitials,authorColor:t.authorColor,categoryLabel:r,categoryColor:i,title:t.title??t.body,bodySnippet:t.body.length>150?`${t.body.slice(0,150)}...`:t.body},onClose:n})},pHt=({index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l,onPin:u,showPinButton:d,onEdit:f,showEditButton:p})=>e===null?null:(0,D.jsx)(dHt,{urls:t.imageUrls,index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l,onPin:u,showPinButton:d,onEdit:f,showEditButton:p}),mHt=({body:e,onOpenDetail:t})=>{let[n,r]=(0,y.useState)(!1),i=e.length>200;return(0,D.jsxs)(`p`,{className:$.cardBody,onClick:t,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&t()},style:{cursor:`pointer`},children:[i&&!n?`${e.slice(0,200)}...`:e,i&&(0,D.jsx)(`button`,{type:`button`,className:$.seeMoreBtn,onClick:e=>{e.stopPropagation(),n||t(),r(e=>!e)},children:n?` See less`:` See more`})]})},hHt=({title:e,onOpenDetail:t})=>(0,D.jsx)(`h2`,{className:$.cardTitle,onClick:t,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&t()},style:{cursor:`pointer`},children:e}),gHt=(e,t,n,r)=>{let i=xLt();return{handleShare:()=>{t(!0),i.mutate(e.id)},handleImageClick:t=>{n(t),t!==null&&i.mutate(e.id)},handleOpenDetail:()=>{r(),i.mutate(e.id)}}},_Ht=({post:e,commentsOpen:t,commentPending:n,shareOpen:r,lightboxIndex:i,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,toggleComments:l,setShareOpen:u,setLightboxIndex:d,onOpenDetail:f,onPin:p,showPinButton:m,onEdit:h,showEditButton:g})=>{let{handleShare:_,handleImageClick:v,handleOpenDetail:y}=gHt(e,u,d,f);return(0,D.jsxs)(D.Fragment,{children:[e.title!==null&&(0,D.jsx)(hHt,{title:e.title,onOpenDetail:y}),(0,D.jsx)(mHt,{body:e.body,onOpenDetail:y}),(0,D.jsx)(WVt,{urls:e.imageUrls,onImageClick:v}),(0,D.jsx)(sHt,{post:e,onAcknowledge:s}),(0,D.jsx)(aHt,{post:e,onCommentClick:l}),(0,D.jsx)(oHt,{post:e,commentsOpen:t,onReact:a,onComment:l,onShare:_}),t&&(0,D.jsx)(HVt,{comments:e.comments,pending:n,onAdd:c}),(0,D.jsx)(fHt,{open:r,post:e,onClose:()=>{u(!1)}}),(0,D.jsx)(pHt,{index:i,post:e,commentPending:n,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,onShare:_,onClose:()=>{d(null)},onChange:d,onPin:p,showPinButton:m,onEdit:h,showEditButton:g})]})},vHt=e=>{let t=(0,y.useRef)(null);(0,y.useEffect)(()=>{t.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:n}=Wse({target:e,container:t,offset:[`start end`,`end start`]});return id(n,[0,1],[-12,12])},yHt=({post:e,state:t})=>(0,D.jsx)(zVt,{post:e,state:t}),bHt=e=>{let[t,n]=(0,y.useState)(0);return(0,D.jsx)(dHt,{post:e.post,urls:e.post.imageUrls,index:t,onChange:n,commentPending:e.commentPending,onReact:e.onReact,onBookmark:e.onBookmark,onAcknowledge:e.onAcknowledge,onAddComment:e.onAddComment,onShare:e.onShare,onClose:e.onClose,onPin:e.onPin,showPinButton:e.showPinButton,onEdit:e.onEdit,showEditButton:e.showEditButton})},xHt=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,state:o,onOpenDetail:s,onPin:c,showPinButton:l,onEdit:u,showEditButton:d})=>o.isEditing?(0,D.jsx)(yHt,{post:e,state:o}):(0,D.jsx)(_Ht,{post:e,commentsOpen:o.commentsOpen,commentPending:t,shareOpen:o.shareOpen,lightboxIndex:o.lightboxIndex,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,toggleComments:()=>{o.setCommentsOpen(e=>!e)},setShareOpen:o.setShareOpen,setLightboxIndex:o.setLightboxIndex,onOpenDetail:s,onPin:c,showPinButton:l,onEdit:u,showEditButton:d}),SHt=(e,t)=>({handleEdit:()=>{e.setIsEditing(!0)},handleOpenDetail:()=>{t(!0)},handleEditFromDetail:()=>{e.setIsEditing(!0),t(!1)},handleShare:()=>{e.setShareOpen(!0)},handleCloseDetail:()=>{t(!1)}}),CHt=({post:e,isAuthor:t,commentPending:n,onBookmark:r,onPin:i,showPinButton:a,onReact:o,onAcknowledge:s,onAddComment:c,state:l,cardY:u,elementRef:d})=>{let[f,p]=(0,y.useState)(!1),m=SHt(l,p);return(0,D.jsxs)(Zu.article,{id:`feed-post-${e.id}`,ref:d,style:{y:u},className:$.card,children:[e.needsAcknowledgement&&(0,D.jsx)(`span`,{className:$.urgentStripe}),e.pinned&&(0,D.jsxs)(`div`,{className:$.pinnedRow,children:[(0,D.jsx)(Tn,{size:10,className:$.pin}),` Pinned`]}),!l.isEditing&&(0,D.jsx)(vVt,{post:e,onBookmark:r,onPin:i,showPinButton:a,showEditButton:t,onEdit:m.handleEdit}),(0,D.jsx)(xHt,{post:e,commentPending:n,onReact:o,onBookmark:r,onAcknowledge:s,onAddComment:c,state:l,onOpenDetail:m.handleOpenDetail,onPin:i,showPinButton:a,onEdit:m.handleEdit,showEditButton:t}),f&&(0,D.jsx)(bHt,{post:e,commentPending:n,onReact:o,onBookmark:r,onPin:i,showPinButton:a,onEdit:m.handleEditFromDetail,showEditButton:t,onAcknowledge:s,onAddComment:c,onShare:m.handleShare,onClose:m.handleCloseDetail})]})},wHt=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a})=>{let o=PVt(e),{user:s}=qh(),c=e.authorUserId===s?.id,l=CLt(),u=s!==null&&(s.hasRole(`admin`)||s.hasRole(`system-admin`)||s.hasRole(`FullAccess`)),d=()=>{l.mutateAsync({postId:e.id,pinned:!e.pinned})},f=(0,y.useRef)(null);return(0,D.jsx)(CHt,{post:e,isAuthor:c,commentPending:t,onBookmark:r,onPin:d,showPinButton:u,onReact:n,onAcknowledge:i,onAddComment:a,state:o,cardY:vHt(f),elementRef:f})},THt=({posts:e})=>{let t=vLt(),n=yLt(),r=bLt(),i=SLt();return(0,D.jsx)(D.Fragment,{children:e.map(e=>(0,D.jsx)(wHt,{post:e,commentPending:i.isPending,onReact:n=>{t.mutate({postId:e.id,type:n})},onBookmark:()=>{n.mutate(e.id),Nf.success(e.bookmarked?`Bookmark removed`:`Post saved to bookmarks`)},onAcknowledge:()=>{r.mutate(e.id),Nf.success(`Post acknowledged`)},onAddComment:t=>{i.mutate({postId:e.id,text:t})}},e.id))})},EHt=2,DHt=e=>[...e].filter(e=>e.active).sort((e,t)=>e.priority-t.priority),OHt=(e,t)=>e.find(e=>e.id===t.templateId),kHt=(e,t,n)=>DHt(e).map(e=>{let r=t.filter(t=>t.categoryId===e.id);return{id:e.id,name:e.name,color:e.color,count:r.length,template:OHt(n,e),items:r.slice(0,EHt)}}).filter(e=>e.count>0),AHt=e=>[{id:`all`,label:`All`},...DHt(e).map(e=>({id:e.id,label:e.name}))],jHt=e=>Object.values(e.values).join(` `).toLowerCase(),MHt=(e,t,n)=>{let r=[];for(let i of DHt(e.categories)){if(t!==`all`&&i.id!==t)continue;let a=OHt(e.templates,i);if(a===void 0)continue;let o=e.promotions.filter(e=>e.categoryId===i.id),s=n===``?o:o.filter(e=>jHt(e).includes(n));s.length>0&&r.push({category:i,template:a,items:s,count:o.length})}return r},NHt=({onClose:e})=>(0,D.jsxs)(`div`,{className:$.ppHead,children:[(0,D.jsx)(`span`,{className:$.ppHeadIcon,children:(0,D.jsx)(pn,{size:18})}),(0,D.jsxs)(`div`,{className:$.ppHeadText,children:[(0,D.jsx)(`h2`,{className:$.ppTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`p`,{className:$.ppSubtitle,children:`Latest campaigns, university updates, intake alerts and events.`}),(0,D.jsx)(`span`,{className:$.ppManaged,children:`Read-only · Managed by System Admin`})]}),(0,D.jsx)(`button`,{type:`button`,className:$.ppClose,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(qn,{size:18})})]}),PHt=({tabs:e,active:t,onSelect:n})=>(0,D.jsx)(`div`,{className:$.ppTabs,children:e.map(e=>{let r=e.id===t;return(0,D.jsxs)(`button`,{type:`button`,className:E($.ppTab,r&&$.ppTabActive),onClick:()=>{n(e.id)},children:[r&&(0,D.jsx)(Zu.span,{layoutId:`ppTabBg`,className:$.ppTabBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:$.ppTabLabel,children:e.label})]},e.id)})}),FHt=({categories:e,promotions:t,templates:n,initialTab:r,onClose:i})=>{let[a,o]=(0,y.useState)(r),[s,c]=(0,y.useState)(``),l=AHt(e),u=MHt({categories:e,promotions:t,templates:n},a,s.trim().toLowerCase());return(0,D.jsxs)(`div`,{className:$.ppRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:$.ppOverlay,"aria-label":`Close promotions`,onClick:i}),(0,D.jsxs)(`div`,{className:$.ppPanel,role:`dialog`,"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(NHt,{onClose:i}),(0,D.jsx)(PHt,{tabs:l,active:a,onSelect:o}),(0,D.jsxs)(`div`,{className:$.ppSearch,children:[(0,D.jsx)(Mn,{size:14,className:$.ppSearchIcon}),(0,D.jsx)(`input`,{type:`search`,className:$.ppSearchInput,placeholder:`Search promotions…`,value:s,onChange:e=>{c(e.target.value)}})]}),(0,D.jsx)(`div`,{className:$.ppList,children:(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(Zu.div,{className:$.ppListInner,initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.18,ease:`easeOut`},children:u.length===0?(0,D.jsx)(`p`,{className:$.ppEmpty,children:s.trim()===``?`No active promotions right now.`:`No promotions match.`}):u.map(e=>(0,D.jsx)(Mh,{template:e.template,color:e.category.color,name:e.category.name,count:e.count,items:e.items},e.category.id))},a)})})]})]})},IHt=({sections:e,onClose:t,onSeeAll:n,onSelectTab:r})=>(0,D.jsx)(Zu.div,{className:$.promoPopoverOverlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,D.jsxs)(Zu.div,{className:$.promoPopoverCard,initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,y:20},transition:{type:`spring`,damping:25,stiffness:300},children:[(0,D.jsxs)(`div`,{className:$.popoverHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:$.popoverCloseX,onClick:t,"aria-label":`Close promotions modal`,children:(0,D.jsx)(qn,{size:18})}),(0,D.jsx)(`div`,{className:$.popoverBadgeIcon,children:(0,D.jsx)(pn,{size:24})}),(0,D.jsxs)(`div`,{className:$.popoverTitleRow,children:[(0,D.jsx)(`h3`,{className:$.popoverTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`button`,{type:`button`,className:$.popoverSeeAllBtn,onClick:()=>{t(),n()},children:`See all`})]}),(0,D.jsx)(`p`,{className:$.popoverSub,children:`Stay updated with active promotions and university campaigns`})]}),(0,D.jsx)(`div`,{className:$.popoverContent,children:e.length===0?(0,D.jsx)(`p`,{className:$.popoverEmpty,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)(Mh,{template:e.template,color:e.color,name:e.name,count:e.count,items:e.items,onViewAll:()=>{t(),r(e.id)}},e.id))})]})}),LHt=({sections:e,onSeeAll:t,onSelectTab:n})=>(0,D.jsxs)(`aside`,{className:$.rail,children:[(0,D.jsxs)(`div`,{className:$.railHead,children:[(0,D.jsxs)(`span`,{className:$.railHeadTitle,children:[(0,D.jsx)(pn,{size:11}),` PROMOTIONS & CAMPAIGNS`]}),(0,D.jsx)(`button`,{type:`button`,className:$.railSeeAll,onClick:t,children:`See all`})]}),(0,D.jsx)(`div`,{className:$.railList,children:e.length===0?(0,D.jsx)(`p`,{className:$.railFoot,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)(Mh,{template:e.template,color:e.color,name:e.name,count:e.count,items:e.items,onViewAll:()=>{n(e.id)}},e.id))}),(0,D.jsx)(`div`,{className:$.railFoot,children:`Managed by System Admin`})]}),RHt=({onOpen:e})=>{let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(!1),a=(0,y.useRef)(0);return(0,y.useEffect)(()=>{let e=document.getElementById(`app-scroll-container`);if(!e)return;let t=()=>{let t=e.scrollTop;t<=4||t<a.current?i(!1):i(!0),a.current=t};return e.addEventListener(`scroll`,t,{passive:!0}),()=>{e.removeEventListener(`scroll`,t)}},[]),(0,y.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>{n(!1)},4e3);return()=>{clearTimeout(e)}},[t]),(0,D.jsxs)(`button`,{type:`button`,className:E($.mobilePromoTrigger,t&&$.mobilePromoExpanded,r&&$.mobilePromoTriggerBarHidden),onClick:()=>{t?(n(!1),e()):n(!0)},"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(`span`,{className:$.promoShimmerSweep}),(0,D.jsx)(`span`,{className:$.promoIconWrap,children:(0,D.jsx)(pn,{size:15,className:$.sparkleIcon})}),(0,D.jsx)(`span`,{className:$.promoBtnText,children:`Promotions & Campaigns`})]})},zHt=()=>{let e=uSe(),t=fSe(),n=dSe(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),s=e.data??[],c=t.data??[],l=n.data??[],u=kHt(s,c,l);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(LHt,{sections:u,onSeeAll:()=>{i(`all`)},onSelectTab:e=>{i(e)}}),(0,D.jsx)(RHt,{onOpen:()=>{o(!0)}}),(0,D.jsx)(Uu,{children:a&&(0,D.jsx)(IHt,{sections:u,onClose:()=>{o(!1)},onSeeAll:()=>{i(`all`)},onSelectTab:e=>{i(e)}})}),r!==null&&(0,D.jsx)(FHt,{categories:s,promotions:c,templates:l,initialTab:r,onClose:()=>{i(null)}})]})},BHt=[{id:`for_you`,label:`For You`},{id:`team`,label:`Team Updates`},{id:`company`,label:`Company Wide`},{id:`saved`,label:`Saved Posts`,icon:Pt}],VHt=({scope:e,onChange:t})=>{let n=hLt(`saved`).data?.pages[0]?.totalCount;return(0,D.jsx)(`div`,{className:$.tabs,children:BHt.map(r=>{let i=r.icon;return(0,D.jsxs)(`button`,{type:`button`,className:E($.tab,e===r.id&&$.tabActive),onClick:()=>{t(r.id)},children:[i!==void 0&&(0,D.jsx)(i,{size:13}),r.label,r.id===`saved`&&n!==void 0&&n>0&&(0,D.jsx)(`span`,{className:$.tabBadge,children:n})]},r.id)})})},_9={skeletonCard:`_skeletonCard_7d381_1`,skeletonHeader:`_skeletonHeader_7d381_11`,skeletonAvatar:`_skeletonAvatar_7d381_17`,pulse:`_pulse_7d381_1`,skeletonMeta:`_skeletonMeta_7d381_25`,skeletonLine:`_skeletonLine_7d381_32`,short:`_short_7d381_39`,medium:`_medium_7d381_43`,full:`_full_7d381_47`,skeletonBody:`_skeletonBody_7d381_51`},HHt=({count:e=3})=>(0,D.jsx)(D.Fragment,{children:Array.from({length:e}).map((e,t)=>(0,D.jsxs)(`div`,{className:_9.skeletonCard,children:[(0,D.jsxs)(`div`,{className:_9.skeletonHeader,children:[(0,D.jsx)(`div`,{className:_9.skeletonAvatar}),(0,D.jsxs)(`div`,{className:_9.skeletonMeta,children:[(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.medium)}),(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.short)})]})]}),(0,D.jsxs)(`div`,{className:_9.skeletonBody,children:[(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.full)}),(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.full)}),(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.medium)})]})]},t))}),UHt=e=>{RLt(`feed-post-${e}`,`app-scroll-container`,`start`)},WHt=({post:e,onView:t,onDismiss:n,displayZone:r})=>{let{categoryLabel:i,categoryColor:a}=kLt(e);return(0,D.jsxs)(`div`,{className:$.missedCard,children:[(0,D.jsx)(`button`,{type:`button`,className:$.missedClose,"aria-label":`Dismiss`,onClick:n,children:(0,D.jsx)(qn,{size:11,strokeWidth:2.5})}),(0,D.jsxs)(`div`,{className:$.missedCardTop,children:[(0,D.jsx)(`span`,{className:$.missedDot,style:Xn({"--dot":a})}),(0,D.jsx)(`span`,{className:$.missedCat,children:i}),(0,D.jsx)(`span`,{className:$.missedTime,children:LLt(e.createdAt,r,e.scheduledAt)})]}),(0,D.jsx)(`p`,{className:$.missedSummary,children:e.title??e.body}),(0,D.jsxs)(`div`,{className:$.missedFoot,children:[(0,D.jsxs)(`button`,{type:`button`,className:$.missedCta,onClick:t,children:[`View post `,(0,D.jsx)(Ut,{size:10,strokeWidth:3})]}),e.mustAcknowledge&&(0,D.jsxs)(`span`,{className:$.missedPriority,children:[(0,D.jsx)(Gt,{size:8}),` Priority`]})]})]})},GHt=({posts:e})=>{let[t,n]=(0,y.useState)(new Set),[r,i]=(0,y.useState)(!1),a=(0,y.useRef)(null),o=nh().display,s=e.filter(e=>e.mustAcknowledge&&!t.has(e.id)&&!e.acknowledged);if(r||s.length===0)return null;let c=e=>{a.current?.scrollBy({left:e*300,behavior:`smooth`})},l=s.length>2;return(0,D.jsxs)(`div`,{className:$.missed,children:[(0,D.jsxs)(`div`,{className:$.missedHead,children:[(0,D.jsx)(gee,{size:14,className:$.missedSpark}),(0,D.jsx)(`span`,{className:$.missedTitle,children:`WHAT YOU MISSED`}),(0,D.jsx)(`span`,{className:$.missedBadge,children:s.length}),(0,D.jsx)(`button`,{type:`button`,className:$.missedRead,onClick:()=>{i(!0)},children:`Mark all read`})]}),(0,D.jsxs)(`div`,{className:E($.missedScroller,l&&$.missedScrollerFade),children:[l&&(0,D.jsx)(`button`,{type:`button`,className:E($.missedNav,$.missedNavLeft),"aria-label":`Scroll left`,onClick:()=>{c(-1)},children:(0,D.jsx)(Ht,{size:16})}),(0,D.jsx)(`div`,{className:$.missedTrack,ref:a,children:s.map(e=>(0,D.jsx)(WHt,{post:e,displayZone:o,onView:()=>{UHt(e.id)},onDismiss:()=>{n(t=>new Set(t).add(e.id))}},e.id))}),l&&(0,D.jsx)(`button`,{type:`button`,className:E($.missedNav,$.missedNavRight),"aria-label":`Scroll right`,onClick:()=>{c(1)},children:(0,D.jsx)(Ut,{size:16})})]})]})},KHt=(e,t)=>{let n=t.trim();if(n===``)return e;let r=n.replace(/\s+/g,` `).toLowerCase();return e.filter(e=>[e.authorName,e.authorRole,e.audienceLabel,e.timestamp,e.title,e.body].filter(Boolean).join(` `).replace(/\s+/g,` `).toLowerCase().includes(r))},qHt=(e,t,n)=>{let r=(0,y.useRef)(null),i=(0,y.useCallback)(r=>{r[0]?.isIntersecting&&e&&!t&&n()},[e,t,n]);return(0,y.useEffect)(()=>{let e=r.current;if(!e)return;let t=new IntersectionObserver(i,{rootMargin:`2000px`});return t.observe(e),()=>{t.disconnect()}},[i]),r},JHt=e=>{let[t,n]=xt(),r=OLt(t.get(`postId`));(0,y.useEffect)(()=>{if(r.data===void 0)return;e(r.data);let t=new URLSearchParams(window.location.search);t.has(`postId`)&&(t.delete(`postId`),n(t,{replace:!0}))},[r.data])},YHt=(e,t)=>{let n=vLt(),r=yLt(),i=bLt(),a=SLt(),o=CLt();return{handleReact:t=>{n.mutateAsync({postId:e.id,type:t})},handleBookmark:()=>{r.mutateAsync(e.id)},handleAcknowledge:()=>{i.mutateAsync(e.id)},handleAddComment:t=>{a.mutateAsync({postId:e.id,text:t})},handlePin:()=>{o.mutateAsync({postId:e.id,pinned:!e.pinned})},handleEdit:()=>{t.setIsEditing(!0)},handleShare:()=>{t.setShareOpen(!0)},handleCloseShare:()=>{t.setShareOpen(!1)},commentPending:a.isPending}},XHt=({post:e,onClose:t})=>{let[n,r]=(0,y.useState)(0),{data:i}=OLt(e.id),a=i??e,o=PVt(a),s=YHt(a,o),c=co(),{user:l}=qh(),u=a.authorUserId===l?.id,d=l!==null&&(l.hasRole(`admin`)||l.hasRole(`system-admin`)||l.hasRole(`FullAccess`));return o.isEditing?(0,b.createPortal)((0,D.jsx)(`div`,{className:g9.lightboxOverlay,children:(0,D.jsxs)(`div`,{className:g9.lightboxContainerTextOnly,style:{padding:0},children:[(0,D.jsx)(`button`,{type:`button`,className:g9.lightboxClose,onClick:()=>{o.setIsEditing(!1)},"aria-label":`Close edit`,children:(0,D.jsxs)(`svg`,{width:`24`,height:`24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,D.jsx)(`path`,{d:`M18 6 6 18`}),(0,D.jsx)(`path`,{d:`m6 6 12 12`})]})}),(0,D.jsx)(`div`,{style:{flex:1,overflowY:`auto`},children:(0,D.jsx)(zVt,{post:a,state:o})})]})}),c??document.body):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(dHt,{post:a,urls:a.imageUrls,index:n,onChange:r,commentPending:s.commentPending,onReact:s.handleReact,onBookmark:s.handleBookmark,onAcknowledge:s.handleAcknowledge,onAddComment:s.handleAddComment,onPin:s.handlePin,showPinButton:d,onEdit:s.handleEdit,showEditButton:u,onShare:s.handleShare,onClose:t}),(0,D.jsx)(fHt,{post:a,open:o.shareOpen,onClose:s.handleCloseShare})]})},ZHt=()=>{let[e,t]=(0,y.useState)(`for_you`),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(null),o=hLt(e),{hasNextPage:s,isFetchingNextPage:c,fetchNextPage:l}=o,u=KHt(o.data?o.data.pages.flatMap(e=>e.items):[],n);JHt(e=>{a(e)});let d=qHt(s,c,l);return(0,D.jsxs)(`div`,{className:$.screen,children:[(0,D.jsx)(`div`,{className:$.toolbar,children:(0,D.jsxs)(`div`,{className:$.toolbarContainer,children:[(0,D.jsxs)(`div`,{className:$.search,children:[(0,D.jsx)(Mn,{size:14,className:$.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:$.searchInput,placeholder:`Search posts by keyword, title, author, or role…`,value:n,onChange:e=>{r(e.target.value)}})]}),(0,D.jsx)(`div`,{className:$.toolbarRailSpacer})]})}),(0,D.jsxs)(`div`,{className:$.wrapper,children:[(0,D.jsxs)(`div`,{className:$.column,children:[(0,D.jsx)(VHt,{scope:e,onChange:e=>{t(e)}}),(0,D.jsx)(GHt,{posts:u}),(0,D.jsx)(pVt,{}),o.isPending&&(0,D.jsx)(HHt,{count:3}),o.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not load the feed`,children:o.error.message}),o.isSuccess&&u.length===0&&(0,D.jsx)(mVt,{}),(0,D.jsx)(THt,{posts:u}),(0,D.jsx)(`div`,{ref:d,style:{height:`20px`,width:`100%`},children:o.isFetchingNextPage&&(0,D.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:`1rem`},children:(0,D.jsx)(rr,{})})})]}),(0,D.jsx)(zHt,{})]}),i!==null&&(0,D.jsx)(XHt,{post:i,onClose:()=>{a(null)}})]})},QHt=({path:e,children:t})=>(0,D.jsxs)(gt,{children:[(0,D.jsx)(mt,{path:e,element:(0,D.jsx)(D.Fragment,{children:t})}),(0,D.jsx)(mt,{path:`*`,element:(0,D.jsx)(pt,{to:e,replace:!0})})]}),$Ht=()=>{m9(`uapp-feed`,()=>(0,D.jsx)(QHt,{path:`/comms/feed`,children:(0,D.jsx)(ZHt,{})}))},eUt=e=>{let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`?`:((t[0]?.[0]??``)+(t.length>1?t[t.length-1]?.[0]??``:``)).toUpperCase()},tUt=()=>{let{user:e}=qh(),t=e?.fullName??``;return{id:e?.id??``,name:t,initials:eUt(t),color:`#0f1f1f`,role:`Organizer`}},nUt=(e,t,n)=>{let r=new Date(e).getTime(),i=new Date(t).getTime();return n.some(e=>new Date(e.startUtc).getTime()<i&&new Date(e.endUtc).getTime()>r)},rUt=(e,t,n)=>{let r=new Date(e).getTime(),i=new Date(t).getTime();return n.some(e=>new Date(e.startUtc).getTime()<=r&&new Date(e.endUtc).getTime()>=i)},iUt=e=>{let t=e=>{let[t,n]=e.split(`:`).map(Number);return(t??0)*60+(n??0)},n=e=>`${String(Math.floor(e/60)).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`,r=t(e.end),i=[];for(let a=t(e.start);a+30<=r;a+=30)i.push({start:n(a),end:n(a+30),label:`${n(a)} – ${n(a+30)}`});return i},aUt=(e,t)=>{let n=e??t,r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,`0`),a=String(n.getDate()).padStart(2,`0`);return`${String(r)}-${i}-${a}`},oUt=(e,t)=>new Date(e).toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`,hour12:!0,timeZone:t}),v9=(e,t,n)=>!e||!t?``:`${oUt(e,n)} – ${oUt(t,n)}`,sUt=(e,t)=>e?new Date(e).toLocaleDateString(`en-US`,{weekday:`short`,day:`numeric`,month:`short`,timeZone:t}):``,cUt=(e,t)=>t.id!==``&&e===t.id,lUt=(e,t,n)=>{if(cUt(e,n))return n.name.split(` `)[0]??n.name;let r=t.find(t=>t.id===e);return r===void 0?``:r.name.split(` `)[0]??``},uUt=(e,t,n)=>{if(cUt(e,n))return{name:`${n.name} (You)`,role:n.role,initials:n.initials,color:n.color};let r=t.find(t=>t.id===e);return{name:r?.name??``,role:r?.role??``,initials:r?.initials??``,color:r?.color??`#555`}},dUt=(e,t,n)=>{let r=new Date(eh(e,`00:00`,t));return{rangeStart:r,rangeEnd:new Date(r.getTime()+1440*60*1e3),workWindows:n?.active?n.slots.map(n=>({start:new Date(eh(e,n.from,t)),end:new Date(eh(e,n.to,t))})):[]}},fUt=(e,t,n,r)=>{let i=[],a=(e,t)=>{i.push({startUtc:new Date(e).getTime(),endUtc:new Date(t).getTime()})};r.workWindows.forEach(e=>{a(e.start,e.end)}),n.forEach(e=>{ap(e,r.rangeStart,r.rangeEnd).forEach(e=>{a(e.start,e.end)})}),e.forEach(e=>{let n=t.get(e);n&&(n.workingHours.forEach(e=>{a(e.startUtc,e.endUtc)}),n.busy.forEach(e=>{a(e.startUtc,e.endUtc)}))});let o=r.rangeStart.getTime(),s=r.rangeEnd.getTime(),c=i.filter(e=>e.startUtc<s&&e.endUtc>o).map(e=>({startOffsetMs:Math.max(e.startUtc,o)-o,endOffsetMs:Math.min(e.endUtc,s)-o}));if(c.length===0)return{start:`09:00`,end:`17:00`};let l=1440*60*1e3,u=0;c.forEach(e=>{e.startOffsetMs<l&&(l=e.startOffsetMs),e.endOffsetMs>u&&(u=e.endOffsetMs)});let d=Math.floor(Math.max(0,l/6e4-60)/30)*30,f=Math.ceil(Math.min(1440,u/6e4+60)/30)*30,p=e=>`${String(Math.floor(e/60)).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`;return{start:p(d),end:p(f)}},y9={bookCard:`_bookCard_g1hkd_7`,bookTopBar:`_bookTopBar_g1hkd_16`,bookGrid:`_bookGrid_g1hkd_26`,colCalendar:`_colCalendar_g1hkd_31`,search:`_search_g1hkd_37`,searchIcon:`_searchIcon_g1hkd_42`,searchInput:`_searchInput_g1hkd_50`,contactList:`_contactList_g1hkd_61`,contactRow:`_contactRow_g1hkd_72`,contactActive:`_contactActive_g1hkd_91`,contactAvatar:`_contactAvatar_g1hkd_96`,contactText:`_contactText_g1hkd_112`,contactName:`_contactName_g1hkd_120`,contactRole:`_contactRole_g1hkd_135`,contactCheck:`_contactCheck_g1hkd_144`,contactCheckOn:`_contactCheckOn_g1hkd_158`,contactCheckIcon:`_contactCheckIcon_g1hkd_164`,contactEmpty:`_contactEmpty_g1hkd_170`,calHead:`_calHead_g1hkd_177`,calMonth:`_calMonth_g1hkd_184`,calNav:`_calNav_g1hkd_190`,calNavBtn:`_calNavBtn_g1hkd_195`,calDays:`_calDays_g1hkd_208`,calDayLabel:`_calDayLabel_g1hkd_214`,calGrid:`_calGrid_g1hkd_222`,calCell:`_calCell_g1hkd_228`,calCellToday:`_calCellToday_g1hkd_248`,calCellSelected:`_calCellSelected_g1hkd_254`,calCellPast:`_calCellPast_g1hkd_262`,calCellBlank:`_calCellBlank_g1hkd_267`,bookBar:`_bookBar_g1hkd_272`,bookHint:`_bookHint_g1hkd_282`,bookSummary:`_bookSummary_g1hkd_287`,bookSummaryName:`_bookSummaryName_g1hkd_295`,bookSummarySlot:`_bookSummarySlot_g1hkd_300`,bookBtn:`_bookBtn_g1hkd_305`,confirmBody:`_confirmBody_g1hkd_327`,confirmWho:`_confirmWho_g1hkd_333`,confirmAvatar:`_confirmAvatar_g1hkd_343`,confirmWhoText:`_confirmWhoText_g1hkd_357`,confirmName:`_confirmName_g1hkd_364`,confirmRole:`_confirmRole_g1hkd_370`,confirmRows:`_confirmRows_g1hkd_375`,confirmRow:`_confirmRow_g1hkd_375`,confirmRowIcon:`_confirmRowIcon_g1hkd_392`,confirmRowLabel:`_confirmRowLabel_g1hkd_404`,confirmRowValue:`_confirmRowValue_g1hkd_412`,bookedNote:`_bookedNote_g1hkd_420`,typeSelector:`_typeSelector_g1hkd_430`,typeBtn:`_typeBtn_g1hkd_438`,typeBtnActive:`_typeBtnActive_g1hkd_456`},pUt=({spanKey:e,name:t,dateLabel:n,formattedSlot:r})=>(0,D.jsxs)(Zu.span,{className:y9.bookSummary,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(`span`,{className:y9.bookSummaryName,children:t}),` · `,n,` ·`,` `,(0,D.jsx)(`span`,{className:y9.bookSummarySlot,children:r})]},e),mUt=({meetingType:e,contact:t,dateLabel:n,slot:r,selectedContactIds:i,groupTitle:a,formattedSlot:o})=>e===`1:1`?t!==null&&n!==``&&r!==null?(0,D.jsx)(pUt,{spanKey:`summary`,name:t.name,dateLabel:n,formattedSlot:o}):null:i.length>0&&n!==``&&r!==null?(0,D.jsx)(pUt,{spanKey:`group-summary`,name:`${a||`Group Meeting`} (${String(i.length)} guests)`,dateLabel:n,formattedSlot:o}):null,hUt=({success:e,meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,selectedSlot:s,tzId:c})=>{if(e)return(0,D.jsxs)(Zu.span,{className:y9.bookedNote,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(Bt,{size:14,strokeWidth:3}),` Meeting booked — see the Scheduled tab.`]},`done`);let l=mUt({meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,formattedSlot:s?v9(s.startUtc,s.endUtc,c):``});return l===null?(0,D.jsx)(`span`,{className:y9.bookHint,children:t===`1:1`?`Pick a person, a date, and a time to book.`:`Select participants, set group title, pick a date and a time to book.`},`hint`):l},gUt=({contact:e,dateLabel:t,slot:n,canBook:r,success:i,meetingType:a,selectedContactIds:o,groupTitle:s,onBook:c,selectedSlot:l,tzId:u})=>(0,D.jsxs)(`div`,{className:y9.bookBar,children:[(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(hUt,{success:i,meetingType:a,contact:e,dateLabel:t,slot:n,selectedContactIds:o,groupTitle:s,selectedSlot:l,tzId:u})}),(0,D.jsxs)(Zu.button,{type:`button`,className:y9.bookBtn,disabled:!r,...r?{whileTap:{scale:.97}}:{},onClick:()=>{c()},children:[`Confirm booking `,(0,D.jsx)(jt,{size:15})]})]}),_Ut=[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],vUt=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],yUt=e=>e.toLocaleDateString(`en-GB`,{weekday:`short`,day:`2-digit`,month:`short`}),bUt=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),xUt=(e,t,n)=>{let r=new Date(e,t,1).getDay(),i=new Date(e,t+1,0).getDate(),a=new Date(n.getFullYear(),n.getMonth(),n.getDate()),o=Array.from({length:r},()=>null);for(let r=1;r<=i;r+=1){let i=new Date(e,t,r);o.push({day:r,date:i,past:i<a,today:bUt(i,n)})}return o},b9={col:`_col_18ut1_6`,colTitle:`_colTitle_18ut1_13`,stepDot:`_stepDot_18ut1_22`},SUt=({cell:e,selected:t,onPick:n})=>(0,D.jsx)(Zu.button,{type:`button`,disabled:e.past,...e.past?{}:{whileHover:{scale:1.12},whileTap:{scale:.9}},className:E(y9.calCell,e.past&&y9.calCellPast,e.today&&y9.calCellToday,t?.toDateString()===e.date.toDateString()&&y9.calCellSelected),onClick:()=>{n(e.date)},children:e.day}),CUt=({view:e,today:t,selected:n,onShift:r,onPick:i})=>(0,D.jsxs)(`div`,{className:y9.colCalendar,children:[(0,D.jsxs)(`div`,{className:b9.colTitle,children:[(0,D.jsx)(`span`,{className:b9.stepDot,children:`2`}),` Pick a date`]}),(0,D.jsxs)(`div`,{className:y9.calHead,children:[(0,D.jsxs)(`span`,{className:y9.calMonth,children:[vUt[e.month],` `,e.year]}),(0,D.jsxs)(`div`,{className:y9.calNav,children:[(0,D.jsx)(Zu.button,{type:`button`,"aria-label":`Previous month`,className:y9.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(-1)},children:(0,D.jsx)(Ht,{size:15})}),(0,D.jsx)(Zu.button,{type:`button`,"aria-label":`Next month`,className:y9.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(1)},children:(0,D.jsx)(Ut,{size:15})})]})]}),(0,D.jsx)(`div`,{className:y9.calDays,children:_Ut.map(e=>(0,D.jsx)(`span`,{className:y9.calDayLabel,children:e},e))}),(0,D.jsx)(Zu.div,{className:y9.calGrid,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.22,1,.36,1]},children:xUt(e.year,e.month,t).map((e,t)=>e===null?(0,D.jsx)(`span`,{className:y9.calCellBlank},`blank-${String(t)}`):(0,D.jsx)(SUt,{cell:e,selected:n,onPick:i},e.day))},`${String(e.year)}-${String(e.month)}`)]}),wUt={hidden:{},visible:{transition:{staggerChildren:.05,delayChildren:.05}}},TUt={hidden:{opacity:0,x:-8},visible:{opacity:1,x:0,transition:{duration:.18,ease:`easeOut`}}},x9=({icon:e,label:t,value:n})=>(0,D.jsxs)(Zu.div,{className:y9.confirmRow,variants:TUt,children:[(0,D.jsx)(`span`,{className:y9.confirmRowIcon,children:e}),(0,D.jsx)(`span`,{className:y9.confirmRowLabel,children:t}),(0,D.jsx)(`span`,{className:y9.confirmRowValue,children:n})]}),EUt=({open:e,contact:t,dateLabel:n,slot:r,zone:i,pending:a,onConfirm:o,onClose:s,selectedSlot:c,tzId:l})=>{let u=v9(c?.startUtc,c?.endUtc,l);return(0,D.jsx)(cd,{open:e&&t!==null&&r!==null&&n!==``,onOpenChange:e=>{e||s()},title:`Confirm your booking`,description:`A calendar invite is sent to both of you once confirmed.`,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ar,{variant:`ghost`,onClick:s,children:`Back`}),(0,D.jsx)(ar,{isLoading:a,onClick:o,children:`Confirm booking`})]}),children:t!==null&&r!==null?(0,D.jsxs)(`div`,{className:y9.confirmBody,children:[(0,D.jsxs)(`div`,{className:y9.confirmWho,children:[(0,D.jsx)(`span`,{className:y9.confirmAvatar,style:Xn({"--avatar-color":t.color}),children:t.initials}),(0,D.jsxs)(`span`,{className:y9.confirmWhoText,children:[(0,D.jsx)(`span`,{className:y9.confirmName,children:t.name}),(0,D.jsx)(`span`,{className:y9.confirmRole,children:t.role})]})]}),(0,D.jsxs)(Zu.div,{className:y9.confirmRows,variants:wUt,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(x9,{icon:(0,D.jsx)(Lt,{size:15}),label:`Date`,value:n}),(0,D.jsx)(x9,{icon:(0,D.jsx)(Jt,{size:15}),label:`Time`,value:u}),(0,D.jsx)(x9,{icon:(0,D.jsx)(rn,{size:15}),label:`Timezone`,value:`${i.city} · ${i.offset}`}),(0,D.jsx)(x9,{icon:(0,D.jsx)(Gn,{size:15}),label:`Location`,value:`Online — link generated automatically`})]})]}):null})},DUt={titleWrap:`_titleWrap_18nb9_3`,titleInput:`_titleInput_18nb9_7`},OUt={hidden:{},visible:{transition:{staggerChildren:.04}}},kUt=({contact:e,active:t,onSelect:n})=>(0,D.jsxs)(Zu.button,{type:`button`,layout:!0,variants:ad,whileHover:{x:3},whileTap:{scale:.985},transition:{type:`spring`,stiffness:500,damping:34},className:E(y9.contactRow,t&&y9.contactActive),onClick:n,children:[(0,D.jsx)(`span`,{className:y9.contactAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:y9.contactText,children:[(0,D.jsx)(`span`,{className:y9.contactName,children:e.name}),(0,D.jsx)(`span`,{className:y9.contactRole,children:e.role})]}),(0,D.jsx)(`span`,{className:E(y9.contactCheck,t&&y9.contactCheckOn),children:(0,D.jsx)(Uu,{children:t&&(0,D.jsx)(Zu.span,{className:y9.contactCheckIcon,initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Bt,{size:11,strokeWidth:3})})})})]}),AUt=({contacts:e,selectedId:t,search:n,onSearch:r,onSelect:i,mode:a=`1:1`,selectedIds:o=[],onSelectGroup:s,groupTitle:c=``,onGroupTitleChange:l})=>(0,D.jsxs)(`div`,{className:b9.col,children:[(0,D.jsxs)(`div`,{className:b9.colTitle,children:[(0,D.jsx)(`span`,{className:b9.stepDot,children:`1`}),` `,a===`group`?`Configure Group Event`:`Choose a person`]}),a===`group`&&l&&(0,D.jsx)(`div`,{className:DUt.titleWrap,children:(0,D.jsx)(`input`,{type:`text`,className:E(y9.searchInput,DUt.titleInput),placeholder:`Group Event Title (e.g. Team Sync)`,value:c,onChange:e=>{l(e.target.value)}})}),(0,D.jsxs)(`div`,{className:y9.search,children:[(0,D.jsx)(Mn,{size:14,className:y9.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:y9.searchInput,placeholder:`Search people…`,value:n,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(Zu.div,{className:y9.contactList,variants:OUt,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(Uu,{initial:!1,children:e.map(e=>(0,D.jsx)(kUt,{contact:e,active:a===`group`?o.includes(e.id):t===e.id,onSelect:()=>{a===`group`&&s?s(o.includes(e.id)?o.filter(t=>t!==e.id):[...o,e.id]):i(e.id)}},e.id))}),e.length===0&&(0,D.jsx)(`p`,{className:y9.contactEmpty,children:`No people match.`})]})]}),S9={wizardContainer:`_wizardContainer_pyr7v_8`,stepper:`_stepper_pyr7v_17`,stepItem:`_stepItem_pyr7v_27`,stepLine:`_stepLine_pyr7v_34`,stepLineActive:`_stepLineActive_pyr7v_40`,stepCircle:`_stepCircle_pyr7v_44`,stepCircleActive:`_stepCircleActive_pyr7v_60`,stepCircleDone:`_stepCircleDone_pyr7v_66`,stepText:`_stepText_pyr7v_72`,stepTextActive:`_stepTextActive_pyr7v_78`,wizardContent:`_wizardContent_pyr7v_83`,wizardRow:`_wizardRow_pyr7v_90`,wizardPanelLeft:`_wizardPanelLeft_pyr7v_96`,wizardPanelRight:`_wizardPanelRight_pyr7v_106`,timePanelLeft:`_timePanelLeft_pyr7v_114`,wizardList:`_wizardList_pyr7v_118`,timePanelRight:`_timePanelRight_pyr7v_128`,panelHeading:`_panelHeading_pyr7v_132`,wizardSearch:`_wizardSearch_pyr7v_139`,wizardListBtn:`_wizardListBtn_pyr7v_159`,wizardListBtnActive:`_wizardListBtnActive_pyr7v_176`,avatar:`_avatar_pyr7v_181`,avatarSmall:`_avatarSmall_pyr7v_193`,contactName:`_contactName_pyr7v_205`,contactRole:`_contactRole_pyr7v_211`,checkbox:`_checkbox_pyr7v_217`,checkboxActive:`_checkboxActive_pyr7v_228`,panelHeader:`_panelHeader_pyr7v_234`,badge:`_badge_pyr7v_246`,selectedGrid:`_selectedGrid_pyr7v_254`,selectedEmpty:`_selectedEmpty_pyr7v_274`,selectedEmptyIcon:`_selectedEmptyIcon_pyr7v_285`,selectedItemCard:`_selectedItemCard_pyr7v_291`,cardName:`_cardName_pyr7v_301`,cardRole:`_cardRole_pyr7v_310`,removeBtn:`_removeBtn_pyr7v_318`,attendeeStatusItem:`_attendeeStatusItem_pyr7v_337`,statusIndicator:`_statusIndicator_pyr7v_346`,statusIndicatorAvail:`_statusIndicatorAvail_pyr7v_353`,statusIndicatorBusy:`_statusIndicatorBusy_pyr7v_357`,statusIndicatorOoh:`_statusIndicatorOoh_pyr7v_361`,gridToolbar:`_gridToolbar_pyr7v_366`,datePickerInput:`_datePickerInput_pyr7v_377`,durationSelector:`_durationSelector_pyr7v_386`,durBtn:`_durBtn_pyr7v_394`,durBtnActive:`_durBtnActive_pyr7v_405`,legend:`_legend_pyr7v_411`,legendItem:`_legendItem_pyr7v_418`,dotAvail:`_dotAvail_pyr7v_425`,dotBusy:`_dotBusy_pyr7v_426`,dotOoh:`_dotOoh_pyr7v_427`,suggestedStrip:`_suggestedStrip_pyr7v_443`,suggestedRow:`_suggestedRow_pyr7v_449`,suggestedCard:`_suggestedCard_pyr7v_456`,suggestedCardActive:`_suggestedCardActive_pyr7v_472`,suggestedCardFree:`_suggestedCardFree_pyr7v_479`,gridEmpty:`_gridEmpty_pyr7v_489`,wizardConfirmContainer:`_wizardConfirmContainer_pyr7v_501`,confirmHeading:`_confirmHeading_pyr7v_509`,confirmSub:`_confirmSub_pyr7v_516`,confirmCard:`_confirmCard_pyr7v_522`,confirmRow:`_confirmRow_pyr7v_532`,confirmLabel:`_confirmLabel_pyr7v_540`,confirmVal:`_confirmVal_pyr7v_548`,confirmAttendeeBadge:`_confirmAttendeeBadge_pyr7v_554`,avatarTiny:`_avatarTiny_pyr7v_567`,wizardFooter:`_wizardFooter_pyr7v_580`,wizardBackBtn:`_wizardBackBtn_pyr7v_589`,wizardNextBtn:`_wizardNextBtn_pyr7v_609`,selectedStatusAlert:`_selectedStatusAlert_pyr7v_634`,successContainer:`_successContainer_pyr7v_647`,successHeader:`_successHeader_pyr7v_659`,successTitle:`_successTitle_pyr7v_667`,successSub:`_successSub_pyr7v_674`,successCard:`_successCard_pyr7v_680`,successRow:`_successRow_pyr7v_694`,successLabel:`_successLabel_pyr7v_707`,successVal:`_successVal_pyr7v_716`,successActions:`_successActions_pyr7v_725`,successBtn:`_successBtn_pyr7v_733`,successBtnPrimary:`_successBtnPrimary_pyr7v_743`,successBtnSecondary:`_successBtnSecondary_pyr7v_752`},C9={titleVal:`_titleVal_195yt_3`,inlineIcon:`_inlineIcon_195yt_8`,agendaVal:`_agendaVal_195yt_13`,lastRow:`_lastRow_195yt_17`,guestList:`_guestList_195yt_21`},jUt=({d:e})=>{let t=e.selectedContactIds.map(t=>e.list.find(e=>e.id===t)),n=e.groupTitle.trim()===``?`Group Meeting`:e.groupTitle,r=e.selectedSlot?v9(e.selectedSlot.startUtc,e.selectedSlot.endUtc,e.tzId):`No time selected`,i=e.selectedSlot?sUt(e.selectedSlot.startUtc,e.tzId):e.dateLabel;return(0,D.jsxs)(`div`,{className:S9.wizardConfirmContainer,children:[(0,D.jsx)(`h3`,{className:S9.confirmHeading,children:`Review group meeting`}),(0,D.jsx)(`p`,{className:S9.confirmSub,children:`Ensure everything is correct before sending invitations.`}),(0,D.jsxs)(`div`,{className:S9.confirmCard,children:[(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Title`}),(0,D.jsx)(`span`,{className:E(S9.confirmVal,C9.titleVal),children:n})]}),(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:S9.confirmVal,children:[i,` @ `,r,` (`,e.zone.offset,`)`]})]}),(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Location`}),(0,D.jsxs)(`span`,{className:S9.confirmVal,children:[(0,D.jsx)(fn,{size:13,className:C9.inlineIcon}),e.groupLocation]})]}),e.groupDescription.trim()&&(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:E(S9.confirmVal,C9.agendaVal),children:e.groupDescription})]}),(0,D.jsxs)(`div`,{className:E(S9.confirmRow,C9.lastRow),children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Invited Guests`}),(0,D.jsx)(`div`,{className:E(S9.confirmVal,C9.guestList),children:t.map(e=>e===void 0?null:(0,D.jsxs)(`span`,{className:S9.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:S9.avatarTiny,style:{backgroundColor:e.color},children:e.initials}),e.name]},e.id))})]})]})]})},w9={wizardDetailsForm:`_wizardDetailsForm_79bfd_3`,detailsHeading:`_detailsHeading_79bfd_11`,detailsSub:`_detailsSub_79bfd_18`,formGroup:`_formGroup_79bfd_24`,formLabel:`_formLabel_79bfd_28`,formInput:`_formInput_79bfd_37`,formTextarea:`_formTextarea_79bfd_54`},MUt=({d:e})=>(0,D.jsxs)(`div`,{className:w9.wizardDetailsForm,children:[(0,D.jsx)(`h3`,{className:w9.detailsHeading,children:`Meeting details`}),(0,D.jsx)(`p`,{className:w9.detailsSub,children:`Add context to the invite so attendees know what to expect.`}),(0,D.jsxs)(`div`,{className:w9.formGroup,children:[(0,D.jsx)(`label`,{className:w9.formLabel,children:`MEETING TITLE *`}),(0,D.jsx)(`input`,{type:`text`,className:w9.formInput,placeholder:`e.g. Weekly Admissions Alignment`,value:e.groupTitle,onChange:t=>{e.setGroupTitle(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:w9.formGroup,children:[(0,D.jsx)(`label`,{className:w9.formLabel,children:`LOCATION / TYPE *`}),(0,D.jsx)(`input`,{type:`text`,className:w9.formInput,placeholder:`e.g. Google Meet, Room 402`,value:e.groupLocation,onChange:t=>{e.setGroupLocation(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:w9.formGroup,children:[(0,D.jsx)(`label`,{className:w9.formLabel,children:`AGENDA / DESCRIPTION`}),(0,D.jsx)(`textarea`,{className:w9.formTextarea,rows:5,placeholder:`What will you cover in this meeting? (optional)`,value:e.groupDescription,onChange:t=>{e.setGroupDescription(t.target.value)}})]})]}),NUt={searchWrap:`_searchWrap_3i51q_3`,contactMeta:`_contactMeta_3i51q_7`,selectedMeta:`_selectedMeta_3i51q_13`},PUt=({d:e,isSelected:t,onToggle:n})=>(0,D.jsxs)(`div`,{className:S9.wizardPanelLeft,children:[(0,D.jsxs)(`div`,{className:NUt.searchWrap,children:[(0,D.jsx)(`h3`,{className:S9.panelHeading,children:`Add participants`}),(0,D.jsx)(`input`,{type:`text`,className:S9.wizardSearch,placeholder:`Search by name, role or department...`,value:e.search,onChange:t=>{e.setSearch(t.target.value)}})]}),(0,D.jsx)(`div`,{className:S9.wizardList,children:e.searchResults.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:E(S9.wizardListBtn,t(e.id)&&S9.wizardListBtnActive),onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:S9.avatar,style:{backgroundColor:e.color},children:e.initials}),(0,D.jsxs)(`div`,{className:NUt.contactMeta,children:[(0,D.jsx)(`div`,{className:S9.contactName,children:e.name}),(0,D.jsx)(`div`,{className:S9.contactRole,children:e.role})]}),(0,D.jsx)(`div`,{className:E(S9.checkbox,t(e.id)&&S9.checkboxActive),children:t(e.id)&&(0,D.jsx)(Bt,{size:10,strokeWidth:3})})]},e.id))})]}),FUt=({d:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:S9.wizardPanelRight,children:[(0,D.jsxs)(`div`,{className:S9.panelHeader,children:[(0,D.jsx)(`span`,{children:`SELECTED`}),(0,D.jsxs)(`span`,{className:S9.badge,children:[String(e.selectedContactIds.length),` guests`]})]}),(0,D.jsx)(`div`,{className:S9.selectedGrid,children:(0,D.jsx)(Uu,{initial:!1,children:e.selectedContactIds.length===0?(0,D.jsxs)(Zu.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:S9.selectedEmpty,children:[(0,D.jsx)(Wn,{size:22,className:S9.selectedEmptyIcon}),(0,D.jsx)(`span`,{children:`Select people on the left to add them to the meeting.`})]},`empty`):e.selectedContactIds.map(n=>{let r=e.list.find(e=>e.id===n);return r===void 0?null:(0,D.jsxs)(Zu.div,{layout:!0,initial:{opacity:0,y:10,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,scale:.9,x:20},transition:{type:`spring`,stiffness:300,damping:25},className:S9.selectedItemCard,children:[(0,D.jsx)(`span`,{className:S9.avatarSmall,style:{backgroundColor:r.color},children:r.initials}),(0,D.jsxs)(`div`,{className:NUt.selectedMeta,children:[(0,D.jsx)(`div`,{className:S9.cardName,children:r.name}),(0,D.jsx)(`div`,{className:S9.cardRole,children:r.role})]}),(0,D.jsx)(`button`,{type:`button`,className:S9.removeBtn,onClick:()=>{t(n)},children:(0,D.jsx)(Vn,{size:13})})]},n)})})})]}),IUt=({d:e})=>{let t=t=>e.selectedContactIds.includes(t),n=n=>{t(n)?e.setSelectedContactIds(e.selectedContactIds.filter(e=>e!==n)):e.setSelectedContactIds([...e.selectedContactIds,n])};return(0,D.jsxs)(`div`,{className:S9.wizardRow,children:[(0,D.jsx)(PUt,{d:e,isSelected:t,onToggle:n}),(0,D.jsx)(FUt,{d:e,onToggle:n})]})},T9={timelineContainer:`_timelineContainer_11xrs_3`,timelineHeaderRow:`_timelineHeaderRow_11xrs_18`,timelineTimeCell:`_timelineTimeCell_11xrs_27`,timelineHeaderCell:`_timelineHeaderCell_11xrs_38`,timelineBody:`_timelineBody_11xrs_52`,timelineRow:`_timelineRow_11xrs_57`,timelineTimeCellActive:`_timelineTimeCellActive_11xrs_75`,timelineCell:`_timelineCell_11xrs_81`,cellAvail:`_cellAvail_11xrs_90`,cellBusy:`_cellBusy_11xrs_94`,cellOoh:`_cellOoh_11xrs_98`,cellSelected:`_cellSelected_11xrs_109`,gridTooltip:`_gridTooltip_11xrs_114`},LUt=30,RUt=(e,t,n)=>{let r=eh(t,e.start,n);return{startUtc:r,endUtc:new Date(new Date(r).getTime()+LUt*6e4).toISOString()}},zUt=(e,t,n)=>{let r=new Date(new Date(n.startUtc).getTime()+e.groupDuration*6e4).toISOString();e.pickSlot({label:t,startUtc:n.startUtc,endUtc:r,conflicts:[]})},BUt=({id:e,d:t,rowInstants:n,serverBusy:r,selfBounds:i,allBlocks:a})=>{let o=r.get(e);return o===void 0?t.selected===null?`ooh`:aRt({userId:e,selfUserId:t.viewer.id,slotStart:new Date(n.startUtc),slotEnd:new Date(n.endUtc),allBlocks:a,rangeStart:i.rangeStart,rangeEnd:i.rangeEnd,workWindows:i.workWindows}):nUt(n.startUtc,n.endUtc,o.busy)?`busy`:o.workingHours.length>0&&!rUt(n.startUtc,n.endUtc,o.workingHours)?`ooh`:`available`},VUt=({id:e,slotItem:t,d:n,allBlocks:r,serverBusy:i,rowInstants:a,selfBounds:o,isSelected:s,hoverCell:c,setHoverCell:l})=>{let u=BUt({id:e,d:n,rowInstants:a,serverBusy:i,selfBounds:o,allBlocks:r}),d=c!==null&&c.userId===e&&c.slotLabel===t.label;return(0,D.jsx)(`div`,{className:E(T9.timelineCell,u===`available`&&T9.cellAvail,u===`busy`&&T9.cellBusy,u===`ooh`&&T9.cellOoh,s&&T9.cellSelected),onClick:()=>{zUt(n,t.label,a)},onMouseEnter:()=>{l({userId:e,slotLabel:t.label})},onMouseLeave:()=>{l(null)},children:d&&(0,D.jsxs)(`div`,{className:T9.gridTooltip,children:[(0,D.jsx)(`strong`,{children:lUt(e,n.list,n.viewer)}),` ·`,` `,u.toUpperCase()]})})},HUt=({slotItem:e,d:t,activeAttendees:n,allBlocks:r,serverBusy:i,isoDate:a,displayZone:o,selfBounds:s,hoverCell:c,setHoverCell:l})=>{let u=t.slot===e.label,d=RUt(e,a,o),f=th.from({pick:o}).formatTime(d.startUtc);return(0,D.jsxs)(`div`,{className:T9.timelineRow,children:[(0,D.jsx)(`button`,{type:`button`,className:E(T9.timelineTimeCell,u&&T9.timelineTimeCellActive),onClick:()=>{zUt(t,e.label,d)},children:f}),n.map(n=>(0,D.jsx)(VUt,{id:n,slotItem:e,d:t,allBlocks:r,serverBusy:i,rowInstants:d,selfBounds:s,isSelected:u,hoverCell:c,setHoverCell:l},n+`-`+e.label))]})},UUt=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>{let s=e.tzId,c=dUt(i,s,e.hostDayWindow),l=iUt(fUt(t,r,n,c));return(0,D.jsxs)(`div`,{className:T9.timelineContainer,children:[(0,D.jsxs)(`div`,{className:T9.timelineHeaderRow,children:[(0,D.jsx)(`div`,{className:T9.timelineTimeCell}),t.map(t=>(0,D.jsx)(`div`,{className:T9.timelineHeaderCell,children:lUt(t,e.list,e.viewer)},t))]}),(0,D.jsx)(`div`,{className:T9.timelineBody,children:l.map(l=>(0,D.jsx)(HUt,{slotItem:l,d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,displayZone:s,selfBounds:c,hoverCell:a,setHoverCell:o},l.label))})]})},WUt={header:`_header_1afpk_3`,slotNote:`_slotNote_1afpk_7`,cardMeta:`_cardMeta_1afpk_12`},GUt=({userId:e,selfUserId:t,startStr:n,endStr:r,anchorTzId:i,isoDate:a,allBlocks:o,dayWindow:s})=>{let c=s?.active?s.slots.map(e=>({start:new Date(eh(a,e.from,i)),end:new Date(eh(a,e.to,i))})):[],l=new Date(eh(a,`00:00`,i)),u=new Date(l.getTime()+1440*60*1e3);return aRt({userId:e,selfUserId:t,slotStart:new Date(eh(a,n,i)),slotEnd:new Date(eh(a,r,i)),allBlocks:o,rangeStart:l,rangeEnd:u,workWindows:c})},KUt=(e,t,n)=>{let{id:r,d:i,allBlocks:a,serverBusy:o,anchorTzId:s,isoDate:c}=e,l=i.hostDayWindow;if(i.selected===null||l===null)return`available`;let u=o.get(r);if(u!==void 0){let e=eh(c,t,s),r=eh(c,n,s);return nUt(e,r,u.busy)?`busy`:u.workingHours.length>0&&!rUt(e,r,u.workingHours)?`ooh`:`available`}return GUt({userId:r,selfUserId:i.viewer.id,startStr:t,endStr:n,anchorTzId:s,isoDate:c,allBlocks:a,dayWindow:l})},qUt=e=>{let{id:t,d:n,curSlot:r}=e,i=uUt(t,n.list,n.viewer),[a,o]=r?r.split(` – `):[null,null],s=a&&o?KUt(e,a,o):`available`;return(0,D.jsxs)(`div`,{className:S9.attendeeStatusItem,children:[(0,D.jsx)(`span`,{className:S9.avatarSmall,style:{backgroundColor:i.color},children:i.initials}),(0,D.jsxs)(`div`,{className:WUt.cardMeta,children:[(0,D.jsx)(`div`,{className:S9.cardName,children:i.name}),(0,D.jsx)(`div`,{className:S9.cardRole,children:i.role})]}),(0,D.jsx)(`span`,{className:E(S9.statusIndicator,s===`available`&&S9.statusIndicatorAvail,s===`busy`&&S9.statusIndicatorBusy,s===`ooh`&&S9.statusIndicatorOoh)})]})},JUt=({d:e,activeAttendees:t,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o})=>(0,D.jsxs)(`div`,{className:E(S9.wizardPanelLeft,S9.timePanelLeft),children:[(0,D.jsxs)(`div`,{className:WUt.header,children:[(0,D.jsx)(`h3`,{className:S9.panelHeading,children:`Attendees Availability`}),(0,D.jsxs)(`span`,{className:WUt.slotNote,children:[`For selected slot: `,n??`None`]})]}),(0,D.jsx)(`div`,{className:S9.wizardList,children:t.map(t=>(0,D.jsx)(qUt,{id:t,d:e,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o},t))})]}),E9={toolbarGroup:`_toolbarGroup_1hpun_3`,toolbarLabel:`_toolbarLabel_1hpun_9`,suggestedHeader:`_suggestedHeader_1hpun_15`,suggestedTitle:`_suggestedTitle_1hpun_22`,freeBadge:`_freeBadge_1hpun_29`,slotTime:`_slotTime_1hpun_34`,noSlots:`_noSlots_1hpun_40`,emptyIcon:`_emptyIcon_1hpun_46`},YUt=({suggestedOptions:e,slot:t,activeAttendeesCount:n,setSlot:r,tzId:i})=>(0,D.jsxs)(`div`,{className:S9.suggestedRow,children:[e.map(e=>{let a=t===e.label,o=n-e.conflicts.length,s=v9(e.startUtc,e.endUtc,i);return(0,D.jsxs)(`button`,{type:`button`,className:E(S9.suggestedCard,a&&S9.suggestedCardActive,e.conflicts.length===0&&S9.suggestedCardFree),onClick:()=>{r(e.label)},children:[(0,D.jsx)(`div`,{className:E9.freeBadge,children:e.conflicts.length===0?`ALL FREE`:`${String(o)}/${String(n)} FREE`}),(0,D.jsx)(`div`,{className:E9.slotTime,children:s})]},e.label)}),e.length===0&&(0,D.jsx)(`div`,{className:E9.noSlots,children:`No suggested slots found.`})]}),XUt=({d:e})=>(0,D.jsxs)(`div`,{className:S9.gridToolbar,children:[(0,D.jsxs)(`div`,{className:E9.toolbarGroup,children:[(0,D.jsx)(Lt,{size:14,color:`var(--color-primary)`}),(0,D.jsx)(`input`,{type:`date`,className:S9.datePickerInput,value:e.selected?e.selected.toISOString().substring(0,10):``,onChange:t=>{t.target.value&&e.pickDate(new Date(t.target.value))}})]}),(0,D.jsxs)(`div`,{className:E9.toolbarGroup,children:[(0,D.jsx)(`span`,{className:E9.toolbarLabel,children:`DURATION`}),(0,D.jsx)(`div`,{className:S9.durationSelector,children:[30,60,90,120].map(t=>(0,D.jsx)(`button`,{type:`button`,className:E(S9.durBtn,e.groupDuration===t&&S9.durBtnActive),onClick:()=>{e.setGroupDuration(t)},children:t<60?`${String(t)}m`:`${String(t/60)}h`},t))})]}),(0,D.jsxs)(`div`,{className:S9.legend,children:[(0,D.jsxs)(`span`,{className:S9.legendItem,children:[(0,D.jsx)(`span`,{className:S9.dotAvail}),` Free`]}),(0,D.jsxs)(`span`,{className:S9.legendItem,children:[(0,D.jsx)(`span`,{className:S9.dotBusy}),` Busy`]}),(0,D.jsxs)(`span`,{className:S9.legendItem,children:[(0,D.jsx)(`span`,{className:S9.dotOoh}),` Out of hours`]})]})]}),ZUt=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>e.selected===null?(0,D.jsxs)(`div`,{className:S9.gridEmpty,children:[(0,D.jsx)(Jt,{size:28,className:E9.emptyIcon}),(0,D.jsx)(`span`,{children:`Select a date above to display the availability grid.`})]}):(0,D.jsx)(UUt,{d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o}),QUt=e=>{let t=qm().data??[],n=nh().anchor,r=e.selected===null?null:aUt(e.selected,e.today),i=LRt(e.selectedContactIds,r);return{allBlocks:t,anchorTzId:n,isoDate:r,serverBusy:(0,y.useMemo)(()=>{let e=new Map;for(let t of i.data??[])e.set(t.userId,{busy:t.busy,workingHours:t.workingHours});return e},[i.data]),activeAttendees:e.viewer.id===``?[...e.selectedContactIds]:[e.viewer.id,...e.selectedContactIds],curSlot:e.slot}},$Ut=({d:e})=>{let{allBlocks:t,anchorTzId:n,isoDate:r,serverBusy:i,activeAttendees:a,curSlot:o}=QUt(e),[s,c]=(0,y.useState)(null);return(0,D.jsxs)(`div`,{className:S9.wizardRow,children:[(0,D.jsx)(JUt,{d:e,activeAttendees:a,curSlot:o,allBlocks:t,serverBusy:i,anchorTzId:n,isoDate:r??``}),(0,D.jsxs)(`div`,{className:E(S9.wizardPanelRight,S9.timePanelRight),children:[(0,D.jsx)(XUt,{d:e}),(0,D.jsxs)(`div`,{className:S9.suggestedStrip,children:[(0,D.jsxs)(`div`,{className:E9.suggestedHeader,children:[(0,D.jsx)(Ln,{size:12,color:`var(--color-secondary)`}),(0,D.jsx)(`span`,{className:E9.suggestedTitle,children:`SUGGESTED TIMESLOTS`})]}),(0,D.jsx)(YUt,{suggestedOptions:e.availableSlots.slice(0,4),slot:e.slot,activeAttendeesCount:a.length,setSlot:e.setSlot,tzId:e.tzId})]}),(0,D.jsx)(ZUt,{d:e,activeAttendees:a,allBlocks:t,serverBusy:i,isoDate:r??``,hoverCell:s,setHoverCell:c})]})]})},eWt=()=>{let[e,t]=(0,y.useState)(`participants`),[n,r]=(0,y.useState)(30),[i,a]=(0,y.useState)(`Online Meeting`),[o,s]=(0,y.useState)(``);return{groupStep:e,groupDuration:n,groupLocation:i,groupDescription:o,setGroupStep:t,setGroupDuration:r,setGroupLocation:a,setGroupDescription:s,resetGroupWizardState:()=>{t(`participants`),r(30),a(`Online Meeting`),s(``)}}},tWt=(e,t,n,r)=>{let i=e.s.meetingType===`group`;return{contactId:i?e.s.selectedContactIds[0]??``:e.s.contactId??``,dateLabel:yUt(t),slot:n,title:i?e.s.groupTitle||`Group Meeting`:void 0,isGroup:i,attendeeIds:i?e.s.selectedContactIds:void 0,location:i?e.gw.groupLocation:void 0,description:i?e.gw.groupDescription:void 0,isoDate:aUt(t,e.today),startUtc:r?.startUtc,endUtc:r?.endUtc}},nWt=e=>e.s.pickedSlot??(e.s.slot===null?null:e.availableSlots.find(t=>t.label===e.s.slot)??null),rWt=e=>()=>{if(e.s.slot===null||e.s.selected===null)return;let t=nWt(e);e.book.mutate(tWt(e,e.s.selected,e.s.slot,t),{onSuccess:()=>{e.s.setBookedSlot(t),e.s.setSlot(null),e.s.setPickedSlot(null),e.s.setConfirmOpen(!1)},onError:e=>{Nf.error(e.message)}})},iWt=e=>({setMeetingType:t=>{e.s.setMeetingType(t),t===`group`&&e.resetGroupWizard()},setContactId:t=>{e.s.setContactId(t),e.s.setSlot(null),e.s.setPickedSlot(null)},setSelectedContactIds:t=>{e.s.setSelectedContactIds(t),e.s.setSlot(null),e.s.setPickedSlot(null)},setGroupTitle:e.s.setGroupTitle,setSearch:e.s.setSearch,setTzId:e.setTzId,setSlot:t=>{e.s.setSlot(t),e.s.setPickedSlot(null)},pickSlot:t=>{e.s.setSlot(t.label),e.s.setPickedSlot(t)},setConfirmOpen:e.s.setConfirmOpen,shift:t=>{e.s.setView(e=>({year:e.year+Math.floor((e.month+t)/12),month:((e.month+t)%12+12)%12}))},pickDate:t=>{e.s.setSelected(t),e.s.setSlot(null),e.s.setPickedSlot(null)},setGroupStep:e.gw.setGroupStep,setGroupDuration:e.gw.setGroupDuration,setGroupLocation:e.gw.setGroupLocation,setGroupDescription:e.gw.setGroupDescription,resetGroupWizard:e.resetGroupWizard,reset:e.reset,confirm:rWt(e)}),aWt=e=>{let t=iWt(e);return{today:e.today,viewer:e.viewer,meetingType:e.s.meetingType,contactId:e.s.contactId,selectedContactIds:e.s.selectedContactIds,groupTitle:e.s.groupTitle,search:e.s.search,tzId:e.tzId,view:e.s.view,selected:e.s.selected,slot:e.s.slot,selectedSlot:nWt(e),bookedSlot:e.s.bookedSlot,confirmOpen:e.s.confirmOpen,list:e.list,searchResults:e.searchResults,contact:e.contact,dateLabel:e.s.selected===null?``:yUt(e.s.selected),zone:$Lt(e.tzId),canBook:(e.s.meetingType===`1:1`?e.s.contactId!==null:e.s.selectedContactIds.length>0)&&e.s.selected!==null&&e.s.slot!==null&&!e.book.isPending,pending:e.book.isPending,success:e.book.isSuccess,availableSlots:e.availableSlots,hostDayWindow:e.hostDayWindow,groupStep:e.gw.groupStep,groupDuration:e.gw.groupDuration,groupLocation:e.gw.groupLocation,groupDescription:e.gw.groupDescription,...t}},oWt=(e,t)=>{let[n,r]=(0,y.useState)(e);return(0,y.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>{clearTimeout(n)}},[e,t]),n},sWt=e=>`${String(e.getFullYear())}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,cWt=e=>{let t=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],n={};for(let r of t)n[r]={active:e[r].active,slots:e[r].active?[{id:r+`-default`,from:e[r].from,to:e[r].to}]:[]};return n},lWt=(e,t)=>e.selected===null?null:e.meetingType===`group`?e.selectedContactIds.length===0?null:{isoDate:sWt(e.selected),timeZone:t,isGroup:!0,contactId:void 0,attendeeIds:[...e.selectedContactIds].sort()}:e.contactId===null?null:{isoDate:sWt(e.selected),timeZone:t,isGroup:!1,contactId:e.contactId,attendeeIds:void 0},uWt=e=>{let[t,n]=(0,y.useState)(`1:1`),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)([]),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)({year:e.getFullYear(),month:e.getMonth()}),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1);return{meetingType:t,setMeetingType:n,contactId:r,setContactId:i,selectedContactIds:a,setSelectedContactIds:o,groupTitle:s,setGroupTitle:c,search:l,setSearch:u,tzId:d,setTzIdState:f,view:p,setView:m,selected:h,setSelected:g,slot:_,setSlot:v,pickedSlot:b,setPickedSlot:x,bookedSlot:S,setBookedSlot:C,confirmOpen:w,setConfirmOpen:T}},dWt=()=>{let e=RRt(),t=tUt(),n=new Date,r=eWt(),i=uWt(n),a=oWt(i.search,250),o=PRt(),s=PRt(a),c=Ym(),l=fve(),u=Ah(),d=o.data??[],f=d,p=s.data??[],m=d.find(e=>e.id===i.contactId)??null,h=c.data??{meetingDuration:r.groupDuration,bufferMinutes:5,workStart:`09:00`,workEnd:`17:00`,timezone:`Europe/London`,branchId:`uk`,availabilityTimezone:`Europe/London`},g=th.from({pick:i.tzId,personal:h.timezone,anchor:h.availabilityTimezone}).display,_=u.data?cWt(Ibe(u.data,h.branchId)):null,v=Ome(l.data??null,_),y=i.selected===null?null:kme(v,i.selected);return aWt({today:n,viewer:t,s:i,gw:r,book:e,list:f,searchResults:p,contact:m,availableSlots:IRt(lWt(i,g)).data??[],hostDayWindow:y,tzId:g,setTzId:e=>{i.setTzIdState(e)},resetGroupWizard:()=>{r.resetGroupWizardState(),i.setSelectedContactIds([]),i.setGroupTitle(``),i.setSlot(null),i.setPickedSlot(null),i.setSelected(null)},reset:()=>{e.reset(),i.setContactId(null),i.setSelectedContactIds([]),i.setGroupTitle(``),i.setSlot(null),i.setPickedSlot(null),i.setBookedSlot(null),i.setSelected(null),r.resetGroupWizardState()}})},fWt={wizardContentClip:`_wizardContentClip_14i7n_3`,wizardStep:`_wizardStep_14i7n_8`},pWt=({currentStep:e})=>{let t=[{id:`participants`,label:`Participants`},{id:`time`,label:`Find a time`},{id:`details`,label:`Details`},{id:`confirm`,label:`Confirm`}],n=(e=>t.findIndex(t=>t.id===e))(e);return(0,D.jsx)(`div`,{className:S9.stepper,children:t.map((e,t)=>{let r=t<n,i=t===n;return(0,D.jsxs)(y.Fragment,{children:[t>0&&(0,D.jsx)(`div`,{className:E(S9.stepLine,t<=n&&S9.stepLineActive)}),(0,D.jsxs)(`div`,{className:S9.stepItem,children:[(0,D.jsx)(`div`,{className:E(S9.stepCircle,i&&S9.stepCircleActive,r&&S9.stepCircleDone),children:r?(0,D.jsx)(Bt,{size:12,strokeWidth:3}):t+1}),(0,D.jsx)(`span`,{className:E(S9.stepText,i&&S9.stepTextActive),children:e.label})]})]},e.id)})})},mWt=e=>e===`participants`?`time`:e===`time`?`details`:e===`details`?`confirm`:null,hWt=e=>e===`time`?`participants`:e===`details`?`time`:e===`confirm`?`details`:null,gWt=({step:e,selectedContactIds:t,slot:n,title:r,location:i,pending:a})=>e===`participants`?t.length===0:e===`time`?n===null:e===`details`?r.trim()===``||i.trim()===``:a,_Wt=e=>e===`participants`?`Next: Find a time`:e===`time`?`Next: Details`:e===`details`?`Next: Confirm`:`Confirm Booking`,vWt=({d:e})=>{let t=()=>{let t=hWt(e.groupStep);t?e.setGroupStep(t):e.setMeetingType(`1:1`)},n=()=>{let t=mWt(e.groupStep);t?e.setGroupStep(t):e.confirm()},r=gWt({step:e.groupStep,selectedContactIds:e.selectedContactIds,slot:e.slot,title:e.groupTitle,location:e.groupLocation,pending:e.pending}),i=_Wt(e.groupStep);return(0,D.jsxs)(`div`,{className:S9.wizardContainer,children:[(0,D.jsx)(pWt,{currentStep:e.groupStep}),(0,D.jsx)(`div`,{className:E(S9.wizardContent,fWt.wizardContentClip),children:(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsxs)(Zu.div,{initial:{opacity:0,x:15},animate:{opacity:1,x:0},exit:{opacity:0,x:-15},transition:{duration:.18,ease:`easeInOut`},className:fWt.wizardStep,children:[e.groupStep===`participants`&&(0,D.jsx)(IUt,{d:e}),e.groupStep===`time`&&(0,D.jsx)($Ut,{d:e}),e.groupStep===`details`&&(0,D.jsx)(MUt,{d:e}),e.groupStep===`confirm`&&(0,D.jsx)(jUt,{d:e})]},e.groupStep)})}),(0,D.jsxs)(`div`,{className:S9.wizardFooter,children:[(0,D.jsxs)(`button`,{type:`button`,className:S9.wizardBackBtn,onClick:t,disabled:e.pending,children:[(0,D.jsx)(Ht,{size:16}),` Back`]}),e.groupStep===`time`&&e.slot&&(0,D.jsxs)(`div`,{className:S9.selectedStatusAlert,children:[(0,D.jsx)(Gt,{size:14,color:`var(--color-primary)`}),(0,D.jsxs)(`span`,{children:[`Selected: `,e.slot]})]}),(0,D.jsxs)(`button`,{type:`button`,className:S9.wizardNextBtn,disabled:r||e.pending,onClick:n,children:[e.pending?`Booking...`:i,!e.pending&&(0,D.jsx)(Ut,{size:16})]})]})]})},D9={slotsDate:`_slotsDate_1rdif_3`,slotsEmpty:`_slotsEmpty_1rdif_10`,slotsEmptyIcon:`_slotsEmptyIcon_1rdif_24`,slotsEmptyTitle:`_slotsEmptyTitle_1rdif_36`,slotList:`_slotList_1rdif_42`,slot:`_slot_1rdif_3`,slotActive:`_slotActive_1rdif_86`,slotWithConflicts:`_slotWithConflicts_1rdif_102`,slotMain:`_slotMain_1rdif_113`,slotConflictList:`_slotConflictList_1rdif_120`,conflictLabel:`_conflictLabel_1rdif_131`,conflictAvatar:`_conflictAvatar_1rdif_136`,noSlots:`_noSlots_1rdif_162`},yWt={hidden:{},visible:{transition:{staggerChildren:.03}}},bWt=`You're not available at this time — you can still book.`,xWt=({option:e,isSelected:t,onSlot:n,contactsList:r,viewer:i,tzId:a})=>{let o=v9(e.startUtc,e.endUtc,a),s=e.conflicts.length>0,c=e.conflicts.includes(i.id);return(0,D.jsxs)(Zu.button,{type:`button`,variants:ad,whileTap:{scale:.97},className:E(D9.slot,t&&D9.slotActive,s&&!t&&D9.slotWithConflicts),title:c?bWt:void 0,onClick:()=>{n(e.label)},children:[(0,D.jsxs)(`div`,{className:D9.slotMain,children:[(0,D.jsx)(`span`,{children:o}),t&&(0,D.jsx)(Bt,{size:14,strokeWidth:3})]}),s&&(0,D.jsxs)(`div`,{className:D9.slotConflictList,children:[(0,D.jsx)(`span`,{className:D9.conflictLabel,children:c?`You're busy —`:`Conflict:`}),e.conflicts.map(e=>{let t=e===i.id,n=r.find(t=>t.id===e);return(0,D.jsx)(`span`,{className:D9.conflictAvatar,title:t?bWt:`${n?.name??``} is busy / unavailable`,children:t?i.initials||`YOU`:n?.initials??``},e)})]})]})},SWt=({dateLabel:e,slot:t,offset:n,onSlot:r,slots:i,contactsList:a,viewer:o,tzId:s})=>(0,D.jsxs)(`div`,{className:b9.col,children:[(0,D.jsxs)(`div`,{className:b9.colTitle,children:[(0,D.jsx)(`span`,{className:b9.stepDot,children:`3`}),` Available times`]}),e===``?(0,D.jsxs)(`div`,{className:D9.slotsEmpty,children:[(0,D.jsx)(`span`,{className:D9.slotsEmptyIcon,children:(0,D.jsx)(Jt,{size:28})}),(0,D.jsx)(`span`,{className:D9.slotsEmptyTitle,children:`Pick a date`}),(0,D.jsx)(`span`,{children:`Choose a day to see open times.`})]}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:D9.slotsDate,children:[e,` · times in `,n]}),(0,D.jsxs)(Zu.div,{className:D9.slotList,variants:yWt,initial:`hidden`,animate:`visible`,children:[i.map(e=>(0,D.jsx)(xWt,{option:e,isSelected:t===e.label,onSlot:r,contactsList:a,viewer:o,tzId:s},e.label)),i.length===0&&(0,D.jsx)(`div`,{className:D9.noSlots,children:`No available timeslots found for this day.`})]})]})]}),O9={tzWrap:`_tzWrap_n6w9w_3`,tzBtn:`_tzBtn_n6w9w_8`,tzBtnOffset:`_tzBtnOffset_n6w9w_30`,tzChevron:`_tzChevron_n6w9w_36`,tzBackdrop:`_tzBackdrop_n6w9w_40`,tzPop:`_tzPop_n6w9w_49`,tzSearch:`_tzSearch_n6w9w_62`,tzSearchInput:`_tzSearchInput_n6w9w_74`,tzList:`_tzList_n6w9w_84`,tzRow:`_tzRow_n6w9w_119`,tzRowActive:`_tzRowActive_n6w9w_138`,tzCity:`_tzCity_n6w9w_142`,tzRowOffset:`_tzRowOffset_n6w9w_151`,tzCheck:`_tzCheck_n6w9w_157`,tzEmpty:`_tzEmpty_n6w9w_161`},CWt=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(Zu.div,{className:O9.tzPop,variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:O9.tzSearch,children:[(0,D.jsx)(Mn,{size:13}),(0,D.jsx)(`input`,{className:O9.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:O9.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:E(O9.tzRow,e.id===n&&O9.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:O9.tzCity,children:e.city}),(0,D.jsx)(`span`,{className:O9.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Bt,{size:13,className:O9.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:O9.tzEmpty,children:`No timezones match.`})]})]}),wWt=({value:e,onChange:t})=>{let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(``),o=$Lt(e),s=i.trim().toLowerCase(),c=(t9.some(e=>e.id===o.id)?t9:[o,...t9]).filter(e=>s===``||e.city.toLowerCase().includes(s)||e.offset.toLowerCase().includes(s)||e.id.toLowerCase().includes(s));return(0,D.jsxs)(`div`,{className:O9.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:O9.tzBtn,"aria-expanded":n,"aria-label":`Change timezone`,onClick:()=>{r(e=>!e)},children:[(0,D.jsx)(rn,{size:13}),(0,D.jsx)(`span`,{className:O9.tzBtnCity,children:o.city}),(0,D.jsx)(`span`,{className:O9.tzBtnOffset,children:o.offset}),(0,D.jsx)(Vt,{size:13,className:O9.tzChevron})]}),(0,D.jsx)(Uu,{children:n&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:O9.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{r(!1)}}),(0,D.jsx)(CWt,{search:i,list:c,value:e,onSearch:a,onPick:e=>{t(e),a(``),r(!1)}})]})})]})},k9={badgeWrap:`_badgeWrap_swq6w_3`,badgeCircle:`_badgeCircle_swq6w_10`,guestRow:`_guestRow_swq6w_21`,eventVal:`_eventVal_swq6w_28`,iconRow:`_iconRow_swq6w_33`,iconRowMuted:`_iconRowMuted_swq6w_39`,iconRowTop:`_iconRowTop_swq6w_47`,agendaVal:`_agendaVal_swq6w_53`,iconTop:`_iconTop_swq6w_58`},TWt=()=>(0,D.jsxs)(`div`,{className:S9.successHeader,children:[(0,D.jsx)(`div`,{className:k9.badgeWrap,children:(0,D.jsx)(Zu.div,{initial:{scale:0},animate:{scale:1},transition:{type:`spring`,stiffness:260,damping:20},className:k9.badgeCircle,children:(0,D.jsx)(Zu.div,{initial:{scale:0,rotate:-45},animate:{scale:1,rotate:0},transition:{delay:.2,type:`spring`,stiffness:200,damping:15},children:(0,D.jsx)(Bt,{size:32,color:`var(--color-success)`,strokeWidth:3})})})}),(0,D.jsx)(`h2`,{className:S9.successTitle,children:`Booking Confirmed!`}),(0,D.jsx)(`p`,{className:S9.successSub,children:`A calendar invite has been sent to all participants.`})]}),EWt=({d:e})=>{let t=e.meetingType===`group`;return(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:t?`Invited Guests`:`Attendee`}),(0,D.jsx)(`div`,{className:E(S9.successVal,k9.guestRow),children:t?e.selectedContactIds.map(t=>{let n=e.list.find(e=>e.id===t);return n===void 0?null:(0,D.jsxs)(`span`,{className:S9.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:S9.avatarTiny,style:{backgroundColor:n.color},children:n.initials}),n.name]},n.id)}):e.contact?(0,D.jsxs)(`span`,{className:S9.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:S9.avatarTiny,style:{backgroundColor:e.contact.color},children:e.contact.initials}),e.contact.name]}):`None`})]})},DWt=({d:e})=>{let t=e.meetingType===`group`,n=t?e.groupTitle||`Group Meeting`:`1:1 with ${e.contact?.name??`Attendee`}`,r=t?e.groupLocation:`Online — link generated automatically`,i=t?e.groupDescription:``,a=v9(e.bookedSlot?.startUtc,e.bookedSlot?.endUtc,e.tzId);return(0,D.jsxs)(Zu.div,{className:S9.successCard,initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{delay:.3,duration:.25,ease:`easeOut`},children:[(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Event`}),(0,D.jsx)(`span`,{className:E(S9.successVal,k9.eventVal),children:n})]}),(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:S9.successVal,children:[(0,D.jsxs)(`span`,{className:k9.iconRow,children:[(0,D.jsx)(Lt,{size:14,color:`var(--color-primary)`}),e.dateLabel]}),(0,D.jsxs)(`span`,{className:k9.iconRowMuted,children:[(0,D.jsx)(Jt,{size:14}),a,` (`,e.zone.offset,`)`]})]})]}),(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Location`}),(0,D.jsx)(`span`,{className:S9.successVal,children:(0,D.jsxs)(`span`,{className:k9.iconRow,children:[(0,D.jsx)(fn,{size:14,color:`var(--color-primary)`}),r]})})]}),(0,D.jsx)(EWt,{d:e}),t&&i.trim()!==``&&(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:E(S9.successVal,k9.agendaVal),children:(0,D.jsxs)(`span`,{className:k9.iconRowTop,children:[(0,D.jsx)(Bn,{size:14,className:k9.iconTop}),i]})})]})]})},OWt=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:S9.successActions,children:[(0,D.jsx)(`button`,{type:`button`,className:E(S9.successBtn,S9.successBtnPrimary),onClick:()=>{t!==void 0&&t()},children:`View Scheduled Meetings`}),(0,D.jsx)(`button`,{type:`button`,className:E(S9.successBtn,S9.successBtnSecondary),onClick:()=>{e.reset()},children:`Book Another Meeting`})]}),kWt=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:S9.successContainer,children:[(0,D.jsx)(TWt,{}),(0,D.jsx)(DWt,{d:e}),(0,D.jsx)(OWt,{d:e,onViewScheduled:t})]}),AWt=({d:e})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:y9.bookGrid,children:[(0,D.jsx)(AUt,{contacts:e.searchResults,selectedId:e.contactId,search:e.search,onSearch:t=>{e.setSearch(t)},onSelect:t=>{e.setContactId(t)},mode:e.meetingType,selectedIds:e.selectedContactIds,onSelectGroup:t=>{e.setSelectedContactIds(t)},groupTitle:e.groupTitle,onGroupTitleChange:t=>{e.setGroupTitle(t)}}),(0,D.jsx)(CUt,{view:e.view,today:e.today,selected:e.selected,onShift:t=>{e.shift(t)},onPick:t=>{e.pickDate(t)}}),(0,D.jsx)(SWt,{dateLabel:e.dateLabel,slot:e.slot,offset:e.zone.offset,onSlot:t=>{e.setSlot(t)},slots:e.availableSlots,contactsList:e.list,viewer:e.viewer,tzId:e.tzId})]}),(0,D.jsx)(gUt,{contact:e.contact,dateLabel:e.dateLabel,slot:e.slot,canBook:e.canBook,success:e.success,meetingType:e.meetingType,selectedContactIds:e.selectedContactIds,groupTitle:e.groupTitle,onBook:()=>{e.setConfirmOpen(!0)},selectedSlot:e.selectedSlot,tzId:e.tzId}),(0,D.jsx)(EUt,{open:e.confirmOpen,contact:e.contact,dateLabel:e.dateLabel,slot:e.slot,zone:e.zone,pending:e.pending,onConfirm:()=>{e.confirm()},onClose:()=>{e.setConfirmOpen(!1)},selectedSlot:e.selectedSlot,tzId:e.tzId})]}),jWt=({onViewScheduled:e})=>{let t=dWt();return t.success?(0,D.jsx)(kWt,{d:t,onViewScheduled:e}):(0,D.jsxs)(`div`,{className:y9.bookCard,children:[(0,D.jsxs)(`div`,{className:y9.bookTopBar,children:[(0,D.jsxs)(`div`,{className:y9.typeSelector,children:[(0,D.jsx)(`button`,{type:`button`,className:E(y9.typeBtn,t.meetingType===`1:1`&&y9.typeBtnActive),onClick:()=>{t.setMeetingType(`1:1`)},children:`1:1 Meeting`}),(0,D.jsx)(`button`,{type:`button`,className:E(y9.typeBtn,t.meetingType===`group`&&y9.typeBtnActive),onClick:()=>{t.setMeetingType(`group`)},children:`Group Meeting (1:Many)`})]}),(0,D.jsx)(wWt,{value:t.tzId,onChange:e=>{t.setTzId(e)}})]}),t.meetingType===`group`?(0,D.jsx)(vWt,{d:t}):(0,D.jsx)(AWt,{d:t})]})},A9={schedWrap:`_schedWrap_1p5xn_4`,bucketTabs:`_bucketTabs_1p5xn_11`,bucketTab:`_bucketTab_1p5xn_11`,bucketTabActive:`_bucketTabActive_1p5xn_38`,bucketBg:`_bucketBg_1p5xn_45`,bucketLabel:`_bucketLabel_1p5xn_53`,bucketCount:`_bucketCount_1p5xn_58`,meetingList:`_meetingList_1p5xn_76`,meeting:`_meeting_1p5xn_76`,datePlate:`_datePlate_1p5xn_101`,datePlatePassed:`_datePlatePassed_1p5xn_114`,datePlateCanceled:`_datePlateCanceled_1p5xn_118`,datePlateMonth:`_datePlateMonth_1p5xn_122`,datePlateDay:`_datePlateDay_1p5xn_129`,meetingAvatar:`_meetingAvatar_1p5xn_141`,meetingBody:`_meetingBody_1p5xn_155`,meetingTitle:`_meetingTitle_1p5xn_163`,meetingMeta:`_meetingMeta_1p5xn_169`,meetingMetaItem:`_meetingMetaItem_1p5xn_178`,meetingActions:`_meetingActions_1p5xn_184`,acceptBtn:`_acceptBtn_1p5xn_191`,joinBtn:`_joinBtn_1p5xn_192`,joinBtnDisabled:`_joinBtnDisabled_1p5xn_209`,declineBtn:`_declineBtn_1p5xn_217`,cancelBtn:`_cancelBtn_1p5xn_228`,cancelBtnDisabled:`_cancelBtnDisabled_1p5xn_239`,statusPill:`_statusPill_1p5xn_247`,statusAccepted:`_statusAccepted_1p5xn_257`,statusPending:`_statusPending_1p5xn_262`,statusRejected:`_statusRejected_1p5xn_267`,statusCanceled:`_statusCanceled_1p5xn_268`,statusCompleted:`_statusCompleted_1p5xn_273`,empty:`_empty_1p5xn_278`,emptyIconWrap:`_emptyIconWrap_1p5xn_288`,emptyTitle:`_emptyTitle_1p5xn_300`,emptyText:`_emptyText_1p5xn_307`},MWt=e=>e.isGroup?e.title===``||/^group (meeting|event)$/i.test(e.title.trim())?`Group Meeting`:`${e.title} · Group Meeting`:/^1:1\b/i.test(e.title.trim())||e.title===``?`1:1 with ${e.withName}`:e.withName===``?e.title:`${e.title} · ${e.withName}`,NWt=e=>e===`accepted`?`Accepted`:e===`rejected`?`Declined`:`Pending`,PWt=1800*1e3,FWt=e=>{let t=Math.max(1,Math.ceil(e/6e4)),n=Math.floor(t/1440);if(n>=1){let e=Math.floor((t-n*60*24)/60);return e>0?`in ${String(n)}d ${String(e)}h`:`in ${String(n)}d`}let r=Math.floor(t/60),i=t%60;return r>=1?i>0?`in ${String(r)}h ${String(i)}m`:`in ${String(r)}h`:`in ${String(i)}m`},IWt=({onRespond:e})=>(0,D.jsxs)(`div`,{className:A9.meetingActions,children:[(0,D.jsxs)(`button`,{type:`button`,className:A9.acceptBtn,onClick:()=>{e(!0)},children:[(0,D.jsx)(Bt,{size:12,strokeWidth:3}),` Accept`]}),(0,D.jsx)(`button`,{type:`button`,className:A9.declineBtn,onClick:()=>{e(!1)},children:`Decline`})]}),LWt=e=>e===`accepted`?A9.statusAccepted??!1:e===`rejected`?A9.statusRejected??!1:A9.statusPending??!1,RWt=({meeting:e,onCancel:t,onJoin:n,canJoin:r,joinHint:i})=>{let a=hzt(e=>e.activeMeeting),o=hzt(e=>e.isJoined)&&a!==null&&a.meetingId===e.id,s=e.myStatus===`accepted`,c=!r||o,l=o?`You are currently in this meeting`:i,u=o?`Leave the active call before canceling`:`Cancel meeting`;return(0,D.jsxs)(`div`,{className:A9.meetingActions,children:[(0,D.jsx)(`span`,{className:E(A9.statusPill,LWt(e.myStatus)),children:NWt(e.myStatus)}),s&&(0,D.jsx)(Of,{label:l,side:`top`,children:(0,D.jsxs)(`button`,{type:`button`,className:E(A9.joinBtn,c&&A9.joinBtnDisabled),disabled:c,"aria-label":l,onClick:n,children:[(0,D.jsx)(Gn,{size:13}),` `,o?`Joined`:`Join`]})}),e.isOrganizer&&(0,D.jsx)(Of,{label:u,side:`top`,children:(0,D.jsx)(`button`,{type:`button`,className:E(A9.cancelBtn,o&&A9.cancelBtnDisabled),disabled:o,"aria-label":u,onClick:t,children:`Cancel`})})]})},zWt=e=>{let{meeting:t,onRespond:n}=e;return t.awaitingResponse?(0,D.jsx)(IWt,{onRespond:n}):t.bucket===`canceled`?(0,D.jsx)(`span`,{className:E(A9.statusPill,A9.statusCanceled),children:`Canceled`}):t.bucket===`passed`?(0,D.jsx)(`span`,{className:E(A9.statusPill,A9.statusCompleted),children:`Completed`}):(0,D.jsx)(RWt,{...e})},BWt=(e,t)=>({month:e.toLocaleDateString(`en-US`,{month:`short`,timeZone:t}).toUpperCase(),day:e.toLocaleDateString(`en-US`,{day:`numeric`,timeZone:t})}),VWt=(e,t)=>{let[n,r]=(0,y.useState)(()=>Date.now());(0,y.useEffect)(()=>{let e=setInterval(()=>{r(Date.now())},3e4);return()=>{clearInterval(e)}},[]);let i=n>=e-PWt&&n<=t;return{canJoin:i,joinHint:i?`Join the meeting`:n>t?`This meeting has ended`:`Join opens 30 min before — starts ${FWt(e-n)}`}},HWt=e=>{let{meeting:t}=e,n=nh(),r=new Date(t.startUtc),i=new Date(t.endUtc),a=n.formatTime(t.startUtc),o=n.formatTime(t.endUtc),s=BWt(r,n.display),c=` (${$Lt(n.display).offset})`,{canJoin:l,joinHint:u}=VWt(r.getTime(),i.getTime()),d=(0,y.useRef)(null),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:p}=Wse({target:d,container:f,offset:[`start end`,`end start`]}),m=id(p,[0,1],[-8,8]);return(0,D.jsxs)(Zu.article,{ref:d,style:{y:m},className:A9.meeting,variants:ad,whileHover:{y:-2},transition:{type:`spring`,stiffness:400,damping:30},children:[(0,D.jsxs)(`div`,{className:E(A9.datePlate,t.bucket===`passed`&&A9.datePlatePassed,t.bucket===`canceled`&&A9.datePlateCanceled),children:[(0,D.jsx)(`span`,{className:A9.datePlateMonth,children:s.month}),(0,D.jsx)(`span`,{className:A9.datePlateDay,children:s.day})]}),(0,D.jsx)(`span`,{className:A9.meetingAvatar,style:Xn({"--avatar-color":t.withColor}),children:t.withInitials}),(0,D.jsxs)(`div`,{className:A9.meetingBody,children:[(0,D.jsx)(`span`,{className:A9.meetingTitle,children:MWt(t)}),(0,D.jsxs)(`div`,{className:A9.meetingMeta,children:[(0,D.jsxs)(`span`,{className:A9.meetingMetaItem,children:[(0,D.jsx)(Jt,{size:11}),` `,a,`–`,o,c]}),(0,D.jsxs)(`span`,{className:A9.meetingMetaItem,children:[(0,D.jsx)(fn,{size:11}),` `,t.location]})]})]}),(0,D.jsx)(zWt,{...e,canJoin:l,joinHint:u})]})},j9={list:`_list_1vv5w_1`,meeting:`_meeting_1vv5w_7`,datePlate:`_datePlate_1vv5w_17`,pulse:`_pulse_1vv5w_1`,avatar:`_avatar_1vv5w_26`,body:`_body_1vv5w_35`,title:`_title_1vv5w_43`,meta:`_meta_1vv5w_51`,actions:`_actions_1vv5w_59`,btn:`_btn_1vv5w_66`},UWt=()=>(0,D.jsx)(`div`,{className:j9.list,children:Array.from({length:3}).map((e,t)=>(0,D.jsxs)(`div`,{className:j9.meeting,children:[(0,D.jsx)(`div`,{className:j9.datePlate}),(0,D.jsx)(`div`,{className:j9.avatar}),(0,D.jsxs)(`div`,{className:j9.body,children:[(0,D.jsx)(`div`,{className:j9.title}),(0,D.jsx)(`div`,{className:j9.meta})]}),(0,D.jsxs)(`div`,{className:j9.actions,children:[(0,D.jsx)(`div`,{className:j9.btn}),(0,D.jsx)(`div`,{className:j9.btn})]})]},`skel-${String(t)}`))}),WWt=[{id:`upcoming`,label:`Upcoming`},{id:`passed`,label:`Past`},{id:`canceled`,label:`Canceled`}],GWt={type:`spring`,stiffness:420,damping:34},KWt={hidden:{},visible:{transition:{staggerChildren:.05}}},qWt=({bucket:e,counts:t,onSelect:n})=>(0,D.jsx)(`div`,{className:A9.bucketTabs,children:WWt.map(r=>{let i=e===r.id;return(0,D.jsxs)(`button`,{type:`button`,className:E(A9.bucketTab,i&&A9.bucketTabActive),onClick:()=>{n(r.id)},children:[i&&(0,D.jsx)(Zu.span,{layoutId:`bucketBg`,className:A9.bucketBg,transition:GWt}),(0,D.jsx)(`span`,{className:A9.bucketLabel,children:r.label}),(0,D.jsx)(`span`,{className:A9.bucketCount,children:t[r.id]})]},r.id)})}),JWt=1e4,YWt=()=>{let e=qe(),t=FRt(JWt),n=zRt(),r=BRt(),[i,a]=(0,y.useState)(`upcoming`),o=t.data??[],s=t.data===void 0,c=[...o].filter(e=>e.bucket===i).sort((e,t)=>new Date(e.startUtc).getTime()-new Date(t.startUtc).getTime()),l={upcoming:o.filter(e=>e.bucket===`upcoming`).length,passed:o.filter(e=>e.bucket===`passed`).length,canceled:o.filter(e=>e.bucket===`canceled`).length};return(0,D.jsxs)(`div`,{className:A9.schedWrap,children:[(0,D.jsx)(qWt,{bucket:i,counts:l,onSelect:a}),t.isPending?(0,D.jsx)(UWt,{}):null,t.isError&&s?(0,D.jsx)(sr,{tone:`error`,title:`Could not load meetings`,children:t.error.message}):null,t.isError&&!s?(0,D.jsx)(sr,{tone:`info`,title:`Showing the last known meetings`,children:`Could not refresh just now. This will update on its own.`}):null,!s&&c.length===0?(0,D.jsxs)(`div`,{className:A9.empty,children:[(0,D.jsx)(`div`,{className:A9.emptyIconWrap,children:(0,D.jsx)(Rt,{size:32})}),(0,D.jsxs)(`span`,{className:A9.emptyTitle,children:[`No `,i,` meetings`]}),(0,D.jsx)(`span`,{className:A9.emptyText,children:`Nothing scheduled here yet.`})]}):null,!s&&c.length>0?(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(Zu.div,{className:A9.meetingList,variants:KWt,initial:`hidden`,animate:`visible`,children:c.map(t=>(0,D.jsx)(HWt,{meeting:t,onRespond:e=>{n.mutate({meetingId:t.id,accept:e})},onCancel:()=>{r.mutate(t.id)},onJoin:()=>{e(`/comms/meetings/${t.id}/room`)}},t.id))},i)}):null]})},M9={screen:`_screen_18kgg_6`,head:`_head_18kgg_13`,headTop:`_headTop_18kgg_19`,title:`_title_18kgg_27`,subtitle:`_subtitle_18kgg_35`,headBadge:`_headBadge_18kgg_41`,headBadgeNum:`_headBadgeNum_18kgg_47`,headBadgeLabel:`_headBadgeLabel_18kgg_53`,tabs:`_tabs_18kgg_59`,tab:`_tab_18kgg_59`,tabActive:`_tabActive_18kgg_84`,tabUnderline:`_tabUnderline_18kgg_90`,body:`_body_18kgg_100`,tabContent:`_tabContent_18kgg_107`},XWt=()=>{let[e,t]=(0,y.useState)(`scheduled`),n=(FRt().data??[]).filter(e=>e.bucket===`upcoming`).length;return(0,D.jsxs)(`div`,{className:M9.screen,children:[(0,D.jsxs)(`header`,{className:M9.head,children:[(0,D.jsxs)(`div`,{className:M9.headTop,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h1`,{className:M9.title,children:`Meetings`}),(0,D.jsx)(`p`,{className:M9.subtitle,children:`Book 1:1 meetings and manage your invitations.`})]}),(0,D.jsxs)(`div`,{className:M9.headBadge,children:[(0,D.jsx)(`span`,{className:M9.headBadgeNum,children:n}),(0,D.jsx)(`span`,{className:M9.headBadgeLabel,children:`upcoming`})]})]}),(0,D.jsxs)(`div`,{className:M9.tabs,children:[(0,D.jsxs)(`button`,{type:`button`,className:E(M9.tab,e===`book`&&M9.tabActive),onClick:()=>{t(`book`)},children:[(0,D.jsx)(Lt,{size:15}),` Book a Meeting`,e===`book`&&(0,D.jsx)(Zu.span,{layoutId:`bookTabUnderline`,className:M9.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]}),(0,D.jsxs)(`button`,{type:`button`,className:E(M9.tab,e===`scheduled`&&M9.tabActive),onClick:()=>{t(`scheduled`)},children:[(0,D.jsx)(Jt,{size:15}),` Scheduled`,e===`scheduled`&&(0,D.jsx)(Zu.span,{layoutId:`bookTabUnderline`,className:M9.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]})]})]}),(0,D.jsx)(`div`,{className:M9.body,children:(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(Zu.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2,ease:`easeOut`},className:M9.tabContent,children:e===`book`?(0,D.jsx)(jWt,{onViewScheduled:()=>{t(`scheduled`)}}):(0,D.jsx)(YWt,{})},e)})})]})},ZWt=()=>{let{meetingId:e}=Ze(),t=hzt(e=>e.setRequestedMeetingId);return(0,y.useEffect)(()=>{e!==void 0&&t(e)},[e,t]),(0,D.jsx)(D.Fragment,{})},QWt=`/comms/bookings`,$Wt=`/comms/meetings/:meetingId/room`,eGt=()=>(0,D.jsxs)(gt,{children:[(0,D.jsx)(mt,{path:QWt,element:(0,D.jsx)(XWt,{})}),(0,D.jsx)(mt,{path:$Wt,element:(0,D.jsx)(ZWt,{})}),(0,D.jsx)(mt,{path:`*`,element:(0,D.jsx)(pt,{to:QWt,replace:!0})})]}),tGt=()=>{m9(`uapp-bookings`,()=>(0,D.jsx)(eGt,{}))},N9=(e,t=0)=>{let n=new Date(e);return n.setHours(0,0,0,0),n.setDate(e.getDate()-(e.getDay()+6)%7+t*7),Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),r})},nGt=(e,t)=>{let n=rp(e);return N9(e,t).map(e=>({date:e,dayNumber:e.getDate(),isToday:rp(e)===n}))},P9=(e,t)=>e.toLocaleDateString(void 0,t),rGt=(e,t)=>{let n=N9(e,t),r=n[0]??e,i=n[6]??e,a=r.getFullYear()===i.getFullYear();return a&&r.getMonth()===i.getMonth()?`${String(r.getDate())} – ${P9(i,{day:`numeric`,month:`long`,year:`numeric`})}`:a?`${P9(r,{day:`numeric`,month:`short`})} – ${P9(i,{day:`numeric`,month:`short`,year:`numeric`})}`:`${P9(r,{day:`numeric`,month:`short`,year:`numeric`})} – ${P9(i,{day:`numeric`,month:`short`,year:`numeric`})}`},iGt=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),aGt=(e,t)=>iGt(e,t).toLocaleDateString(void 0,{month:`long`,year:`numeric`}),oGt=(e,t)=>{let n=iGt(e,t),r=(n.getDay()+6)%7,i=new Date(n.getFullYear(),n.getMonth()+1,0).getDate(),a=Math.ceil((r+i)/7),o=new Date(n);return o.setDate(n.getDate()-r),Array.from({length:a*7},(e,t)=>{let n=new Date(o);return n.setDate(o.getDate()+t),n})},sGt=e=>{if(e<60)return`${String(e)}m`;let t=Math.floor(e/60),n=e%60;return n===0?`${String(t)}h`:`${String(t)}h ${String(n)}m`},F9=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`},cGt=e=>new Date(e).toLocaleDateString(void 0,{weekday:`short`,day:`numeric`,month:`short`}),I9=e=>rp(e),L9=e=>F9(e),R9=(e,t)=>{let[n,r,i]=e.split(`-`),[a,o]=t.split(`:`);return new Date(Number(n??`1970`),Number(r??`1`)-1,Number(i??`1`),Number(a??`0`),Number(o??`0`),0,0).toISOString()},z9={available:{label:`Available`,color:`#22c55e`,Icon:Bt},busy:{label:`Busy`,color:`#ef4444`,Icon:Mt},meeting:{label:`Meeting`,color:`#3b82f6`,Icon:Gn},focus:{label:`Focus`,color:`#8b5cf6`,Icon:zn},away:{label:`Away`,color:`#94a3b8`,Icon:Jt}},B9=e=>e===0||e===24?`12 AM`:e===12?`12 PM`:e<12?`${String(e)} AM`:`${String(e-12)} PM`,V9=(e,t)=>{let n=tp(e),r=tp(t);return r<=n?1440:r},lGt=(e,t)=>{let n=lp(t);return n<=lp(e)?1440:n},uGt=(e,t,n)=>{let r=lp(n)<=lp(t)?0:Math.max(0,Math.floor(lp(t)/60)-1),i=Math.min(24,Math.ceil(lGt(t,n)/60)+1);for(let t of e){let e=t.block.status===`available`&&(t.continuesFromPrevDay===!0||t.continuesToNextDay===!0);t.block.allDay&&!e||(r=Math.min(r,Math.floor(tp(t.start)/60)),i=Math.max(i,Math.ceil(V9(t.start,t.end)/60)))}return r=Math.max(0,Math.min(r,22)),i=Math.min(24,Math.max(i,r+2)),{startHour:r,endHour:i}},dGt=e=>Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n),fGt=e=>(e.endHour-e.startHour)*52,pGt=(e,t,n)=>{let r=tp(e),i=V9(e,t);return{top:(r-n.startHour*60)*52/60,height:Math.max(20,(i-r)*52/60-2)}},mGt=(e,t,n)=>{let r=n.startHour*60,i=Math.max(e,r),a=Math.min(t,n.endHour*60);return a<=i?null:{top:(i-r)*52/60,height:(a-i)*52/60}},hGt=(e,t,n)=>e?t.flatMap(e=>{let t=lp(e.from),r=lp(e.to);if(r<=t)return[mGt(t,1440,n),mGt(0,r,n)].filter(e=>e!==null);let i=mGt(t,r,n);return i===null?[]:[i]}):[],gGt=(e,t)=>{let n=e.getHours()*60+e.getMinutes();return n<t.startHour*60||n>t.endHour*60?null:(n-t.startHour*60)*52/60},_Gt=(e,t,n,r=90)=>((lp(t)<=lp(e)?0:lp(e))-n*60)*52/60-r*52/60,vGt=(e,t,n=90)=>(e.getHours()*60+e.getMinutes()-t*60)*52/60-n*52/60,yGt=e=>{let t=[...e].sort((e,t)=>tp(e.start)-tp(t.start)||V9(e.start,e.end)-V9(t.start,t.end)),n=[],r=[],i=[],a=()=>{let e=Math.max(1,i.length);for(let t of r)n.push({occurrence:t.occurrence,lane:t.lane,lanes:e});r=[],i=[]};for(let e of t){let t=tp(e.start),n=V9(e.start,e.end);r.length>0&&t>=Math.max(...i)&&a();let o=i.findIndex(e=>e<=t);o===-1?(o=i.length,i.push(n)):i[o]=n,r.push({occurrence:e,lane:o})}return a(),n},bGt=e=>{let t=e.filter(e=>e.end>e.start).slice().sort((e,t)=>e.start-t.start),n=[];for(let e of t){let t=n[n.length-1];t!==void 0&&e.start<=t.end?n[n.length-1]={start:t.start,end:Math.max(t.end,e.end)}:n.push(e)}return n},xGt=e=>e.reduce((e,t)=>e+(t.end-t.start),0),SGt=(e,t,n)=>{let r=rp(t),i=e.filter(e=>e.date===r&&!e.block.allDay),a=bGt([...n.map(e=>{let t=lp(e.from),n=lp(e.to);return{start:t,end:n<=t?1440:n}}),...i.filter(e=>e.block.status===`available`).map(e=>({start:tp(e.start),end:V9(e.start,e.end)}))]),o=i.filter(e=>e.block.status!==`available`).map(e=>({start:tp(e.start),end:V9(e.start,e.end)})),s=0;for(let e of a){let t=bGt(o.map(t=>({start:Math.max(e.start,t.start),end:Math.min(e.end,t.end)})));s+=e.end-e.start-xGt(t)}return Math.max(0,Math.round(s/60))},CGt=(e,t)=>new Date(new Date(e).getTime()+t*6e4).toISOString(),wGt=(e,t)=>{let n=new Date(e),r=$m(t,n)-$m(Zm(),n);return r===0?e:new Date(n.getTime()-r*6e4).toISOString()},TGt=(e,t)=>{let n=new Date(e),r=$m(t,n)-$m(Zm(),n);return r===0?e:new Date(n.getTime()+r*6e4).toISOString()},H9=(e,t)=>({...e,start:wGt(e.start,t),end:wGt(e.end,t)}),EGt=e=>{if(e.mode===`edit`){let{block:t}=e;return{title:t.title,status:t.status,start:t.start,end:t.allDay?t.end:R9(I9(t.start),L9(t.end)),allDay:t.allDay,notes:t.notes,recurrence:t.recurrence}}let t=e.start,n=e.end??CGt(t,60),r=null,i=rp(t);if(i!==rp(n)){n=R9(i,L9(n));let a=new Date(t),o=new Date(e.end??n),s=[],c=new Date(a),l=0;for(;rp(c)<=rp(o)&&l<100;)l++,s.push(c.getDay()),c.setDate(c.getDate()+1);r={freq:`weekly`,interval:1,weekdays:s,monthlyMode:`dayOfMonth`,endType:`on`,endCount:13,endDate:rp(o),exceptions:[]}}return{title:e.title??``,status:e.status??`available`,start:t,end:n,allDay:!1,notes:``,recurrence:r}},DGt=e=>({...e,recurrence:e.recurrence===null?Hme(e.start):null}),OGt=(e,t)=>({...e,recurrence:t}),kGt=(e,t)=>({...e,start:R9(t,L9(e.start)),end:R9(t,L9(e.end))}),AGt=(e,t)=>{let n=R9(I9(e.start),t),r=new Date(n).getTime()-new Date(e.start).getTime();return{...e,start:n,end:new Date(new Date(e.end).getTime()+r).toISOString()}},jGt=(e,t)=>({...e,end:R9(I9(e.start),t)}),MGt=(e,t)=>{let n=I9(e.start);return t?{...e,allDay:!0,start:R9(n,`00:00`),end:R9(n,`23:59`)}:{...e,allDay:!1,start:R9(n,`09:00`),end:R9(n,`10:00`)}},U9={notesInput:`_notesInput_1ut2q_7`,actionSpacer:`_actionSpacer_1ut2q_24`,panelHead:`_panelHead_1ut2q_29`,panelTitle:`_panelTitle_1ut2q_41`,panelForm:`_panelForm_1ut2q_47`,microLabel:`_microLabel_1ut2q_54`,panelInput:`_panelInput_1ut2q_62`,inputError:`_inputError_1ut2q_79`,fieldError:`_fieldError_1ut2q_84`,statusPills:`_statusPills_1ut2q_90`,statusPill:`_statusPill_1ut2q_90`,statusPillActive:`_statusPillActive_1ut2q_110`,dtGrid:`_dtGrid_1ut2q_116`,checkRow:`_checkRow_1ut2q_133`,checkbox:`_checkbox_1ut2q_143`,recurToggle:`_recurToggle_1ut2q_150`,recurToggleOn:`_recurToggleOn_1ut2q_163`,recurToggleLabel:`_recurToggleLabel_1ut2q_168`,recurSwitch:`_recurSwitch_1ut2q_181`,recurSwitchOn:`_recurSwitchOn_1ut2q_191`,recurKnob:`_recurKnob_1ut2q_195`,panelFooter:`_panelFooter_1ut2q_210`,panelSummary:`_panelSummary_1ut2q_215`,panelActions:`_panelActions_1ut2q_226`,recurSection:`_recurSection_1ut2q_234`,recurBuilder:`_recurBuilder_1ut2q_240`,recurChips:`_recurChips_1ut2q_250`,recurChip:`_recurChip_1ut2q_250`,recurChipActive:`_recurChipActive_1ut2q_267`,recurInline:`_recurInline_1ut2q_273`,recurInlineLabel:`_recurInlineLabel_1ut2q_281`,recurNumber:`_recurNumber_1ut2q_286`,recurWeekdays:`_recurWeekdays_1ut2q_297`,recurDay:`_recurDay_1ut2q_303`,recurDayActive:`_recurDayActive_1ut2q_315`,recurEnds:`_recurEnds_1ut2q_321`,recurRadio:`_recurRadio_1ut2q_327`,recurDate:`_recurDate_1ut2q_339`,recurSummaryBox:`_recurSummaryBox_1ut2q_349`,panelSummaryError:`_panelSummaryError_1ut2q_360`,disabledButtonWrapper:`_disabledButtonWrapper_1ut2q_368`,resolveConflictBtn:`_resolveConflictBtn_1ut2q_373`,upcomingCard:`_upcomingCard_1ut2q_394`,upcomingHeader:`_upcomingHeader_1ut2q_402`,upcomingRow:`_upcomingRow_1ut2q_414`,upcomingRowDate:`_upcomingRowDate_1ut2q_427`,upcomingRowTime:`_upcomingRowTime_1ut2q_431`,upcomingMore:`_upcomingMore_1ut2q_436`,differentTimeRow:`_differentTimeRow_1ut2q_445`,differentTimeList:`_differentTimeList_1ut2q_456`,differentTimeRowItem:`_differentTimeRowItem_1ut2q_467`,differentTimeDayLabel:`_differentTimeDayLabel_1ut2q_479`,differentTimeNote:`_differentTimeNote_1ut2q_488`,differentTimeRowGroup:`_differentTimeRowGroup_1ut2q_495`,differentTimeDayLabelSpacer:`_differentTimeDayLabelSpacer_1ut2q_501`,slotActionBtn:`_slotActionBtn_1ut2q_507`,slotActionBtnTrash:`_slotActionBtnTrash_1ut2q_524`},W9={center:`_center_10cfo_6`,field:`_field_10cfo_12`,dash:`_dash_10cfo_18`},NGt={timeInput:`_timeInput_ik08d_4`},PGt=[{wd:1,label:`M`,longLabel:`Mon`},{wd:2,label:`T`,longLabel:`Tue`},{wd:3,label:`W`,longLabel:`Wed`},{wd:4,label:`T`,longLabel:`Thu`},{wd:5,label:`F`,longLabel:`Fri`},{wd:6,label:`S`,longLabel:`Sat`},{wd:0,label:`S`,longLabel:`Sun`}],FGt=e=>{let[t,n]=e.split(`:`).map(Number);return(t??0)*60+(n??0)},IGt=e=>{let t=Math.floor(e/60),n=e%60;return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`},LGt=e=>{if(!e)return{start:`09:00`,end:`17:00`};let t=FGt(e.start),n=FGt(e.end),r=n>t?n-t:60,i=n,a=i+r;return i>=1439?{start:`23:00`,end:`23:59`}:(a>1439&&(a=1439),{start:IGt(i),end:IGt(a)})},RGt=({slot:e,index:t,dayMeta:n,dayName:r,showTrash:i,onUpdateStart:a,onUpdateEnd:o,onAdd:s,onRemove:c})=>(0,D.jsxs)(`div`,{className:U9.differentTimeRowItem,children:[t===0?(0,D.jsx)(`span`,{className:U9.differentTimeDayLabel,children:n?.longLabel??r}):(0,D.jsx)(`span`,{className:U9.differentTimeDayLabelSpacer}),(0,D.jsx)(`input`,{type:`time`,className:E(U9.recurDate,NGt.timeInput),value:e.start,onChange:e=>{a(e.target.value)}}),(0,D.jsx)(`span`,{className:W9.dash,children:`–`}),(0,D.jsx)(`input`,{type:`time`,className:E(U9.recurDate,NGt.timeInput),value:e.end,onChange:e=>{o(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:U9.slotActionBtn,onClick:s,children:(0,D.jsx)(En,{size:14})}),i&&(0,D.jsx)(`button`,{type:`button`,className:U9.slotActionBtnTrash,onClick:c,children:(0,D.jsx)(Vn,{size:12})})]}),zGt=({dayMeta:e,dayName:t,slots:n,startIso:r,endIso:i,onChangeSlots:a})=>{let o=n.length>0?n:[{start:L9(r),end:L9(i??r)}];return(0,D.jsx)(`div`,{className:U9.differentTimeRowGroup,children:o.map((n,r)=>(0,D.jsx)(RGt,{slot:n,index:r,dayMeta:e,dayName:t,showTrash:o.length>1,onUpdateStart:e=>{let t=[...o];t[r]={...n,start:e},a(t)},onUpdateEnd:e=>{let t=[...o];t[r]={...n,end:e},a(t)},onAdd:()=>{let e=o[o.length-1];a([...o,LGt(e)])},onRemove:()=>{a(o.filter((e,t)=>t!==r))}},r))})},BGt=({rec:e,onChange:t,startIso:n,endIso:r})=>e.weekdays.length===0?(0,D.jsx)(D.Fragment,{}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:U9.differentTimeRow,children:[(0,D.jsx)(`input`,{type:`checkbox`,checked:e.differentTimes??!1,onChange:n=>{t({...e,differentTimes:n.target.checked})}}),(0,D.jsx)(`span`,{children:`Different time per day`})]}),e.differentTimes&&(0,D.jsxs)(`div`,{className:U9.differentTimeList,children:[e.weekdays.map(i=>{let a=PGt.find(e=>e.wd===i);return(0,D.jsx)(zGt,{dayMeta:a,dayName:a?a.longLabel:``,slots:e.weekdayTimes?.[i]??[],startIso:n,endIso:r,onChangeSlots:n=>{let r={...e.weekdayTimes,[i]:n};t({...e,weekdayTimes:r})}},i)}),(0,D.jsx)(`div`,{className:U9.differentTimeNote,children:`Defaults to the base event time when not overridden. Use + to add multiple slots per day.`})]})]}),VGt=({recurrence:e,startIso:t,endIso:n})=>{let r=new Date(t),i=n===void 0?new Date(r.getTime()+1800*1e3):new Date(n),a=r,o=new Date(r.getTime()+2160*60*60*1e3),s=Yme({start:t,end:i.toISOString(),recurrence:e},a,o),c=s.slice(0,5);return c.length===0?(0,D.jsx)(D.Fragment,{}):(0,D.jsxs)(`div`,{className:U9.upcomingCard,children:[(0,D.jsxs)(`div`,{className:U9.upcomingHeader,children:[(0,D.jsx)(vee,{size:12}),` Upcoming Occurrences`]}),(0,D.jsx)(`div`,{children:c.map((e,t)=>{let n=new Date(e.start).toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`}),r=`${F9(e.start)} – ${F9(e.end)}`;return(0,D.jsxs)(`div`,{className:U9.upcomingRow,children:[(0,D.jsx)(`span`,{className:U9.upcomingRowDate,children:n}),(0,D.jsx)(`span`,{className:U9.upcomingRowTime,children:r})]},t)})}),s.length>5&&(0,D.jsx)(`div`,{className:U9.upcomingMore,children:`...and more beyond`})]})},HGt=[{wd:1,label:`M`},{wd:2,label:`T`},{wd:3,label:`W`},{wd:4,label:`T`},{wd:5,label:`F`},{wd:6,label:`S`},{wd:0,label:`S`}],UGt={daily:`day`,weekly:`week`,monthly:`month`,yearly:`year`},WGt=[{id:`dayOfMonth`,label:`Day of month`},{id:`nthWeekday`,label:`Day of week`}],GGt=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:U9.recurChips,children:zme.map(n=>(0,D.jsx)(`button`,{type:`button`,className:E(U9.recurChip,e.freq===n.id&&U9.recurChipActive),"aria-pressed":e.freq===n.id,onClick:()=>{t({...e,freq:n.id})},children:n.label},n.id))}),KGt=({rec:e,onChange:t})=>(0,D.jsxs)(`label`,{className:U9.recurInline,children:[(0,D.jsx)(`span`,{className:U9.recurInlineLabel,children:`Every`}),(0,D.jsx)(`input`,{type:`number`,min:1,max:99,className:U9.recurNumber,value:e.interval,onChange:n=>{t({...e,interval:Math.max(1,Number(n.target.value)||1)})}}),(0,D.jsxs)(`span`,{className:U9.recurInlineLabel,children:[UGt[e.freq],e.interval>1?`s`:``]})]}),qGt=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:U9.recurWeekdays,children:HGt.map(({wd:n,label:r})=>{let i=e.weekdays.includes(n);return(0,D.jsx)(`button`,{type:`button`,className:E(U9.recurDay,i&&U9.recurDayActive),"aria-pressed":i,onClick:()=>{t({...e,weekdays:i?e.weekdays.filter(e=>e!==n):[...e.weekdays,n]})},children:r},n)})}),JGt=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:U9.recurChips,children:WGt.map(n=>(0,D.jsx)(`button`,{type:`button`,className:E(U9.recurChip,e.monthlyMode===n.id&&U9.recurChipActive),onClick:()=>{t({...e,monthlyMode:n.id})},children:n.label},n.id))}),YGt=({rec:e,startIso:t,onChange:n})=>(0,D.jsxs)(`div`,{className:U9.recurEnds,children:[(0,D.jsxs)(`label`,{className:U9.recurRadio,children:[(0,D.jsx)(`input`,{type:`radio`,name:`recur-end`,checked:e.endType===`never`,onChange:()=>{n({...e,endType:`never`})}}),(0,D.jsx)(`span`,{children:`Never ends`})]}),(0,D.jsxs)(`label`,{className:U9.recurRadio,children:[(0,D.jsx)(`input`,{type:`radio`,name:`recur-end`,checked:e.endType===`after`,onChange:()=>{n({...e,endType:`after`})}}),(0,D.jsx)(`span`,{children:`After`}),(0,D.jsx)(`input`,{type:`number`,min:1,max:365,className:U9.recurNumber,value:e.endCount,disabled:e.endType!==`after`,onChange:t=>{n({...e,endType:`after`,endCount:Math.max(1,Number(t.target.value)||1)})}}),(0,D.jsx)(`span`,{children:`times`})]}),(0,D.jsxs)(`label`,{className:U9.recurRadio,children:[(0,D.jsx)(`input`,{type:`radio`,name:`recur-end`,checked:e.endType===`on`,onChange:()=>{n({...e,endType:`on`})}}),(0,D.jsx)(`span`,{children:`On`}),(0,D.jsx)(`input`,{type:`date`,className:U9.recurDate,min:t.slice(0,10),value:e.endDate,disabled:e.endType!==`on`,onChange:t=>{n({...e,endType:`on`,endDate:t.target.value})}})]})]}),XGt=({recurrence:e,startIso:t,endIso:n,onChange:r})=>{let i=e.freq===`weekly`,a=e.freq===`monthly`||e.freq===`yearly`;return(0,D.jsxs)(`div`,{className:U9.recurBuilder,children:[(0,D.jsx)(GGt,{rec:e,onChange:r}),(0,D.jsx)(KGt,{rec:e,onChange:r}),i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(qGt,{rec:e,onChange:r}),(0,D.jsx)(BGt,{rec:e,onChange:r,startIso:t,endIso:n})]}),a&&(0,D.jsx)(JGt,{rec:e,onChange:r}),(0,D.jsx)(YGt,{rec:e,startIso:t,onChange:r}),(0,D.jsx)(`div`,{className:U9.recurSummaryBox,children:$me(e,t)}),(0,D.jsx)(VGt,{recurrence:e,startIso:t,endIso:n})]})},ZGt=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Status`}),(0,D.jsx)(`div`,{className:U9.statusPills,children:sp.map(n=>{let r=z9[n.id],i=e.status===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:E(U9.statusPill,i&&U9.statusPillActive),style:Xn({"--status-color":r.color}),"aria-pressed":i,onClick:()=>{t({...e,status:n.id})},children:[(0,D.jsx)(r.Icon,{size:13}),` `,n.label]},n.id)})})]}),QGt=({draft:e,onChange:t})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:e.allDay?W9.field:U9.dtGrid,children:[(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:U9.panelInput,value:I9(e.start),onChange:n=>{t(kGt(e,n.target.value))}})]}),!e.allDay&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Start`}),(0,D.jsx)(Uf,{value:L9(e.start),onChange:n=>{t(AGt(e,n))}})]}),(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`End`}),(0,D.jsx)(Uf,{align:`end`,value:L9(e.end),onChange:n=>{t(jGt(e,n))}})]})]})]}),(0,D.jsxs)(`label`,{className:U9.checkRow,children:[(0,D.jsx)(`input`,{type:`checkbox`,className:U9.checkbox,checked:e.allDay,onChange:n=>{t(MGt(e,n.target.checked))}}),(0,D.jsx)(`span`,{children:`All-day`})]})]}),$Gt=({draft:e,onChange:t})=>{let n=e.recurrence!==null;return(0,D.jsxs)(`div`,{className:U9.recurSection,children:[(0,D.jsxs)(`button`,{type:`button`,className:E(U9.recurToggle,n&&U9.recurToggleOn),"aria-pressed":n,onClick:()=>{t(DGt(e))},children:[(0,D.jsxs)(`span`,{className:U9.recurToggleLabel,children:[(0,D.jsx)(jn,{size:13}),` Recurring`]}),(0,D.jsx)(`span`,{className:E(U9.recurSwitch,n&&U9.recurSwitchOn),children:(0,D.jsx)(`span`,{className:U9.recurKnob})})]}),e.recurrence!==null&&(0,D.jsx)(XGt,{recurrence:e.recurrence,startIso:e.start,endIso:e.end,onChange:n=>{t(OGt(e,n))}})]})},eKt=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:U9.panelForm,children:[(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Title`}),(0,D.jsx)(`input`,{type:`text`,className:E(U9.panelInput,e.title.length>200&&U9.inputError),value:e.title,placeholder:`e.g. Morning availability`,onChange:n=>{t({...e,title:n.target.value})}}),e.title.length>200&&(0,D.jsx)(`span`,{className:U9.fieldError,children:`The field Title must be a string with a maximum length of 200.`})]}),(0,D.jsx)(ZGt,{draft:e,onChange:t}),(0,D.jsx)(QGt,{draft:e,onChange:t}),(0,D.jsx)($Gt,{draft:e,onChange:t}),(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Notes`}),(0,D.jsx)(`textarea`,{className:U9.notesInput,rows:3,value:e.notes,placeholder:`Optional notes`,onChange:n=>{t({...e,notes:n.target.value})}})]})]}),tKt=(e,t,n,r)=>{let i=new Date(e).getTime(),a=new Date(t).getTime(),o=new Date(n).getTime(),s=new Date(r).getTime();return i<=o&&a>=s?{type:`delete`}:i>o&&a<s?{type:`split`,updateEnd:new Date(i).toISOString(),createStart:new Date(a).toISOString(),createEnd:new Date(s).toISOString()}:i<=o&&a>o&&a<s?{type:`update`,start:new Date(a).toISOString(),end:r}:i>o&&i<s&&a>=s?{type:`update`,start:n,end:new Date(i).toISOString()}:null},nKt=(e,t)=>{let n=new Date(e.start).getTime(),r=new Date(e.end).getTime(),i=new Date(t.start).getTime();return n<new Date(t.end).getTime()&&r>i},rKt=(e,t)=>{let n=e.block.status===`available`&&t.block.status===`available`,r=e.block.status!==`available`&&t.block.status!==`available`;return(n||r)&&nKt(e,t)},iKt=(e,t,n)=>{let r=cp([new op({id:`draft`,...e})],n),i=cp(t,n),a=[];for(let e of i)r.some(t=>rKt(t,e))&&a.push(e);return a},aKt=e=>({userId:e.userId,title:e.title,status:e.status,start:e.start,end:e.end,allDay:e.allDay,notes:e.notes,recurrence:e.recurrence}),G9=(e,t,n)=>({...aKt(e),start:t,end:n,recurrence:null}),oKt=(e,t)=>{let n=e.recurrence;if(n===null)return aKt(e);let r=Array.from(new Set([...n.exceptions,...t]));return{...aKt(e),recurrence:{...n,exceptions:r}}},sKt=(e,t,n)=>n.type===`delete`?[]:n.type===`update`?[G9(e,n.start,n.end)]:[G9(e,t.start,n.updateEnd),G9(e,n.createStart,n.createEnd)],cKt=(e,t,n)=>{let r=tKt(n.start,n.end,t.start,t.end);return r===null?[]:r.type===`delete`?[{kind:`delete`,blockId:e.id}]:r.type===`update`?[{kind:`update`,blockId:e.id,draft:G9(e,r.start,r.end)}]:[{kind:`update`,blockId:e.id,draft:G9(e,t.start,r.updateEnd)},{kind:`create`,draft:G9(e,r.createStart,r.createEnd)}]},lKt=(e,t,n)=>{let r=[],i=[];for(let a of t){let t=tKt(n.start,n.end,a.start,a.end);if(t!==null){r.push(a.date);for(let n of sKt(e,a,t))i.push({kind:`create`,draft:n})}}return r.length===0?[]:[{kind:`update`,blockId:e.id,draft:oKt(e,r)},...i]},uKt=(e,t)=>{let n=new Map;for(let e of t){let t=n.get(e.block.id)??[];t.push(e),n.set(e.block.id,t)}let r=[];for(let t of n.values()){let n=t[0];if(n===void 0)continue;let i=n.block.recurrence===null?cKt(n.block,n,e):lKt(n.block,t,e);r.push(...i)}return r},dKt=(e,t)=>e.filter(e=>t.mode!==`edit`||e.id!==t.block.id),fKt=(e,t,n)=>{let r=new Map;for(let i of iKt(e,t,n))r.set(i.block.id,i.block);return[...r.values()]},pKt=300*1e3,mKt=(e,t,n,r)=>{if(!(n.mode!==`edit`||t.start!==H9({...e,start:n.block.start,end:n.block.end},r).start)||new Date(t.start).getTime()>=Date.now()-pKt)return null;let i=new Date(t.end).getTime();return e.allDay&&i>Date.now()?`All-day events cannot be scheduled for today as part of the day has passed. Please uncheck 'All-day' to select a specific time.`:`Cannot schedule an event in the past.`},hKt=(e,t)=>{if(t.length===0)return null;let n=t[0];if(n===void 0)return null;let r=t.some(e=>e.status===`meeting`);return e===`available`&&n.status===`available`?{error:`This block overlaps with an existing availability.`,code:`overlap_availability`,hasMeetingConflict:r}:{error:r?`This block overlaps with a scheduled Meeting. Meetings cannot be auto-adjusted or overwritten.`:`This block overlaps with an existing event.`,code:`overlap_event`,hasMeetingConflict:r}},gKt=(e,t,n,r)=>{if(e.title.trim().length===0)return{error:`Event title is required.`,code:`empty_title`};if(e.title.length>200)return{error:`The field Title must be a string with a maximum length of 200.`,code:`title_too_long`};if(!Sme(e.start,e.end))return{error:`End time must be after start time.`,code:`invalid_time`};let i=H9(e,r),a=mKt(e,i,n,r);if(a!==null)return{error:a,code:`invalid_time`};let o=N9(new Date(i.start),0),s=fKt(i,dKt(t,n),o);return hKt(e.status,s)??{error:null}},_Kt=(e,t,n)=>{let r=hve(),i=Jm(),a=gve(),o=async e=>{if(e.kind===`delete`){await a.mutateAsync(e.blockId);return}if(e.kind===`update`){await i.mutateAsync({id:e.blockId,draft:e.draft});return}await r.mutateAsync(e.draft)};return{resolve:async(r,i)=>{let a=H9(e,n),s=N9(new Date(a.start),0),c=uKt(a,iKt(a,dKt(r,t),s));try{await Promise.all(c.map(o)),Nf.success(`Conflicts resolved successfully!`),i()}catch(e){let t=e instanceof Error?e.message:String(e);Nf.error(`Failed to resolve conflicts: ${t}`)}}}},vKt={errorStack:`_errorStack_q9qoj_4`,errorLine:`_errorLine_q9qoj_11`},K9=` · `,yKt=` – `,bKt=e=>{let t=rp(e.start)===rp(e.end)?cGt(e.start):`${cGt(e.start)}${yKt}${cGt(e.end)}`,n=e.recurrence===null?``:`${K9}${$me(e.recurrence,e.start)}`;return e.allDay?`${t}${K9}All day${n}`:e.recurrence?.differentTimes?`${t}${n}`:`${t}${K9}${`${F9(e.start)}${yKt}${F9(e.end)}`}${K9}${sGt(np(e.start,e.end))}${n}`},xKt=({isEdit:e,busy:t,canSave:n,validationError:r,isConflict:i,summary:a,onSave:o,onDelete:s,onCancel:c,onResolveConflicts:l})=>(0,D.jsxs)(`div`,{className:U9.panelFooter,children:[(0,D.jsx)(`div`,{className:E(U9.panelSummary,r!==null&&U9.panelSummaryError),children:r===null?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Lt,{size:14}),` `,a]}):(0,D.jsxs)(`div`,{className:vKt.errorStack,children:[(0,D.jsxs)(`span`,{className:vKt.errorLine,children:[(0,D.jsx)(Gt,{size:14}),` `,r]}),i&&(0,D.jsxs)(`button`,{type:`button`,className:U9.resolveConflictBtn,onClick:l,disabled:t,children:[(0,D.jsx)(wee,{size:11}),` Auto-adjust blocks to fit`]})]})}),(0,D.jsxs)(`div`,{className:U9.panelActions,children:[e&&(0,D.jsxs)(ar,{variant:`ghost`,onClick:s,disabled:t,children:[(0,D.jsx)(Vn,{size:15}),` Delete`]}),(0,D.jsx)(`span`,{className:U9.actionSpacer}),(0,D.jsx)(ar,{variant:`secondary`,onClick:c,disabled:t,children:`Cancel`}),n?(0,D.jsx)(ar,{onClick:o,isLoading:t,children:e?`Save changes`:`Create`}):(0,D.jsx)(Of,{label:r??`Cannot save`,side:`top`,children:(0,D.jsx)(`span`,{className:U9.disabledButtonWrapper,children:(0,D.jsx)(ar,{onClick:o,isLoading:t,disabled:!0,children:e?`Save changes`:`Create`})})})]})]}),SKt=(e,t,n,r)=>{let i=hve(),a=Jm(),o=gve();return{busy:i.isPending||a.isPending||o.isPending,onSave:()=>{let o=H9(t,n),s=e=>{Nf.success(e),r()};if(e.mode===`edit`){a.mutate({id:e.block.id,draft:o},{onSuccess:()=>{s(`Event updated`)},onError:e=>{Nf.error(e.message)}});return}i.mutate(o,{onSuccess:()=>{s(`Event added`)},onError:e=>{Nf.error(e.message)}})},onDelete:()=>{if(e.mode!==`edit`)return;let t=e.block.sourceMeetingId!==null;o.mutate(e.block.id,{onSuccess:()=>{Nf.success(t?`Meeting cancelled for everyone`:`Event removed`),r()},onError:e=>{Nf.error(e.message)}})}}},CKt=({state:e,timezone:t,onClose:n})=>{let[r,i]=(0,y.useState)(()=>EGt(e)),{busy:a,onSave:o,onDelete:s}=SKt(e,r,t,n),[c,l]=(0,y.useState)(!1),u=e.mode===`edit`&&e.block.sourceMeetingId!==null,{data:d=[]}=qm(),f=_Kt(r,e,t),p=e.mode===`edit`,m=gKt(r,d,e,t),h=m.code===`title_too_long`?null:m.error,g=m.error===null,_=(m.code===`overlap_availability`||m.code===`overlap_event`)&&!m.hasMeetingConflict;return(0,D.jsxs)(tce,{open:!0,side:`right`,title:p?`Edit Event`:`New Event`,onOpenChange:e=>{e||n()},footer:(0,D.jsx)(xKt,{isEdit:p,busy:a,canSave:g,validationError:h,isConflict:_,summary:bKt(r),onSave:o,onDelete:()=>{if(u){l(!0);return}s()},onCancel:n,onResolveConflicts:()=>{f.resolve(d,o)}}),children:[(0,D.jsxs)(`header`,{className:U9.panelHead,children:[(0,D.jsx)(`span`,{className:U9.panelTitle,children:p?`Edit Event`:`New Event`}),(0,D.jsx)(dr,{label:`Close`,onClick:n,children:(0,D.jsx)(qn,{size:18})})]}),(0,D.jsx)(eKt,{draft:r,onChange:i}),(0,D.jsx)(ece,{open:c,elevated:!0,title:`Cancel this meeting?`,message:`This event came from a booking. Removing it cancels the meeting and frees the time on everyone's calendar, not just yours.`,confirmLabel:`Cancel meeting`,onConfirm:()=>{l(!1),s()},onCancel:()=>{l(!1)}})]})},wKt=()=>{let e=Intl.supportedValuesOf;return typeof e==`function`?e(`timeZone`):rhe},TKt=/^(\d{1,2}):(\d{2})$/,EKt=e=>String(e).padStart(2,`0`),DKt=e=>{let t=TKt.exec(e);return t===null?0:Number(t[1])*60+Number(t[2])},OKt=e=>{let t=Math.max(0,Math.min(1439,e)),n=Math.floor(t/60),r=t%60;return`${EKt(n)}:${EKt(r)}`},kKt=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],AKt=e=>kKt[(e+6)%7]??`sun`,jKt=e=>kKt[(e+1)%7]??`mon`,MKt=e=>kKt[e]??`mon`,NKt=(e,t,n)=>{if(e>=0)return null;let r=e+1440,i=Math.min(0,t)+1440;return i<=r?null:{targetDay:AKt(n),from:r,to:i,id:crypto.randomUUID()}},PKt=(e,t,n)=>{if(t<=1440)return null;let r=Math.max(1440,e)-1440,i=t-1440;return i<=r?null:{targetDay:jKt(n),from:r,to:i,id:crypto.randomUUID()}},FKt=(e,t,n,r)=>{let i=Math.max(0,e),a=Math.min(1440,t);return a<=i?null:{targetDay:MKt(n),from:i,to:a,id:r}},IKt=(e,t,n)=>{let r=DKt(e.from),i=e.to===`23:59`||e.to===`24:00`||e.to===`00:00`?1440:DKt(e.to);if(i<=r)return[];let a=r+n,o=i+n;return[NKt(a,o,t),FKt(a,o,t,e.id),PKt(a,o,t)].filter(e=>e!==null)},q9=(e,t,n)=>{e.sort((e,t)=>e.from-t.from);let r=[];for(let t of e){let e=r[r.length-1];e!==void 0&&t.from<=e.to+1?e.to=Math.max(e.to,t.to):r.push({...t})}let i=r.map(e=>({id:e.id,from:OKt(e.from),to:e.to>=1440?`23:59`:OKt(e.to)}));return{active:i.length>0&&t,slots:i.length>0?i:n.map(e=>({...e}))}},J9=(e,t,n,r)=>{if(t===n)return e;let i=$m(n,r)-$m(t,r);if(i===0)return e;let a={mon:[],tue:[],wed:[],thu:[],fri:[],sat:[],sun:[]},o={mon:!1,tue:!1,wed:!1,thu:!1,fri:!1,sat:!1,sun:!1};return Qf.forEach((t,n)=>{let r=e[t.id];r.active&&r.slots.length>0&&r.slots.forEach(e=>{IKt(e,n,i).forEach(e=>{a[e.targetDay].push({from:e.from,to:e.to,id:e.id}),o[e.targetDay]=!0})})}),{mon:q9(a.mon,o.mon,e.mon.slots),tue:q9(a.tue,o.tue,e.tue.slots),wed:q9(a.wed,o.wed,e.wed.slots),thu:q9(a.thu,o.thu,e.thu.slots),fri:q9(a.fri,o.fri,e.fri.slots),sat:q9(a.sat,o.sat,e.sat.slots),sun:q9(a.sun,o.sun,e.sun.slots)}},LKt=(e,t)=>{let n=wKt();return(n.includes(t)?n:[t,...n]).map(t=>({id:t,offset:yve($m(t,e))}))},Y9={tzWrap:`_tzWrap_horpb_4`,tzTrigger:`_tzTrigger_horpb_8`,tzGlobe:`_tzGlobe_horpb_30`,tzTriggerLabel:`_tzTriggerLabel_horpb_35`,tzTriggerOffset:`_tzTriggerOffset_horpb_44`,tzChevron:`_tzChevron_horpb_51`,tzBackdrop:`_tzBackdrop_horpb_56`,tzPop:`_tzPop_horpb_65`,tzSearch:`_tzSearch_horpb_78`,tzSearchInput:`_tzSearchInput_horpb_90`,tzList:`_tzList_horpb_100`,tzRow:`_tzRow_horpb_135`,tzRowActive:`_tzRowActive_horpb_154`,tzRowLabel:`_tzRowLabel_horpb_158`,tzRowOffset:`_tzRowOffset_horpb_171`,tzCheck:`_tzCheck_horpb_178`,tzEmpty:`_tzEmpty_horpb_183`},RKt=(e,t)=>t===``||e.id.toLowerCase().includes(t)||e.offset.toLowerCase().includes(t),zKt=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(Zu.div,{className:Y9.tzPop,variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:Y9.tzSearch,children:[(0,D.jsx)(Mn,{size:13}),(0,D.jsx)(`input`,{className:Y9.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:Y9.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:E(Y9.tzRow,e.id===n&&Y9.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:Y9.tzRowLabel,children:e.id}),(0,D.jsx)(`span`,{className:Y9.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Bt,{size:13,className:Y9.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:Y9.tzEmpty,children:`No timezones match.`})]})]}),BKt=({value:e,now:t,onChange:n})=>{let[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(``),s=(0,y.useMemo)(()=>LKt(t,e),[t,e]),c=s.find(t=>t.id===e)??{id:e,offset:``},l=a.trim().toLowerCase(),u=s.filter(e=>RKt(e,l));return(0,D.jsxs)(`div`,{className:Y9.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:Y9.tzTrigger,"aria-expanded":r,"aria-label":`Change timezone`,onClick:()=>{i(e=>!e)},children:[(0,D.jsx)(rn,{size:14,className:Y9.tzGlobe}),(0,D.jsx)(`span`,{className:Y9.tzTriggerLabel,children:c.id}),(0,D.jsx)(`span`,{className:Y9.tzTriggerOffset,children:c.offset}),(0,D.jsx)(Vt,{size:15,className:Y9.tzChevron})]}),(0,D.jsx)(Uu,{children:r&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:Y9.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{i(!1)}}),(0,D.jsx)(zKt,{search:a,list:u,value:e,onSearch:o,onPick:e=>{n(e),o(``),i(!1)}})]})})]})},X9={gridScroll:`_gridScroll_1vnsd_7`,gridInner:`_gridInner_1vnsd_33`,gutter:`_gutter_1vnsd_38`,gutterHead:`_gutterHead_1vnsd_44`,gutterAllDay:`_gutterAllDay_1vnsd_48`,gutterHour:`_gutterHour_1vnsd_62`,dayCol:`_dayCol_1vnsd_73`,dayHeader:`_dayHeader_1vnsd_79`,colDay:`_colDay_1vnsd_93`,colDayToday:`_colDayToday_1vnsd_101`,dayNum:`_dayNum_1vnsd_105`,dayNumToday:`_dayNumToday_1vnsd_125`,dayCount:`_dayCount_1vnsd_131`,allDayBand:`_allDayBand_1vnsd_137`,allDayChip:`_allDayChip_1vnsd_148`,hoursWrap:`_hoursWrap_1vnsd_168`,workBand:`_workBand_1vnsd_174`,hourRow:`_hourRow_1vnsd_184`,nowLine:`_nowLine_1vnsd_203`,nowDot:`_nowDot_1vnsd_214`,block:`_block_1vnsd_224`,blockTitle:`_blockTitle_1vnsd_261`,blockTime:`_blockTime_1vnsd_279`,monthScroll:`_monthScroll_1vnsd_293`,monthHead:`_monthHead_1vnsd_302`,monthHeadCell:`_monthHeadCell_1vnsd_309`,monthGrid:`_monthGrid_1vnsd_319`,monthCell:`_monthCell_1vnsd_326`,monthCellOff:`_monthCellOff_1vnsd_347`,monthDayNum:`_monthDayNum_1vnsd_351`,monthCellToday:`_monthCellToday_1vnsd_355`,monthDayNumToday:`_monthDayNumToday_1vnsd_366`,monthChip:`_monthChip_1vnsd_379`,monthMore:`_monthMore_1vnsd_402`,agendaScroll:`_agendaScroll_1vnsd_410`,agendaGroup:`_agendaGroup_1vnsd_418`,agendaDay:`_agendaDay_1vnsd_422`,agendaItems:`_agendaItems_1vnsd_432`,agendaRow:`_agendaRow_1vnsd_438`,agendaAccent:`_agendaAccent_1vnsd_459`,agendaBody:`_agendaBody_1vnsd_467`,agendaTitle:`_agendaTitle_1vnsd_475`,agendaMeta:`_agendaMeta_1vnsd_484`,agendaPill:`_agendaPill_1vnsd_493`,agendaEmpty:`_agendaEmpty_1vnsd_506`,agendaEmptyIcon:`_agendaEmptyIcon_1vnsd_517`,agendaEmptyTitle:`_agendaEmptyTitle_1vnsd_522`,agendaEmptyText:`_agendaEmptyText_1vnsd_528`,agendaEmptyBtn:`_agendaEmptyBtn_1vnsd_533`,availabilityBand:`_availabilityBand_1vnsd_546`,availabilityBandLabel:`_availabilityBandLabel_1vnsd_579`,availabilityBandEditBtn:`_availabilityBandEditBtn_1vnsd_589`,dragSelectionHighlight:`_dragSelectionHighlight_1vnsd_612`,dragSelectionLabel:`_dragSelectionLabel_1vnsd_631`},VKt={hidden:{},visible:{transition:{staggerChildren:.04}}},HKt=e=>{let t=[...e].sort((e,t)=>e.start<t.start?-1:1),n=new Map;for(let e of t){let t=n.get(e.date);t===void 0?n.set(e.date,{key:e.date,label:new Date(e.start).toLocaleDateString(void 0,{weekday:`long`,day:`numeric`,month:`long`}),items:[e]}):t.items.push(e)}return[...n.values()]},UKt=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=z9[n.status],i=n.allDay?`All day`:`${F9(e.start)} – ${F9(e.end)}`;return(0,D.jsxs)(Zu.button,{type:`button`,variants:ad,whileHover:{x:3},className:X9.agendaRow,style:Xn({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(`span`,{className:X9.agendaAccent}),(0,D.jsxs)(`span`,{className:X9.agendaBody,children:[(0,D.jsx)(`span`,{className:X9.agendaTitle,children:n.title}),(0,D.jsxs)(`span`,{className:X9.agendaMeta,children:[i,n.recurrence!==null&&(0,D.jsxs)(D.Fragment,{children:[` · `,(0,D.jsx)(Tee,{size:10}),` Recurring`]})]})]}),(0,D.jsxs)(`span`,{className:X9.agendaPill,children:[(0,D.jsx)(r.Icon,{size:10}),` `,r.label]})]})},WKt=({occurrences:e,onSelectBlock:t,onCreate:n})=>{let r=HKt(e);return r.length===0?(0,D.jsxs)(`div`,{className:X9.agendaEmpty,children:[(0,D.jsx)(`span`,{className:X9.agendaEmptyIcon,children:(0,D.jsx)(Rt,{size:30})}),(0,D.jsx)(`span`,{className:X9.agendaEmptyTitle,children:`Nothing scheduled this month`}),(0,D.jsx)(`span`,{className:X9.agendaEmptyText,children:`Create a block to fill your week.`}),(0,D.jsx)(`button`,{type:`button`,className:X9.agendaEmptyBtn,onClick:n,children:`Create New Event`})]}):(0,D.jsx)(`div`,{className:X9.agendaScroll,children:r.map(e=>(0,D.jsxs)(`div`,{className:X9.agendaGroup,children:[(0,D.jsx)(`div`,{className:X9.agendaDay,children:e.label}),(0,D.jsx)(Zu.div,{className:X9.agendaItems,variants:VKt,initial:`hidden`,animate:`visible`,children:e.items.map(e=>(0,D.jsx)(UKt,{occurrence:e,onSelect:t},e.key))})]},e.key))})},GKt=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],KKt=3,qKt=e=>{let t=new Map;for(let n of e){let e=t.get(n.date)??[];e.push(n),t.set(n.date,e)}for(let e of t.values())e.sort((e,t)=>e.start<t.start?-1:1);return t},JKt=e=>{let{date:t,inMonth:n,isToday:r,occs:i}=e,a=i.length-KKt;return(0,D.jsxs)(`div`,{className:E(X9.monthCell,!n&&X9.monthCellOff,r&&X9.monthCellToday),onClick:()=>{e.onSelectSlot(R9(rp(t),`09:00`))},children:[(0,D.jsx)(`span`,{className:E(X9.monthDayNum,r&&X9.monthDayNumToday),children:t.getDate()}),i.slice(0,KKt).map(t=>(0,D.jsx)(`button`,{type:`button`,className:X9.monthChip,style:Xn({"--status-color":z9[t.block.status].color}),onClick:n=>{n.stopPropagation(),e.onSelectBlock(t.block)},children:t.block.title},t.key)),a>0&&(0,D.jsxs)(`span`,{className:X9.monthMore,children:[`+`,a,` more`]})]})},YKt=({dates:e,anchor:t,occurrences:n,today:r,onSelectBlock:i,onSelectSlot:a})=>{let o=qKt(n),s=rp(r);return(0,D.jsxs)(`div`,{className:X9.monthScroll,children:[(0,D.jsx)(`div`,{className:X9.monthHead,children:GKt.map(e=>(0,D.jsx)(`span`,{className:X9.monthHeadCell,children:e},e))}),(0,D.jsx)(Zu.div,{className:X9.monthGrid,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:[.22,1,.36,1]},children:e.map(e=>{let n=rp(e);return(0,D.jsx)(JKt,{date:e,inMonth:e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear(),isToday:n===s,occs:o.get(n)??[],onSelectBlock:i,onSelectSlot:a},n)})})]})},Z9={sidebar:`_sidebar_p4iov_4`,summaryGrid:`_summaryGrid_p4iov_36`,summaryCard:`_summaryCard_p4iov_42`,summaryTop:`_summaryTop_p4iov_54`,summaryTopIcon:`_summaryTopIcon_p4iov_60`,summaryValue:`_summaryValue_p4iov_65`,summaryLabel:`_summaryLabel_p4iov_73`,sideHeader:`_sideHeader_p4iov_82`,quickRow:`_quickRow_p4iov_92`,quickBtn:`_quickBtn_p4iov_97`,legendIcon:`_legendIcon_p4iov_118`,legend:`_legend_p4iov_118`,legendItem:`_legendItem_p4iov_129`,legendItemOn:`_legendItemOn_p4iov_151`,legendOff:`_legendOff_p4iov_156`,legendSwatch:`_legendSwatch_p4iov_160`,legendSwatchOff:`_legendSwatchOff_p4iov_172`,drawerHeader:`_drawerHeader_p4iov_177`,drawerTitle:`_drawerTitle_p4iov_185`,drawerCloseBtn:`_drawerCloseBtn_p4iov_191`},XKt={hidden:{},visible:{transition:{staggerChildren:.05}}},ZKt=({occurrences:e,today:t,availability:n})=>{let r=ohe(e,t),i=Qf[(t.getDay()+6)%7]?.id??`mon`,a=n?.[i],o=a?.active?a.slots:[],s=[{label:`Free`,value:`${String(SGt(e,t,o))}h`,color:`var(--color-primary)`,Icon:Jt},{label:`Busy`,value:`${String(r.busyHours)}h`,color:z9.busy.color,Icon:z9.busy.Icon},{label:`Meetings`,value:String(r.meetingCount),color:z9.meeting.color,Icon:z9.meeting.Icon},{label:`Focus`,value:`${String(r.focusHours)}h`,color:z9.focus.color,Icon:z9.focus.Icon}];return(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Z9.sideHeader,children:`Today`}),(0,D.jsx)(Zu.div,{className:Z9.summaryGrid,variants:XKt,initial:`hidden`,animate:`visible`,children:s.map(e=>(0,D.jsxs)(Zu.div,{className:Z9.summaryCard,style:Xn({"--v":e.color}),variants:ad,whileHover:{y:-2},children:[(0,D.jsxs)(`span`,{className:Z9.summaryTop,children:[(0,D.jsx)(e.Icon,{size:12,strokeWidth:2.4,className:Z9.summaryTopIcon}),(0,D.jsx)(`span`,{className:Z9.summaryLabel,children:e.label})]}),(0,D.jsx)(`span`,{className:Z9.summaryValue,children:e.value})]},e.label))})]})},QKt=({onQuickAdd:e})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Z9.sideHeader,children:`Quick add`}),(0,D.jsx)(`div`,{className:Z9.quickRow,children:[{status:`focus`,minutes:60,title:`Deep work`,label:`Focus 1h`},{status:`busy`,minutes:30,title:`Busy`,label:`Busy 30m`}].map(t=>{let n=z9[t.status];return(0,D.jsxs)(Zu.button,{type:`button`,whileTap:{scale:.96},className:Z9.quickBtn,style:Xn({"--status-color":n.color}),onClick:()=>{e(t.status,t.minutes,t.title)},children:[(0,D.jsx)(n.Icon,{size:11}),` `,t.label]},t.label)})})]}),$Kt=({activeStatuses:e,onToggleStatus:t})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Z9.sideHeader,children:`Status legend`}),(0,D.jsx)(`div`,{className:Z9.legend,children:sp.map(n=>{let r=z9[n.id],i=e.has(n.id);return(0,D.jsxs)(Zu.button,{type:`button`,whileTap:{scale:.97},className:E(Z9.legendItem,i?Z9.legendItemOn:Z9.legendOff),style:Xn({"--status-color":r.color}),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:E(Z9.legendSwatch,!i&&Z9.legendSwatchOff),children:(0,D.jsx)(Uu,{children:i&&(0,D.jsx)(Zu.span,{initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Bt,{size:11,strokeWidth:3})})})}),(0,D.jsx)(r.Icon,{size:12,className:Z9.legendIcon}),n.label]},n.id)})})]}),eqt=e=>(0,D.jsxs)(`aside`,{className:Z9.sidebar,children:[e.onClose!==void 0&&(0,D.jsxs)(`div`,{className:Z9.drawerHeader,children:[(0,D.jsx)(`span`,{className:Z9.drawerTitle,children:`Schedule Settings`}),(0,D.jsx)(`button`,{type:`button`,className:Z9.drawerCloseBtn,onClick:e.onClose,"aria-label":`Close schedule settings`,children:(0,D.jsx)(qn,{size:16})})]}),(0,D.jsx)(ZKt,{occurrences:e.occurrences,today:e.today,availability:e.availability}),(0,D.jsx)(QKt,{onQuickAdd:e.onQuickAdd}),(0,D.jsx)($Kt,{activeStatuses:e.activeStatuses,onToggleStatus:e.onToggleStatus})]}),tqt=(e,t,n,r)=>{let i=Math.min(e,t),a=Math.max(e,t);if(e===t){let e=r-1;return{firstDayIdx:i,lastDayIdx:a,startHour:Math.min(n,e),endHour:Math.max(n,e)+1}}return e>t?{firstDayIdx:i,lastDayIdx:a,startHour:r-1,endHour:n}:{firstDayIdx:i,lastDayIdx:a,startHour:n,endHour:r}},nqt=({item:e,range:t,onSelect:n})=>{let{occurrence:r}=e,{block:i}=r,a=z9[i.status],o=pGt(r.start,r.end,t),s=r.continuesFromPrevDay===!0,c=r.continuesToNextDay===!0,l=s?`Continued from the previous day`:c?`Continues into the next day`:void 0;return(0,D.jsxs)(Zu.button,{type:`button`,draggable:!0,title:l,onDragStartCapture:e=>{e.dataTransfer.setData(`text/plain`,i.id)},initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},transition:{duration:.18,ease:[.22,1,.36,1]},className:X9.block,style:{...Xn({"--status-color":a.color,"--top":`${String(o.top)}px`,"--h":`${String(o.height)}px`,"--lane":e.lane,"--lanes":e.lanes}),...s?{borderTopLeftRadius:0,borderTopRightRadius:0}:{},...c?{borderBottomLeftRadius:0,borderBottomRightRadius:0}:{}},onClick:()=>{n(i)},children:[(0,D.jsxs)(`span`,{className:X9.blockTitle,children:[s&&(0,D.jsx)(Wt,{size:10,"aria-hidden":!0}),` `,(0,D.jsx)(a.Icon,{size:10}),` `,i.title]}),o.height>=30&&(0,D.jsxs)(`span`,{className:X9.blockTime,children:[F9(r.start),` – `,F9(r.end),c&&(0,D.jsx)(Vt,{size:10,"aria-hidden":!0})]})]})},rqt=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=z9[n.status];return(0,D.jsxs)(`button`,{type:`button`,className:X9.allDayChip,style:Xn({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(r.Icon,{size:10}),` `,n.title]})},iqt=e=>`${String(e).padStart(2,`0`)}:00`,aqt=({bands:e,range:t,onSelectSlot:n,onSelectBlock:r})=>(0,D.jsx)(D.Fragment,{children:e.map(e=>{let i=e.block.allDay&&e.continuesFromPrevDay!==!0&&e.continuesToNextDay!==!0?{top:0,height:fGt(t)}:pGt(e.start,e.end,t);return(0,D.jsxs)(`div`,{className:X9.availabilityBand,style:Xn({"--top":`${String(i.top)}px`,"--h":`${String(i.height)}px`}),onClick:()=>{n(e.start,e.end)},children:[(0,D.jsxs)(`span`,{className:X9.availabilityBandLabel,children:[(0,D.jsx)(Bt,{size:11,strokeWidth:3}),` Available`]}),(0,D.jsx)(`button`,{type:`button`,className:X9.availabilityBandEditBtn,onClick:t=>{t.stopPropagation(),r(e.block)},children:`Edit`})]},e.key)})}),oqt=({day:e,cell:t,dayIndex:n,range:r,onDragSelectStart:i,onDragSelectEnter:a,onDropBlock:o,onSelectSlot:s})=>(0,D.jsx)(D.Fragment,{children:dGt(r).map(r=>(0,D.jsx)(`button`,{type:`button`,className:X9.hourRow,"aria-label":`Add a block on ${e.long} at ${B9(r)}`,onMouseDown:e=>{e.button===0&&(e.preventDefault(),i(n,r))},onMouseEnter:e=>{a(n,r,e.buttons)},onDragOver:e=>{e.preventDefault()},onDrop:e=>{let n=e.dataTransfer.getData(`text/plain`);n&&o(n,R9(rp(t.date),iqt(r)))},onClick:()=>{s(R9(rp(t.date),iqt(r)))}},r))}),sqt=e=>e===0?``:e===1?`1 event`:`${String(e)} events`,cqt=({day:e,cell:t,count:n,off:r})=>(0,D.jsxs)(`div`,{className:X9.dayHeader,children:[(0,D.jsx)(`span`,{className:E(X9.colDay,t.isToday&&X9.colDayToday),children:e.short}),(0,D.jsx)(`span`,{className:E(X9.dayNum,t.isToday&&X9.dayNumToday),children:t.dayNumber}),(0,D.jsx)(`span`,{className:X9.dayCount,children:r?`Day off`:sqt(n)})]}),lqt=({allDay:e,onSelectBlock:t})=>(0,D.jsx)(`div`,{className:X9.allDayBand,children:e.map(e=>(0,D.jsx)(rqt,{occurrence:e,onSelect:t},e.key))}),uqt=({dayIndex:e,dragSelect:t,rangeStartHour:n})=>t===null||e<Math.min(t.startDayIndex,t.endDayIndex)||e>Math.max(t.startDayIndex,t.endDayIndex)?null:(0,D.jsx)(`div`,{className:X9.dragSelectionHighlight,style:Xn({"--top":`${String((Math.min(t.startHour,t.endHour-1)-n)*52)}px`,"--h":`${String(Math.abs(t.endHour-t.startHour)*52)}px`}),children:(0,D.jsxs)(`span`,{className:X9.dragSelectionLabel,children:[B9(Math.min(t.startHour,t.endHour)),` –`,` `,B9(Math.max(t.startHour,t.endHour))]})}),dqt=(e,t)=>{let n=e.filter(e=>e.dayIndex===t);return{dayOccs:n,allDay:n.filter(e=>e.block.allDay&&e.block.status!==`available`),availabilityBands:n.filter(e=>e.block.status===`available`),laid:yGt(n.filter(e=>!e.block.allDay&&e.block.status!==`available`))}},fqt=({active:e,slots:t,range:n,cell:r,day:i,dayIndex:a,now:o,availabilityBands:s,laid:c,dragSelect:l,onDragSelectStart:u,onDragSelectEnter:d,onDropBlock:f,onSelectSlot:p,onSelectBlock:m})=>{let h=hGt(e,t,n),g=r.isToday?gGt(o,n):null;return(0,D.jsxs)(`div`,{className:X9.hoursWrap,style:Xn({"--grid-h":`${String(fGt(n))}px`}),children:[h.map(e=>(0,D.jsx)(`div`,{className:X9.workBand,style:Xn({"--top":`${String(e.top)}px`,"--h":`${String(e.height)}px`})},e.top)),(0,D.jsx)(aqt,{bands:s,range:n,onSelectSlot:p,onSelectBlock:m}),(0,D.jsx)(oqt,{day:i,cell:r,dayIndex:a,range:n,onDragSelectStart:u,onDragSelectEnter:d,onDropBlock:f,onSelectSlot:p}),(0,D.jsx)(uqt,{dayIndex:a,dragSelect:l,rangeStartHour:n.startHour}),g!==null&&(0,D.jsx)(`div`,{className:X9.nowLine,style:Xn({"--top":`${String(g)}px`}),children:(0,D.jsx)(`span`,{className:X9.nowDot})}),c.map(e=>(0,D.jsx)(nqt,{item:e,range:n,onSelect:m},e.occurrence.key))]})},pqt=e=>{let{day:t,cell:n,dayIndex:r,occurrences:i,onSelectBlock:a,active:o}=e,{dayOccs:s,allDay:c,availabilityBands:l,laid:u}=dqt(i,r),d=!o;return(0,D.jsxs)(`div`,{className:E(X9.dayCol,n.isToday&&X9.dayColToday),children:[(0,D.jsx)(cqt,{day:t,cell:n,count:s.length,off:d}),(0,D.jsx)(lqt,{allDay:c,onSelectBlock:a}),(0,D.jsx)(fqt,{...e,availabilityBands:l,laid:u})]})},mqt=({range:e})=>(0,D.jsxs)(`div`,{className:X9.gutter,children:[(0,D.jsx)(`div`,{className:X9.gutterHead}),(0,D.jsx)(`div`,{className:X9.gutterAllDay,children:`all-day`}),Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n).map(e=>(0,D.jsx)(`div`,{className:X9.gutterHour,children:B9(e)},e))]}),hqt=(e,t)=>{let[n,r]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let i=()=>{if(n!==null){let{firstDayIdx:i,lastDayIdx:a,startHour:o,endHour:s}=tqt(n.startDayIndex,n.endDayIndex,n.startHour,n.endHour),c=e[i],l=e[a];c&&l&&t(R9(rp(c.date),`${String(o).padStart(2,`0`)}:00`),R9(rp(l.date),`${String(s).padStart(2,`0`)}:00`)),r(null)}};return window.addEventListener(`mouseup`,i),()=>{window.removeEventListener(`mouseup`,i)}},[n,e,t]),{dragSelect:n,startDrag:(e,t)=>{r({startDayIndex:e,endDayIndex:e,startHour:t,endHour:t+1})},enterDrag:(e,t,i)=>{if(n!==null){if(i!==1){r(null);return}r({...n,endDayIndex:e,endHour:t+1})}}}},gqt=e=>{let t=Jm();return{dropBlock:(n,r)=>{let i=e.find(e=>e.block.id===n);if(!i)return;let a=i.block.durationMinutes,o=new Date(new Date(r).getTime()+a*6e4).toISOString();t.mutate({id:n,draft:{title:i.block.title,status:i.block.status,start:r,end:o,allDay:i.block.allDay,notes:i.block.notes,recurrence:i.block.recurrence}})}}},_qt=e=>({active:e?e.active:!0,slots:e?.slots??[{from:`09:00`,to:`17:00`}]}),vqt=({days:e,cells:t,occurrences:n,availability:r,workStart:i,workEnd:a,range:o,now:s,onSelectBlock:c,onSelectSlot:l})=>{let u=(0,y.useRef)(null),{dragSelect:d,startDrag:f,enterDrag:p}=hqt(t,l),{dropBlock:m}=gqt(n),h=(0,y.useRef)(s);h.current=s;let{startHour:g,endHour:_}=o,v=s.getHours()*60+s.getMinutes(),b=t.some(e=>e.isToday)&&v>=g*60&&v<=_*60;(0,y.useEffect)(()=>{let e=u.current;if(e===null)return;let t=b?vGt(h.current,g):_Gt(i,a,g);e.scrollTo({top:Math.max(0,Math.min(t,e.scrollHeight-e.clientHeight))})},[g,i,a,b]);let x=Math.max(1,...e.map(e=>{let t=Qf.findIndex(t=>t.id===e.id);return n.filter(e=>e.dayIndex===t&&e.block.allDay).length}));return(0,D.jsx)(`div`,{className:X9.gridScroll,ref:u,children:(0,D.jsxs)(`div`,{className:X9.gridInner,style:Xn({"--all-day-rows":x}),children:[(0,D.jsx)(mqt,{range:o}),e.map(e=>{let i=Qf.findIndex(t=>t.id===e.id),a=t[i]??t[0];if(a===void 0)return null;let{active:u,slots:h}=_qt(r?r[e.id]:null);return(0,D.jsx)(pqt,{day:e,cell:a,dayIndex:i,active:u,slots:h,range:o,now:s,occurrences:n,dragSelect:d,onDragSelectStart:f,onDragSelectEnter:p,onDropBlock:m,onSelectBlock:c,onSelectSlot:l},e.id)})]})})},yqt=[{id:`day`,label:`Day`},{id:`week`,label:`Week`},{id:`workweek`,label:`Work Week`},{id:`month`,label:`Month`},{id:`agenda`,label:`Agenda`},{id:`hours`,label:`Working Hours`}],bqt=e=>e===`month`||e===`agenda`,xqt=(e,t)=>{let n=new Set(e);return t===`agenda`?n.delete(`available`):t!==`hours`&&n.add(`available`),n},Sqt=(e,t)=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n},Cqt=()=>{let[e,t]=(0,y.useState)(`week`),[n,r]=(0,y.useState)(0),[i,a]=(0,y.useState)(0),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(()=>new Set(sp.map(e=>e.id))),[u,d]=(0,y.useState)(``),f=nh(u).display;return{view:e,setView:e=>{t(e),l(t=>xqt(t,e))},dayOffset:n,monthOffset:i,goPrev:()=>{bqt(e)?a(e=>e-1):r(e===`day`?e=>e-1:e=>e-7)},goNext:()=>{bqt(e)?a(e=>e+1):r(e===`day`?e=>e+1:e=>e+7)},goToday:()=>{r(0),a(0)},active:c,toggle:e=>{l(t=>Sqt(t,e))},editor:o,openCreate:(e,t)=>{s({mode:`create`,start:e,...t===void 0?{}:{end:t}})},openQuick:(e,t,n)=>{let r=new Date(TGt(new Date().toISOString(),f));r.setSeconds(0,0),r.setMinutes(Math.ceil(r.getMinutes()/5)*5);let i=new Date(r.getTime()+t*6e4);s({mode:`create`,start:r.toISOString(),end:i.toISOString(),status:e,title:n})},openEdit:e=>{s({mode:`edit`,block:e})},closeEditor:()=>{s(null)},timezone:f,setTimezone:d}},Q9={scheduleRoot:`_scheduleRoot_5za8e_7`,toolbar:`_toolbar_5za8e_16`,scheduleSelect:`_scheduleSelect_5za8e_27`,weekNav:`_weekNav_5za8e_39`,dateLabel:`_dateLabel_5za8e_45`,navBtn:`_navBtn_5za8e_54`,todayBtn:`_todayBtn_5za8e_75`,viewChips:`_viewChips_5za8e_92`,viewChip:`_viewChip_5za8e_92`,viewChipBg:`_viewChipBg_5za8e_119`,viewChipLabel:`_viewChipLabel_5za8e_128`,viewChipActive:`_viewChipActive_5za8e_134`,newBtn:`_newBtn_5za8e_140`,main:`_main_5za8e_156`,calArea:`_calArea_5za8e_163`,hoursArea:`_hoursArea_5za8e_172`,sidebarToggleBtn:`_sidebarToggleBtn_5za8e_181`,sidebarToggleBtnActive:`_sidebarToggleBtnActive_5za8e_199`},wqt=e=>e.view===`month`?(0,D.jsx)(YKt,{dates:e.monthDates,anchor:e.monthAnchor,occurrences:e.monthOccurrences,today:e.today,onSelectBlock:e.onSelectBlock,onSelectSlot:e.onSelectSlot}):e.view===`agenda`?(0,D.jsx)(WKt,{occurrences:e.monthOccurrences,onSelectBlock:e.onSelectBlock,onCreate:e.onCreate}):(0,D.jsx)(vqt,{days:e.days,cells:e.cells,occurrences:e.weekOccurrences,availability:e.availability,workStart:e.workStart,workEnd:e.workEnd,range:e.range,now:e.today,onSelectBlock:e.onSelectBlock,onSelectSlot:e.onSelectSlot}),Tqt=e=>{let t=er(`(max-width: 1024px)`);return(0,D.jsxs)(`div`,{className:Q9.main,children:[(0,D.jsxs)(`div`,{className:Q9.calArea,children:[e.query.isPending&&(0,D.jsx)(`div`,{className:W9.center,children:(0,D.jsx)(rr,{label:`Loading schedule`})}),e.query.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not load schedule`,children:e.query.error.message}),e.query.isSuccess&&wqt(e)]}),!t&&(0,D.jsx)(eqt,{occurrences:e.summary,today:e.today,availability:e.availability,workStart:e.workStart,workEnd:e.workEnd,activeStatuses:e.active,onToggleStatus:e.onToggle,onQuickAdd:e.onQuickAdd}),t&&(0,D.jsx)(tce,{open:e.isSidebarOpen??!1,onOpenChange:t=>{!t&&e.onCloseSidebar!==void 0&&e.onCloseSidebar()},title:`Schedule Settings`,side:`right`,children:(0,D.jsx)(eqt,{occurrences:e.summary,today:e.today,availability:e.availability,workStart:e.workStart,workEnd:e.workEnd,activeStatuses:e.active,onToggleStatus:e.onToggle,onQuickAdd:e.onQuickAdd,onClose:e.onCloseSidebar})})]})},Eqt=(e,t)=>e.meetingDuration!==t.meetingDuration||e.bufferMinutes!==t.bufferMinutes,Dqt=(e,t,n)=>{let r=th.from({personal:t.timezone,anchor:t.availabilityTimezone});return{anchorZone:r.anchor,initialTimezone:r.display,initialInZone:J9(e,r.anchor,r.display,n)}},Oqt=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]={active:r.active,slots:r.slots.map(e=>({from:e.from,to:e.to}))};return t},kqt=(e,t,n)=>{let r=mve(),i=_ve(),[a]=(0,y.useState)(()=>n.now()),[{anchorZone:o,initialTimezone:s,initialInZone:c}]=(0,y.useState)(()=>Dqt(e,t,a)),[l,u]=(0,y.useState)(c),[d,f]=(0,y.useState)(s),[p,m]=(0,y.useState)(t.meetingDuration),[h,g]=(0,y.useState)(t.bufferMinutes),_=J9(l,d,o,a),v=JSON.stringify(Oqt(_))!==JSON.stringify(Oqt(e)),b=Eqt({meetingDuration:p,bufferMinutes:h},t);return(0,y.useEffect)(()=>{r.isSuccess&&u(J9(e,o,d,a))},[e,r.isSuccess,o,d,a]),(0,y.useEffect)(()=>{i.isSuccess&&(m(t.meetingDuration),g(t.bufferMinutes))},[t,i.isSuccess]),{draft:l,timezone:d,meetingDuration:p,bufferMinutes:h,now:a,dirty:v||b,isSaving:r.isPending||i.isPending,isSuccess:r.isSuccess||i.isSuccess,isError:r.isError||i.isError,errorMsg:r.error?.message??i.error?.message??``,setMeetingDuration:m,setBufferMinutes:g,patchDay:(e,t)=>{r.reset(),i.reset(),u(n=>({...n,[e]:{...n[e],...t}}))},changeTimezone:e=>{r.reset(),i.reset(),u(t=>J9(t,d,e,a)),f(e)},reset:()=>{r.mutate(null,{onSuccess:()=>{Nf.success(`Reverted to your branch default hours.`)},onError:()=>{Nf.error(`Could not revert to branch defaults. Please try again.`)}})},onSave:()=>{r.reset(),i.reset(),v&&r.mutate(_),b&&i.mutate({...t,meetingDuration:p,bufferMinutes:h})}}},$9={hours:`_hours_ftj0h_5`,fieldLabel:`_fieldLabel_ftj0h_18`,chips:`_chips_ftj0h_24`,chipBtn:`_chipBtn_ftj0h_30`,chipBtnActive:`_chipBtnActive_ftj0h_50`,chipBg:`_chipBg_ftj0h_56`,chipLabel:`_chipLabel_ftj0h_64`,dayRow:`_dayRow_ftj0h_69`,toggle:`_toggle_ftj0h_77`,toggleOn:`_toggleOn_ftj0h_90`,toggleKnob:`_toggleKnob_ftj0h_95`,dayName:`_dayName_ftj0h_102`,overflowLabel:`_overflowLabel_ftj0h_112`,dayTimes:`_dayTimes_ftj0h_119`,timeInput:`_timeInput_ftj0h_127`,resetBtn:`_resetBtn_ftj0h_144`,readonlyField:`_readonlyField_ftj0h_162`,fieldHint:`_fieldHint_ftj0h_175`,formFooter:`_formFooter_ftj0h_180`,formStatus:`_formStatus_ftj0h_188`,saveBtn:`_saveBtn_ftj0h_194`,inheritedBanner:`_inheritedBanner_ftj0h_212`,inheritedBadge:`_inheritedBadge_ftj0h_218`,badgeSub:`_badgeSub_ftj0h_229`,customBadge:`_customBadge_ftj0h_234`,customBadgeText:`_customBadgeText_ftj0h_247`,resetToBranchBtn:`_resetToBranchBtn_ftj0h_251`,settingsGrid:`_settingsGrid_ftj0h_271`},Aqt=({name:e,options:t,selected:n,onSelect:r})=>(0,D.jsx)(`div`,{className:$9.chips,children:t.map(t=>{let i=n===t;return(0,D.jsxs)(`button`,{type:`button`,className:E($9.chipBtn,i&&$9.chipBtnActive),onClick:()=>{r(t)},children:[i&&(0,D.jsx)(Zu.span,{layoutId:`chip-${e}`,className:$9.chipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsxs)(`span`,{className:$9.chipLabel,children:[t,`m`]})]},t)})}),jqt=({meetingDuration:e,bufferMinutes:t,onDurationChange:n,onBufferChange:r})=>(0,D.jsxs)(`div`,{className:$9.settingsGrid,children:[(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Meeting duration`}),(0,D.jsx)(Aqt,{name:`duration`,options:the,selected:e,onSelect:n})]}),(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Buffer between meetings`}),(0,D.jsx)(Aqt,{name:`buffer`,options:nhe,selected:t,onSelect:r})]})]}),Mqt=({slot:e,index:t,slots:n,active:r,onChange:i})=>{let a=n[t-1],o=n[t+1],s=a===void 0?void 0:a.to,c=e.to,l=e.from,u=o===void 0?void 0:o.from;return(0,D.jsxs)(`div`,{className:$9.dayTimes,children:[(0,D.jsx)(Uf,{value:e.from,minTime:s,maxTime:c,disabled:!r,onChange:r=>{let a=[...n];a[t]={...e,from:r},i(a)}}),(0,D.jsx)(`span`,{className:W9.dash,children:`–`}),(0,D.jsx)(Uf,{value:e.to,minTime:l,maxTime:u,disabled:!r,align:`end`,onChange:r=>{let a=[...n];a[t]={...e,to:r},i(a)}}),(0,D.jsx)(`button`,{type:`button`,className:$9.resetBtn,disabled:!r||n.length===1,onClick:()=>{i(n.filter((e,n)=>n!==t))},children:`Delete`})]})},Nqt=({day:e,value:t,onChange:n})=>(0,D.jsxs)(`div`,{className:$9.dayRow,children:[(0,D.jsx)(`button`,{type:`button`,className:E($9.toggle,t.active&&$9.toggleOn),"aria-pressed":t.active,onClick:()=>{n({active:!t.active})},children:(0,D.jsx)(`span`,{className:$9.toggleKnob})}),(0,D.jsx)(`span`,{className:$9.dayName,children:e.long}),(0,D.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`8px`,flex:1},children:[t.slots.map((e,r)=>(0,D.jsx)(Mqt,{slot:e,index:r,slots:t.slots,active:t.active,onChange:e=>{n({slots:e})}},e.id)),(0,D.jsx)(`button`,{type:`button`,className:$9.resetBtn,style:{alignSelf:`flex-start`,margin:0},disabled:!t.active,onClick:()=>{let e=t.slots[t.slots.length-1],r=`09:00`,i=`17:00`;e!==void 0&&e.to<`22:00`&&(r=e.to,i=`23:00`),n({slots:[...t.slots,{id:crypto.randomUUID(),from:r,to:i}]})},children:`+ Add Time`})]}),(0,D.jsxs)(`button`,{type:`button`,className:$9.resetBtn,onClick:()=>{n({active:!0,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]})},children:[(0,D.jsx)(On,{size:13}),` Reset`]})]}),Pqt=({timezone:e,branchName:t,now:n,onTimezoneChange:r})=>(0,D.jsxs)(`div`,{className:$9.settingsGrid,children:[(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Timezone`}),(0,D.jsx)(BKt,{value:e,now:n,onChange:r}),(0,D.jsx)(`span`,{className:$9.fieldHint,children:`Preview only — set your saved timezone in Profile`})]}),(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Home Branch`}),(0,D.jsx)(`div`,{className:$9.readonlyField,children:t}),(0,D.jsx)(`span`,{className:$9.fieldHint,children:`Assigned from your UAPP account`})]})]}),Fqt=({isOverride:e,branchName:t,onReset:n})=>(0,D.jsx)(`div`,{className:$9.inheritedBanner,children:e?(0,D.jsxs)(`div`,{className:$9.customBadge,children:[(0,D.jsxs)(`span`,{className:$9.customBadgeText,children:[`Customized Working Hours (overrides `,t,`)`]}),(0,D.jsxs)(`button`,{type:`button`,className:$9.resetToBranchBtn,onClick:n,children:[(0,D.jsx)(Hn,{size:13}),` Use Branch Defaults`]})]}):(0,D.jsxs)(`div`,{className:$9.inheritedBadge,children:[(0,D.jsxs)(`span`,{children:[`Inheriting default hours from `,(0,D.jsx)(`strong`,{children:t})]}),(0,D.jsx)(`span`,{className:$9.badgeSub,children:`Modifying the hours below will create a personal override.`})]})}),Iqt=({statusText:e,disabled:t,onClick:n})=>(0,D.jsxs)(`div`,{className:$9.formFooter,children:[(0,D.jsx)(`span`,{className:$9.formStatus,children:e}),(0,D.jsx)(`button`,{type:`button`,className:$9.saveBtn,disabled:t,onClick:n,children:`Save changes`})]}),Lqt=(e,t)=>e?`Unsaved changes`:t?`Saved`:``,Rqt=({initial:e,isOverride:t,branchName:n,prefs:r})=>{let{clock:i}=Gm(),a=kqt(e,r,i),o=Lqt(a.dirty,a.isSuccess);return(0,D.jsxs)(`div`,{className:$9.hours,children:[(0,D.jsx)(Pqt,{timezone:a.timezone,branchName:n,now:a.now,onTimezoneChange:a.changeTimezone}),(0,D.jsx)(jqt,{meetingDuration:a.meetingDuration,bufferMinutes:a.bufferMinutes,onDurationChange:a.setMeetingDuration,onBufferChange:a.setBufferMinutes}),(0,D.jsx)(Fqt,{isOverride:t,branchName:n,onReset:a.reset}),Qf.map(e=>(0,D.jsx)(Nqt,{day:e,value:a.draft[e.id],onChange:t=>{a.patchDay(e.id,t)}},e.id)),a.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not save`,children:a.errorMsg}),(0,D.jsx)(Iqt,{statusText:o,disabled:!a.dirty||a.isSaving,onClick:a.onSave})]})},zqt=(e,t,n)=>e?.message??t?.message??n?.message??`Unknown error`,Bqt=(e,t)=>e?.branches.find(e=>e.id===t)?.name??`your branch`,Vqt=()=>{let e=pve(),t=Ah(),n=Ym();if(e.isPending||t.isPending||n.isPending)return(0,D.jsx)(`div`,{className:W9.center,children:(0,D.jsx)(rr,{label:`Loading working hours`})});if(e.isError||t.isError||n.isError)return(0,D.jsx)(sr,{tone:`error`,title:`Could not load working hours`,children:zqt(e.error,t.error,n.error)});let r=Bqt(t.data,n.data.branchId);return(0,D.jsx)(Rqt,{initial:e.data.weekly,isOverride:e.data.isOverride,branchName:r,prefs:n.data},`${String(e.data.isOverride)}:${e.data.source}`)},Hqt={workStart:`09:00`,workEnd:`17:00`,branchId:`uk`},Uqt=(e,t)=>e===`day`?Qf.slice(t,t+1):e===`workweek`?Qf.slice(0,5):Qf,Wqt=e=>{let[t]=e.split(`:`);return Number(t??`0`)},Gqt=(e,t,n)=>{if(e!==null)return e;if(t){let e=Ibe(t,n),r={};for(let t of Qf){let n=e[t.id];r[t.id]={active:n.active,slots:[{id:crypto.randomUUID(),from:n.from,to:n.to}]}}return r}let r={};for(let e of Qf)r[e.id]={active:e.id!==`sat`&&e.id!==`sun`,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]};return r},Kqt=(e,t,n,r)=>t!==``&&t!==n?J9(e,t,n,r):e,qqt=e=>{let t=Object.values(e).filter(e=>e.active).flatMap(e=>e.slots),n=t.length>0?Math.min(...t.map(e=>Wqt(e.from))):9,r=t.length>0?Math.max(...t.map(e=>Wqt(e.to))):17;return{workStart:`${String(Math.max(0,n)).padStart(2,`0`)}:00`,workEnd:`${String(Math.min(24,r)).padStart(2,`0`)}:00`}},Jqt=(e,t)=>(0,y.useMemo)(()=>{let n=e??[],r=Zm();if(t===r)return n;let i=e=>{let n=new Date(e),i=$m(t,n)-$m(r,n);return i===0?e:new Date(n.getTime()+i*6e4).toISOString()};return n.map(e=>new op({id:e.id,userId:e.userId,title:e.title,status:e.status,start:i(e.start),end:i(e.end),allDay:e.allDay,notes:e.notes,recurrence:e.recurrence}))},[e,t]),Yqt=e=>{let t=qm(),n=fve().data??null,r=Ym().data,i=r??Hqt,a=Ah(),o=new Date,s=$m(e.timezone,o)-$m(Zm(),o),c=new Date(o.getTime()+s*6e4),l=e.view===`month`||e.view===`agenda`,u=t=>e.active.has(t.block.status),d=i.branchId,f=Kqt((0,y.useMemo)(()=>Gqt(n,a.data,d),[n,a.data,d]),r?.availabilityTimezone??``,e.timezone,o),{workStart:p,workEnd:m}=qqt(f),h=e.timezone,g=Jqt(t.data,h),_=(c.getDay()+6)%7,v=Math.floor((e.dayOffset+_)/7),b=((e.dayOffset+_)%7+7)%7,x=cp(g,N9(c,v)),S=oGt(c,e.monthOffset),C=uhe(S[0]??c,S[S.length-1]??c,g),w=new Date(c);return w.setSeconds(0,0),w.setMinutes(Math.ceil(w.getMinutes()/30)*30),{query:t,today:c,days:Uqt(e.view,b),cells:nGt(c,v),weekOccurrences:x.filter(u),availability:f,workStart:p,workEnd:m,range:uGt(x,p,m),monthDates:S,monthAnchor:iGt(c,e.monthOffset),monthOccurrences:C.filter(u),summary:l?C:x,rangeText:l?aGt(c,e.monthOffset):rGt(c,v),defaultStart:w.toISOString()}},Xqt=({view:e,onView:t})=>(0,D.jsx)(`div`,{className:Q9.viewChips,children:yqt.map(n=>{let r=e===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:E(Q9.viewChip,r&&Q9.viewChipActive),onClick:()=>{t(n.id)},children:[r&&(0,D.jsx)(Zu.span,{layoutId:`schedViewBg`,className:Q9.viewChipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:Q9.viewChipLabel,children:n.label})]},n.id)})}),Zqt=({view:e,onView:t,rangeText:n,showNav:r,onPrev:i,onNext:a,onToday:o,onNew:s,timezone:c,setTimezone:l,todayDate:u,onToggleSidebar:d,isSidebarOpen:f})=>(0,D.jsxs)(`div`,{className:Q9.toolbar,children:[(0,D.jsx)(`select`,{className:Q9.scheduleSelect,"aria-label":`Calendar`,defaultValue:`my`,children:(0,D.jsx)(`option`,{value:`my`,children:`My Schedule`})}),e!==`hours`&&(0,D.jsx)(BKt,{value:c,onChange:l,now:u}),r&&(0,D.jsxs)(`div`,{className:Q9.weekNav,children:[(0,D.jsx)(`button`,{type:`button`,className:Q9.todayBtn,onClick:o,children:`Today`}),(0,D.jsx)(`button`,{type:`button`,className:Q9.navBtn,"aria-label":`Previous week`,onClick:i,children:(0,D.jsx)(Ht,{size:16})}),(0,D.jsx)(`button`,{type:`button`,className:Q9.navBtn,"aria-label":`Next week`,onClick:a,children:(0,D.jsx)(Ut,{size:16})}),(0,D.jsx)(`span`,{className:Q9.dateLabel,children:n})]}),e!==`hours`&&d!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:E(Q9.sidebarToggleBtn,f&&Q9.sidebarToggleBtnActive),"aria-label":`Schedule settings`,title:`Schedule settings`,onClick:d,children:(0,D.jsx)(Oee,{size:15})}),(0,D.jsx)(Xqt,{view:e,onView:t}),(0,D.jsxs)(`button`,{type:`button`,className:Q9.newBtn,onClick:s,children:[(0,D.jsx)(En,{size:14,strokeWidth:2.5}),` New`]})]}),Qqt=()=>{let[e,t]=(0,y.useState)(!1),n=Cqt(),r=Yqt(n),i=()=>{n.openCreate(r.defaultStart)};return(0,D.jsxs)(`div`,{className:Q9.scheduleRoot,children:[(0,D.jsx)(Zqt,{view:n.view,onView:n.setView,rangeText:r.rangeText,showNav:n.view!==`hours`,onPrev:n.goPrev,onNext:n.goNext,onToday:n.goToday,onNew:i,timezone:n.timezone,setTimezone:n.setTimezone,todayDate:r.today,onToggleSidebar:()=>{t(e=>!e)},isSidebarOpen:e}),n.view===`hours`?(0,D.jsx)(`div`,{className:Q9.hoursArea,children:(0,D.jsx)(Vqt,{})}):(0,D.jsx)(Tqt,{query:r.query,view:n.view,today:r.today,days:r.days,cells:r.cells,weekOccurrences:r.weekOccurrences,availability:r.availability,workStart:r.workStart,workEnd:r.workEnd,range:r.range,monthDates:r.monthDates,monthAnchor:r.monthAnchor,monthOccurrences:r.monthOccurrences,summary:r.summary,active:n.active,onToggle:n.toggle,onSelectBlock:n.openEdit,onSelectSlot:n.openCreate,onCreate:i,onQuickAdd:n.openQuick,isSidebarOpen:e,onCloseSidebar:()=>{t(!1)}}),n.editor!==null&&(0,D.jsx)(CKt,{state:n.editor,timezone:n.timezone,onClose:n.closeEditor})]})},$qt=()=>{m9(`uapp-schedule`,()=>(0,D.jsx)(QHt,{path:`/comms/schedule`,children:(0,D.jsx)(Qqt,{})}))},eJt=6e4,tJt=e=>{let t=e.logger??new mp(`info`),n=new Xm,r,i=0,a=new Che(new yhe(new fp({logger:t,baseUrl:e.apiBaseUrl,getAuthToken:()=>r}),{timeoutMs:2e4,logger:t}),{logger:t}),o=new tPt({httpClient:a,clock:n,logger:t,clientKey:e.clientKey,modules:e.modules});return{httpClient:a,logger:t,token:async()=>{if(r!==void 0&&n.now().getTime()<i-eJt)return r;let a=await e.getAssertion(),s=await o.exchangeSsoSecret(a);if(!s.ok){t.error(`Could not exchange the assertion for a token`,s.error);return}return r=s.value.accessToken,i=s.value.expiresAt.getTime(),r},currentToken:()=>r}},nJt=`/api/app/notification`,rJt=async(e,t)=>{try{let t=await e.get(nJt);return(Array.isArray(t)?t:[]).map(Wzt).filter(e=>e!==null)}catch(e){return t.error(`Could not load unread notifications`,e),[]}},iJt=(e,t,n)=>new mFt({logger:t}).create({url:`${e}/signalr/notifications`,accessTokenProvider:n});e.CommsProvider=Jzt,e.SDK_MODULE_SCOPES=aPt,e.WidgetRoot=Yzt,e.createNotificationClient=e=>{let t=tJt({apiBaseUrl:e.apiBaseUrl,clientKey:e.clientKey,getAssertion:e.getAssertion,modules:e.modules??[`commhub.feed`],...e.logger===void 0?{}:{logger:e.logger}}),{httpClient:n,logger:r,token:i}=t,a=null,o=null,s=[];return{start:async()=>{a===null&&await i()!==void 0&&(s=await rJt(n,r),s.forEach(e.onNotification),a=iJt(e.apiBaseUrl,r,t.currentToken),o=a.on(BLt.ReceiveNotification,t=>{let n=Wzt(t);if(n===null){r.error(`Discarded a malformed notification payload`,{rawPayload:t});return}s=[n,...s.filter(e=>e.id!==n.id)],e.onNotification(n)}),await a.start())},stop:async()=>{o?.(),o=null,await a?.stop(),a=null},markAsRead:async e=>{await i()!==void 0&&(await n.post(`${nJt}/${e}/mark-as-read`,{}),s=s.filter(t=>t.id!==e))},unread:()=>s}},e.createPresenceClient=e=>{let t=tJt({apiBaseUrl:e.apiBaseUrl,clientKey:e.clientKey,getAssertion:e.getAssertion,modules:e.modules??[`commhub.chat`],...e.logger===void 0?{}:{logger:e.logger}}),n=new HSe({httpClient:t.httpClient,logger:t.logger}),r=async e=>{if(await t.token()===void 0)return null;let n=await e();return lme(n)?n.value:null};return{getMine:()=>r(()=>n.getMine()),setMine:e=>r(()=>n.setMine(e)),clearMine:()=>r(()=>n.clearMine()),getOf:async e=>{if(await t.token()===void 0)return null;let r=await n.getOf(e);return lme(r)?r.value:null}}},e.defineCustomElements=()=>{iBt(),$Ht(),tGt(),$qt()},e.registerBookingsWidget=tGt,e.registerChatWidget=iBt,e.registerFeedWidget=$Ht,e.registerScheduleWidget=$qt});
|
|
2098
|
+
);--icon-size:var(--rtk-controlbar-button-icon-size, var(--rtk-space-7, 28px));position:relative;box-sizing:border-box;display:inline-flex;height:100%;width:auto;min-width:var(--rtk-space-20, 80px);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:var(--rtk-border-radius-md, 8px);transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;color:rgb(var(--rtk-colors-text-1000, 255 255 255));background-color:var(--background-color)}button{padding:var(--rtk-space-1, 4px)}:host(.red-icon) #icon{--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}:host([disabled]){color:rgb(var(--rtk-colors-text-600, 255 255 255 / 0.52))}button{box-sizing:border-box;display:inline-flex;height:100%;width:100%;flex:1 1 0%;flex-direction:column;gap:var(--rtk-space-1, 4px);padding-left:var(--rtk-space-1, 4px);padding-right:var(--rtk-space-1, 4px);align-items:center;justify-content:center;cursor:pointer;border-radius:var(--rtk-border-radius-md, 8px);border-width:var(--rtk-border-width-none, 0);border-style:none;background-color:transparent;color:inherit;outline-offset:-2px;border:var(--rtk-border-width-md, 2px) solid transparent}.label{text-align:center;font-size:12px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}#warning-indicator{position:absolute;top:var(--rtk-space-1, 4px);right:var(--rtk-space-2, 8px);height:var(--rtk-space-4, 16px);width:var(--rtk-space-4, 16px);--tw-text-opacity:1;color:rgba(var(--rtk-colors-warning, 255 205 7) / var(--tw-text-opacity))}:host([size='sm']) #warning-indicator{right:var(--rtk-space-0, 0px);top:var(--rtk-space-0, 0px);height:var(--rtk-space-3, 12px);width:var(--rtk-space-3, 12px)}:host(:hover) button{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-800, 30 30 30) / var(--tw-bg-opacity))}#icon{width:var(--icon-size);height:var(--icon-size)}:host(.leave:hover) button{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-1000, 8 8 8) / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity));border:var(--rtk-border-width-md, 2px) solid rgb(var(--rtk-colors-danger, 255 45 45))}:host(.active) button{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-400, 53 110 253) / var(--tw-text-opacity));border:var(--rtk-border-width-md, 2px) solid rgb(var(--rtk-colors-brand-400, 53 110 253))}button:focus-visible{outline:2px solid rgb(var(--rtk-colors-brand-400, 53 110 253))}:host(.active-livestream){--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}:host([size='sm']){min-width:var(--rtk-space-14, 56px)}:host([size='sm']) .label{display:none}:host([variant='horizontal']){width:100%}:host([variant='horizontal']) button{border-radius:7px;height:var(--rtk-space-12, 48px);width:100%;padding-left:var(--rtk-space-5, 20px);padding-right:var(--rtk-space-5, 20px);padding-top:var(--rtk-space-3, 12px);padding-bottom:var(--rtk-space-3, 12px);flex-direction:row;justify-content:flex-start;gap:var(--rtk-space-3, 12px)}:host([variant='horizontal']) #icon{width:var(--rtk-space-6, 24px)}:host([variant='horizontal']) .label{display:block;font-size:14px;line-height:1.25rem}:host([variant='horizontal']) #warning-indicator{right:auto;left:var(--rtk-space-4, 16px)}:host([brand-icon]) rtk-icon#icon{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-text-opacity))}@media only screen and (max-device-height: 480px) and (orientation: landscape){:host .label{display:none}:slotted(rtk-icon){height:var(--rtk-space-4, 16px);width:var(--rtk-space-4, 16px)}}`,_Dt=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},e7=class{constructor(e){J(this,e),this.variant=`button`,this.showWarning=!1,this.disabled=!1,this.iconPack=O$,this.brandIcon=!1}render(){return Y(X,{key:`90cbc7f04dd7975ef7331aace992aeadd1fdba52`},Y(`button`,{key:`36ea971cf7d69742346dd6a65b41ef57def59a40`,"aria-label":this.label,part:`button`},this.isLoading?Y(`rtk-spinner`,{id:`icon`,part:`spinner`,iconPack:this.iconPack}):Y(`rtk-icon`,{id:`icon`,icon:this.icon,tabIndex:-1,"aria-hidden":!0,part:`icon`}),Y(`span`,{key:`83dda2888c01eec119c1cc21921a682cc2111307`,class:`label`,part:`label`},this.label),this.showWarning&&Y(`rtk-icon`,{key:`abddcd4d3c81f7ba09cc4595c98cb55c76d678ad`,id:`warning-indicator`,icon:this.iconPack.warning,part:`warning-indicator`})))}static get delegatesFocus(){return!0}},_Dt([K()],e7.prototype,`iconPack`,void 0),e7.style=gDt,vDt=Object.freeze({__proto__:null,rtk_controlbar_button:e7})})),bDt=s((()=>{yDt(),(function(){if(typeof window<`u`&&window.Reflect!==void 0&&window.customElements!==void 0){var e=HTMLElement;window.HTMLElement=function(){return Reflect.construct(e,[],this.constructor)},HTMLElement.prototype=e.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,e)}})()})),xDt,SDt=s((()=>{Lat(),bDt(),xht(),xDt=Pat(`rtk-participants-audio`)})),CDt=s((()=>{SDt()})),wDt=s((()=>{xat(),CDt()})),TDt=l({RealtimeKitCallMedia:()=>DDt}),t7,n7,EDt,DDt,ODt=s((()=>{t7=d(m(),1),vGe(),wDt(),n7=tr(),EDt=(e,t)=>{(0,t7.useEffect)(()=>{if(e===void 0)return;let n=()=>{e.participants.joined.size===0&&t()};return e.participants.joined.on(`participantLeft`,n),()=>{e.participants.joined.off(`participantLeft`,n)}},[e,t])},DDt=({ticket:e,muted:t,onConnected:n,onEnded:r})=>{let[,i]=_Ge(),[a,o]=(0,t7.useState)(void 0),s=(0,t7.useRef)(!1);return(0,t7.useEffect)(()=>{s.current||(s.current=!0,i({authToken:e.token,defaults:{audio:!0,video:!1}}).then(async e=>{if(e===void 0){r();return}o(e);try{await e.joinRoom()}catch{r()}}).catch(()=>{r()}))},[i,e.token,r]),(0,t7.useEffect)(()=>{if(a===void 0)return;let e=()=>{n?.()},t=()=>{r()};return a.self.on(`roomJoined`,e),a.self.on(`roomLeft`,t),()=>{a.self.off(`roomJoined`,e),a.self.off(`roomLeft`,t)}},[a,n,r]),EDt(a,r),(0,t7.useEffect)(()=>{a!==void 0&&(t?a.self.disableAudio():a.self.enableAudio()).catch(()=>void 0)},[a,t]),(0,t7.useEffect)(()=>{if(a!==void 0)return()=>{a.leaveRoom().catch(()=>void 0)}},[a]),a===void 0?(0,n7.jsx)(n7.Fragment,{}):(0,n7.jsx)(fGe,{value:a,children:(0,n7.jsx)(xDt,{meeting:a})})}})),kDt=(0,y.lazy)(()=>Promise.resolve().then(()=>(ODt(),TDt)).then(e=>({default:e.RealtimeKitCallMedia}))),ADt=e=>{let t=e.ticket.providerType;return(0,D.jsx)(y.Suspense,{fallback:null,children:t===`cloudflare`?(0,D.jsx)(kDt,{...e}):null})},jDt=(e=window)=>e.documentPictureInPicture!==void 0,MDt=(e=window)=>e.documentPictureInPicture?.window??null,NDt=(e,t)=>{let n=Reflect.get(e,t);return n===void 0?[]:Array.from(n)},PDt=e=>[...NDt(e,`styleSheets`),...NDt(e,`adoptedStyleSheets`)],FDt=e=>{try{return Array.from(e.cssRules).map(e=>e.cssText).join(`
|
|
2099
|
+
`)}catch{return null}},IDt=(e,t=document)=>{for(let n of PDt(t)){let t=FDt(n);if(t!==null){let n=e.document.createElement(`style`);n.textContent=t,e.document.head.append(n)}else if(n.href!==null){let t=e.document.createElement(`link`);t.rel=`stylesheet`,t.href=n.href,e.document.head.append(t)}}},LDt=(e,t=document)=>{let n=t.documentElement,r=n.getAttribute(`data-theme`);r!==null&&e.document.documentElement.setAttribute(`data-theme`,r),e.document.documentElement.setAttribute(`class`,n.className),e.document.body.setAttribute(`class`,t.body.className)},RDt=(e,t)=>{let n=e.document.createElement(`div`);e.document.body.append(n);let r=n.attachShadow({mode:`open`}),i=PDt(t).map(FDt).filter(e=>e!==null).join(`
|
|
2100
|
+
`),a=Reflect.get(e,`CSSStyleSheet`);if(typeof a?.prototype.replaceSync!=`function`){let t=e.document.createElement(`style`);t.textContent=i,r.append(t)}else{let e=new a;e.replaceSync(i),r.adoptedStyleSheets=[e]}let o=t.host,s=o.getAttribute(`data-theme`);return s!==null&&n.setAttribute(`data-theme`,s),n.setAttribute(`style`,o.getAttribute(`style`)??``),r},zDt=async(e={},t=document,n=window)=>{let r=n.documentPictureInPicture;if(r===void 0)return null;try{let n=await r.requestWindow({width:e.width??320,height:e.height??220});return t instanceof ShadowRoot?{window:n,container:RDt(n,t)}:(IDt(n,t),LDt(n,t),{window:n,container:n.document.body})}catch{return null}},BDt=(e,t)=>{let[n,r]=(0,y.useState)(null),i=(0,y.useRef)(null);i.current=n;let a=(0,y.useRef)(t);a.current=t;let o=(0,y.useCallback)(()=>{i.current?.window.close(),r(null)},[]),s=(0,y.useCallback)(async()=>{if(i.current!==null)return;let e=a.current.current?.getRootNode(),t=await zDt({},e instanceof ShadowRoot||e instanceof Document?e:document);t!==null&&(t.window.addEventListener(`pagehide`,()=>{r(null)}),r(t))},[]),c=(0,y.useCallback)(()=>{s()},[s]);return(0,y.useEffect)(()=>{let t=Reflect.get(navigator,`mediaSession`);if(!e||!jDt()||t===void 0)return;let n=`enterpictureinpicture`;try{t.setActionHandler(n,()=>{s()})}catch{return}return()=>{try{t.setActionHandler(n,null)}catch{}}},[e,s]),(0,y.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&o()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e)}},[o]),(0,y.useEffect)(()=>{e||(o(),MDt()?.close())},[e,o]),(0,y.useEffect)(()=>o,[o]),{mount:n,popOut:c}},r7={overlay:`_overlay_1agsz_5`,card:`_card_1agsz_12`,draggable:`_draggable_1agsz_30`,head:`_head_1agsz_40`,info:`_info_1agsz_46`,avatarRing:`_avatarRing_1agsz_53`,avatarRingPulse:`_avatarRingPulse_1agsz_65`,callPulse:`_callPulse_1agsz_1`,avatar:`_avatar_1agsz_53`,name:`_name_1agsz_107`,status:`_status_1agsz_117`,timer:`_timer_1agsz_123`,actions:`_actions_1agsz_130`,btn:`_btn_1agsz_137`,accept:`_accept_1agsz_163`,acceptBob:`_acceptBob_1agsz_1`,decline:`_decline_1agsz_178`,mute:`_mute_1agsz_182`,muteOn:`_muteOn_1agsz_191`,popped:`_popped_1agsz_208`,popOut:`_popOut_1agsz_224`},VDt=e=>{let t=e.trim().split(/\s+/).filter(e=>e.length>0);if(t.length===0)return`?`;let n=t[0]??``,r=t.length>1?t[t.length-1]??``:``;return(n.charAt(0)+r.charAt(0)).toUpperCase()},HDt=e=>e===`unavailable`?`Unavailable`:e===`busy`?`Busy`:e===`failed`?`Call failed`:`Call ended`,UDt=(e,t,n,r)=>{let i=t===`video`?`video`:`voice`;switch(e){case`incoming`:return`Incoming ${i} call`;case`outgoing`:return n?`Ringing…`:`Calling…`;case`active`:return`Connecting…`;case`ended`:return HDt(r);case`idle`:return``}},WDt=({sinceMs:e})=>{let[t,n]=(0,y.useState)(()=>Date.now());(0,y.useEffect)(()=>{let e=window.setInterval(()=>{n(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]);let r=Math.max(0,Math.floor((t-e)/1e3)),i=String(Math.floor(r/60)).padStart(2,`0`),a=String(r%60).padStart(2,`0`);return(0,D.jsxs)(`span`,{className:r7.timer,children:[i,`:`,a]})},GDt=({phase:e,muted:t,actions:n})=>e===`ended`?null:e===`incoming`?(0,D.jsxs)(`div`,{className:r7.actions,children:[(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.decline),onClick:()=>{n.decline()},"aria-label":`Decline call`,children:(0,D.jsx)(Sn,{size:24})}),(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.accept),onClick:()=>{n.accept()},"aria-label":`Accept call`,children:(0,D.jsx)(Cn,{size:24})})]}):(0,D.jsxs)(`div`,{className:r7.actions,children:[e===`active`&&(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.mute,t&&r7.muteOn),onClick:()=>{n.toggleMute()},"aria-label":t?`Unmute`:`Mute`,children:t?(0,D.jsx)(gn,{size:20}):(0,D.jsx)(_n,{size:20})}),(0,D.jsx)(`button`,{type:`button`,className:E(r7.btn,r7.decline),onClick:()=>{n.hangup()},"aria-label":`Hang up`,children:(0,D.jsx)(Sn,{size:24})})]}),KDt=e=>{let t=e.phase===`outgoing`&&e.callId!==null,n=e.phase===`active`&&e.connected&&e.activeSinceMs!==null;return{ringing:e.phase===`incoming`||e.phase===`outgoing`,initials:e.peerInitials===``?VDt(e.peerName):e.peerInitials,status:n?(0,D.jsx)(WDt,{sinceMs:e.activeSinceMs}):UDt(e.phase,e.mediaType,t,e.endReason)}},qDt=({peerName:e,initials:t,peerColor:n,ringing:r,status:i,onPopOut:a})=>(0,D.jsxs)(`div`,{className:r7.head,children:[(0,D.jsx)(`div`,{className:E(r7.avatarRing,r&&r7.avatarRingPulse),children:(0,D.jsx)(`div`,{className:r7.avatar,style:n===``?void 0:Xn({"--avatar-color":n}),"aria-hidden":`true`,children:t})}),(0,D.jsxs)(`div`,{className:r7.info,children:[(0,D.jsx)(`div`,{className:r7.name,children:e===``?`Unknown caller`:e}),(0,D.jsx)(`div`,{className:r7.status,children:i})]}),a!==null&&(0,D.jsx)(`button`,{type:`button`,className:r7.popOut,onClick:a,"aria-label":`Keep call on top`,title:`Keep call on top`,children:(0,D.jsx)(wn,{size:16})})]}),JDt=({actions:e})=>{let t=Yh(e=>e.phase),n=Yh(e=>e.callId),r=Yh(e=>e.peerName),i=Yh(e=>e.peerInitials),a=Yh(e=>e.peerColor),o=Yh(e=>e.mediaType),s=Yh(e=>e.muted),c=Yh(e=>e.connected),l=Yh(e=>e.activeSinceMs),u=Yh(e=>e.endReason),d=(0,y.useRef)(null),{mount:f,popOut:p}=BDt(t===`incoming`||t===`outgoing`||t===`active`,d);if(t===`idle`)return null;let m=f!==null,h=t===`active`&&!m,{ringing:g,initials:_,status:v}=KDt({phase:t,callId:n,peerName:r,peerInitials:i,mediaType:o,connected:c,activeSinceMs:l,endReason:u}),x=(0,D.jsx)(`div`,{className:E(r7.overlay,m&&r7.popped),ref:d,role:`dialog`,"aria-label":`Call`,children:(0,D.jsxs)(Zu.div,{className:E(r7.card,h&&r7.draggable),variants:od,initial:`hidden`,animate:`visible`,drag:h,dragConstraints:d,dragElastic:.12,dragMomentum:!1,children:[(0,D.jsx)(qDt,{peerName:r,initials:_,peerColor:a,ringing:g,status:v,onPopOut:!m&&jDt()?p:null}),(0,D.jsx)(GDt,{phase:t,muted:s,actions:e})]})});return f===null?x:(0,b.createPortal)(x,f.container)},YDt=()=>typeof window<`u`&&`Notification`in window,XDt=async()=>{if(!YDt())return`denied`;if(Notification.permission==="default")try{return await Notification.requestPermission()}catch{return`denied`}return Notification.permission},ZDt=({callerName:e,mediaType:t,onAccept:n,onDecline:r})=>{if(!YDt()||Notification.permission!==`granted`)return null;let i=`Incoming ${t===`video`?`video`:`voice`} call`,a=`${e||`Someone`} is calling you...`;try{let e=new Notification(i,{body:a,icon:`/favicon.ico`,tag:`incoming-call`,requireInteraction:!0});return e.onclick=()=>{window.focus(),e.close()},e}catch{return null}},QDt=({phase:e,peerName:t,mediaType:n})=>{(0,y.useEffect)(()=>{if(e!==`incoming`)return;let r=null,i=null,a=document.title,o=()=>{if(document.visibilityState===`hidden`){if(r??=ZDt({callerName:t,mediaType:n}),i===null){let e=!1;i=window.setInterval(()=>{e=!e,document.title=e?`📞 Incoming call (${t||`Calling`})...`:a},1e3)}}else r!==null&&(r.close(),r=null),i!==null&&(window.clearInterval(i),i=null,document.title=a)};o();let s=()=>{o()};return document.addEventListener(`visibilitychange`,s),()=>{document.removeEventListener(`visibilitychange`,s),i!==null&&window.clearInterval(i),document.title=a,r!==null&&r.close()}},[e,t,n])},$Dt=0,eOt=(e,t)=>{let n=e.getState();return n.direction===`outgoing`&&n.phase===`outgoing`&&n.callId===null&&n.dialId===t},tOt=async({store:e,cancelCall:t,dialId:n,result:r})=>{let i=eOt(e,n);if(!r.ok){i&&e.getState().ended(`failed`);return}let a=r.value;if(a.status===`callee_busy`){i&&e.getState().ended(`busy`);return}if(a.status===`callee_unavailable`||a.joinTicket===null){i&&e.getState().ended(`unavailable`);return}if(!i){await t.execute(a.callId);return}e.getState().attachOutgoing({callId:a.callId,ticket:a.joinTicket})},nOt=()=>{let{store:e,startCall:t,acceptCall:n,declineCall:r,cancelCall:i,endCall:a}=Jh();return{startCall:(0,y.useCallback)(async n=>{if(n.userId===``)return;let r=e.getState().phase;if(r!==`idle`&&r!==`ended`)return;let a=String($Dt+=1);e.getState().dialing({peer:n,mediaType:`audio`,dialId:a}),await tOt({store:e,cancelCall:i,dialId:a,result:await t.execute(n.userId,`audio`)})},[e,t,i]),accept:(0,y.useCallback)(async()=>{let{callId:t,direction:r}=e.getState();if(t===null||r!==`incoming`)return;e.getState().activate(null,Date.now());let i=await n.execute(t);if(!i.ok){e.getState().ended(`failed`);return}e.getState().activate(i.value,Date.now())},[e,n]),decline:(0,y.useCallback)(async()=>{let{callId:t}=e.getState();e.getState().reset(),t!==null&&await r.execute(t)},[e,r]),hangup:(0,y.useCallback)(async()=>{let{callId:t,phase:n}=e.getState();e.getState().ended(`hung_up`),t!==null&&(n===`active`?await a.execute(t):await i.execute(t))},[e,a,i]),mediaEnded:(0,y.useCallback)(async()=>{let{callId:t,phase:n}=e.getState();e.getState().ended(`ended`),!(t===null||n!==`active`)&&await a.execute(t)},[e,a]),toggleMute:(0,y.useCallback)(()=>{let t=e.getState();t.setMuted(!t.muted)},[e])}},rOt=15e3,iOt=3e3,aOt=e=>{switch(e){case`outgoing`:case`incoming`:return iOt;case`active`:return rOt;case`idle`:case`ended`:return null}},oOt=(e,t)=>{let{store:n,heartbeatCall:r}=Jh(),i=aOt(t);(0,y.useEffect)(()=>{if(e===null||i===null)return;let t=!1,a=!1,o=async()=>{if(!a){a=!0;try{let i=await r.execute(e);if(t||!i.ok||i.value.active)return;let a=n.getState();a.callId===e&&a.ended(`ended`)}finally{a=!1}}},s=window.setInterval(()=>{o()},i);return()=>{t=!0,window.clearInterval(s)}},[e,i,n,r])},sOt=()=>{let e=Yh(e=>e.phase),t=Yh(e=>e.callId),n=Yh(e=>e.ticket),r=Yh(e=>e.muted),i=Yh(e=>e.peerName),a=Yh(e=>e.mediaType),o=Jh().store,s=nOt(),c=(0,y.useRef)(null);c.current??=fwe();let l=c.current;return(0,y.useEffect)(()=>{XDt();let e=()=>{l.unlock(),XDt()};return window.addEventListener(`pointerdown`,e,{once:!0}),()=>{window.removeEventListener(`pointerdown`,e)}},[l]),QDt({phase:e,peerName:i,mediaType:a}),oOt(t,e),(0,y.useEffect)(()=>{e===`incoming`?l.playRing():e===`outgoing`?l.playRingback():l.stop()},[e,l]),(0,y.useEffect)(()=>()=>{l.dispose()},[l]),(0,y.useEffect)(()=>{if(e!==`ended`)return;let t=window.setTimeout(()=>{o.getState().reset()},2500);return()=>{window.clearTimeout(t)}},[e,o]),e===`idle`?null:(0,D.jsxs)(D.Fragment,{children:[n!==null&&(e===`outgoing`||e===`active`)&&(0,D.jsx)(ADt,{ticket:n,muted:r,onConnected:()=>{o.getState().markConnected()},onEnded:()=>{s.mediaEnded()}}),(0,D.jsx)(JDt,{actions:s})]})},cOt=()=>{let{startCall:e}=nOt(),t=Yh(e=>e.phase);return{start:t=>{e(t)},busy:t!==`idle`&&t!==`ended`}},lOt={callBtn:`_callBtn_1q44j_1`},uOt=({calleeUserId:e,calleeName:t,calleeInitials:n=``,calleeColor:r=``,className:i})=>{let{start:a,busy:o}=cOt();return e===``?null:(0,D.jsx)(`button`,{type:`button`,className:E(lOt.callBtn,i),disabled:o,onClick:()=>{a({userId:e,name:t,initials:n,color:r})},"aria-label":`Call ${t}`,title:`Call ${t}`,children:(0,D.jsx)(Cn,{size:18})})},dOt=({conversation:e})=>e.isGroup||e.peerUserId===null?null:(0,D.jsx)(`div`,{className:A.headEnd,children:(0,D.jsx)(uOt,{calleeUserId:e.peerUserId,calleeName:e.title,calleeInitials:e.initials,calleeColor:e.color})}),fOt=6e4,pOt=36e5,mOt=864e5,hOt=(e,t)=>{if(e===null)return null;let n=Date.parse(e);if(Number.isNaN(n))return null;let r=Math.max(0,t-n);return r<fOt?`Last seen just now`:r<pOt?`Last seen ${String(Math.floor(r/fOt))}m ago`:r<mOt?`Last seen ${String(Math.floor(r/pOt))}h ago`:`Last seen ${String(Math.floor(r/mOt))}d ago`},gOt=({conversation:e,live:t,liveStatus:n,nowMs:r})=>{if(t?.online??(n===void 0?e.online:n.status!==`offline`)){let t=n?.status??e.status;return{online:!0,subtitle:`Online`,status:t!==`offline`&&t!==`available`?t:null}}return{online:!1,subtitle:(t===void 0?null:hOt(t.lastSeenUtc,r))??`Offline`,status:null}},_Ot=`This message was deleted`,vOt=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`))try{let t=e.substring(22);return JSON.parse(t)}catch{return null}return null},yOt=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`)){let t=vOt(e);if(t!==null){let e=t.card.title;return e.length>0?`Shared Post: ${e}`:`Shared Post`}return`Shared Post`}return e},bOt=(e,t=null)=>t?.text.startsWith(`__UAPP_SHARED_CARD__::`)?{messageId:e.id,authorName:t.authorName,text:t.text}:e.replyTo?.text.startsWith(`__UAPP_SHARED_CARD__::`)?{messageId:e.id,authorName:e.replyTo.authorName,text:e.replyTo.text}:{messageId:e.id,authorName:e.authorName,text:e.text},xOt=(e,t)=>{if(e.replyTo===null)return null;let n=t.get(e.replyTo.messageId),r=n?.deletedForEveryone?_Ot:n?.text??e.replyTo.text,i=n?.authorName??e.replyTo.authorName;return r.startsWith(`__UAPP_SHARED_CARD__::`)?{author:i,text:r}:null},SOt=(e,t)=>{if(e===null)return null;if(e.authorName.length>0||e.text.length>0)return e;let n=t.get(e.messageId);if(n===void 0)return e;let r=n.authorName,i=n.deletedForEveryone?_Ot:n.text,a=xOt(n,t);return a!==null&&(r=a.author,i=a.text),{messageId:e.messageId,authorName:r,text:i}},i7=(e,t)=>e.some(e=>e.id===t.id)?e:t.clientMessageId!==null&&e.some(e=>e.clientMessageId===t.clientMessageId)?e.map(e=>e.clientMessageId===t.clientMessageId?t.withFallbackSentAt(e.sentAt):e):[...e,t].sort((e,t)=>e.sequence-t.sequence),COt=`pending:`,wOt=e=>`${COt}${e}`,a7=e=>e.id.startsWith(COt),TOt=e=>e.reduce((e,t)=>Math.max(e,t.sequence),0),EOt=e=>e.filter(e=>!a7(e)).reduce((e,t)=>Math.max(e,t.sequence),0),DOt=e=>new lh({id:wOt(e.clientMessageId),kind:`text`,authorName:e.viewer.name,authorInitials:e.viewer.initials,authorColor:e.viewer.color,text:e.text.trim(),time:e.timeLabel,sentAt:e.sentAt??``,fromViewer:!0,reactions:[],sequence:e.sequence,senderId:e.viewer.id,clientMessageId:e.clientMessageId,replyTo:e.replyTo??null,mediaUrl:null,isEdited:!1}),OOt=e=>new lh({id:wOt(e.clientMessageId),kind:`media`,authorName:e.viewer.name,authorInitials:e.viewer.initials,authorColor:e.viewer.color,text:e.caption.trim(),time:``,sentAt:e.sentAt,fromViewer:!0,reactions:[],sequence:e.sequence,senderId:e.viewer.id,clientMessageId:e.clientMessageId,replyTo:e.replyTo??null,mediaUrl:e.fileUrl,mediaContentType:e.contentType,mediaFileName:e.fileName,isEdited:!1}),kOt=(e,t)=>i7(e??[],t),AOt=(e,t)=>i7(e??[],t),jOt=({selectedMessage:e,onClearSelection:t,onReply:n,onStartEdit:r,onDelete:i})=>{let a=a7(e),o=e.fromViewer&&!e.deletedForEveryone&&e.canEdit(Date.now());return(0,D.jsxs)(`div`,{className:A.mobileSelectionHeader,children:[(0,D.jsxs)(`div`,{className:A.selectionLeft,children:[(0,D.jsx)(`button`,{type:`button`,className:A.selectionActionBtn,"aria-label":`Clear selection`,onClick:t,children:(0,D.jsx)(qn,{size:18})}),(0,D.jsx)(`span`,{className:A.selectionTitle,children:`1 Selected`})]}),(0,D.jsxs)(`div`,{className:A.selectionActions,children:[!a&&n!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:A.selectionActionBtn,title:`Reply`,"aria-label":`Reply`,onClick:()=>{n(bOt(e)),t!==void 0&&t()},children:(0,D.jsx)(An,{size:17})}),!a&&o&&r!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:A.selectionActionBtn,title:`Edit message`,"aria-label":`Edit message`,onClick:()=>{r(e),t!==void 0&&t()},children:(0,D.jsx)(xn,{size:17})}),!a&&e.fromViewer&&i!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:E(A.selectionActionBtn,A.selectionActionDanger),title:`Delete message`,"aria-label":`Delete message`,onClick:()=>{i(e.id),t!==void 0&&t()},children:(0,D.jsx)(Vn,{size:17})})]})]})},MOt=(e,t,n)=>[...e.lastSynced===null?[]:[{label:`Last synced ${e.lastSynced}`,icon:(0,D.jsx)(On,{size:14}),onSelect:()=>{t.refresh(e)}}],{label:`Manage members`,icon:(0,D.jsx)(Wn,{size:14}),onSelect:n.onManageMembers},{label:e.favourite?`Remove from Favourites`:`Add to Favourites`,icon:(0,D.jsx)(Rn,{size:14}),onSelect:()=>{t.toggleFavourite(e)}},{label:e.pinned?`Unpin`:`Pin to top`,icon:(0,D.jsx)(Tn,{size:14}),onSelect:()=>{t.togglePin(e)}},{label:e.archived?`Unarchive`:`Archive`,icon:e.archived?(0,D.jsx)(Ot,{size:14}):(0,D.jsx)(kt,{size:14}),onSelect:()=>{t.toggleArchive(e)}},{label:`Leave group`,icon:(0,D.jsx)(dn,{size:14}),onSelect:()=>{n.onRequestLeave(e)}},{label:`Delete group`,icon:(0,D.jsx)(Vn,{size:14}),danger:!0,onSelect:()=>{n.onRequestDelete(e)}}],NOt=(e,t)=>{let n=t.find(t=>t.id===e.categoryId&&t.tenantId===e.tenantId);return n===void 0?t.find(t=>t.locked&&t.tenantId===e.tenantId)??null:n},POt=e=>{let t=Object.entries(e.data).filter(([e,t])=>e!==`statusColor`&&t!==``).map(([,e])=>e);return t.length>0?t.join(` · `):e.subtitle},FOt=(e,t)=>{let n=NOt(e,t);if(n===null)return{icon:null,accent:e.color,pill:null,subtitle:e.subtitle};let r=t=>e.data[t]??``,i=n.fields.filter(e=>e.visible&&r(e.key)!==``);if(i.length===0)return{icon:n.icon,accent:n.accent,pill:null,subtitle:POt(e)};let a=i.find(e=>e.type===`pill`),o=i.filter(e=>e.type!==`pill`).map(e=>r(e.key));return{icon:n.icon,accent:n.accent,pill:a===void 0?null:{value:r(a.key),color:e.data.statusColor??n.accent},subtitle:o.length>0?o.join(` · `):e.subtitle}},IOt=4,LOt={Hash:on,GraduationCap:an,Users:Wn,Building2:It,Briefcase:Ft,BookOpen:Nt,Globe:rn},ROt=({conversation:e,header:t,dmOnline:n})=>{let r=t?.icon??null,i=r===null?void 0:LOt[r];return i===void 0?(0,D.jsxs)(`span`,{className:A.viewAvatarWrap,children:[(0,D.jsx)(`span`,{className:A.viewAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),n===!0&&(0,D.jsx)(`span`,{className:E(A.presenceDot,A.viewPresenceDot),"aria-label":`Online`})]}):(0,D.jsx)(`span`,{className:A.viewIcon,style:Xn({"--avatar-color":t?.accent??e.color}),children:(0,D.jsx)(i,{size:18})})},zOt=({members:e})=>{if(e.length===0)return null;let t=e.length-IOt;return(0,D.jsxs)(`div`,{className:A.memberStack,children:[e.slice(0,IOt).map(e=>(0,D.jsx)(`span`,{className:A.memberAvatar,title:e.name,children:(0,D.jsx)(Tpe,{initials:e.initials,color:e.color,size:`xs`})},e.id)),t>0&&(0,D.jsxs)(`span`,{className:A.memberMore,children:[`+`,t]})]})},BOt=(e,t)=>{let n=`${String(e.memberCount)} member${e.memberCount===1?``:`s`}`,r=t?.subtitle??e.subtitle;return r===``||r===e.title?n:`${n} · ${r}`},VOt=({conversation:e,pill:t,presence:n,statusPill:r,subtitle:i})=>(0,D.jsxs)(`span`,{className:A.viewHeadText,children:[(0,D.jsxs)(`span`,{className:A.viewTitleRow,children:[(0,D.jsx)(`span`,{className:A.viewTitle,children:e.title}),e.admin&&(0,D.jsx)(`span`,{className:A.adminBadge,children:`You're admin`}),t?(0,D.jsx)(`span`,{className:A.statusPill,style:Xn({"--pill":t.color}),children:t.value}):null,n===null?null:(0,D.jsx)(XSe,{untilUtc:e.statusUntilUtc,status:n}),r]}),(0,D.jsx)(`span`,{className:A.viewSub,children:i})]}),HOt=({conversation:e,header:t,dmOnline:n,dmStatus:r,pill:i,statusPill:a,subtitle:o,actions:s,onManageMembers:c,onRequestDelete:l,onRequestLeave:u})=>{let d=qe();return(0,D.jsxs)(`div`,{className:A.standardHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:A.backBtn,"aria-label":`Back to conversations`,onClick:()=>{d(`/comms/chats`)},children:(0,D.jsx)(At,{size:18})}),(0,D.jsx)(ROt,{conversation:e,header:t,dmOnline:n}),(0,D.jsx)(VOt,{conversation:e,pill:i,presence:r,statusPill:a,subtitle:o}),e.isGroup&&(0,D.jsxs)(`div`,{className:A.headEnd,children:[(0,D.jsx)(`button`,{type:`button`,className:A.memberStackBtn,"aria-label":`Manage members`,onClick:c,children:(0,D.jsx)(zOt,{members:e.members})}),(0,D.jsx)(bf,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:A.headMenuBtn,"aria-label":`Group options`,children:(0,D.jsx)(Zt,{size:16})}),items:MOt(e,s,{onManageMembers:c,onRequestDelete:l,onRequestLeave:u})})]}),(0,D.jsx)(dOt,{conversation:e})]})},UOt=({conversation:e,categories:t,actions:n,statusPill:r,onManageMembers:i,onRequestDelete:a,onRequestLeave:o,selectedMessage:s=null,onClearSelection:c,onReply:l,onStartEdit:u,onDelete:d})=>{let f=e.isGroup?FOt(e,t):null,p=f?.pill??null,m=e.peerUserId,h=gOt({conversation:e,live:ah(e=>m===null?void 0:e.presence[m]),liveStatus:TSe(m),nowMs:Date.now()}),g=e.isGroup?BOt(e,f):h.subtitle,_=s!==null;return(0,D.jsxs)(`header`,{className:E(A.viewHead,_&&A.hasMobileSelection),children:[s!==null&&(0,D.jsx)(jOt,{selectedMessage:s,onClearSelection:c,onReply:l,onStartEdit:u,onDelete:d}),(0,D.jsx)(HOt,{conversation:e,header:f,dmOnline:e.isGroup?null:h.online,dmStatus:e.isGroup?null:h.status,pill:p,statusPill:r,subtitle:g,actions:n,onManageMembers:i,onRequestDelete:a,onRequestLeave:o})]})},WOt=({excludeIds:e,onAdd:t,onBack:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=xh(e,`groupPool`);return(0,D.jsxs)(`div`,{className:A.addPanel,children:[(0,D.jsxs)(`div`,{className:A.addPanelHead,children:[(0,D.jsx)(`button`,{type:`button`,className:A.memberRowMenuBtn,"aria-label":`Back to members`,onClick:n,children:(0,D.jsx)(At,{size:15})}),(0,D.jsx)(`span`,{className:A.addPanelTitle,children:`Add member`})]}),(0,D.jsxs)(`div`,{className:A.addPanelSearch,children:[(0,D.jsx)(Mn,{size:14}),(0,D.jsx)(`input`,{className:A.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(rr,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:A.addPanelList,children:[(0,D.jsx)(Uu,{initial:!1,children:a.map(e=>(0,D.jsxs)(Zu.div,{layout:!0,variants:ad,initial:`hidden`,animate:`visible`,exit:`exit`,className:A.memberRow,children:[(0,D.jsx)(`span`,{className:A.memberRowAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:A.memberRowBody,children:[(0,D.jsx)(`span`,{className:A.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:A.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:A.addMemberBtn,onClick:()=>{t(e)},children:[(0,D.jsx)(En,{size:13}),` Add`]})]},e.id))}),a.length===0&&!o&&(0,D.jsx)(`p`,{className:A.addPanelEmpty,children:s?`No staff match your search.`:`Everyone is already in this group.`})]})]})},GOt=e=>{let{member:t,isAdmin:n,adminCount:r,onMakeAdmin:i,onRemoveAdmin:a,onRemove:o}=e,s=[];return n||s.push({label:`Make admin`,icon:(0,D.jsx)(Pn,{size:14}),onSelect:()=>{i(t.id)}}),n&&r>1&&s.push({label:`Remove admin`,icon:(0,D.jsx)(Dee,{size:14}),onSelect:()=>{a(t.id)}}),s.push({label:`Remove from group`,icon:(0,D.jsx)(Vn,{size:14}),danger:!0,onSelect:()=>{o(t.id)}}),s},KOt=({member:e})=>{let t=TSe(e.id),n=t?.status??e.status??`offline`;return n===`offline`?null:(0,D.jsx)(XSe,{status:n,untilUtc:t===void 0?e.statusUntilUtc??null:t.untilUtc})},qOt=e=>{let{member:t,isAdmin:n,isSelf:r,isNew:i,isPromoted:a,isDemoted:o,canManage:s}=e,c=ah(e=>e.presence[t.id]?.online??!1);return(0,D.jsxs)(Zu.div,{layout:!0,variants:ad,initial:`hidden`,animate:`visible`,className:E(A.memberRow,i&&A.memberRowNew),children:[(0,D.jsxs)(`span`,{className:A.memberRowAvatarWrap,children:[(0,D.jsx)(`span`,{className:A.memberRowAvatar,style:Xn({"--avatar-color":t.color}),children:t.initials}),c&&(0,D.jsx)(`span`,{className:A.presenceDot,"aria-label":`Online`})]}),(0,D.jsxs)(`span`,{className:A.memberRowBody,children:[(0,D.jsxs)(`span`,{className:A.memberRowName,children:[t.name,r&&(0,D.jsx)(`span`,{className:A.memberRowYou,children:` (You)`}),n?(0,D.jsx)(`span`,{className:A.memberBadgeAdmin,children:`ADMIN`}):(0,D.jsx)(`span`,{className:A.memberBadge,children:`MEMBER`}),i&&(0,D.jsx)(`span`,{className:A.memberPillNew,children:`+ NEW`}),a&&!i&&(0,D.jsx)(`span`,{className:A.memberPillUp,children:`↑ PROMOTED`}),o&&(0,D.jsx)(`span`,{className:A.memberPillDown,children:`↓ DEMOTED`})]}),(0,D.jsxs)(`span`,{className:A.memberRowRole,children:[t.role,(0,D.jsx)(KOt,{member:t})]})]}),s&&!r&&(0,D.jsx)(bf,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:A.memberRowMenuBtn,"aria-label":`Actions for ${t.name}`,children:(0,D.jsx)(Zt,{size:14})}),items:GOt(e)})]})},JOt=(e,t,n,r)=>{let i=e.map(e=>e.id),a=n.map(e=>e.id),o=a.filter(e=>!i.includes(e)),s=i.filter(e=>!a.includes(e)),c=r.filter(e=>!t.includes(e)&&a.includes(e)),l=t.filter(e=>!r.includes(e)&&a.includes(e));return{addedIds:o,removedIds:s,promotedIds:c,demotedIds:l,total:o.length+s.length+c.length+l.length}},YOt=(e,t)=>t.some(t=>e.some(e=>e.id===t)),XOt=e=>{let{addedIds:t,removedIds:n,promotedIds:r,demotedIds:i,total:a}=e;if(a===0)return`Save changes`;if(t.length===a)return t.length===1?`Add member`:`Add ${String(t.length)}`;if(n.length===a)return n.length===1?`Remove member`:`Remove ${String(n.length)}`;let o=r.length+i.length;return o===a?o===1?`Confirm`:`Confirm ${String(o)}`:`Save changes (${String(a)})`},ZOt=(e,t)=>{let[n,r]=(0,y.useState)(e.members),[i,a]=(0,y.useState)(e.adminIds),[o,s]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{t&&(r(e.members),a(e.adminIds),s(!1))},[t,e.id,e.members,e.adminIds]),{members:n,adminIds:i,adding:o,diff:JOt(e.members,e.adminIds,n,i),adminCount:i.filter(e=>n.some(t=>t.id===e)).length,setAdding:s,addMember:e=>{r(t=>[...t,e]),s(!1)},removeMember:e=>{r(t=>t.filter(t=>t.id!==e)),a(t=>t.filter(t=>t!==e))},makeAdmin:e=>{a(t=>t.includes(e)?t:[...t,e])},removeAdmin:e=>{a(t=>t.filter(t=>t!==e))},undoRemove:e=>{r(t=>[...t,e])}}},QOt=({member:e,onUndo:t})=>(0,D.jsxs)(`div`,{className:A.removedRow,children:[(0,D.jsx)(`span`,{className:A.memberRowAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:A.memberRowBody,children:[(0,D.jsx)(`span`,{className:A.removedName,children:e.name}),(0,D.jsx)(`span`,{className:A.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:A.undoBtn,onClick:t,children:[(0,D.jsx)(jn,{size:12}),` Undo`]})]}),$Ot=e=>{let{conversation:t,draftMembers:n,draftAdminIds:r,diff:i,adminCount:a,iAmAdmin:o}=e,{viewerId:s}=e;return(0,D.jsxs)(`div`,{className:A.membersBody,children:[i.total>0&&(0,D.jsxs)(`div`,{className:A.unsavedBar,children:[i.total,` unsaved `,i.total===1?`change`:`changes`]}),o&&(0,D.jsxs)(`button`,{type:`button`,className:A.addMemberCta,onClick:e.onAddClick,children:[(0,D.jsx)(Un,{size:14}),` Add member`]}),(0,D.jsxs)(`div`,{className:A.membersSectionLabel,children:[`MEMBERS · `,n.length]}),(0,D.jsxs)(`div`,{className:A.membersList,children:[(0,D.jsx)(Uu,{initial:!1,children:n.map(t=>(0,D.jsx)(qOt,{member:t,isAdmin:r.includes(t.id),isSelf:t.id===s,isNew:i.addedIds.includes(t.id),isPromoted:i.promotedIds.includes(t.id),isDemoted:i.demotedIds.includes(t.id),canManage:o,adminCount:a,onMakeAdmin:e.onMakeAdmin,onRemoveAdmin:e.onRemoveAdmin,onRemove:e.onRemove},t.id))}),i.removedIds.length>0&&(0,D.jsxs)(Zu.div,{variants:ad,initial:`hidden`,animate:`visible`,children:[(0,D.jsxs)(`div`,{className:A.removedLabel,children:[`WILL BE REMOVED · `,i.removedIds.length]}),i.removedIds.map(n=>{let r=t.members.find(e=>e.id===n);return r===void 0?null:(0,D.jsx)(QOt,{member:r,onUndo:()=>{e.onUndoRemove(r)}},n)})]})]})]})},ekt=({diff:e,saving:t,onCancel:n,onSave:r})=>{let i=e.removedIds.length===e.total&&e.total>0;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ar,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,D.jsx)(ar,{variant:i?`danger`:`primary`,isLoading:t,disabled:e.total===0,onClick:r,children:XOt(e)})]})},tkt=({conversation:e,open:t,onClose:n})=>{let r=Oye(e.id),i=ZOt(e,t),{data:a}=bh(),o=a?.id??``,s=()=>{if(i.diff.total===0){n();return}if(!YOt(i.members,i.adminIds)){Nf.error(`A group must keep at least one admin`);return}r.mutate({members:i.members,adminIds:i.adminIds},{onSuccess:()=>{Nf.success(`Members updated`),n()}})},c=i.members.length===1?`member`:`members`,l=i.adminCount===1?`admin`:`admins`;return(0,D.jsx)(cd,{open:t,onOpenChange:e=>{e||n()},title:`Manage members`,description:`${e.title} · ${String(i.members.length)} ${c} · ${String(i.adminCount)} ${l}`,footer:i.adding?void 0:(0,D.jsx)(ekt,{diff:i.diff,saving:r.isPending,onCancel:n,onSave:s}),children:i.adding?(0,D.jsx)(WOt,{excludeIds:i.members.map(e=>e.id),onAdd:i.addMember,onBack:()=>{i.setAdding(!1)}}):(0,D.jsx)($Ot,{conversation:e,draftMembers:i.members,draftAdminIds:i.adminIds,diff:i.diff,adminCount:i.adminCount,iAmAdmin:e.canManageMembers(o),viewerId:o,onAddClick:()=>{i.setAdding(!0)},onMakeAdmin:i.makeAdmin,onRemoveAdmin:i.removeAdmin,onRemove:i.removeMember,onUndoRemove:i.undoRemove})})},nkt=({open:e,canDeleteForEveryone:t,onDeleteForMe:n,onDeleteForEveryone:r,onCancel:i})=>(0,D.jsx)(cd,{open:e,onOpenChange:e=>{e||i()},title:`Delete message?`,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ar,{variant:`ghost`,onClick:i,children:`Cancel`}),(0,D.jsx)(ar,{variant:`secondary`,onClick:n,children:`Delete for me`}),t&&(0,D.jsx)(ar,{variant:`danger`,onClick:r,children:`Delete for everyone`})]}),children:t?`Delete this message for everyone, or just remove it from this device?`:`This message can only be removed from this device — the time limit to delete it for everyone has passed.`}),rkt=e=>e===1?`typing…`:`${String(e)} people typing…`,ikt=({conversationId:e})=>{let t=ah(t=>t.typingUserIds(e,Date.now()).length);return(0,D.jsx)(Uu,{children:t>0&&(0,D.jsxs)(Zu.div,{className:A.typingRow,variants:Zse,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`span`,{className:A.typingDots,"aria-hidden":!0,children:[(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{})]}),(0,D.jsx)(`span`,{className:A.typingText,children:rkt(t)})]})})},akt=()=>{let e=ah(e=>e.status);if(e===`connected`||e===`connecting`)return null;let t=e===`reconnecting`?`Reconnecting…`:`Offline`;return(0,D.jsxs)(`span`,{className:A.connPill,children:[(0,D.jsx)(Kn,{size:12}),` `,t]})},okt=20*1024*1024,skt=(e,t,n)=>{let r=[],i=!1;for(let a of e){if(r.length>=t)break;if(a.size>n){i=!0;continue}r.push(a)}let a=e.reduce((e,t)=>e+ +(t.size<=n),0);return{accepted:r,skippedOversize:i,overflowed:a>t}},ckt=()=>{let[e,t]=(0,y.useState)([]),n=(0,y.useRef)([]);return n.current=e,(0,y.useEffect)(()=>()=>{for(let e of n.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl)},[]),{items:e,add:e=>{let r=10-n.current.length;if(r<=0){Nf.error(`You can attach up to 10 files at once.`);return}let{accepted:i,skippedOversize:a,overflowed:o}=skt(Array.from(e),r,okt);if(a&&Nf.error(`That file is over the 20 MB limit — please send a smaller file.`),o&&Nf.error(`You can attach up to 10 files at once.`),i.length===0)return;let s=i.map(e=>({id:crypto.randomUUID(),file:e,previewUrl:e.type.startsWith(`image/`)?URL.createObjectURL(e):null}));t(e=>[...e,...s])},remove:e=>{let r=n.current.find(t=>t.id===e);r!==void 0&&r.previewUrl!==null&&URL.revokeObjectURL(r.previewUrl),t(t=>t.filter(t=>t.id!==e))},clear:()=>{for(let e of n.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl);t([])}}},lkt=(e,t,n,r)=>{let i=()=>{n.current?.click()},a=()=>{e.items.length>0?(r.onSendMedia(e.items.map(e=>e.file),t),e.clear()):r.onSubmit()};return{openPicker:i,send:a,handleKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),a())},handlePaste:t=>{let n=t.clipboardData.files;n.length>0&&(t.preventDefault(),e.add(n))},onFileChange:t=>{t.target.files!==null&&t.target.files.length>0&&e.add(t.target.files);let r=n.current;r!==null&&(r.value=``)}}},ukt=[`👍`,`🎉`,`❤️`,`😂`,`🙌`,`👏`],dkt=[`😀`,`😄`,`😁`,`😂`,`😍`,`😎`,`🤝`,`🙏`,`👍`,`👏`,`🙌`,`🔥`,`🎉`,`⭐`,`✅`,`❤️`,`💡`,`📌`,`🚀`,`😢`],fkt=({onPick:e})=>{let[t,n]=(0,y.useState)(!1);return(0,D.jsxs)(`div`,{className:A.emojiWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:A.composerIcon,"aria-label":`Insert emoji`,"aria-expanded":t,onClick:()=>{n(e=>!e)},children:(0,D.jsx)(In,{size:18})}),(0,D.jsx)(Uu,{children:t&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:A.emojiBackdrop,"aria-label":`Close emoji picker`,onClick:()=>{n(!1)}}),(0,D.jsx)(Zu.div,{className:A.emojiPop,variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:dkt.map(t=>(0,D.jsx)(`button`,{type:`button`,className:A.emojiBtn,onClick:()=>{e(t),n(!1)},children:t},t))})]})})]})},pkt=({replyTo:e,onClear:t})=>(0,D.jsxs)(`div`,{className:A.replyBar,children:[(0,D.jsxs)(`span`,{className:A.replyBarText,children:[`Replying to `,e.authorName,`: `,yOt(e.text)]}),(0,D.jsx)(`button`,{type:`button`,className:A.replyBarClose,"aria-label":`Cancel reply`,onClick:t,children:(0,D.jsx)(qn,{size:16})})]}),mkt=({attachments:e,onRemove:t,onAddMore:n})=>(0,D.jsxs)(Zu.div,{className:A.attachTray,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.16},children:[e.map(e=>(0,D.jsxs)(`div`,{className:A.attachItem,children:[e.previewUrl===null?(0,D.jsxs)(`div`,{className:A.attachFile,children:[(0,D.jsx)(tn,{size:20}),(0,D.jsx)(`span`,{className:A.attachFileName,children:e.file.name})]}):(0,D.jsx)(`img`,{className:A.attachThumb,src:e.previewUrl,alt:e.file.name}),(0,D.jsx)(`button`,{type:`button`,className:A.attachRemove,"aria-label":`Remove ${e.file.name}`,onClick:()=>{t(e.id)},children:(0,D.jsx)(qn,{size:13})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:A.attachAdd,"aria-label":`Add more files`,onClick:n,children:(0,D.jsx)(En,{size:20})})]}),hkt=({fileRef:e,onAttach:t,onFileChange:n})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:e,type:`file`,multiple:!0,className:A.hiddenFileInput,accept:`image/*,video/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv,.zip`,onChange:n}),(0,D.jsx)(`button`,{type:`button`,className:A.composerIcon,"aria-label":`Attach files`,onClick:t,children:(0,D.jsx)(Cee,{size:18})})]}),gkt=({value:e,title:t,hasAttachments:n,isSending:r,canSend:i,fileRef:a,onChange:o,onTyping:s,onKeyDown:c,onPaste:l,onAttach:u,onFileChange:d,onSend:f})=>{let p=er(`(max-width: 1024px)`),m=$n(e,4e3);return(0,D.jsxs)(`div`,{className:A.composer,children:[(0,D.jsx)(fkt,{onPick:t=>{o(e+t)}}),(0,D.jsx)(hkt,{fileRef:a,onAttach:u,onFileChange:d}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`},children:[(0,D.jsx)(`textarea`,{className:E(A.composerInput,m.isOverLimit&&A.composerInputError),rows:1,placeholder:n?`Add a caption…`:p?`Message ${t}…`:`Message ${t}… (Shift+Enter for new line)`,value:e,onChange:e=>{o(e.target.value),s()},onKeyDown:c,onPaste:l}),m.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:m.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[m.length,` / 4000`]})]}),(0,D.jsx)(`button`,{type:`button`,className:A.sendBtn,"aria-label":n?`Send attachments`:`Send message`,disabled:r||!i||m.isOverLimit,onClick:f,children:(0,D.jsx)(Nn,{size:16})})]})},_kt=({editingText:e,onClear:t})=>(0,D.jsxs)(`div`,{className:A.replyBar,children:[(0,D.jsx)(xn,{size:15,style:{marginRight:6}}),(0,D.jsxs)(`span`,{className:A.replyBarText,children:[`Editing message: `,yOt(e)]}),(0,D.jsx)(`button`,{type:`button`,className:A.replyBarClose,"aria-label":`Cancel edit`,onClick:t,children:(0,D.jsx)(qn,{size:16})})]}),vkt=({value:e,isSending:t,title:n,replyTo:r,editingMessage:i=null,onChange:a,onSubmit:o,onClearReply:s,onClearEditing:c,onSendMedia:l,onTyping:u})=>{let d=(0,y.useRef)(null),f=ckt(),p=f.items.length>0,m=p||e.trim().length>0,{openPicker:h,send:g,handleKeyDown:_,handlePaste:v,onFileChange:b}=lkt(f,e,d,{onSubmit:o,onSendMedia:l});return(0,D.jsxs)(D.Fragment,{children:[i!==null&&c!==void 0&&(0,D.jsx)(_kt,{editingText:i.text,onClear:c}),r!==null&&(0,D.jsx)(pkt,{replyTo:r,onClear:s}),p&&(0,D.jsx)(mkt,{attachments:f.items,onRemove:f.remove,onAddMore:h}),(0,D.jsx)(gkt,{value:e,title:n,hasAttachments:p,isSending:t,canSend:m,fileRef:d,onChange:a,onTyping:u,onKeyDown:_,onPaste:v,onAttach:h,onFileChange:b,onSend:g})]})},ykt=({conversation:e,conversationId:t,text:n,replyTo:r,editingMessage:i=null,isSending:a,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ikt,{conversationId:t}),(0,D.jsx)(vkt,{value:n,isSending:a,title:e.title,replyTo:r,editingMessage:i,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})]}),o7=(e,t,n,r)=>(e[t]?.[n]??0)>=r,bkt=(e,t,n)=>o7(t,e,`read`,n)?`read`:o7(t,e,`delivered`,n)?`delivered`:`sent`,xkt=(e,t,n)=>e.length===0?`sent`:e.every(e=>o7(t,e,`read`,n))?`read`:e.every(e=>o7(t,e,`delivered`,n))?`delivered`:`sent`,Skt=(e,t)=>t.peerUserId===null?xkt(t.otherMemberIds,t.receipts,e.sequence):bkt(t.peerUserId,t.receipts,e.sequence),Ckt=(e,t)=>{if(t.length===0)return e;let n=new Map;for(let r of[...t,...e])n.set(r.id,r);return[...n.values()].sort((e,t)=>e.sequence-t.sequence)},wkt=e=>{let t=e[0];return t===void 0?null:e.reduce((e,t)=>Math.min(e,t.sequence),t.sequence)},Tkt=e=>{let{getMessagesBefore:t}=uh(),n=Hm(),[r,i]=(0,y.useState)(!0),[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(!1);return(0,y.useEffect)(()=>{i(!0),o(!1),s.current=!1},[e]),{loadOlder:(0,y.useCallback)(()=>{if(e===null||s.current||!r)return;let a=yh(e),c=wkt(n.getQueryData(a)??[]);c!==null&&(s.current=!0,o(!0),Zf(t.execute(e,c,50)).then(e=>{n.setQueryData(a,t=>Ckt(t??[],e)),e.length<50&&i(!1)}).catch(()=>{}).finally(()=>{s.current=!1,o(!1)}))},[e,t,r,n]),hasMore:r,isLoadingOlder:a}},Ekt=80,Dkt=60,Okt={tailKey:``,headKey:``,count:0,lastFromViewer:!1},kkt=e=>{let t=e.at(-1);return{tailKey:t?.id??``,headKey:e[0]?.id??``,count:e.length,lastFromViewer:t?.fromViewer??!1}},Akt=(e,t)=>{e!==null&&e.scrollTo({top:e.scrollHeight,behavior:t?`smooth`:`auto`})},jkt=(e,t,n)=>{let r=(0,y.useRef)(null),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(!1),c=(0,y.useRef)(Okt),l=(0,y.useRef)(!0),u=(0,y.useRef)(null),d=(0,y.useRef)(n);d.current=n;let f=(0,y.useCallback)(e=>{Akt(r.current,e),s(!1)},[]),p=(0,y.useCallback)(()=>{let e=r.current;if(e===null)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<Ekt;l.current=t,a(t),t&&s(!1),e.scrollTop<Dkt&&(u.current=e.scrollHeight,d.current())},[]);return(0,y.useLayoutEffect)(()=>{c.current=Okt,l.current=!0,u.current=null,a(!0),s(!1)},[e]),(0,y.useLayoutEffect)(()=>{let e=kkt(t),n=c.current;c.current=e;let i=r.current;if(e.tailKey===``||i===null)return;if(n.tailKey===``){Akt(i,!1);return}let a=e.count>n.count,o=a&&e.tailKey!==n.tailKey;a&&e.headKey!==n.headKey&&u.current!==null&&(i.scrollTop+=i.scrollHeight-u.current,u.current=null),o&&(l.current||e.lastFromViewer)?(Akt(i,!0),s(!1)):o&&s(!0)},[t]),(0,y.useEffect)(()=>{p()},[p]),{scrollRef:r,isAtBottom:i,hasNewBelow:o,scrollToBottom:f,onScroll:p}},s7={card:`_card_1bdwl_1`,header:`_header_1bdwl_29`,body:`_body_1bdwl_43`,authorRow:`_authorRow_1bdwl_47`,avatar:`_avatar_1bdwl_54`,authorInfo:`_authorInfo_1bdwl_68`,authorName:`_authorName_1bdwl_73`,category:`_category_1bdwl_80`,catDot:`_catDot_1bdwl_90`,title:`_title_1bdwl_97`,snippet:`_snippet_1bdwl_105`,footer:`_footer_1bdwl_116`},Mkt=/\/feed\/posts\/([a-zA-Z0-9-]+)$/,Nkt=({title:e,body:t,authorName:n,authorInitials:r,authorColor:i,categoryLabel:a,categoryColor:o,link:s})=>{let c=qe();return(0,D.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault();let t=Mkt.exec(s);if(t?.[1]!==void 0){let e=t[1];c(`/comms/feed?postId=${e}`)}else (s.startsWith(`/`)||s.toLowerCase().startsWith(`http://`)||s.toLowerCase().startsWith(`https://`))&&window.open(s,`_blank`,`noopener,noreferrer`)},className:s7.card,style:{textAlign:`left`},children:[(0,D.jsxs)(`div`,{className:s7.header,children:[(0,D.jsx)(vn,{size:10}),`Shared from News Feed`]}),(0,D.jsxs)(`div`,{className:s7.body,children:[(0,D.jsxs)(`div`,{className:s7.authorRow,children:[(0,D.jsx)(`span`,{className:s7.avatar,style:Xn({"--avatar-color":i}),children:r}),(0,D.jsxs)(`div`,{className:s7.authorInfo,children:[(0,D.jsx)(`div`,{className:s7.authorName,children:n}),a!==null&&o!==null&&(0,D.jsxs)(`div`,{className:s7.category,style:Xn({"--cat-color":o}),children:[(0,D.jsx)(`span`,{className:s7.catDot}),a]})]})]}),(0,D.jsx)(`div`,{className:s7.title,children:e}),(0,D.jsx)(`div`,{className:s7.snippet,children:t}),(0,D.jsx)(`div`,{className:s7.footer,children:`Open in News Feed >`})]})]})},Pkt=e=>e.startsWith(`blob:`),Fkt=e=>e.type.length>0?URL.createObjectURL(e):URL.createObjectURL(new Blob([e],{type:`image/jpeg`})),Ikt=e=>{let{downloadChatMedia:t}=uh(),[n,r]=(0,y.useState)(!1),i=e!==null&&Pkt(e),a=e!==null&&!i?e:null,o=Um({queryKey:[`chat-media`,a],queryFn:()=>Zf(t.execute(a??``)),enabled:a!==null&&a.length>0,staleTime:1/0,gcTime:12e4,retry:1}),[s,c]=(0,y.useState)(null);(0,y.useEffect)(()=>{r(!1),c(null)},[e]),(0,y.useEffect)(()=>{let e=o.data;if(e===void 0)return;let t=Fkt(e);return c(t),()=>{URL.revokeObjectURL(t)}},[o.data]);let l=(0,y.useCallback)(()=>{r(!0)},[]);if(i)return{src:n?null:e,isLoading:!1,isError:n,onImageError:l};let u=o.isPending||o.isFetching;return{src:n?null:s,isLoading:u,isError:o.isError||n,onImageError:l}},c7=jf(e=>({open:!1,urls:[],index:0,openViewer:(t,n)=>{t.length!==0&&e({open:!0,urls:t,index:Math.max(0,Math.min(n,t.length-1))})},close:()=>{e({open:!1})},next:()=>{e(e=>({index:Math.min(e.index+1,e.urls.length-1)}))},prev:()=>{e(e=>({index:Math.max(e.index-1,0)}))}})),Lkt=({mediaUrl:e,album:t,index:n=0})=>{let{src:r,isLoading:i,isError:a,onImageError:o}=Ikt(e),s=c7(e=>e.openViewer);return a?(0,D.jsxs)(`div`,{className:A.msgMediaFallback,children:[(0,D.jsx)(sn,{size:18}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):r===null||i?(0,D.jsx)(`div`,{className:A.msgMediaLoading,children:(0,D.jsx)(rr,{size:`sm`})}):(0,D.jsx)(`button`,{type:`button`,className:E(A.mediaButton,t!==void 0&&A.mediaButtonFill),"aria-label":`Open image preview`,onClick:()=>{s(t??[e],n)},children:(0,D.jsx)(`img`,{className:A.msgMedia,src:r,alt:``,onError:o})})},Rkt=e=>(e??``).toLowerCase().split(`.`).pop()??``,zkt=[`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`,`avif`,`heic`],Bkt=(e,t)=>e!==null&&e.length>0?e.startsWith(`image/`):zkt.includes(Rkt(t)),Vkt={pdf:`pdf`,zip:`archive`,rar:`archive`,"7z":`archive`,gz:`archive`,tar:`archive`,doc:`document`,docx:`document`,txt:`document`,rtf:`document`,odt:`document`,xls:`spreadsheet`,xlsx:`spreadsheet`,csv:`spreadsheet`,ods:`spreadsheet`,ppt:`presentation`,pptx:`presentation`,odp:`presentation`,mp3:`audio`,wav:`audio`,ogg:`audio`,m4a:`audio`,aac:`audio`,mp4:`video`,mov:`video`,webm:`video`,mkv:`video`,avi:`video`},Hkt=e=>{if(e===`application/pdf`)return`pdf`;if(e.startsWith(`audio/`))return`audio`;if(e.startsWith(`video/`))return`video`;if(e.startsWith(`text/`))return`document`;if(/zip|compressed|tar/.test(e))return`archive`;if(/spreadsheet|excel/.test(e))return`spreadsheet`;if(/presentation|powerpoint/.test(e))return`presentation`;if(e.includes(`word`))return`document`},Ukt=(e,t)=>Bkt(e,t)?`image`:Hkt(e??``)??Vkt[Rkt(t)]??`generic`,Wkt={image:`Image`,pdf:`PDF Document`,archive:`Archive`,document:`Document`,spreadsheet:`Spreadsheet`,presentation:`Presentation`,audio:`Audio`,video:`Video`,generic:`File`},Gkt=e=>Wkt[e],Kkt={image:$t,pdf:tn,archive:yee,document:tn,spreadsheet:en,presentation:Dn,audio:Qt,video:bee,generic:nn},qkt=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t.length>0?t:`download`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)},Jkt=({mediaUrl:e,contentType:t,fileName:n,fromViewer:r})=>{let{downloadChatMedia:i}=uh(),[a,o]=(0,y.useState)(!1),s=Ukt(t,n),c=Kkt[s],l=n!==null&&n.length>0?n:`Attachment`,u=(0,y.useCallback)(()=>{o(!0),i.execute(e).then(e=>{o(!1),e.ok?qkt(e.value,l):Nf.error(`Could not download the file.`)})},[i,e,l]);return(0,D.jsxs)(`button`,{type:`button`,className:E(A.fileCard,r?A.fileCardMe:A.fileCardThem),onClick:u,disabled:a,"aria-label":`Download ${l}`,children:[(0,D.jsx)(`span`,{className:A.fileCardIcon,children:(0,D.jsx)(c,{size:22})}),(0,D.jsxs)(`span`,{className:A.fileCardInfo,children:[(0,D.jsx)(`span`,{className:A.fileCardName,children:l}),(0,D.jsx)(`span`,{className:A.fileCardMetaLabel,children:Gkt(s)})]}),(0,D.jsx)(`span`,{className:A.fileCardDownload,children:a?(0,D.jsx)(rr,{size:`sm`}):(0,D.jsx)(Xt,{size:16})})]})},Ykt=({tick:e})=>e===`read`?(0,D.jsx)(`span`,{className:E(A.tick,A.tickRead),"aria-label":`Read`,children:(0,D.jsx)(zt,{size:13})}):e===`delivered`?(0,D.jsx)(`span`,{className:A.tick,"aria-label":`Delivered`,children:(0,D.jsx)(zt,{size:13})}):(0,D.jsx)(`span`,{className:A.tick,"aria-label":`Sent`,children:(0,D.jsx)(Bt,{size:13})}),Xkt=({message:e,pending:t,tick:n,onRetry:r})=>t===`sending`?(0,D.jsx)(`span`,{className:A.tick,"aria-label":`Sending`,children:(0,D.jsx)(Jt,{size:13})}):t===`failed`?(0,D.jsxs)(`span`,{className:A.sendFailed,children:[(0,D.jsx)(`span`,{className:A.sendFailedText,children:`Not delivered`}),(0,D.jsx)(`button`,{type:`button`,className:A.retryBtn,onClick:()=>{e.clientMessageId!==null&&r(e.clientMessageId,e.text)},children:`Retry`})]}):n===null?null:(0,D.jsx)(Ykt,{tick:n}),Zkt=({initial:e,onSave:t})=>{let[n,r]=(0,y.useState)(e);return(0,D.jsxs)(`span`,{className:A.msgActions,children:[(0,D.jsx)(`input`,{className:A.composerInput,value:n,onChange:e=>{r(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{n.trim().length>0&&t(n.trim())},children:`Save`})]})},Qkt=({message:e,fromViewer:t,onReply:n,onEdit:r,onDelete:i,resolvedReplyTo:a=null})=>{let[o,s]=(0,y.useState)(!1),c=bOt(e,a);return a7(e)?(0,D.jsx)(`span`,{className:A.msgActions}):t?o?(0,D.jsx)(Zkt,{initial:e.text,onSave:t=>{r(e.id,t),s(!1)}}):(0,D.jsxs)(`span`,{className:A.msgActions,children:[(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{n(c)},children:`Reply`}),e.canEdit(Date.now())&&(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{s(!0)},children:`Edit`}),(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{i(e.id)},children:`Delete`})]}):(0,D.jsx)(`span`,{className:A.msgActions,children:(0,D.jsx)(`button`,{type:`button`,className:A.msgActionBtn,onClick:()=>{n(c)},children:`Reply`})})},$kt=`comms:chat:jump-to-message`,eAt=e=>{if(typeof window>`u`||e.length===0)return;let t=new CustomEvent($kt,{detail:{messageId:e},bubbles:!0});window.dispatchEvent(t)},tAt=(e,t,n=`msg-highlight-flash`)=>{let r=e.closest(t)??e.parentElement;if(r!==null){let t=r.getBoundingClientRect(),n=e.getBoundingClientRect(),i=r.scrollTop+(n.top-t.top)-t.height/2+n.height/2;typeof r.scrollTo==`function`&&r.scrollTo({top:Math.max(0,i),behavior:`smooth`})}e.classList.remove(n),e.offsetWidth,e.classList.add(n),window.setTimeout(()=>{e.classList.remove(n)},1600)},nAt=({replyTo:e})=>{let t=vOt(e.text);if(t!==null)return(0,D.jsx)(`div`,{style:{marginBottom:6,display:`block`,width:`100%`},children:(0,D.jsx)(Nkt,{...t.card})});let n=e.text.trim().length>0;return(0,D.jsxs)(`span`,{role:`button`,tabIndex:0,className:A.replyPreview,onClick:t=>{t.stopPropagation(),eAt(e.messageId)},onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),eAt(e.messageId))},children:[e.authorName.length>0&&(0,D.jsx)(`span`,{className:A.replyPreviewAuthor,children:e.authorName}),(0,D.jsx)(`span`,{className:A.replyPreviewText,children:n?yOt(e.text):`Message`})]})},rAt=`This message was deleted`,iAt=({message:e})=>{let t=e.mediaUrl;return t===null||t.length===0?null:Bkt(e.mediaContentType,e.mediaFileName)?(0,D.jsx)(Lkt,{mediaUrl:t}):(0,D.jsx)(Jkt,{mediaUrl:t,contentType:e.mediaContentType,fileName:e.mediaFileName,fromViewer:e.fromViewer})},aAt=({message:e,fromViewer:t,deletedForEveryone:n,pending:r,tick:i,onRetry:a})=>{let o=nh();return(0,D.jsxs)(`span`,{className:A.msgMeta,children:[(0,D.jsx)(`span`,{className:A.msgTime,children:Zve(e.sentAt,o.display)||e.time}),!n&&e.isEdited&&(0,D.jsx)(`span`,{className:A.editedLabel,children:`edited`}),t&&(e.kind===`text`||e.kind===`media`)&&(0,D.jsx)(Xkt,{message:e,pending:r,tick:i,onRetry:a})]})},oAt=/(https?:\/\/[^\s]+)/g,sAt=({text:e})=>e?(0,D.jsx)(D.Fragment,{children:e.split(oAt).map((e,t)=>e.match(oAt)?(0,D.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:A.msgLink,children:e},t):(0,D.jsx)(y.Fragment,{children:e},t))}):(0,D.jsx)(D.Fragment,{children:e}),cAt=({sharedComment:e,sharedCardProps:t})=>(0,D.jsxs)(D.Fragment,{children:[e.length>0&&(0,D.jsx)(`span`,{className:E(A.msgText,A.msgTextWithCard),children:(0,D.jsx)(sAt,{text:e})}),(0,D.jsx)(Nkt,{...t})]}),lAt=({messageText:e,deletedForEveryone:t})=>(0,D.jsx)(`span`,{className:E(A.msgText,t&&A.msgTextDeleted),children:t?rAt:(0,D.jsx)(sAt,{text:e})}),uAt=({message:e,authorName:t,showAuthor:n,replyTo:r,fromViewer:i,deletedForEveryone:a,pending:o,tick:s,onRetry:c,isSelected:l,onSelect:u})=>{let d=a?null:vOt(e.text);return(0,D.jsxs)(`div`,{className:E(A.bubble,i?A.bubbleMe:A.bubbleThem,l&&A.bubbleSelected),onClick:()=>{u!==void 0&&u(e)},children:[n&&(0,D.jsx)(`span`,{className:A.msgAuthor,children:t}),!a&&r!==null&&(0,D.jsx)(nAt,{replyTo:r}),!a&&(0,D.jsx)(iAt,{message:e}),d===null?(0,D.jsx)(lAt,{messageText:e.text,deletedForEveryone:a}):(0,D.jsx)(cAt,{sharedComment:d.comment,sharedCardProps:d.card}),(0,D.jsx)(aAt,{message:e,fromViewer:i,deletedForEveryone:a,pending:o,tick:s,onRetry:c})]})},dAt=({message:e,identity:t,replyTo:n,isSelected:r,onSelect:i,showAvatar:a,showAuthor:o,tick:s,pending:c,onRetry:l,onReply:u,onEdit:d,onDelete:f,quickReact:p,reactions:m})=>{let{fromViewer:h,deletedForEveryone:g}=e,_=!a7(e)&&!g,v=m!==null;return(0,D.jsxs)(D.Fragment,{children:[!h&&(a?(0,D.jsx)(`span`,{className:A.msgAvatar,style:Xn({"--avatar-color":t.color}),children:t.initials}):(0,D.jsx)(`span`,{className:A.msgAvatarSpacer,"aria-hidden":`true`})),(0,D.jsx)(`div`,{className:E(A.msgCol,v&&A.msgColWithReactions),children:(0,D.jsxs)(`div`,{className:A.msgBubbleWrap,children:[(0,D.jsx)(uAt,{message:e,authorName:t.name,showAuthor:o,replyTo:n,fromViewer:h,deletedForEveryone:g,pending:c,tick:s,onRetry:l,isSelected:r,onSelect:i}),v&&m,_&&p,_&&(0,D.jsx)(Qkt,{message:e,fromViewer:h,onReply:u,onEdit:d,onDelete:f,resolvedReplyTo:n})]})})]})},fAt=e=>e.trim().toLowerCase(),pAt=(e,t)=>fAt(e)===fAt(t),mAt=(e,t)=>{if(e.fromViewer)return{name:e.authorName,initials:e.authorInitials,color:e.authorColor};let n=t.members.find(t=>pAt(t.id,e.senderId));return n===void 0?t.kind===`dm`&&t.peerUserId!==null&&pAt(t.peerUserId,e.senderId)?{name:t.title,initials:t.initials,color:t.color}:{name:e.authorName,initials:e.authorInitials,color:e.authorColor}:{name:n.name,initials:n.initials,color:n.color}},hAt=({align:e,onPick:t})=>{let[n,r]=(0,y.useState)(!1);return(0,D.jsxs)(`div`,{className:A.reactWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:A.reactBtn,"aria-label":`Add reaction`,onClick:()=>{r(e=>!e)},children:(0,D.jsx)(Fn,{size:14})}),(0,D.jsx)(Uu,{children:n&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:A.emojiBackdrop,"aria-label":`Close reaction picker`,onClick:()=>{r(!1)}}),(0,D.jsx)(Zu.div,{className:E(A.reactPop,e===`right`?A.reactPopRight:A.reactPopLeft),variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:ukt.map(e=>(0,D.jsx)(`button`,{type:`button`,className:A.reactPopBtn,onClick:()=>{t(e),r(!1)},children:e},e))})]})})]})},gAt=({message:e,onReact:t,fromViewer:n})=>{let r=e.reactions.reduce((e,t)=>e+t.count,0);if(r===0)return null;let i=e.reactions.find(e=>e.reacted);return(0,D.jsxs)(`button`,{type:`button`,className:E(A.reactionPill,n?A.reactionsMe:A.reactionsThem,i!==void 0&&A.reactionPillActive),onClick:()=>{if(i!==void 0)t(e.id,i.emoji);else if(e.reactions.length>0){let n=e.reactions[0]?.emoji;n!==void 0&&t(e.id,n)}},"aria-label":`Reactions`,children:[(0,D.jsx)(`span`,{className:A.reactionEmojis,children:e.reactions.map(e=>e.emoji).join(``)}),r>1&&(0,D.jsx)(`span`,{className:A.reactionCount,children:r})]})},_At=({text:e})=>(0,D.jsx)(Zu.div,{className:A.systemRow,variants:ad,initial:`hidden`,animate:`visible`,children:(0,D.jsx)(`span`,{className:A.systemPill,children:e})}),vAt=(e,t,n)=>!e.deletedForEveryone&&e.reactions.length>0?(0,D.jsx)(gAt,{message:e,onReact:n,fromViewer:t}):null,yAt=({conversation:e,message:t,layoutStatic:n=!1,firstOfGroup:r=!0,lastOfGroup:i=!0,replyTo:a,isSelected:o,onSelect:s,onReact:c,tick:l,pending:u,onRetry:d,onReply:f,onEdit:p,onDelete:m})=>{if(t.isSystem)return(0,D.jsx)(_At,{text:t.text});let{fromViewer:h}=t,g=mAt(t,e),_=E(A.msgRow,h&&A.msgRowMe,r&&A.msgRowGroupStart),v=(0,D.jsx)(dAt,{message:t,identity:g,replyTo:a??t.replyTo,isSelected:o,onSelect:s,showAvatar:i,showAuthor:r&&e.isGroup,tick:l,pending:u,onRetry:d,onReply:f,onEdit:p,onDelete:m,quickReact:(0,D.jsx)(hAt,{align:h?`right`:`left`,onPick:e=>{c(t.id,e)}}),reactions:vAt(t,h,c)});return n?(0,D.jsx)(`div`,{id:`msg-${t.id}`,className:_,children:v}):(0,D.jsx)(Zu.div,{id:`msg-${t.id}`,className:_,variants:ad,initial:`hidden`,animate:`visible`,whileHover:{y:-1,scale:1.005},transition:{type:`spring`,stiffness:500,damping:30},children:v})},bAt=()=>void 0,xAt=e=>e.find(e=>e.text.trim().length>0)?.text??``,SAt=({fromViewer:e,lastOfGroup:t,identity:n})=>e?null:t?(0,D.jsx)(`span`,{className:A.msgAvatar,style:Xn({"--avatar-color":n.color}),children:n.initials}):(0,D.jsx)(`span`,{className:A.msgAvatarSpacer,"aria-hidden":`true`}),CAt=({message:e,onReact:t,onReply:n,onDelete:r})=>(0,D.jsxs)(`div`,{className:A.albumCellActions,children:[(0,D.jsx)(hAt,{align:e.fromViewer?`right`:`left`,onPick:n=>{t(e.id,n)}}),(0,D.jsx)(`button`,{type:`button`,className:A.albumActionBtn,"aria-label":`Reply`,onClick:()=>{n(bOt(e))},children:(0,D.jsx)(An,{size:13})}),e.fromViewer&&(0,D.jsx)(`button`,{type:`button`,className:A.albumActionBtn,"aria-label":`Delete`,onClick:()=>{r(e.id)},children:(0,D.jsx)(Vn,{size:13})})]}),wAt=e=>{let{message:t,album:n,index:r}=e,i=!a7(t)&&!t.deletedForEveryone,a=!t.deletedForEveryone&&t.reactions.length>0;return(0,D.jsxs)(`div`,{id:`msg-${t.id}`,className:A.albumCell,children:[(0,D.jsx)(`div`,{className:A.albumCellMedia,children:t.mediaUrl!==null&&t.mediaUrl.length>0&&(0,D.jsx)(Lkt,{mediaUrl:t.mediaUrl,album:n,index:r})}),i&&(0,D.jsx)(CAt,{...e}),a&&(0,D.jsx)(`div`,{className:A.albumCellReactions,children:(0,D.jsx)(gAt,{message:t,onReact:e.onReact,fromViewer:t.fromViewer})})]})},TAt=({last:e,fromViewer:t,tick:n,pending:r})=>{let i=nh();return(0,D.jsxs)(`span`,{className:A.msgMeta,children:[(0,D.jsx)(`span`,{className:A.msgTime,children:Zve(e.sentAt,i.display)||e.time}),t&&(0,D.jsx)(Xkt,{message:e,pending:r,tick:n,onRetry:bAt})]})},EAt=({conversation:e,messages:t,firstOfGroup:n,lastOfGroup:r,tick:i,pending:a,onReact:o,onReply:s,onDelete:c})=>{let l=t.at(0),u=t.at(-1);if(l===void 0||u===void 0)return(0,D.jsx)(D.Fragment,{});let{fromViewer:d}=l,f=mAt(l,e),p=xAt(t),m=n&&e.isGroup,h=t.map(e=>e.mediaUrl??``);return(0,D.jsxs)(`div`,{id:`msg-${u.id}`,className:E(A.msgRow,d&&A.msgRowMe,n&&A.msgRowGroupStart),children:[(0,D.jsx)(SAt,{fromViewer:d,lastOfGroup:r,identity:f}),(0,D.jsx)(`div`,{className:A.msgCol,children:(0,D.jsx)(`div`,{className:A.msgBubbleWrap,children:(0,D.jsxs)(`div`,{className:E(A.bubble,d?A.bubbleMe:A.bubbleThem),children:[m&&(0,D.jsx)(`span`,{className:A.msgAuthor,children:f.name}),(0,D.jsx)(`div`,{className:A.albumGrid,children:t.map((e,t)=>(0,D.jsx)(wAt,{message:e,album:h,index:t,onReact:o,onReply:s,onDelete:c},e.id))}),p.length>0&&(0,D.jsx)(`span`,{className:A.msgText,children:p}),(0,D.jsx)(TAt,{last:u,fromViewer:d,tick:i,pending:a})]})})})]})},DAt=(e,t)=>{if(e.length===0)return null;let n=ch(e);if(Number.isNaN(n.getTime()))return null;if(t&&t.length>0){let e=Qm(n,t),r=String(e.month).padStart(2,`0`),i=String(e.day).padStart(2,`0`);return`${String(e.year)}-${r}-${i}`}let r=String(n.getMonth()+1).padStart(2,`0`),i=String(n.getDate()).padStart(2,`0`);return`${String(n.getFullYear())}-${r}-${i}`},OAt=(e,t)=>{let[n,r,i]=e.split(`-`);return new Date(Date.UTC(Number(n),Number(r)-1,Number(i))).toLocaleDateString(`en-US`,{weekday:`short`,day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})},kAt=(e,t)=>!e.isSystem&&!t.isSystem&&e.senderId===t.senderId,AAt=(e,t)=>{let n=[],r=null;return e.forEach((i,a)=>{let o=DAt(i.sentAt,t),s=o!==null&&o!==r;s&&n.push({kind:`date`,key:`date:${o}`,label:OAt(o,t)}),r=o??r;let c=e[a-1],l=e[a+1],u=s||c===void 0||!kAt(c,i),d=l===void 0||!kAt(i,l)||DAt(l.sentAt,t)!==o;n.push({kind:`message`,key:i.id,row:{message:i,firstOfGroup:u,lastOfGroup:d}})}),n},jAt=2,MAt=e=>e.kind===`message`&&e.row.message.kind===`media`&&!e.row.message.isSystem&&!e.row.message.deletedForEveryone&&(e.row.message.mediaUrl??``).length>0&&Bkt(e.row.message.mediaContentType,e.row.message.mediaFileName),NAt=e=>e.kind===`message`&&e.row.message.kind===`media`&&!e.row.message.isSystem&&e.row.message.deletedForEveryone,PAt=e=>MAt(e)||NAt(e),FAt=(e,t,n)=>({kind:`album`,key:`album:${(e[0]??t).row.message.id}`,messages:e.map(e=>e.row.message),firstOfGroup:t.row.firstOfGroup,lastOfGroup:n.row.lastOfGroup}),IAt=(e,t,n)=>({kind:`message`,key:e.key,row:{message:e.row.message,firstOfGroup:t.row.firstOfGroup,lastOfGroup:n.row.lastOfGroup}}),LAt=(e,t)=>{let n=e[0],r=e[e.length-1];if(n===void 0||r===void 0)return;let i=e.filter(MAt);if(i.length>=jAt){t.push(FAt(i,n,r));return}if(i.length===1&&i[0]!==void 0){t.push(IAt(i[0],n,r));return}t.push(IAt(n,n,r))},RAt=e=>{let t=[],n=[];for(let r of e){if(PAt(r)){let e=n.at(-1);e!==void 0&&e.row.message.senderId!==r.row.message.senderId&&(LAt(n,t),n=[]),n.push(r);continue}LAt(n,t),n=[],t.push(r)}return LAt(n,t),t},zAt=(e,t)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||e.clientMessageId===null?null:t[e.clientMessageId]??null,BAt=({label:e})=>(0,D.jsx)(`div`,{className:A.dateSep,children:(0,D.jsx)(`span`,{className:A.dateSepPill,children:e})}),VAt=({conversation:e,messages:t,pending:n,selectedMessageId:r,onSelectMessage:i,onReact:a,onRetry:o,onReply:s,onEdit:c,onDelete:l,tickFor:u})=>{let d=nh(),f=(0,y.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]);return(0,D.jsx)(D.Fragment,{children:RAt(AAt(t,d.display)).map(t=>{if(t.kind===`date`)return(0,D.jsx)(BAt,{label:t.label},t.key);if(t.kind===`album`){let r=t.messages.at(-1);return(0,D.jsx)(EAt,{conversation:e,messages:t.messages,firstOfGroup:t.firstOfGroup,lastOfGroup:t.lastOfGroup,tick:r===void 0?null:u(r),pending:r===void 0?null:zAt(r,n),onReact:a,onReply:s,onDelete:l},t.key)}return(0,D.jsx)(yAt,{layoutStatic:!0,firstOfGroup:t.row.firstOfGroup,lastOfGroup:t.row.lastOfGroup,conversation:e,message:t.row.message,isSelected:r===t.row.message.id,onSelect:i,replyTo:SOt(t.row.message.replyTo,f),onReact:a,pending:zAt(t.row.message,n),tick:u(t.row.message),onRetry:o,onReply:s,onEdit:c,onDelete:l},t.key)})})},l7={id:`u-shamim`,name:`Shamim Rahman`,initials:`SR`,color:`#e9445a`},HAt=`t-uapp`,UAt={id:`u-andreea`,name:`Andreea Cinpoi`,initials:`AN`,color:`#7c3aed`,role:`Sales Manager`},WAt={id:`u-laura`,name:`Laura Tomova`,initials:`LA`,color:`#3a7bd5`,role:`Compliance Officer`},GAt={id:`s-mahmud`,name:`Mahmud Hasan`,initials:`MH`,color:`#16a34a`,role:`Student`},KAt={id:`u-mihadul`,name:`Mihadul Islam`,initials:`MI`,color:`#65a30d`,role:`Admission Officer`},qAt={id:`u-nur`,name:`Nur Mohammad`,initials:`NM`,color:`#8b5cf6`,role:`Team Leader`},JAt={id:`u-md-shamim`,name:`Md Shamim`,initials:`MS`,color:`#0a6e6f`,role:`Sales Lead`};l7.id,l7.name,l7.initials,l7.color;var u7=(e,t)=>({...t,admin:!1,lastSynced:null,tenantId:HAt,categoryId:null,members:[],adminIds:[],data:{},peerUserId:e,memberReceipts:[]});l7.id,GAt.id,l7.id,KAt.id,qAt.id,GAt.id,l7.id,JAt.id,UAt.id,l7.id,UAt.id,WAt.id,{...u7(`u-tousif`,{id:`c-tousif`,kind:`dm`,title:`Tousif Sadman`,subtitle:`Consultant`,initials:`TS`,color:`#0e7c66`,online:!0,unread:2,pinned:!1,favourite:!0,archived:!1,lastMessage:`Sure, I'll send the documents`,lastTime:`5m`})},l7.id,u7(`u-raj`,{id:`c-raj`,kind:`dm`,title:`Raj Ahmed`,subtitle:`Global Admission Manager`,initials:`RA`,color:`#0ea5e9`,online:!0,unread:1,pinned:!1,favourite:!1,archived:!1,lastMessage:`The offer letter is ready`,lastTime:`1h`}),u7(`u-andreea`,{id:`c-andreea`,kind:`dm`,title:`Andreea Cinpoi`,subtitle:`Sales Manager`,initials:`AN`,color:`#7c3aed`,online:!1,unread:0,pinned:!1,favourite:!1,archived:!1,lastMessage:`Thanks for the update`,lastTime:`2h`}),u7(`u-jennifer`,{id:`c-jennifer`,kind:`dm`,title:`Jennifer Aboje`,subtitle:`Branch Manager`,initials:`JA`,color:`#fc7300`,online:!1,unread:0,pinned:!1,favourite:!1,archived:!1,lastMessage:`Let me check with the team`,lastTime:`Yesterday`}),u7(`u-laura`,{id:`c-laura`,kind:`dm`,title:`Laura Tomova`,subtitle:`Compliance Officer`,initials:`LA`,color:`#3a7bd5`,online:!1,unread:0,pinned:!1,favourite:!1,archived:!0,lastMessage:`Archived — visa file closed`,lastTime:`3d`});var YAt=gm({id:k(),name:k(),initials:k(),color:k(),role:k(),status:pm().optional(),statusUntilUtc:k().nullish()}),XAt=gm({userId:k(),deliveredUpto:pm(),readUpto:pm()}),ZAt=gm({id:k(),type:pm(),title:k(),subtitle:k(),initials:k(),color:k(),online:mm(),status:pm().optional(),statusUntilUtc:k().nullish(),unread:pm(),pinned:mm(),favourite:mm(),archived:mm(),unreadCount:pm(),admin:mm(),lastMessage:k(),lastTime:k(),lastMessageAt:k().nullable().optional(),lastSyncedAt:k().nullable(),categoryId:k().nullable(),headerFields:vm(k(),k()).optional(),members:hm(YAt),adminIds:hm(k()),peerUserId:k().nullable().optional().default(null),memberReceipts:hm(XAt).optional().default([])}).passthrough(),QAt=gm({emoji:k(),count:pm(),reacted:mm()}),d7=gm({id:k(),conversationId:k(),kind:pm(),senderId:k(),authorName:k(),authorInitials:k(),authorColor:k(),text:k(),sentAt:k(),time:k(),sequence:pm(),clientMessageId:k().nullable(),fromViewer:mm(),reactions:hm(QAt),replyToMessageId:k().nullable().optional().default(null),replyToAuthorName:k().optional().default(``),replyToText:k().optional().default(``),mediaUrl:k().nullable().optional().default(null),mediaContentType:k().nullable().optional().default(null),mediaFileName:k().nullable().optional().default(null),editedAt:k().nullable().optional().default(null),isEdited:mm().optional().default(!1),deletedForEveryone:mm().optional().default(!1)}),$At=gm({id:k(),name:k(),initials:k(),color:k()}),ejt=hm(ZAt),tjt=hm(YAt),njt=gm({totalCount:pm(),items:ejt}),rjt=gm({unread:pm(),favourites:pm(),groups:pm(),archived:pm()}),ijt=gm({blobName:k(),url:k(),contentType:k().optional().default(`application/octet-stream`),fileName:k().nullable().optional().default(null)}),ajt=hm(d7),ojt=6e4,sjt=60*ojt,cjt=24*sjt,ljt=(e,t)=>{let n=t.getTime()-e.getTime();return n<ojt?`just now`:n<sjt?`${String(Math.floor(n/ojt))}m`:n<cjt?`${String(Math.floor(n/sjt))}h`:`${String(Math.floor(n/cjt))}d`},ujt=e=>e===0?`dm`:`group`,djt=e=>e===1?`system`:e===2?`media`:`text`,fjt=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role,status:Nh(e.status),statusUntilUtc:e.statusUntilUtc??null}),pjt=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color}),mjt=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`))try{let t=e.substring(22),n=JSON.parse(t).card?.title??``;return n.length>0?`Shared Post: ${n}`:`Shared Post`}catch{return`Shared Post`}return e},hjt=(e,t)=>new Xve({id:e.id,kind:ujt(e.type),title:e.title,subtitle:e.subtitle,initials:e.initials,color:e.color,online:e.online,status:Nh(e.status),statusUntilUtc:e.statusUntilUtc??null,unread:e.unreadCount,pinned:e.pinned,favourite:e.favourite,archived:e.archived,admin:e.admin,lastMessage:mjt(e.lastMessage),lastTime:e.lastTime,lastMessageAt:e.lastMessageAt??null,lastSynced:e.lastSyncedAt===null?null:ljt(new Date(e.lastSyncedAt),t),tenantId:``,categoryId:e.categoryId,members:e.members.map(fjt),adminIds:e.adminIds,data:e.headerFields??{},peerUserId:e.peerUserId,memberReceipts:e.memberReceipts.map(e=>({userId:e.userId,deliveredUpto:e.deliveredUpto,readUpto:e.readUpto}))}),f7=e=>{let t=e.replyToMessageId!==null&&e.replyToMessageId.length>0?{messageId:e.replyToMessageId,authorName:e.replyToAuthorName,text:e.replyToText}:null;return new lh({id:e.id,kind:djt(e.kind),authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,text:e.text,time:e.time,sentAt:e.sentAt,fromViewer:e.fromViewer,reactions:e.reactions.map(e=>({emoji:e.emoji,count:e.count,reacted:e.reacted})),sequence:e.sequence,senderId:e.senderId,clientMessageId:e.clientMessageId,replyTo:t,mediaUrl:e.mediaUrl,mediaContentType:e.mediaContentType,mediaFileName:e.mediaFileName,isEdited:e.deletedForEveryone?!1:(e.editedAt??``).length>0||e.isEdited,deletedForEveryone:e.deletedForEveryone})},p7=(e,t,n)=>(e.error(`Chat ${t} returned an unexpected shape`,n),O(new sh(n))),gjt=e=>{if(e.length===0)return;let t=e[0];if(t&&typeof t==`object`&&`message`in t){let e=t.message;if(typeof e==`string`&&e.trim().length>0)return e}},_jt=e=>{if(Array.isArray(e.validationErrors)){let t=gjt(e.validationErrors);if(t!==void 0)return t}if(typeof e.details==`string`&&e.details.trim().length>0&&!e.details.includes(`The following errors were detected`))return e.details;if(typeof e.message==`string`&&e.message.trim().length>0)return e.message},vjt=e=>{if(!e||typeof e!=`object`||!(`body`in e))return;let t=e.body;if(!t||typeof t!=`object`)return;let n=t;return _jt(`error`in n&&n.error&&typeof n.error==`object`?n.error:n)},m7=(e,t)=>(e.error(`Chat request failed`,t),new sh(t,vjt(t))),yjt=(e,t,n)=>{let r=ajt.safeParse(n);return r.success?Yf(r.data.map(f7)):p7(e,t,r.error)},bjt=(e,t,n,r)=>{let i=ZAt.safeParse(r);return i.success?Yf(hjt(i.data,t.now())):p7(e,n,i.error)},xjt=`/api/app/chat-media/download?blobName=`,Sjt=e=>`${xjt}${encodeURIComponent(decodeURIComponent(e))}`,Cjt=e=>{if(!e.startsWith(`http://`)&&!e.startsWith(`https://`))return e;try{let t=new URL(e);return`${t.pathname}${t.search}`}catch{return e}},wjt=e=>{let t=/^\/api\/app\/chat-media\/download\?blobName=([^&]+)/.exec(e);if(t?.[1]!==void 0)return t[1];let n=/^\/api\/app\/chat-media\?blobName=([^&]+)/.exec(e);if(n?.[1]!==void 0)return n[1];let r=/^\/api\/app\/chat-media\/([^/?]+)/.exec(e)?.[1];if(r!==void 0&&r!==`upload`&&r!==`download`)return r},Tjt=e=>{let t=e.trim();if(t.length===0)return t;let n=Cjt(t),r=wjt(n);return r===void 0?n.startsWith(`/`)?n:`/${n}`:Sjt(r)},h7={conversations:`/api/app/chat/conversations`,conversationCounts:`/api/app/chat/conversation-scope-counts`,listStaff:`/api/app/chat/list-staff`,groupMemberPool:`/api/app/chat/group-member-pool`,viewer:`/api/app/chat/viewer`,createGroup:`/api/app/chat/group`,uploadChatMedia:`/api/app/chat-media/upload`,subscribePush:`/api/app/web-push/subscribe`},g7={afterSequence:`afterSequence`,beforeSequence:`beforeSequence`,skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,scope:`scope`,uptoSequence:`uptoSequence`,favourite:`favourite`,archived:`archived`,pinned:`pinned`},_7=e=>encodeURIComponent(e),v7={conversation:e=>`/api/app/chat/conversation/${_7(e)}`,messages:e=>`/api/app/chat/messages/${_7(e)}`,messagesBefore:e=>`/api/app/chat/messages-before/${_7(e)}`,messagesSince:e=>`/api/app/chat/messages-since/${_7(e)}`,sendMessage:e=>`/api/app/chat/send-message/${_7(e)}`,sendMediaMessage:e=>`/api/app/chat/send-media-message/${_7(e)}`,markDelivered:e=>`/api/app/chat/mark-delivered/${_7(e)}`,markRead:e=>`/api/app/chat/mark-read/${_7(e)}`,reactToMessage:e=>`/api/app/chat/react-to-message/${_7(e)}`,saveMembers:e=>`/api/app/chat/save-members/${_7(e)}`,leaveConversation:e=>`/api/app/chat/leave-conversation/${_7(e)}`,setFavourite:e=>`/api/app/chat/set-favourite/${_7(e)}`,setArchived:e=>`/api/app/chat/set-archived/${_7(e)}`,setPinned:e=>`/api/app/chat/set-pinned/${_7(e)}`,deleteConversation:e=>`/api/app/chat/conversation/${_7(e)}`,refreshPortal:e=>`/api/app/chat/refresh-portal/${_7(e)}`,startDirect:e=>`/api/app/chat/start-direct/${_7(e)}`,editMessage:e=>`/api/app/chat/edit-message/${_7(e)}`,deleteMessage:e=>`/api/app/chat/message/${_7(e)}`,deleteMessageForMe:e=>`/api/app/chat/message-for-me/${_7(e)}`},Ejt=async(e,t,n,r)=>{try{let i=new FormData;i.append(`file`,n,r);let a=await e.httpClient.post(h7.uploadChatMedia,i,{query:{conversationId:t}}),o=ijt.safeParse(a);return o.success?Yf({mediaId:o.data.blobName,url:o.data.url}):p7(e.logger,`upload-media`,o.error)}catch(t){return O(m7(e.logger,t))}},Djt=async(e,t)=>{try{let n=await Ejt(e,t.conversationId,t.file,t.fileName);if(!n.ok)return n;let r={blobName:n.value.mediaId,clientMessageId:t.clientMessageId};t.file.type.length>0&&(r.contentType=t.file.type),t.fileName.length>0&&(r.fileName=t.fileName),t.caption!==void 0&&t.caption.trim().length>0&&(r.caption=t.caption.trim()),t.replyToMessageId!==void 0&&t.replyToMessageId!==null&&(r.replyToMessageId=t.replyToMessageId);let i=await e.httpClient.post(v7.sendMediaMessage(t.conversationId),r),a=d7.safeParse(i);return a.success?Yf(f7(a.data)):p7(e.logger,`send-media-message`,a.error)}catch(t){return O(m7(e.logger,t))}},Ojt=async(e,t)=>{try{let n=Tjt(t),r=await e.httpClient.getBlob(n,{headers:{Accept:`image/*,*/*`}});return r.size===0?O(new sh(`Chat media response was empty`)):Yf(r)}catch(t){return O(m7(e.logger,t))}},kjt=async(e,t,n,r)=>{try{let t=await e.httpClient.post(v7.editMessage(n),{text:r}),i=d7.safeParse(t);return i.success?Yf(f7(i.data)):p7(e.logger,`edit-message`,i.error)}catch(t){return O(m7(e.logger,t))}},Ajt=async(e,t,n)=>{try{return await e.httpClient.delete(v7.deleteMessage(n)),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},jjt=async(e,t,n)=>{try{return await e.httpClient.delete(v7.deleteMessageForMe(n)),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},Mjt=async(e,t)=>{try{return await e.httpClient.post(h7.subscribePush,{endpoint:t.endpoint,p256dh:t.p256dh,auth:t.auth}),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},y7=async(e,t,n,r)=>{try{return await e.post(n,void 0,{query:r}),Yf(void 0)}catch(e){return O(m7(t,e))}},Njt=async e=>{try{return await e.httpClient.post(e.path,e.body,{query:e.query}),Yf(void 0)}catch(t){return O(m7(e.logger,t))}},Pjt=async(e,t,n)=>{try{return await e.delete(n),Yf(void 0)}catch(e){return O(m7(t,e))}},Fjt=(e,t,n)=>y7(e.httpClient,e.logger,v7.markDelivered(t),{[g7.uptoSequence]:n}),Ijt=(e,t,n)=>y7(e.httpClient,e.logger,v7.markRead(t),{[g7.uptoSequence]:n}),Ljt=(e,t,n)=>y7(e.httpClient,e.logger,v7.setFavourite(t),{[g7.favourite]:n}),Rjt=(e,t,n)=>y7(e.httpClient,e.logger,v7.setArchived(t),{[g7.archived]:n}),zjt=(e,t,n)=>y7(e.httpClient,e.logger,v7.setPinned(t),{[g7.pinned]:n}),Bjt=(e,t)=>y7(e.httpClient,e.logger,v7.leaveConversation(t),{}),Vjt=(e,t)=>y7(e.httpClient,e.logger,v7.refreshPortal(t),{}),Hjt=(e,t,n)=>Njt({httpClient:e.httpClient,logger:e.logger,path:v7.reactToMessage(t),query:{},body:{emoji:n}}),Ujt=(e,t,n,r)=>Njt({httpClient:e.httpClient,logger:e.logger,path:v7.saveMembers(t),query:{},body:{members:n.map(e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role})),adminIds:[...r]}}),Wjt=(e,t)=>Pjt(e.httpClient,e.logger,v7.deleteConversation(t)),Gjt={all:`All`,unread:`Unread`,favourites:`Favourites`,groups:`Groups`,archive:`Archive`},Kjt=async(e,t)=>{let n=t.filter?.trim();try{let r=await e.httpClient.get(h7.conversations,{query:{[g7.scope]:Gjt[t.scope],[g7.filter]:n===void 0||n===``?void 0:n,[g7.skipCount]:t.skipCount,[g7.maxResultCount]:t.maxResultCount}}),i=njt.safeParse(r);if(!i.success)return p7(e.logger,`conversations`,i.error);let a=e.clock.now();return Yf({items:i.data.items.map(e=>hjt(e,a)),totalCount:i.data.totalCount})}catch(t){return O(m7(e.logger,t))}},qjt=async e=>{try{let t=await e.httpClient.get(h7.conversationCounts),n=rjt.safeParse(t);return n.success?Yf(n.data):p7(e.logger,`conversation-counts`,n.error)}catch(t){return O(m7(e.logger,t))}},Jjt=async(e,t)=>{try{let n=await e.httpClient.get(v7.conversation(t));return bjt(e.logger,e.clock,`conversation`,n)}catch(t){return O(m7(e.logger,t))}},Yjt=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.post(h7.listStaff,void 0,{query:{[g7.filter]:n===void 0||n===``?void 0:n}}),r=tjt.safeParse(t);return r.success?Yf(r.data.map(fjt)):p7(e.logger,`list-staff`,r.error)}catch(t){return O(m7(e.logger,t))}},Xjt=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.get(h7.groupMemberPool,{query:{[g7.filter]:n===void 0||n===``?void 0:n}}),r=tjt.safeParse(t);return r.success?Yf(r.data.map(fjt)):p7(e.logger,`group-member-pool`,r.error)}catch(t){return O(m7(e.logger,t))}},Zjt=async e=>{try{let t=await e.httpClient.get(h7.viewer),n=$At.safeParse(t);return n.success?Yf(pjt(n.data)):p7(e.logger,`viewer`,n.error)}catch(t){return O(m7(e.logger,t))}},Qjt=async(e,t,n)=>{try{let r=n===void 0?void 0:{query:{[g7.maxResultCount]:n}},i=await e.httpClient.get(v7.messages(t),r);return yjt(e.logger,`messages`,i)}catch(t){return O(m7(e.logger,t))}},$jt=async(e,t,n,r)=>{try{let i=await e.httpClient.get(v7.messagesSince(t),{query:{[g7.afterSequence]:n,[g7.maxResultCount]:r}});return yjt(e.logger,`messages-since`,i)}catch(t){return O(m7(e.logger,t))}},eMt=async(e,t,n,r)=>{try{let i=await e.httpClient.get(v7.messagesBefore(t),{query:{[g7.beforeSequence]:n,[g7.maxResultCount]:r}});return yjt(e.logger,`messages-before`,i)}catch(t){return O(m7(e.logger,t))}},tMt=async(e,t)=>{try{let n=await e.httpClient.post(v7.startDirect(t),void 0);return bjt(e.logger,e.clock,`start-direct`,n)}catch(t){return O(m7(e.logger,t))}},nMt=async(e,t,n)=>{try{let r={title:t,memberIds:[...n]},i=await e.httpClient.post(h7.createGroup,r);return bjt(e.logger,e.clock,`group`,i)}catch(t){return O(m7(e.logger,t))}},rMt=async e=>{let{deps:t,conversationId:n,text:r,clientMessageId:i,replyToMessageId:a}=e;try{let e={text:r,clientMessageId:i};a!=null&&(e.replyToMessageId=a);let o=await t.httpClient.post(v7.sendMessage(n),e),s=d7.safeParse(o);return s.success?Yf(f7(s.data)):p7(t.logger,`send-message`,s.error)}catch(e){return O(m7(t.logger,e))}},iMt=class{httpClient;clock;logger;constructor(e){this.httpClient=e.httpClient,this.clock=e.clock,this.logger=e.logger.child(`http-chat-gateway`)}deps(){return{httpClient:this.httpClient,logger:this.logger}}queryDeps(){return{httpClient:this.httpClient,clock:this.clock,logger:this.logger}}listConversations(e){return Kjt(this.queryDeps(),e)}getConversationCounts(){return qjt(this.deps())}getConversation(e){return Jjt(this.queryDeps(),e)}listStaff(e){return Yjt(this.deps(),e)}getGroupMemberPool(e){return Xjt(this.deps(),e)}getViewer(){return Zjt(this.deps())}getMessages(e,t){return Qjt(this.deps(),e,t)}getMessagesSince(e,t,n){return $jt(this.deps(),e,t,n)}getMessagesBefore(e,t,n){return eMt(this.deps(),e,t,n)}startDirect(e){return tMt(this.queryDeps(),e)}createGroup(e,t){return nMt(this.queryDeps(),e,t)}sendMessage(e,t,n,r){return rMt({deps:this.deps(),conversationId:e,text:t,clientMessageId:n,replyToMessageId:r})}uploadChatMedia(e,t,n){return Ejt(this.deps(),e,t,n)}sendMediaMessage(e){return Djt(this.deps(),e)}downloadMedia(e){return Ojt(this.deps(),e)}editMessage(e,t,n){return kjt(this.deps(),e,t,n)}deleteMessage(e,t){return Ajt(this.deps(),e,t)}deleteMessageForMe(e,t){return jjt(this.deps(),e,t)}subscribePush(e){return Mjt(this.deps(),e)}markDelivered(e,t){return Fjt(this.deps(),e,t)}markRead(e,t){return Ijt(this.deps(),e,t)}setFavourite(e,t){return Ljt(this.deps(),e,t)}setArchived(e,t){return Rjt(this.deps(),e,t)}setPinned(e,t){return zjt(this.deps(),e,t)}deleteConversation(e){return Wjt(this.deps(),e)}leaveConversation(e){return Bjt(this.deps(),e)}refreshPortal(e){return Vjt(this.deps(),e)}reactToMessage(e,t,n){return Hjt(this.deps(),t,n)}saveMembers(e,t,n){return Ujt(this.deps(),e,t,n)}};function b7(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function aMt(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=b7(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var oMt;function x7(){return oMt||=aMt(`keyval-store`,`keyval`),oMt}function sMt(e,t=x7()){return t(`readonly`,t=>b7(t.get(e)))}function cMt(e,t,n=x7()){return n(`readwrite`,n=>(n.put(t,e),b7(n.transaction)))}function lMt(e,t=x7()){return t(`readwrite`,t=>(t.delete(e),b7(t.transaction)))}function uMt(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},b7(e.transaction)}function dMt(e=x7()){return e(`readonly`,e=>{if(e.getAllKeys)return b7(e.getAllKeys());let t=[];return uMt(e,e=>t.push(e.key)).then(()=>t)})}var S7=aMt(`chat-outbox`,`pending-sends`),fMt=e=>`send:${e}`,pMt=()=>({put:async e=>{await cMt(fMt(e.clientMessageId),e,S7)},remove:async e=>{await lMt(fMt(e),S7)},listAll:async()=>{let e=await dMt(S7);return(await Promise.all(e.map(async e=>sMt(e,S7)))).filter(e=>e!==void 0)},listByConversation:async e=>{let t=await dMt(S7);return(await Promise.all(t.map(async e=>sMt(e,S7)))).filter(t=>t?.conversationId===e)}}),C7={MessageReceived:`MessageReceived`,MessageEdited:`MessageEdited`,MessageDeleted:`MessageDeleted`,MessageDelivered:`MessageDelivered`,MessageRead:`MessageRead`,Typing:`Typing`,PresenceChanged:`PresenceChanged`,StatusChanged:`StatusChanged`,ReactionToggled:`ReactionToggled`,RemovedFromConversation:`RemovedFromConversation`},mMt={MarkRead:`MarkRead`,MarkDelivered:`MarkDelivered`,Typing:`Typing`},hMt=gm({conversationId:k(),byUserId:k(),uptoSequence:pm()}),gMt=gm({conversationId:k(),userId:k(),isTyping:mm()}),_Mt=gm({userId:k(),online:mm(),lastSeenUtc:k().nullable()}),vMt=gm({userId:k(),status:pm(),untilUtc:k().nullish()}),yMt=gm({conversationId:k(),messageId:k(),byUserId:k(),emoji:k(),added:mm()}),bMt=gm({conversationId:k(),messageId:k()}),xMt=gm({conversationId:k()}),w7=(e,t,n,r)=>{let i=e.safeParse(t);return!i.success||i.data===void 0?(r.warn(`Ignoring malformed realtime payload`,{event:n}),null):i.data},SMt=(e,t,n)=>w7(d7,e,t,n),CMt=(e,t,n)=>w7(hMt,e,t,n),wMt=(e,t,n)=>w7(gMt,e,t,n),TMt=(e,t,n)=>w7(_Mt,e,t,n),EMt=(e,t,n)=>w7(vMt,e,t,n),DMt=(e,t,n)=>w7(yMt,e,t,n),OMt=(e,t,n)=>w7(bMt,e,t,n),kMt=(e,t,n)=>w7(xMt,e,t,n),AMt=`chat.hidden-messages`,jMt=hm(k()),MMt=()=>{try{let e=window.localStorage.getItem(AMt);if(e===null)return[];let t=jMt.safeParse(JSON.parse(e));return t.success?t.data:[]}catch{return[]}},NMt=e=>{try{window.localStorage.setItem(AMt,JSON.stringify(e))}catch{}},PMt=jf((e,t)=>({hidden:new Set(MMt()),hideForMe:n=>{if(t().hidden.has(n))return;let r=new Set(t().hidden);r.add(n),NMt([...r]),e({hidden:r})}})),FMt=(e,t)=>t.length>0&&pAt(e,t),IMt=(e,t)=>{let n=FMt(e.senderId,t),r=n?e.reactions:e.reactions.map(e=>e.reacted?{...e,reacted:!1}:e),i=r.length===e.reactions.length&&r.every((t,n)=>{let r=e.reactions[n];return r===void 0?!1:t.reacted===r.reacted&&t.emoji===r.emoji&&t.count===r.count});return n===e.fromViewer&&i?e:e.with({fromViewer:n,reactions:r})},LMt=(e,t)=>t.length===0?e:e.map(e=>IMt(e,t)),RMt=(e,t,n)=>{let r=(0,y.useRef)(null);(0,y.useEffect)(()=>{let t=r.current;if(t===null)return;let i=document.getElementById(`msg-${t}`);i===null?n.hasMore&&!n.isLoadingOlder?n.loadOlder():r.current=null:(r.current=null,tAt(i,e))},[t,n,e]),(0,y.useEffect)(()=>{let t=t=>{let i=t.detail.messageId;if(typeof i!=`string`||i.length===0)return;let a=document.getElementById(`msg-${i}`);a===null?n.hasMore&&(r.current=i,n.loadOlder()):(r.current=null,tAt(a,e))};return window.addEventListener($kt,t),()=>{window.removeEventListener($kt,t)}},[n,e])},zMt=[],BMt=({isLoadingOlder:e,hasMessages:t})=>!t||!e?null:(0,D.jsx)(`div`,{className:A.olderRow,children:(0,D.jsx)(rr,{size:`sm`,label:`Loading older messages`})}),VMt=(e,t,n,r)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||a7(e)?null:Skt(e,{peerUserId:t,otherMemberIds:n,receipts:r}),HMt=({messages:e,older:t,hasMessages:n})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(BMt,{isLoadingOlder:t.isLoadingOlder,hasMessages:n}),e.isPending&&(0,D.jsx)(`div`,{className:A.center,children:(0,D.jsx)(rr,{label:`Loading messages`})}),e.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not load messages`,children:e.error.message})]}),UMt=({conversation:e,viewerId:t,messages:n,selectedMessageId:r,onSelectMessage:i,onReact:a,onRetry:o,onReply:s,onEdit:c,onDelete:l})=>{let u=e.id,d=PMt(e=>e.hidden),f=(0,y.useMemo)(()=>LMt(n.data??zMt,t).filter(e=>!d.has(e.id)),[n.data,t,d]),p=ah(e=>e.receipts[u]),m=ah(e=>e.pending),h=e.members.map(e=>e.id).filter(e=>e!==t),g=Tkt(u),_=jkt(u,f,g.loadOlder);return RMt(`.${A.messages??`messages`}`,f,g),(0,D.jsxs)(`div`,{className:A.threadWrap,children:[(0,D.jsx)(`div`,{className:A.messages,ref:_.scrollRef,onScroll:_.onScroll,children:(0,D.jsxs)(`div`,{className:A.thread,children:[(0,D.jsx)(HMt,{messages:n,older:g,hasMessages:f.length>0}),f.length>0&&(0,D.jsx)(VAt,{conversation:e,messages:f,pending:m,selectedMessageId:r,onSelectMessage:i,tickFor:t=>VMt(t,e.peerUserId,h,p??{}),onReact:a,onRetry:o,onReply:s,onEdit:c,onDelete:l})]})}),_.hasNewBelow&&(0,D.jsxs)(`button`,{type:`button`,className:E(A.newPill),onClick:()=>{_.scrollToBottom(!0)},children:[(0,D.jsx)(Vt,{size:14}),`New messages`]})]})},WMt=e=>(0,D.jsx)(UMt,{...e}),GMt=(e,t,n,r)=>{let[i,a]=(0,y.useState)(null),o=()=>{a(null)};return{requestDelete:t=>{a(e.find(e=>e.id===t)??null)},dialogProps:{open:i!==null,canDeleteForEveryone:i?.canDeleteForEveryone(r.now().getTime())??!1,onDeleteForMe:()=>{i!==null&&n(i.id),o()},onDeleteForEveryone:()=>{i!==null&&t(i.id),o()},onCancel:o}}},KMt=`now`,qMt=(e,t,n)=>{e.outbox.put({clientMessageId:t.clientMessageId,conversationId:e.conversationId,text:t.text,failedAt:n})},JMt=(e,t,n)=>{e.queryClient.setQueryData(yh(e.conversationId),r=>kOt(r,DOt({viewer:t,text:n.text,clientMessageId:n.clientMessageId,sequence:TOt(r??[])+1,timeLabel:KMt,sentAt:e.clock.now().toISOString(),replyTo:n.replyTo??null}))),e.store.getState().markSending(n.clientMessageId),qMt(e,n,null)},YMt=(e,t,n)=>{e.queryClient.setQueryData(yh(e.conversationId),e=>AOt(e,t)),e.store.getState().clearPending(n),e.outbox.remove(n),hh(e.queryClient)},XMt=(e,t,n)=>Zf(t.execute(e.conversationId,n.text,n.clientMessageId,n.replyToMessageId)),ZMt=e=>{let{sendMessage:t,outbox:n,clock:r}=uh(),i=Hm(),a=ih(),o=bh().data??null,s={queryClient:i,store:a,outbox:n,conversationId:e,clock:r},c=Wm({mutationFn:e=>XMt(s,t,e),onMutate:e=>{o!==null&&JMt(s,o,e)},onSuccess:(e,t)=>{YMt(s,e,t.clientMessageId)},onError:(e,t)=>{Nf.error(e instanceof Error?e.message:`Failed to send message`),a.getState().markFailed(t.clientMessageId),qMt(s,t,s.clock.now().toISOString()),Nf.error(e.message)}}),l=(0,y.useCallback)(()=>{n.listByConversation(e).then(e=>{for(let t of e)t.failedAt!==null&&(a.getState().markSending(t.clientMessageId),c.mutate({text:t.text,clientMessageId:t.clientMessageId}))})},[e,c,n,a]);return(0,y.useEffect)(()=>{let e=()=>{l()};return window.addEventListener(`online`,e),()=>{window.removeEventListener(`online`,e)}},[l]),{send:(0,y.useCallback)((e,t=null)=>{c.mutate({text:e,clientMessageId:crypto.randomUUID(),replyToMessageId:t?.messageId??null,replyTo:t})},[c]),retry:(0,y.useCallback)((e,t)=>{a.getState().markSending(e),c.mutate({text:t,clientMessageId:e})},[c,a]),isSending:c.isPending}},QMt=(e,t)=>{let n=e.then(t,t);return{run:n,next:n.then(()=>void 0,()=>void 0)}},$Mt=(e,t)=>{let n=e.get(t);n!==void 0&&(e.delete(t),globalThis.setTimeout(()=>{URL.revokeObjectURL(n)},250))},eNt=(e,t)=>{let n=e.viewer;if(n===null)return;let r=URL.createObjectURL(t.file);e.urls.set(t.clientMessageId,r);let i=e.nowIso();e.queryClient.setQueryData(yh(e.conversationId),e=>kOt(e,OOt({viewer:n,fileUrl:r,caption:t.caption??``,clientMessageId:t.clientMessageId,sequence:TOt(e??[])+1,sentAt:i,contentType:t.file.type,fileName:t.fileName}))),e.store.getState().markSending(t.clientMessageId)},tNt=(e,t,n)=>{e.queryClient.setQueryData(yh(e.conversationId),e=>AOt(e,t)),e.store.getState().clearPending(n),$Mt(e.urls,n),hh(e.queryClient)},nNt=(e,t)=>{let n=wOt(t.clientMessageId);e.queryClient.setQueryData(yh(e.conversationId),e=>e?.filter(e=>e.id!==n)??[]),e.store.getState().clearPending(t.clientMessageId),$Mt(e.urls,t.clientMessageId),Nf.error(`Couldn't send ${t.fileName}.`)},rNt=e=>{let{sendMediaMessage:t,clock:n}=uh(),r=Hm(),i=ih(),a=bh().data??null,o=(0,y.useRef)(new Map),s=(0,y.useRef)(Promise.resolve()),c={queryClient:r,store:i,viewer:a,conversationId:e,nowIso:()=>n.now().toISOString(),urls:o.current},l=Wm({mutationFn:e=>{let{run:n,next:r}=QMt(s.current,()=>Zf(t.execute(e)));return s.current=r,n},onMutate:e=>{eNt(c,e)},onSuccess:(e,t)=>{tNt(c,e,t.clientMessageId)},onError:(e,t)=>{nNt(c,t)}});return{sendMedia:(0,y.useCallback)((t,n,r)=>{let i={conversationId:e,file:t,fileName:t.name,clientMessageId:crypto.randomUUID(),...n!==void 0&&n.trim().length>0?{caption:n}:{},...r===void 0?{}:{replyToMessageId:r}};l.mutate(i)},[e,l]),isSending:l.isPending}},iNt=(e,t)=>{let n=gye(),r=(0,y.useRef)({conversationId:null,upto:0,acknowledge:(e,t)=>{}});r.current.acknowledge=(e,t)=>{n.mutate({conversationId:e,uptoSequence:t})},(0,y.useEffect)(()=>{if(e===null||t===void 0||t.length===0)return;let n=EOt(t),i=r.current;i.conversationId===e&&n<=i.upto||(i.conversationId=e,i.upto=n,i.acknowledge(e,n))},[e,t])},aNt=2e3,oNt=3e3,sNt=e=>{let{realtime:t,logger:n}=uh(),r=ah(e=>e.status===`connected`),i=(0,y.useRef)(0),a=(0,y.useRef)(!1),o=(0,y.useRef)(null),s=(0,y.useCallback)(i=>{e===null||!r||t.invoke(mMt.Typing,e,i).catch(()=>{n.debug(`Typing signal dropped (best-effort)`)})},[e,r,t,n]),c=(0,y.useCallback)(()=>{o.current!==null&&(clearTimeout(o.current),o.current=null)},[]),l=(0,y.useCallback)(()=>{c(),a.current&&(a.current=!1,i.current=0,s(!1))},[c,s]),u=(0,y.useCallback)(()=>{let e=Date.now();(!a.current||e-i.current>aNt)&&(a.current=!0,i.current=e,s(!0)),c(),o.current=setTimeout(l,oNt)},[c,s,l]);return(0,y.useEffect)(()=>l,[e,l]),{onInput:u,stop:l}},cNt=e=>{let{subscribePush:t}=uh();(0,y.useEffect)(()=>{!e||!(`serviceWorker`in navigator)||`PushManager`in window},[e,t])},lNt=()=>{let[e,t]=(0,y.useState)(``),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null);return{text:e,setText:t,replyTo:n,setReplyTo:r,editingMessage:i,setEditingMessage:a}},uNt=({messages:e,send:t,media:n,draft:r,actions:i})=>({messages:e,send:t,media:n,text:r.text,setText:r.setText,replyTo:r.replyTo,setReplyTo:r.setReplyTo,editingMessage:r.editingMessage,startEdit:i.startEdit,clearEditing:i.clearEditing,onReact:i.onReact,onEdit:i.onEdit,onDelete:i.onDelete,onDeleteForMe:i.onDeleteForMe,submit:i.submit,onSendMedia:i.onSendMedia,onTyping:i.onTyping,isSending:t.isSending||n.isSending}),dNt=e=>{let t=bye(e),n=ZMt(e),r=rNt(e),i=jye(e),a=Mye(e),o=Nye(e),s=Pye(e),c=PMt(e=>e.hideForMe),l=sNt(e),u=lNt();return cNt(!0),iNt(e,t.data),uNt({messages:t,send:n,media:r,draft:u,actions:{startEdit:e=>{u.setEditingMessage({id:e.id,text:e.text}),u.setText(e.text),u.setReplyTo(null)},clearEditing:()=>{u.setEditingMessage(null),u.setText(``)},onReact:(e,t)=>{i.mutate({messageId:e,emoji:t})},onEdit:(e,t)=>{a.mutate({messageId:e,text:t})},onDelete:e=>{o.mutate(e)},onDeleteForMe:e=>{c(e),s.mutate(e)},submit:()=>{if(u.text.trim().length!==0){if(l.stop(),u.editingMessage!==null){a.mutate({messageId:u.editingMessage.id,text:u.text.trim()}),u.setEditingMessage(null),u.setText(``);return}n.send(u.text,u.replyTo),u.setText(``),u.setReplyTo(null)}},onSendMedia:(e,t)=>{e.forEach((e,n)=>{r.sendMedia(e,n===0?t:void 0,n===0?u.replyTo?.messageId??null:null)}),u.setText(``),u.setReplyTo(null)},onTyping:l.onInput}})},fNt=()=>(0,D.jsxs)(`div`,{className:A.removedComposer,children:[(0,D.jsx)(Mt,{size:15}),(0,D.jsx)(`span`,{children:`You can no longer send messages here — you’re no longer a member of this group.`})]}),pNt=({conversation:e,conversationId:t,active:n,removed:r})=>r?(0,D.jsx)(fNt,{}):(0,D.jsx)(ykt,{conversation:e,conversationId:t,text:n.text,replyTo:n.replyTo,editingMessage:n.editingMessage,isSending:n.isSending,onChange:n.setText,onSubmit:n.submit,onClearReply:()=>{n.setReplyTo(null)},onClearEditing:n.clearEditing,onSendMedia:n.onSendMedia,onTyping:n.onTyping}),mNt=({conversation:e,conversationId:t,actions:n,onRequestDelete:r,onRequestLeave:i})=>{let a=pSe(),o=bh(),{clock:s}=uh(),c=dNt(t),l=GMt(c.messages.data??[],c.onDelete,c.onDeleteForMe,s),u=ah(e=>e.isRemovedFromConversation(t)),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null);return(0,y.useEffect)(()=>{m(null)},[t]),(0,D.jsxs)(`div`,{className:A.view,children:[(0,D.jsx)(UOt,{conversation:e,categories:a.data??[],actions:n,statusPill:(0,D.jsx)(akt,{}),onManageMembers:()=>{f(!0)},onRequestDelete:r,onRequestLeave:i,selectedMessage:p,onClearSelection:()=>{m(null)},onReply:c.setReplyTo,onStartEdit:c.startEdit,onDelete:l.requestDelete}),(0,D.jsx)(WMt,{conversation:e,viewerId:o.data?.id??``,messages:c.messages,selectedMessageId:p?.id??null,onSelectMessage:e=>{m(t=>t?.id===e.id?null:e)},onReact:c.onReact,onRetry:c.send.retry,onReply:c.setReplyTo,onEdit:c.onEdit,onDelete:l.requestDelete}),(0,D.jsx)(pNt,{conversation:e,conversationId:t,active:c,removed:u}),e.isGroup&&(0,D.jsx)(tkt,{conversation:e,open:d,onClose:()=>{f(!1)}}),(0,D.jsx)(nkt,{...l.dialogProps})]})},hNt=()=>(0,D.jsxs)(`div`,{className:A.viewEmpty,children:[(0,D.jsx)(`div`,{className:A.emptyIconWrap,children:(0,D.jsx)(Mt,{size:32})}),(0,D.jsx)(`h3`,{className:A.emptyTitle,children:`No longer available`}),(0,D.jsx)(`p`,{className:A.emptyText,children:`You no longer have access to this conversation — you may have been removed from the group, or it was deleted. You can no longer read or send messages here.`})]}),gNt=()=>{let e=rd(0),t=rd(0),n=Xse(e,{stiffness:60,damping:20}),r=Xse(t,{stiffness:60,damping:20}),i=id(n,[-1,1],[-25,25]),a=id(r,[-1,1],[-25,25]),o=id(n,[-1,1],[20,-20]),s=id(r,[-1,1],[-15,15]),c=id(n,[-1,1],[-15,15]),l=id(r,[-1,1],[20,-20]);return(0,D.jsxs)(`div`,{className:A.viewEmpty,onMouseMove:n=>{let r=n.currentTarget.getBoundingClientRect(),i=(n.clientX-r.left-r.width/2)/(r.width/2),a=(n.clientY-r.top-r.height/2)/(r.height/2);e.set(i),t.set(a)},onMouseLeave:()=>{e.set(0),t.set(0)},children:[(0,D.jsx)(Zu.div,{className:A.emptyFloating1,style:{x:i,y:a},children:(0,D.jsx)(hn,{size:24})}),(0,D.jsx)(Zu.div,{className:A.emptyFloating2,style:{x:o,y:s},children:(0,D.jsx)(Ln,{size:20})}),(0,D.jsx)(Zu.div,{className:A.emptyFloating3,style:{x:c,y:l},children:(0,D.jsx)(Nn,{size:16})}),(0,D.jsx)(`div`,{className:A.emptyIconWrap,children:(0,D.jsx)(mn,{size:32})}),(0,D.jsx)(`h3`,{className:A.emptyTitle,children:`Your Messages`}),(0,D.jsx)(`p`,{className:A.emptyText,children:`Select a conversation from the sidebar or start a new chat.`})]})},_Nt=({conversation:e,conversationId:t,lostAccess:n,actions:r,onRequestDelete:i,onRequestLeave:a})=>{let o=ih();return(0,y.useEffect)(()=>(o.getState().setActiveConversationId(t),()=>{o.getState().setActiveConversationId(null)}),[t,o]),e===void 0||t===null?n?(0,D.jsx)(hNt,{}):(0,D.jsx)(gNt,{}):(0,D.jsx)(Zu.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},transition:{type:`spring`,stiffness:350,damping:28},className:A.viewPaneWrapper,children:(0,D.jsx)(mNt,{conversation:e,conversationId:t,actions:r,onRequestDelete:i,onRequestLeave:a})},t)},vNt=({mediaUrl:e})=>{let{src:t,isLoading:n,isError:r,onImageError:i}=Ikt(e);return r?(0,D.jsxs)(`div`,{className:A.viewerFallback,children:[(0,D.jsx)(sn,{size:30}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):t===null||n?(0,D.jsx)(rr,{label:`Loading image`}):(0,D.jsx)(`img`,{className:A.viewerImg,src:t,alt:``,onError:i})},yNt=(e,t,n,r)=>{(0,y.useEffect)(()=>{if(!e)return;let i=e=>{e.key===`Escape`?t():e.key===`ArrowRight`?n():e.key===`ArrowLeft`&&r()};return window.addEventListener(`keydown`,i),()=>{window.removeEventListener(`keydown`,i)}},[e,t,n,r])},bNt=()=>{let e=c7(e=>e.open),t=c7(e=>e.urls),n=c7(e=>e.index),r=c7(e=>e.close),i=c7(e=>e.next),a=c7(e=>e.prev),o=co();yNt(e,r,i,a);let s=t[n];if(!e||s===void 0)return null;let c=t.length>1;return(0,b.createPortal)((0,D.jsxs)(`div`,{className:A.viewerBackdrop,role:`dialog`,"aria-modal":`true`,"aria-label":`Image preview`,children:[(0,D.jsx)(`button`,{type:`button`,className:A.viewerScrim,"aria-label":`Close preview`,onClick:r}),(0,D.jsx)(`button`,{type:`button`,className:A.viewerClose,"aria-label":`Close preview`,onClick:r,children:(0,D.jsx)(qn,{size:22})}),c&&(0,D.jsx)(`button`,{type:`button`,className:E(A.viewerNav,A.viewerNavPrev),"aria-label":`Previous image`,disabled:n===0,onClick:a,children:(0,D.jsx)(Ht,{size:26})}),(0,D.jsx)(`div`,{className:A.viewerStage,children:(0,D.jsx)(vNt,{mediaUrl:s})}),c&&(0,D.jsx)(`button`,{type:`button`,className:E(A.viewerNav,A.viewerNavNext),"aria-label":`Next image`,disabled:n===t.length-1,onClick:i,children:(0,D.jsx)(Ut,{size:26})}),c&&(0,D.jsxs)(`span`,{className:A.viewerCount,children:[n+1,` / `,t.length]})]}),o??document.body)},xNt=()=>{let e=Sye(),t=wye(),n=Cye(),r=Tye(),i=Eye(),a=Dye();return{toggleFavourite:t=>{e.mutate({id:t.id,value:!t.favourite},{onSuccess:()=>{Nf.success(t.favourite?`Removed from Favourites`:`Added to Favourites`)}})},togglePin:e=>{t.mutate({id:e.id,value:!e.pinned},{onSuccess:()=>{Nf.success(e.pinned?`Unpinned`:`Pinned to top`)}})},toggleArchive:e=>{n.mutate({id:e.id,value:!e.archived},{onSuccess:()=>{Nf.success(e.archived?`Chat unarchived`:`Chat archived`)}})},remove:e=>{r.mutate(e,{onSuccess:()=>{Nf.success(`Chat deleted`)}})},leave:e=>{i.mutate(e.id,{onSuccess:()=>{Nf.success(`You left "${e.title}"`)}})},refresh:e=>{a.mutate(e.id,{onSuccess:()=>{Nf.success(`Portal data refreshed`)}})}}},SNt=e=>{let t=ih();(0,y.useEffect)(()=>{let{seedReceipts:n}=t.getState();for(let t of e)n(t.id,t.memberReceipts)},[t,e])},CNt=[],wNt=(e,t,n)=>{let r=mh(e,t),i=mh(e,``),a=iye(),o=r.data??CNt,s=i.data??CNt,c=n??s[0]?.id??o[0]?.id??null,l=oye(c);return SNt(o),{conversations:r,counts:a.data,list:o,activeId:c,active:l.data??o.find(e=>e.id===c),lostAccess:n!==null&&l.isError}},TNt=`/comms/chats`,ENt=(e,t,n)=>{let[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null);return{pendingDelete:r,pendingLeave:a,requestDelete:i,requestLeave:o,confirmDelete:()=>{r!==null&&(e.remove(r.id),r.id===t&&n(TNt)),i(null)},confirmLeave:()=>{a!==null&&(e.leave(a),a.id===t&&n(TNt)),o(null)},cancelDelete:()=>{i(null)},cancelLeave:()=>{o(null)}}},DNt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,ONt=`--`,kNt=e=>e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``),ANt=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return t+`=`.repeat((4-t.length%4)%4)},jNt=e=>{let t=e.replace(/-/g,``),n=``;for(let e=0;e<t.length;e+=2)n+=String.fromCharCode(Number.parseInt(t.slice(e,e+2),16));return kNt(btoa(n))},MNt=e=>{let t;try{t=atob(ANt(e))}catch{return null}if(t.length!==16)return null;let n=``;for(let e=0;e<t.length;e+=1)n+=t.charCodeAt(e).toString(16).padStart(2,`0`);return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`},NNt=e=>DNt.test(e)?jNt(e):`~${kNt(btoa(e))}`,PNt=e=>{if(e.startsWith(`~`))try{return atob(ANt(e.slice(1)))}catch{return null}return MNt(e)},FNt=e=>{let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,40);return t.length>0?t:`chat`},INt=(e,t)=>`/comms/chats/${FNt(t)}${ONt}${NNt(e)}`,LNt=e=>{let t=e.indexOf(ONt),n=t>=0?e.slice(t+2):e;return DNt.test(n)?n:PNt(n)},RNt=()=>{let e=Xe(),[t,n]=(0,y.useState)(`all`),[r,i]=(0,y.useState)(``),a=Lye(r,250),{conversationId:o}=Ze(),s=o===void 0?null:LNt(o),{conversations:c,counts:l,list:u,activeId:d,active:f,lostAccess:p}=wNt(t,a,s),m=xNt(),h=qe(),g=ENt(m,s,h);return c.isPending?(0,D.jsx)($ye,{}):c.isSuccess?(0,D.jsxs)(`div`,{className:E(A.root,s!==null&&A.hasActiveChat),children:[(0,D.jsx)(Qye,{conversations:u,activeId:d,actions:m,filter:{tab:t,onTabChange:n,search:r,onSearchChange:i,counts:l},hasNextPage:c.hasNextPage,isFetchingNextPage:c.isFetchingNextPage,onLoadMore:c.fetchNextPage,onRequestDelete:g.requestDelete,onSelect:e=>{h(INt(e,u.find(t=>t.id===e)?.title??``))}}),(0,D.jsx)(_Nt,{conversation:f,conversationId:d,lostAccess:p,actions:m,onRequestDelete:g.requestDelete,onRequestLeave:g.requestLeave}),(0,D.jsx)(Hpe,{pendingDelete:g.pendingDelete,pendingLeave:g.pendingLeave,onConfirmDelete:g.confirmDelete,onConfirmLeave:g.confirmLeave,onCancelDelete:g.cancelDelete,onCancelLeave:g.cancelLeave}),(0,D.jsx)(bNt,{}),e]}):(0,D.jsx)(`div`,{className:A.fullCenter,children:(0,D.jsx)(sr,{tone:`error`,title:`Could not load chats`,children:c.error?.message??`Please try again.`})})},zNt=`/comms/chats`,BNt=()=>(0,D.jsxs)(gt,{children:[(0,D.jsxs)(mt,{path:zNt,element:(0,D.jsx)(RNt,{}),children:[(0,D.jsx)(mt,{index:!0,element:null}),(0,D.jsx)(mt,{path:`:conversationId`,element:null})]}),(0,D.jsx)(mt,{path:`*`,element:(0,D.jsx)(pt,{to:zNt,replace:!0})})]}),VNt=c((e=>{var t=v();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot}))(),HNt=`__COMMHUB_SDK_CSS__`,T7,UNt=()=>{let e=globalThis[HNt];return typeof e==`string`?e:``},WNt=()=>typeof CSSStyleSheet==`function`&&typeof CSSStyleSheet.prototype.replaceSync==`function`,GNt=()=>{let e=UNt();if(e===``||!WNt())return[];if(T7===void 0)try{let t=new CSSStyleSheet;t.replaceSync(e),T7=t}catch{T7=null}return T7===null?[]:[T7]},KNt=()=>{let e=UNt();if(e===``)return null;let t=document.createElement(`style`);return t.textContent=e,t},qNt=`commhub-widget-root`;function JNt(e,t,n=[]){if(customElements.get(e))return;class r extends HTMLElement{reactRoot=null;mountPoint;configValue={};static get observedAttributes(){return n}get config(){return this.configValue}set config(e){this.configValue=e,this.render()}constructor(){super();let e=this.attachShadow({mode:`open`}),t=GNt();if(t.length>0)e.adoptedStyleSheets=[...t];else{let t=KNt();t!==null&&e.appendChild(t)}this.mountPoint=document.createElement(`div`),this.mountPoint.className=qNt,e.appendChild(this.mountPoint)}connectedCallback(){this.render()}disconnectedCallback(){let e=this.reactRoot;e!==null&&(this.reactRoot=null,queueMicrotask(()=>{if(this.isConnected){this.reactRoot??=e;return}e.unmount()}))}attributeChangedCallback(){this.reactRoot!==null&&this.render()}render(){this.isConnected&&(this.reactRoot??=(0,VNt.createRoot)(this.mountPoint),this.reactRoot.render(t(this)))}}customElements.define(e,r)}var YNt={notice:`_notice_184jj_6`,title:`_title_184jj_23`,detail:`_detail_184jj_29`},XNt=({tagName:e,detail:t})=>(0,D.jsxs)(`div`,{className:YNt.notice,role:`alert`,children:[(0,D.jsxs)(`strong`,{className:YNt.title,children:[`<`,e,`> could not start: invalid configuration`]}),(0,D.jsx)(`span`,{className:YNt.detail,children:t})]}),ZNt=class{entries=new Map;getItem(e){return this.entries.get(e)??null}setItem(e,t){this.entries.set(e,t)}removeItem(e){this.entries.delete(e)}},QNt=e=>{let t=new nwe({storage:new ZNt,logger:e.logger,namespace:e.storageNamespace});return rwe({completeSsoLoginUseCase:new FCe({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),logoutUseCase:new ICe({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),restoreSessionUseCase:new LCe({authGateway:e.authGateway,sessionStore:t,clock:e.clock,logger:e.logger}),refreshSessionUseCase:new RCe({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),setAccessToken:e.setAccessToken,loginUrl:``})},$Nt=`sdk_signed`,ePt=`assertion`,tPt=`CommunicationHub`,nPt=class{httpClient;clock;logger;clientKey;scope;constructor(e){this.httpClient=e.httpClient,this.clock=e.clock,this.logger=e.logger.child(`sdk-signed-gateway`),this.clientKey=e.clientKey,this.scope=[tPt,...e.modules].join(` `)}exchangeSsoSecret(e){return e.trim().length===0||this.clientKey.trim().length===0?Promise.resolve(O(new Uh)):this.requestToken({grant_type:$Nt,client_id:this.clientKey,[ePt]:e,scope:this.scope})}refresh(e){return Promise.resolve(O(new Wh(`sdk_signed re-authenticates with a fresh host assertion, not a refresh token.`)))}signOut(e){return Promise.resolve()}async requestToken(e){try{let t=await this.httpClient.postForm(GCe,e,{anonymous:!0}),n=zCe.safeParse(t);return n.success?Gh(n.data,this.clock.now()):(this.logger.error(`Token endpoint returned an unexpected shape`,n.error),O(new Wh(n.error)))}catch(e){return e instanceof up&&e.isClientError()?(this.logger.warn(`Signed assertion was rejected`,{status:e.status}),O(new Uh)):(this.logger.error(`Failed to exchange signed assertion`,{error:e}),O(new Wh(e)))}}},rPt=class{clock;logger;constructor(e){this.clock=e.clock,this.logger=e.logger.child(`sdk-host-token-gateway`)}exchangeSsoSecret(e){if(e.trim().length===0)return Promise.resolve(O(new Uh));try{let t=UCe(e);if(Xf(t))return this.logger.error(`Invalid JWT token provided by host`,t.error),Promise.resolve(O(new Wh(`Invalid host token provided.`)));let n=t.value.exp;if(typeof n!=`number`)return Promise.resolve(O(new Wh(`Host token missing or invalid exp claim.`)));let r=n-Math.floor(this.clock.now().getTime()/1e3);return r<=0?Promise.resolve(O(new Wh(`Host token is already expired.`))):Promise.resolve(Gh({access_token:e,token_type:`Bearer`,expires_in:r,refresh_token:null},this.clock.now()))}catch(e){return this.logger.error(`Failed to parse host token`,{error:e}),Promise.resolve(O(new Wh(e)))}}refresh(e){return Promise.resolve(O(new Wh(`host-token does not support traditional refresh tokens.`)))}signOut(e){return Promise.resolve()}},E7={feed:`CommunicationHub.Feed`,chat:`CommunicationHub.Chat`,meetings:`CommunicationHub.Meetings`,schedule:`CommunicationHub.Schedule`,users:`CommunicationHub.Users`,accessControl:`CommunicationHub.AccessControl`,usage:`CommunicationHub.Usage`,groupCategories:`CommunicationHub.GroupCategories`,webhooks:`CommunicationHub.Webhooks`,promotions:`CommunicationHub.Promotions`,orgSettings:`CommunicationHub.OrgSettings`,orgAccess:`CommunicationHub.OrgAccess`,feedPreference:`CommunicationHub.FeedPreference`,apiKeys:`CommunicationHub.SdkClients`},iPt=class extends Yn{},aPt=class extends iPt{code=`MODULE_ACCESS_UNAVAILABLE`;constructor(e){super(`Your menu access could not be loaded. Please try again.`,{cause:e})}},oPt=[`commhub.chat`,`commhub.bookings`,`commhub.schedule`,`commhub.feed`],D7={"commhub.chat":E7.chat,"commhub.feed":E7.feed,"commhub.schedule":E7.schedule,"commhub.bookings":E7.meetings},sPt=e=>Object.hasOwn(D7,e),cPt=e=>oPt.filter(t=>e.has(D7[t])),lPt=(e,t)=>e.filter(e=>!t.has(D7[e])),uPt=1e4,dPt=1e3,fPt=6e4,pPt=class{deps;timer=null;unwatch=null;started=!1;disposed=!1;inFlight=!1;failures=0;authenticated=!1;constructor(e){this.deps=e}start(){this.started||this.isDisposed()||(this.started=!0,this.watchSession(),this.run())}isDisposed(){return this.disposed}dispose(){this.disposed=!0,this.clearTimer(),this.unwatch?.(),this.unwatch=null}async run(){if(!(this.isDisposed()||this.inFlight)){this.inFlight=!0;try{let e=await this.deps.requestCredential(),t=await this.deps.authStore.getState().completeLogin(e);if(this.isDisposed())return;if(t){await this.onAuthenticated();return}this.onExpired()}catch(e){if(this.isDisposed())return;let t=e instanceof Error?e.message:String(e);this.deps.logger.error(`SDK handshake failed`,{error:e}),this.deps.emit({type:`error`,payload:{code:`HANDSHAKE_FAILED`,message:t}}),this.scheduleRetry()}finally{this.inFlight=!1}}}async onAuthenticated(){this.failures=0,this.authenticated=!0;let e=await this.deps.moduleAccessModule.getModuleAccess.execute();if(!this.isDisposed()){if(e.ok){let t=e.value.grantedModules;this.deps.emit({type:`ready`,payload:{apiVersion:`1.0`,modules:cPt(t)}});let n=lPt(this.deps.requestedModules,t);n.length>0&&this.deps.emit({type:`scope-denied`,payload:{required:[...n],granted:cPt(t)}})}this.scheduleRenewal()}}onExpired(){(this.authenticated||this.failures===0)&&this.deps.emit({type:`auth-expired`,payload:{}}),this.authenticated=!1,this.scheduleRetry()}scheduleRetry(){let e=Math.min(fPt,dPt*2**this.failures);this.failures+=1,this.scheduleAt(e)}scheduleRenewal(){if(!this.deps.renewable)return;let e=this.deps.authStore.getState().session;if(!e)return;let t=e.expiresAt.getTime()-Date.now();this.scheduleAt(Math.max(0,t-uPt))}scheduleAt(e){this.clearTimer(),!this.isDisposed()&&(this.timer=setTimeout(()=>{this.timer=null,this.run()},e))}clearTimer(){this.timer!==null&&(clearTimeout(this.timer),this.timer=null)}watchSession(){this.unwatch=this.deps.authStore.subscribe(e=>{this.inFlight||e.status===`unauthenticated`&&this.authenticated&&(this.deps.logger.warn(`SDK session expired mid-session; re-handshaking`),this.onExpired())})}},mPt=class{createRunner;eventListeners=new Set;statusListeners=new Set;runner=null;currentStatus=`pending`;constructor(e){this.createRunner=e}get status(){return this.currentStatus}attach(e){let t=e;t!==void 0&&this.eventListeners.add(t),this.runner??=this.createRunner(e=>{this.emit(e)}),this.runner.start();let n=!1;return()=>{n||(n=!0,t!==void 0&&this.eventListeners.delete(t),this.eventListeners.size===0&&this.statusListeners.size===0&&(this.runner?.dispose(),this.runner=null,this.setStatus(`pending`)))}}subscribeStatus(e){return this.statusListeners.add(e),()=>{this.statusListeners.delete(e)}}dispose(){this.runner?.dispose(),this.runner=null,this.eventListeners.clear(),this.statusListeners.clear(),this.currentStatus=`pending`}emit(e){e.type===`ready`?this.setStatus(`ready`):e.type===`error`?this.setStatus(`failed`):e.type===`auth-expired`&&this.setStatus(`pending`);for(let t of[...this.eventListeners])t(e)}setStatus(e){if(this.currentStatus!==e){this.currentStatus=e;for(let e of[...this.statusListeners])e()}}},O7=class extends Error{constructor(e,t){let n=new.target.prototype;super(`${e}: Status code '${t}'`),this.statusCode=t,this.__proto__=n}},hPt=class extends Error{constructor(e=`A timeout occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},k7=class extends Error{constructor(e=`An abort occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},gPt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`UnsupportedTransportError`,this.__proto__=n}},_Pt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`DisabledTransportError`,this.__proto__=n}},vPt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`FailedToStartTransportError`,this.__proto__=n}},yPt=class extends Error{constructor(e){let t=new.target.prototype;super(e),this.errorType=`FailedToNegotiateWithServerError`,this.__proto__=t}},bPt=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.innerErrors=t,this.__proto__=n}},xPt=class{constructor(e,t,n){this.statusCode=e,this.statusText=t,this.content=n}},A7=class{get(e,t){return this.send({...t,method:`GET`,url:e})}post(e,t){return this.send({...t,method:`POST`,url:e})}delete(e,t){return this.send({...t,method:`DELETE`,url:e})}getCookieString(e){return``}},j7;(function(e){e[e.Trace=0]=`Trace`,e[e.Debug=1]=`Debug`,e[e.Information=2]=`Information`,e[e.Warning=3]=`Warning`,e[e.Error=4]=`Error`,e[e.Critical=5]=`Critical`,e[e.None=6]=`None`})(j7||={});var M7=class{constructor(){}log(e,t){}};M7.instance=new M7;var SPt=`10.0.0`,N7=class{static isRequired(e,t){if(e==null)throw Error(`The '${t}' argument is required.`)}static isNotEmpty(e,t){if(!e||e.match(/^\s*$/))throw Error(`The '${t}' argument should not be empty.`)}static isIn(e,t,n){if(!(e in t))throw Error(`Unknown ${n} value: ${e}.`)}},P7=class e{static get isBrowser(){return!e.isNode&&typeof window==`object`&&typeof window.document==`object`}static get isWebWorker(){return!e.isNode&&typeof self==`object`&&`importScripts`in self}static get isReactNative(){return!e.isNode&&typeof window==`object`&&window.document===void 0}static get isNode(){return typeof process<`u`&&process.release&&process.release.name===`node`}};function F7(e,t){let n=``;return I7(e)?(n=`Binary data of length ${e.byteLength}`,t&&(n+=`. Content: '${CPt(e)}'`)):typeof e==`string`&&(n=`String data of length ${e.length}`,t&&(n+=`. Content: '${e}'`)),n}function CPt(e){let t=new Uint8Array(e),n=``;return t.forEach(e=>{n+=`0x${e<16?`0`:``}${e.toString(16)} `}),n.substring(0,n.length-1)}function I7(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor&&e.constructor.name===`ArrayBuffer`)}async function wPt(e,t,n,r,i,a){let o={},[s,c]=R7();o[s]=c,e.log(j7.Trace,`(${t} transport) sending data. ${F7(i,a.logMessageContent)}.`);let l=I7(i)?`arraybuffer`:`text`,u=await n.post(r,{content:i,headers:{...o,...a.headers},responseType:l,timeout:a.timeout,withCredentials:a.withCredentials});e.log(j7.Trace,`(${t} transport) request complete. Response status: ${u.statusCode}.`)}function TPt(e){return e===void 0?new L7(j7.Information):e===null?M7.instance:e.log===void 0?new L7(e):e}var EPt=class{constructor(e,t){this._subject=e,this._observer=t}dispose(){let e=this._subject.observers.indexOf(this._observer);e>-1&&this._subject.observers.splice(e,1),this._subject.observers.length===0&&this._subject.cancelCallback&&this._subject.cancelCallback().catch(e=>{})}},L7=class{constructor(e){this._minLevel=e,this.out=console}log(e,t){if(e>=this._minLevel){let n=`[${new Date().toISOString()}] ${j7[e]}: ${t}`;switch(e){case j7.Critical:case j7.Error:this.out.error(n);break;case j7.Warning:this.out.warn(n);break;case j7.Information:this.out.info(n);break;default:this.out.log(n);break}}}};function R7(){let e=`X-SignalR-User-Agent`;return P7.isNode&&(e=`User-Agent`),[e,DPt(SPt,OPt(),APt(),kPt())]}function DPt(e,t,n,r){let i=`Microsoft SignalR/`,a=e.split(`.`);return i+=`${a[0]}.${a[1]}`,i+=` (${e}; `,t&&t!==``?i+=`${t}; `:i+=`Unknown OS; `,i+=`${n}`,r?i+=`; ${r}`:i+=`; Unknown Runtime Version`,i+=`)`,i}function OPt(){if(P7.isNode)switch(process.platform){case`win32`:return`Windows NT`;case`darwin`:return`macOS`;case`linux`:return`Linux`;default:return process.platform}else return``}function kPt(){if(P7.isNode)return process.versions.node}function APt(){return P7.isNode?`NodeJS`:`Browser`}function jPt(e){return e.stack?e.stack:e.message?e.message:`${e}`}function MPt(){if(typeof globalThis<`u`)return globalThis;if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`could not find global`)}var NPt=class extends A7{constructor(e){if(super(),this._logger=e,typeof fetch>`u`||P7.isNode){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;this._jar=new(e(`tough-cookie`)).CookieJar,typeof fetch>`u`?this._fetchType=e(`node-fetch`):this._fetchType=fetch,this._fetchType=e(`fetch-cookie`)(this._fetchType,this._jar)}else this._fetchType=fetch.bind(MPt());if(typeof AbortController>`u`){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;this._abortControllerType=e(`abort-controller`)}else this._abortControllerType=AbortController}async send(e){if(e.abortSignal&&e.abortSignal.aborted)throw new k7;if(!e.method)throw Error(`No method defined.`);if(!e.url)throw Error(`No url defined.`);let t=new this._abortControllerType,n;e.abortSignal&&(e.abortSignal.onabort=()=>{t.abort(),n=new k7});let r=null;if(e.timeout){let i=e.timeout;r=setTimeout(()=>{t.abort(),this._logger.log(j7.Warning,`Timeout from HTTP request.`),n=new hPt},i)}e.content===``&&(e.content=void 0),e.content&&(e.headers=e.headers||{},I7(e.content)?e.headers[`Content-Type`]=`application/octet-stream`:e.headers[`Content-Type`]=`text/plain;charset=UTF-8`);let i;try{i=await this._fetchType(e.url,{body:e.content,cache:`no-cache`,credentials:e.withCredentials===!0?`include`:`same-origin`,headers:{"X-Requested-With":`XMLHttpRequest`,...e.headers},method:e.method,mode:`cors`,redirect:`follow`,signal:t.signal})}catch(e){throw n||(this._logger.log(j7.Warning,`Error from HTTP request. ${e}.`),e)}finally{r&&clearTimeout(r),e.abortSignal&&(e.abortSignal.onabort=null)}if(!i.ok)throw new O7(await PPt(i,`text`)||i.statusText,i.status);let a=await PPt(i,e.responseType);return new xPt(i.status,i.statusText,a)}getCookieString(e){let t=``;return P7.isNode&&this._jar&&this._jar.getCookies(e,(e,n)=>t=n.join(`; `)),t}};function PPt(e,t){let n;switch(t){case`arraybuffer`:n=e.arrayBuffer();break;case`text`:n=e.text();break;case`blob`:case`document`:case`json`:throw Error(`${t} is not supported.`);default:n=e.text();break}return n}var FPt=class extends A7{constructor(e){super(),this._logger=e}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new k7):e.method?e.url?new Promise((t,n)=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),r.withCredentials=e.withCredentials===void 0?!0:e.withCredentials,r.setRequestHeader(`X-Requested-With`,`XMLHttpRequest`),e.content===``&&(e.content=void 0),e.content&&(I7(e.content)?r.setRequestHeader(`Content-Type`,`application/octet-stream`):r.setRequestHeader(`Content-Type`,`text/plain;charset=UTF-8`));let i=e.headers;i&&Object.keys(i).forEach(e=>{r.setRequestHeader(e,i[e])}),e.responseType&&(r.responseType=e.responseType),e.abortSignal&&(e.abortSignal.onabort=()=>{r.abort(),n(new k7)}),e.timeout&&(r.timeout=e.timeout),r.onload=()=>{e.abortSignal&&(e.abortSignal.onabort=null),r.status>=200&&r.status<300?t(new xPt(r.status,r.statusText,r.response||r.responseText)):n(new O7(r.response||r.responseText||r.statusText,r.status))},r.onerror=()=>{this._logger.log(j7.Warning,`Error from HTTP request. ${r.status}: ${r.statusText}.`),n(new O7(r.statusText,r.status))},r.ontimeout=()=>{this._logger.log(j7.Warning,`Timeout from HTTP request.`),n(new hPt)},r.send(e.content)}):Promise.reject(Error(`No url defined.`)):Promise.reject(Error(`No method defined.`))}},IPt=class extends A7{constructor(e){if(super(),typeof fetch<`u`||P7.isNode)this._httpClient=new NPt(e);else if(typeof XMLHttpRequest<`u`)this._httpClient=new FPt(e);else throw Error(`No usable HttpClient found.`)}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new k7):e.method?e.url?this._httpClient.send(e):Promise.reject(Error(`No url defined.`)):Promise.reject(Error(`No method defined.`))}getCookieString(e){return this._httpClient.getCookieString(e)}},z7=class e{static write(t){return`${t}${e.RecordSeparator}`}static parse(t){if(t[t.length-1]!==e.RecordSeparator)throw Error(`Message is incomplete.`);let n=t.split(e.RecordSeparator);return n.pop(),n}};z7.RecordSeparatorCode=30,z7.RecordSeparator=String.fromCharCode(z7.RecordSeparatorCode);var LPt=class{writeHandshakeRequest(e){return z7.write(JSON.stringify(e))}parseHandshakeResponse(e){let t,n;if(I7(e)){let r=new Uint8Array(e),i=r.indexOf(z7.RecordSeparatorCode);if(i===-1)throw Error(`Message is incomplete.`);let a=i+1;t=String.fromCharCode.apply(null,Array.prototype.slice.call(r.slice(0,a))),n=r.byteLength>a?r.slice(a).buffer:null}else{let r=e,i=r.indexOf(z7.RecordSeparator);if(i===-1)throw Error(`Message is incomplete.`);let a=i+1;t=r.substring(0,a),n=r.length>a?r.substring(a):null}let r=z7.parse(t),i=JSON.parse(r[0]);if(i.type)throw Error(`Expected a handshake response from the server.`);return[n,i]}},B7;(function(e){e[e.Invocation=1]=`Invocation`,e[e.StreamItem=2]=`StreamItem`,e[e.Completion=3]=`Completion`,e[e.StreamInvocation=4]=`StreamInvocation`,e[e.CancelInvocation=5]=`CancelInvocation`,e[e.Ping=6]=`Ping`,e[e.Close=7]=`Close`,e[e.Ack=8]=`Ack`,e[e.Sequence=9]=`Sequence`})(B7||={});var RPt=class{constructor(){this.observers=[]}next(e){for(let t of this.observers)t.next(e)}error(e){for(let t of this.observers)t.error&&t.error(e)}complete(){for(let e of this.observers)e.complete&&e.complete()}subscribe(e){return this.observers.push(e),new EPt(this,e)}},zPt=class{constructor(e,t,n){this._bufferSize=1e5,this._messages=[],this._totalMessageCount=0,this._waitForSequenceMessage=!1,this._nextReceivingSequenceId=1,this._latestReceivedSequenceId=0,this._bufferedByteCount=0,this._reconnectInProgress=!1,this._protocol=e,this._connection=t,this._bufferSize=n}async _send(e){let t=this._protocol.writeMessage(e),n=Promise.resolve();if(this._isInvocationMessage(e)){this._totalMessageCount++;let e=()=>{},r=()=>{};I7(t)?this._bufferedByteCount+=t.byteLength:this._bufferedByteCount+=t.length,this._bufferedByteCount>=this._bufferSize&&(n=new Promise((t,n)=>{e=t,r=n})),this._messages.push(new BPt(t,this._totalMessageCount,e,r))}try{this._reconnectInProgress||await this._connection.send(t)}catch{this._disconnected()}await n}_ack(e){let t=-1;for(let n=0;n<this._messages.length;n++){let r=this._messages[n];if(r._id<=e.sequenceId)t=n,I7(r._message)?this._bufferedByteCount-=r._message.byteLength:this._bufferedByteCount-=r._message.length,r._resolver();else if(this._bufferedByteCount<this._bufferSize)r._resolver();else break}t!==-1&&(this._messages=this._messages.slice(t+1))}_shouldProcessMessage(e){if(this._waitForSequenceMessage)return e.type===B7.Sequence?(this._waitForSequenceMessage=!1,!0):!1;if(!this._isInvocationMessage(e))return!0;let t=this._nextReceivingSequenceId;return this._nextReceivingSequenceId++,t<=this._latestReceivedSequenceId?(t===this._latestReceivedSequenceId&&this._ackTimer(),!1):(this._latestReceivedSequenceId=t,this._ackTimer(),!0)}_resetSequence(e){if(e.sequenceId>this._nextReceivingSequenceId){this._connection.stop(Error(`Sequence ID greater than amount of messages we've received.`));return}this._nextReceivingSequenceId=e.sequenceId}_disconnected(){this._reconnectInProgress=!0,this._waitForSequenceMessage=!0}async _resend(){let e=this._messages.length===0?this._totalMessageCount+1:this._messages[0]._id;await this._connection.send(this._protocol.writeMessage({type:B7.Sequence,sequenceId:e}));let t=this._messages;for(let e of t)await this._connection.send(e._message);this._reconnectInProgress=!1}_dispose(e){e??=Error(`Unable to reconnect to server.`);for(let t of this._messages)t._rejector(e)}_isInvocationMessage(e){switch(e.type){case B7.Invocation:case B7.StreamItem:case B7.Completion:case B7.StreamInvocation:case B7.CancelInvocation:return!0;case B7.Close:case B7.Sequence:case B7.Ping:case B7.Ack:return!1}}_ackTimer(){this._ackTimerHandle===void 0&&(this._ackTimerHandle=setTimeout(async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:B7.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0},1e3))}},BPt=class{constructor(e,t,n,r){this._message=e,this._id=t,this._resolver=n,this._rejector=r}},VPt=30*1e3,HPt=15*1e3,UPt=1e5,V7;(function(e){e.Disconnected=`Disconnected`,e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Reconnecting=`Reconnecting`})(V7||={});var WPt=class e{static create(t,n,r,i,a,o,s){return new e(t,n,r,i,a,o,s)}constructor(e,t,n,r,i,a,o){this._nextKeepAlive=0,this._freezeEventListener=()=>{this._logger.log(j7.Warning,`The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep`)},N7.isRequired(e,`connection`),N7.isRequired(t,`logger`),N7.isRequired(n,`protocol`),this.serverTimeoutInMilliseconds=i??VPt,this.keepAliveIntervalInMilliseconds=a??HPt,this._statefulReconnectBufferSize=o??UPt,this._logger=t,this._protocol=n,this.connection=e,this._reconnectPolicy=r,this._handshakeProtocol=new LPt,this.connection.onreceive=e=>this._processIncomingData(e),this.connection.onclose=e=>this._connectionClosed(e),this._callbacks={},this._methods={},this._closedCallbacks=[],this._reconnectingCallbacks=[],this._reconnectedCallbacks=[],this._invocationId=0,this._receivedHandshakeResponse=!1,this._connectionState=V7.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:B7.Ping})}get state(){return this._connectionState}get connectionId(){return this.connection&&this.connection.connectionId||null}get baseUrl(){return this.connection.baseUrl||``}set baseUrl(e){if(this._connectionState!==V7.Disconnected&&this._connectionState!==V7.Reconnecting)throw Error(`The HubConnection must be in the Disconnected or Reconnecting state to change the url.`);if(!e)throw Error(`The HubConnection url must be a valid url.`);this.connection.baseUrl=e}start(){return this._startPromise=this._startWithStateTransitions(),this._startPromise}async _startWithStateTransitions(){if(this._connectionState!==V7.Disconnected)return Promise.reject(Error(`Cannot start a HubConnection that is not in the 'Disconnected' state.`));this._connectionState=V7.Connecting,this._logger.log(j7.Debug,`Starting HubConnection.`);try{await this._startInternal(),P7.isBrowser&&window.document.addEventListener(`freeze`,this._freezeEventListener),this._connectionState=V7.Connected,this._connectionStarted=!0,this._logger.log(j7.Debug,`HubConnection connected successfully.`)}catch(e){return this._connectionState=V7.Disconnected,this._logger.log(j7.Debug,`HubConnection failed to start successfully because of error '${e}'.`),Promise.reject(e)}}async _startInternal(){this._stopDuringStartError=void 0,this._receivedHandshakeResponse=!1;let e=new Promise((e,t)=>{this._handshakeResolver=e,this._handshakeRejecter=t});await this.connection.start(this._protocol.transferFormat);try{let t=this._protocol.version;this.connection.features.reconnect||(t=1);let n={protocol:this._protocol.name,version:t};if(this._logger.log(j7.Debug,`Sending handshake request.`),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(n)),this._logger.log(j7.Information,`Using HubProtocol '${this._protocol.name}'.`),this._cleanupTimeout(),this._resetTimeoutPeriod(),this._resetKeepAliveInterval(),await e,this._stopDuringStartError)throw this._stopDuringStartError;this.connection.features.reconnect&&(this._messageBuffer=new zPt(this._protocol,this.connection,this._statefulReconnectBufferSize),this.connection.features.disconnected=this._messageBuffer._disconnected.bind(this._messageBuffer),this.connection.features.resend=()=>{if(this._messageBuffer)return this._messageBuffer._resend()}),this.connection.features.inherentKeepAlive||await this._sendMessage(this._cachedPingMessage)}catch(e){throw this._logger.log(j7.Debug,`Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`),this._cleanupTimeout(),this._cleanupPingTimer(),await this.connection.stop(e),e}}async stop(){let e=this._startPromise;this.connection.features.reconnect=!1,this._stopPromise=this._stopInternal(),await this._stopPromise;try{await e}catch{}}_stopInternal(e){if(this._connectionState===V7.Disconnected)return this._logger.log(j7.Debug,`Call to HubConnection.stop(${e}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===V7.Disconnecting)return this._logger.log(j7.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;let t=this._connectionState;return this._connectionState=V7.Disconnecting,this._logger.log(j7.Debug,`Stopping HubConnection.`),this._reconnectDelayHandle?(this._logger.log(j7.Debug,`Connection stopped during reconnect delay. Done reconnecting.`),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(t===V7.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=e||new k7(`The connection was stopped before the hub handshake could complete.`),this.connection.stop(e))}async _sendCloseMessage(){try{await this._sendWithProtocol(this._createCloseMessage())}catch{}}stream(e,...t){let[n,r]=this._replaceStreamingParams(t),i=this._createStreamInvocation(e,t,r),a,o=new RPt;return o.cancelCallback=()=>{let e=this._createCancelInvocation(i.invocationId);return delete this._callbacks[i.invocationId],a.then(()=>this._sendWithProtocol(e))},this._callbacks[i.invocationId]=(e,t)=>{if(t){o.error(t);return}else e&&(e.type===B7.Completion?e.error?o.error(Error(e.error)):o.complete():o.next(e.item))},a=this._sendWithProtocol(i).catch(e=>{o.error(e),delete this._callbacks[i.invocationId]}),this._launchStreams(n,a),o}_sendMessage(e){return this._resetKeepAliveInterval(),this.connection.send(e)}_sendWithProtocol(e){return this._messageBuffer?this._messageBuffer._send(e):this._sendMessage(this._protocol.writeMessage(e))}send(e,...t){let[n,r]=this._replaceStreamingParams(t),i=this._sendWithProtocol(this._createInvocation(e,t,!0,r));return this._launchStreams(n,i),i}invoke(e,...t){let[n,r]=this._replaceStreamingParams(t),i=this._createInvocation(e,t,!1,r);return new Promise((e,t)=>{this._callbacks[i.invocationId]=(n,r)=>{if(r){t(r);return}else n&&(n.type===B7.Completion?n.error?t(Error(n.error)):e(n.result):t(Error(`Unexpected message type: ${n.type}`)))};let r=this._sendWithProtocol(i).catch(e=>{t(e),delete this._callbacks[i.invocationId]});this._launchStreams(n,r)})}on(e,t){!e||!t||(e=e.toLowerCase(),this._methods[e]||(this._methods[e]=[]),this._methods[e].indexOf(t)===-1&&this._methods[e].push(t))}off(e,t){if(!e)return;e=e.toLowerCase();let n=this._methods[e];if(n)if(t){let r=n.indexOf(t);r!==-1&&(n.splice(r,1),n.length===0&&delete this._methods[e])}else delete this._methods[e]}onclose(e){e&&this._closedCallbacks.push(e)}onreconnecting(e){e&&this._reconnectingCallbacks.push(e)}onreconnected(e){e&&this._reconnectedCallbacks.push(e)}_processIncomingData(e){if(this._cleanupTimeout(),this._receivedHandshakeResponse||=(e=this._processHandshakeResponse(e),!0),e){let t=this._protocol.parseMessages(e,this._logger);for(let e of t)if(!(this._messageBuffer&&!this._messageBuffer._shouldProcessMessage(e)))switch(e.type){case B7.Invocation:this._invokeClientMethod(e).catch(e=>{this._logger.log(j7.Error,`Invoke client method threw error: ${jPt(e)}`)});break;case B7.StreamItem:case B7.Completion:{let t=this._callbacks[e.invocationId];if(t){e.type===B7.Completion&&delete this._callbacks[e.invocationId];try{t(e)}catch(e){this._logger.log(j7.Error,`Stream callback threw error: ${jPt(e)}`)}}break}case B7.Ping:break;case B7.Close:{this._logger.log(j7.Information,`Close message received from server.`);let t=e.error?Error(`Server returned an error on close: `+e.error):void 0;e.allowReconnect===!0?this.connection.stop(t):this._stopPromise=this._stopInternal(t);break}case B7.Ack:this._messageBuffer&&this._messageBuffer._ack(e);break;case B7.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(e);break;default:this._logger.log(j7.Warning,`Invalid message type: ${e.type}.`);break}}this._resetTimeoutPeriod()}_processHandshakeResponse(e){let t,n;try{[n,t]=this._handshakeProtocol.parseHandshakeResponse(e)}catch(e){let t=`Error parsing handshake response: `+e;this._logger.log(j7.Error,t);let n=Error(t);throw this._handshakeRejecter(n),n}if(t.error){let e=`Server returned handshake error: `+t.error;this._logger.log(j7.Error,e);let n=Error(e);throw this._handshakeRejecter(n),n}else this._logger.log(j7.Debug,`Server handshake complete.`);return this._handshakeResolver(),n}_resetKeepAliveInterval(){this.connection.features.inherentKeepAlive||(this._nextKeepAlive=new Date().getTime()+this.keepAliveIntervalInMilliseconds,this._cleanupPingTimer())}_resetTimeoutPeriod(){if(!this.connection.features||!this.connection.features.inherentKeepAlive){this._timeoutHandle=setTimeout(()=>this.serverTimeout(),this.serverTimeoutInMilliseconds);let e=this._nextKeepAlive-new Date().getTime();if(e<0){this._connectionState===V7.Connected&&this._trySendPingMessage();return}this._pingServerHandle===void 0&&(e<0&&(e=0),this._pingServerHandle=setTimeout(async()=>{this._connectionState===V7.Connected&&await this._trySendPingMessage()},e))}}serverTimeout(){this.connection.stop(Error(`Server timeout elapsed without receiving a message from the server.`))}async _invokeClientMethod(e){let t=e.target.toLowerCase(),n=this._methods[t];if(!n){this._logger.log(j7.Warning,`No client method with the name '${t}' found.`),e.invocationId&&(this._logger.log(j7.Warning,`No result given for '${t}' method and invocation ID '${e.invocationId}'.`),await this._sendWithProtocol(this._createCompletionMessage(e.invocationId,`Client didn't provide a result.`,null)));return}let r=n.slice(),i=!!e.invocationId,a,o,s;for(let n of r)try{let r=a;a=await n.apply(this,e.arguments),i&&a&&r&&(this._logger.log(j7.Error,`Multiple results provided for '${t}'. Sending error to server.`),s=this._createCompletionMessage(e.invocationId,`Client provided multiple results.`,null)),o=void 0}catch(e){o=e,this._logger.log(j7.Error,`A callback for the method '${t}' threw error '${e}'.`)}s?await this._sendWithProtocol(s):i?(o?s=this._createCompletionMessage(e.invocationId,`${o}`,null):a===void 0?(this._logger.log(j7.Warning,`No result given for '${t}' method and invocation ID '${e.invocationId}'.`),s=this._createCompletionMessage(e.invocationId,`Client didn't provide a result.`,null)):s=this._createCompletionMessage(e.invocationId,null,a),await this._sendWithProtocol(s)):a&&this._logger.log(j7.Error,`Result given for '${t}' method but server is not expecting a result.`)}_connectionClosed(e){this._logger.log(j7.Debug,`HubConnection.connectionClosed(${e}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||e||new k7(`The underlying connection was closed before the hub handshake could complete.`),this._handshakeResolver&&this._handshakeResolver(),this._cancelCallbacksWithError(e||Error(`Invocation canceled due to the underlying connection being closed.`)),this._cleanupTimeout(),this._cleanupPingTimer(),this._connectionState===V7.Disconnecting?this._completeClose(e):this._connectionState===V7.Connected&&this._reconnectPolicy?this._reconnect(e):this._connectionState===V7.Connected&&this._completeClose(e)}_completeClose(e){if(this._connectionStarted){this._connectionState=V7.Disconnected,this._connectionStarted=!1,this._messageBuffer&&=(this._messageBuffer._dispose(e??Error(`Connection closed.`)),void 0),P7.isBrowser&&window.document.removeEventListener(`freeze`,this._freezeEventListener);try{this._closedCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(j7.Error,`An onclose callback called with error '${e}' threw error '${t}'.`)}}}async _reconnect(e){let t=Date.now(),n=0,r=e===void 0?Error(`Attempting to reconnect due to a unknown error.`):e,i=this._getNextRetryDelay(n,0,r);if(i===null){this._logger.log(j7.Debug,`Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.`),this._completeClose(e);return}if(this._connectionState=V7.Reconnecting,e?this._logger.log(j7.Information,`Connection reconnecting because of error '${e}'.`):this._logger.log(j7.Information,`Connection reconnecting.`),this._reconnectingCallbacks.length!==0){try{this._reconnectingCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(j7.Error,`An onreconnecting callback called with error '${e}' threw error '${t}'.`)}if(this._connectionState!==V7.Reconnecting){this._logger.log(j7.Debug,`Connection left the reconnecting state in onreconnecting callback. Done reconnecting.`);return}}for(;i!==null;){if(this._logger.log(j7.Information,`Reconnect attempt number ${n+1} will start in ${i} ms.`),await new Promise(e=>{this._reconnectDelayHandle=setTimeout(e,i)}),this._reconnectDelayHandle=void 0,this._connectionState!==V7.Reconnecting){this._logger.log(j7.Debug,`Connection left the reconnecting state during reconnect delay. Done reconnecting.`);return}try{if(await this._startInternal(),this._connectionState=V7.Connected,this._logger.log(j7.Information,`HubConnection reconnected successfully.`),this._reconnectedCallbacks.length!==0)try{this._reconnectedCallbacks.forEach(e=>e.apply(this,[this.connection.connectionId]))}catch(e){this._logger.log(j7.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`)}return}catch(e){if(this._logger.log(j7.Information,`Reconnect attempt failed because of error '${e}'.`),this._connectionState!==V7.Reconnecting){this._logger.log(j7.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),this._connectionState===V7.Disconnecting&&this._completeClose();return}n++,r=e instanceof Error?e:Error(e.toString()),i=this._getNextRetryDelay(n,Date.now()-t,r)}}this._logger.log(j7.Information,`Reconnect retries have been exhausted after ${Date.now()-t} ms and ${n} failed attempts. Connection disconnecting.`),this._completeClose()}_getNextRetryDelay(e,t,n){try{return this._reconnectPolicy.nextRetryDelayInMilliseconds({elapsedMilliseconds:t,previousRetryCount:e,retryReason:n})}catch(n){return this._logger.log(j7.Error,`IRetryPolicy.nextRetryDelayInMilliseconds(${e}, ${t}) threw error '${n}'.`),null}}_cancelCallbacksWithError(e){let t=this._callbacks;this._callbacks={},Object.keys(t).forEach(n=>{let r=t[n];try{r(null,e)}catch(t){this._logger.log(j7.Error,`Stream 'error' callback called with '${e}' threw error: ${jPt(t)}`)}})}_cleanupPingTimer(){this._pingServerHandle&&=(clearTimeout(this._pingServerHandle),void 0)}_cleanupTimeout(){this._timeoutHandle&&clearTimeout(this._timeoutHandle)}_createInvocation(e,t,n,r){if(n)return r.length===0?{target:e,arguments:t,type:B7.Invocation}:{target:e,arguments:t,streamIds:r,type:B7.Invocation};{let n=this._invocationId;return this._invocationId++,r.length===0?{target:e,arguments:t,invocationId:n.toString(),type:B7.Invocation}:{target:e,arguments:t,invocationId:n.toString(),streamIds:r,type:B7.Invocation}}}_launchStreams(e,t){if(e.length!==0){t||=Promise.resolve();for(let n in e)e[n].subscribe({complete:()=>{t=t.then(()=>this._sendWithProtocol(this._createCompletionMessage(n)))},error:e=>{let r;r=e instanceof Error?e.message:e&&e.toString?e.toString():`Unknown error`,t=t.then(()=>this._sendWithProtocol(this._createCompletionMessage(n,r)))},next:e=>{t=t.then(()=>this._sendWithProtocol(this._createStreamItemMessage(n,e)))}})}}_replaceStreamingParams(e){let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r];if(this._isObservable(i)){let a=this._invocationId;this._invocationId++,t[a]=i,n.push(a.toString()),e.splice(r,1)}}return[t,n]}_isObservable(e){return e&&e.subscribe&&typeof e.subscribe==`function`}_createStreamInvocation(e,t,n){let r=this._invocationId;return this._invocationId++,n.length===0?{target:e,arguments:t,invocationId:r.toString(),type:B7.StreamInvocation}:{target:e,arguments:t,invocationId:r.toString(),streamIds:n,type:B7.StreamInvocation}}_createCancelInvocation(e){return{invocationId:e,type:B7.CancelInvocation}}_createStreamItemMessage(e,t){return{invocationId:e,item:t,type:B7.StreamItem}}_createCompletionMessage(e,t,n){return t?{error:t,invocationId:e,type:B7.Completion}:{invocationId:e,result:n,type:B7.Completion}}_createCloseMessage(){return{type:B7.Close}}async _trySendPingMessage(){try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}}},GPt=[0,2e3,1e4,3e4,null],KPt=class{constructor(e){this._retryDelays=e===void 0?GPt:[...e,null]}nextRetryDelayInMilliseconds(e){return this._retryDelays[e.previousRetryCount]}},H7=class{};H7.Authorization=`Authorization`,H7.Cookie=`Cookie`;var qPt=class extends A7{constructor(e,t){super(),this._innerClient=e,this._accessTokenFactory=t}async send(e){let t=!0;this._accessTokenFactory&&(!this._accessToken||e.url&&e.url.indexOf(`/negotiate?`)>0)&&(t=!1,this._accessToken=await this._accessTokenFactory()),this._setAuthorizationHeader(e);let n=await this._innerClient.send(e);return t&&n.statusCode===401&&this._accessTokenFactory?(this._accessToken=await this._accessTokenFactory(),this._setAuthorizationHeader(e),await this._innerClient.send(e)):n}_setAuthorizationHeader(e){e.headers||={},this._accessToken?e.headers[H7.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&e.headers[H7.Authorization]&&delete e.headers[H7.Authorization]}getCookieString(e){return this._innerClient.getCookieString(e)}},U7;(function(e){e[e.None=0]=`None`,e[e.WebSockets=1]=`WebSockets`,e[e.ServerSentEvents=2]=`ServerSentEvents`,e[e.LongPolling=4]=`LongPolling`})(U7||={});var W7;(function(e){e[e.Text=1]=`Text`,e[e.Binary=2]=`Binary`})(W7||={});var JPt=class{constructor(){this._isAborted=!1,this.onabort=null}abort(){this._isAborted||(this._isAborted=!0,this.onabort&&this.onabort())}get signal(){return this}get aborted(){return this._isAborted}},YPt=class{get pollAborted(){return this._pollAbort.aborted}constructor(e,t,n){this._httpClient=e,this._logger=t,this._pollAbort=new JPt,this._options=n,this._running=!1,this.onreceive=null,this.onclose=null}async connect(e,t){if(N7.isRequired(e,`url`),N7.isRequired(t,`transferFormat`),N7.isIn(t,W7,`transferFormat`),this._url=e,this._logger.log(j7.Trace,`(LongPolling transport) Connecting.`),t===W7.Binary&&typeof XMLHttpRequest<`u`&&typeof new XMLHttpRequest().responseType!=`string`)throw Error(`Binary protocols over XmlHttpRequest not implementing advanced features are not supported.`);let[n,r]=R7(),i={[n]:r,...this._options.headers},a={abortSignal:this._pollAbort.signal,headers:i,timeout:1e5,withCredentials:this._options.withCredentials};t===W7.Binary&&(a.responseType=`arraybuffer`);let o=`${e}&_=${Date.now()}`;this._logger.log(j7.Trace,`(LongPolling transport) polling: ${o}.`);let s=await this._httpClient.get(o,a);s.statusCode===200?this._running=!0:(this._logger.log(j7.Error,`(LongPolling transport) Unexpected response code: ${s.statusCode}.`),this._closeError=new O7(s.statusText||``,s.statusCode),this._running=!1),this._receiving=this._poll(this._url,a)}async _poll(e,t){try{for(;this._running;)try{let n=`${e}&_=${Date.now()}`;this._logger.log(j7.Trace,`(LongPolling transport) polling: ${n}.`);let r=await this._httpClient.get(n,t);r.statusCode===204?(this._logger.log(j7.Information,`(LongPolling transport) Poll terminated by server.`),this._running=!1):r.statusCode===200?r.content?(this._logger.log(j7.Trace,`(LongPolling transport) data received. ${F7(r.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(r.content)):this._logger.log(j7.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._logger.log(j7.Error,`(LongPolling transport) Unexpected response code: ${r.statusCode}.`),this._closeError=new O7(r.statusText||``,r.statusCode),this._running=!1)}catch(e){this._running?e instanceof hPt?this._logger.log(j7.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._closeError=e,this._running=!1):this._logger.log(j7.Trace,`(LongPolling transport) Poll errored after shutdown: ${e.message}`)}}finally{this._logger.log(j7.Trace,`(LongPolling transport) Polling complete.`),this.pollAborted||this._raiseOnClose()}}async send(e){return this._running?wPt(this._logger,`LongPolling`,this._httpClient,this._url,e,this._options):Promise.reject(Error(`Cannot send until the transport is connected`))}async stop(){this._logger.log(j7.Trace,`(LongPolling transport) Stopping polling.`),this._running=!1,this._pollAbort.abort();try{await this._receiving,this._logger.log(j7.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);let e={},[t,n]=R7();e[t]=n;let r={headers:{...e,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials},i;try{await this._httpClient.delete(this._url,r)}catch(e){i=e}i?i instanceof O7&&(i.statusCode===404?this._logger.log(j7.Trace,`(LongPolling transport) A 404 response was returned from sending a DELETE request.`):this._logger.log(j7.Trace,`(LongPolling transport) Error sending a DELETE request: ${i}`)):this._logger.log(j7.Trace,`(LongPolling transport) DELETE request accepted.`)}finally{this._logger.log(j7.Trace,`(LongPolling transport) Stop finished.`),this._raiseOnClose()}}_raiseOnClose(){if(this.onclose){let e=`(LongPolling transport) Firing onclose event.`;this._closeError&&(e+=` Error: `+this._closeError),this._logger.log(j7.Trace,e),this.onclose(this._closeError)}}},XPt=class{constructor(e,t,n,r){this._httpClient=e,this._accessToken=t,this._logger=n,this._options=r,this.onreceive=null,this.onclose=null}async connect(e,t){return N7.isRequired(e,`url`),N7.isRequired(t,`transferFormat`),N7.isIn(t,W7,`transferFormat`),this._logger.log(j7.Trace,`(SSE transport) Connecting.`),this._url=e,this._accessToken&&(e+=(e.indexOf(`?`)<0?`?`:`&`)+`access_token=${encodeURIComponent(this._accessToken)}`),new Promise((n,r)=>{let i=!1;if(t!==W7.Text){r(Error(`The Server-Sent Events transport only supports the 'Text' transfer format`));return}let a;if(P7.isBrowser||P7.isWebWorker)a=new this._options.EventSource(e,{withCredentials:this._options.withCredentials});else{let t=this._httpClient.getCookieString(e),n={};n.Cookie=t;let[r,i]=R7();n[r]=i,a=new this._options.EventSource(e,{withCredentials:this._options.withCredentials,headers:{...n,...this._options.headers}})}try{a.onmessage=e=>{if(this.onreceive)try{this._logger.log(j7.Trace,`(SSE transport) data received. ${F7(e.data,this._options.logMessageContent)}.`),this.onreceive(e.data)}catch(e){this._close(e);return}},a.onerror=e=>{i?this._close():r(Error(`EventSource failed to connect. The connection could not be found on the server, either the connection ID is not present on the server, or a proxy is refusing/buffering the connection. If you have multiple servers check that sticky sessions are enabled.`))},a.onopen=()=>{this._logger.log(j7.Information,`SSE connected to ${this._url}`),this._eventSource=a,i=!0,n()}}catch(e){r(e);return}})}async send(e){return this._eventSource?wPt(this._logger,`SSE`,this._httpClient,this._url,e,this._options):Promise.reject(Error(`Cannot send until the transport is connected`))}stop(){return this._close(),Promise.resolve()}_close(e){this._eventSource&&(this._eventSource.close(),this._eventSource=void 0,this.onclose&&this.onclose(e))}},ZPt=class{constructor(e,t,n,r,i,a){this._logger=n,this._accessTokenFactory=t,this._logMessageContent=r,this._webSocketConstructor=i,this._httpClient=e,this.onreceive=null,this.onclose=null,this._headers=a}async connect(e,t){N7.isRequired(e,`url`),N7.isRequired(t,`transferFormat`),N7.isIn(t,W7,`transferFormat`),this._logger.log(j7.Trace,`(WebSockets transport) Connecting.`);let n;return this._accessTokenFactory&&(n=await this._accessTokenFactory()),new Promise((r,i)=>{e=e.replace(/^http/,`ws`);let a,o=this._httpClient.getCookieString(e),s=!1;if(P7.isNode||P7.isReactNative){let t={},[r,i]=R7();t[r]=i,n&&(t[H7.Authorization]=`Bearer ${n}`),o&&(t[H7.Cookie]=o),a=new this._webSocketConstructor(e,void 0,{headers:{...t,...this._headers}})}else n&&(e+=(e.indexOf(`?`)<0?`?`:`&`)+`access_token=${encodeURIComponent(n)}`);a||=new this._webSocketConstructor(e),t===W7.Binary&&(a.binaryType=`arraybuffer`),a.onopen=t=>{this._logger.log(j7.Information,`WebSocket connected to ${e}.`),this._webSocket=a,s=!0,r()},a.onerror=e=>{let t=null;t=typeof ErrorEvent<`u`&&e instanceof ErrorEvent?e.error:`There was an error with the transport`,this._logger.log(j7.Information,`(WebSockets transport) ${t}.`)},a.onmessage=e=>{if(this._logger.log(j7.Trace,`(WebSockets transport) data received. ${F7(e.data,this._logMessageContent)}.`),this.onreceive)try{this.onreceive(e.data)}catch(e){this._close(e);return}},a.onclose=e=>{if(s)this._close(e);else{let t=null;t=typeof ErrorEvent<`u`&&e instanceof ErrorEvent?e.error:`WebSocket failed to connect. The connection could not be found on the server, either the endpoint may not be a SignalR endpoint, the connection ID is not present on the server, or there is a proxy blocking WebSockets. If you have multiple servers check that sticky sessions are enabled.`,i(Error(t))}}})}send(e){return this._webSocket&&this._webSocket.readyState===this._webSocketConstructor.OPEN?(this._logger.log(j7.Trace,`(WebSockets transport) sending data. ${F7(e,this._logMessageContent)}.`),this._webSocket.send(e),Promise.resolve()):Promise.reject(`WebSocket is not in the OPEN state`)}stop(){return this._webSocket&&this._close(void 0),Promise.resolve()}_close(e){this._webSocket&&=(this._webSocket.onclose=()=>{},this._webSocket.onmessage=()=>{},this._webSocket.onerror=()=>{},this._webSocket.close(),void 0),this._logger.log(j7.Trace,`(WebSockets transport) socket closed.`),this.onclose&&(this._isCloseEvent(e)&&(e.wasClean===!1||e.code!==1e3)?this.onclose(Error(`WebSocket closed with status code: ${e.code} (${e.reason||`no reason given`}).`)):e instanceof Error?this.onclose(e):this.onclose())}_isCloseEvent(e){return e&&typeof e.wasClean==`boolean`&&typeof e.code==`number`}},QPt=100,$Pt=class{constructor(e,t={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,N7.isRequired(e,`url`),this._logger=TPt(t.logger),this.baseUrl=this._resolveUrl(e),t||={},t.logMessageContent=t.logMessageContent===void 0?!1:t.logMessageContent,typeof t.withCredentials==`boolean`||t.withCredentials===void 0)t.withCredentials=t.withCredentials===void 0?!0:t.withCredentials;else throw Error(`withCredentials option was not a 'boolean' or 'undefined' value`);t.timeout=t.timeout===void 0?100*1e3:t.timeout;let n=null,r=null;if(P7.isNode&&typeof require<`u`){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;n=e(`ws`),r=e(`eventsource`)}!P7.isNode&&typeof WebSocket<`u`&&!t.WebSocket?t.WebSocket=WebSocket:P7.isNode&&!t.WebSocket&&n&&(t.WebSocket=n),!P7.isNode&&typeof EventSource<`u`&&!t.EventSource?t.EventSource=EventSource:P7.isNode&&!t.EventSource&&r!==void 0&&(t.EventSource=r),this._httpClient=new qPt(t.httpClient||new IPt(this._logger),t.accessTokenFactory),this._connectionState=`Disconnected`,this._connectionStarted=!1,this._options=t,this.onreceive=null,this.onclose=null}async start(e){if(e||=W7.Binary,N7.isIn(e,W7,`transferFormat`),this._logger.log(j7.Debug,`Starting connection with transfer format '${W7[e]}'.`),this._connectionState!==`Disconnected`)return Promise.reject(Error(`Cannot start an HttpConnection that is not in the 'Disconnected' state.`));if(this._connectionState=`Connecting`,this._startInternalPromise=this._startInternal(e),await this._startInternalPromise,this._connectionState===`Disconnecting`){let e=`Failed to start the HttpConnection before stop() was called.`;return this._logger.log(j7.Error,e),await this._stopPromise,Promise.reject(new k7(e))}else if(this._connectionState!==`Connected`){let e=`HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!`;return this._logger.log(j7.Error,e),Promise.reject(new k7(e))}this._connectionStarted=!0}send(e){return this._connectionState===`Connected`?(this._sendQueue||=new tFt(this.transport),this._sendQueue.send(e)):Promise.reject(Error(`Cannot send data if the connection is not in the 'Connected' State.`))}async stop(e){if(this._connectionState===`Disconnected`)return this._logger.log(j7.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnected state.`),Promise.resolve();if(this._connectionState===`Disconnecting`)return this._logger.log(j7.Debug,`Call to HttpConnection.stop(${e}) ignored because the connection is already in the disconnecting state.`),this._stopPromise;this._connectionState=`Disconnecting`,this._stopPromise=new Promise(e=>{this._stopPromiseResolver=e}),await this._stopInternal(e),await this._stopPromise}async _stopInternal(e){this._stopError=e;try{await this._startInternalPromise}catch{}if(this.transport){try{await this.transport.stop()}catch(e){this._logger.log(j7.Error,`HttpConnection.transport.stop() threw error '${e}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(j7.Debug,`HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.`)}async _startInternal(e){let t=this.baseUrl;this._accessTokenFactory=this._options.accessTokenFactory,this._httpClient._accessTokenFactory=this._accessTokenFactory;try{if(this._options.skipNegotiation)if(this._options.transport===U7.WebSockets)this.transport=this._constructTransport(U7.WebSockets),await this._startTransport(t,e);else throw Error(`Negotiation can only be skipped when using the WebSocket transport directly.`);else{let n=null,r=0;do{if(n=await this._getNegotiationResponse(t),this._connectionState===`Disconnecting`||this._connectionState===`Disconnected`)throw new k7(`The connection was stopped during negotiation.`);if(n.error)throw Error(n.error);if(n.ProtocolVersion)throw Error(`Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.`);if(n.url&&(t=n.url),n.accessToken){let e=n.accessToken;this._accessTokenFactory=()=>e,this._httpClient._accessToken=e,this._httpClient._accessTokenFactory=void 0}r++}while(n.url&&r<QPt);if(r===QPt&&n.url)throw Error(`Negotiate redirection limit exceeded.`);await this._createTransport(t,this._options.transport,n,e)}this.transport instanceof YPt&&(this.features.inherentKeepAlive=!0),this._connectionState===`Connecting`&&(this._logger.log(j7.Debug,`The HttpConnection connected successfully.`),this._connectionState=`Connected`)}catch(e){return this._logger.log(j7.Error,`Failed to start the connection: `+e),this._connectionState=`Disconnected`,this.transport=void 0,this._stopPromiseResolver(),Promise.reject(e)}}async _getNegotiationResponse(e){let t={},[n,r]=R7();t[n]=r;let i=this._resolveNegotiateUrl(e);this._logger.log(j7.Debug,`Sending negotiation request: ${i}.`);try{let e=await this._httpClient.post(i,{content:``,headers:{...t,...this._options.headers},timeout:this._options.timeout,withCredentials:this._options.withCredentials});if(e.statusCode!==200)return Promise.reject(Error(`Unexpected status code returned from negotiate '${e.statusCode}'`));let n=JSON.parse(e.content);return(!n.negotiateVersion||n.negotiateVersion<1)&&(n.connectionToken=n.connectionId),n.useStatefulReconnect&&this._options._useStatefulReconnect!==!0?Promise.reject(new yPt(`Client didn't negotiate Stateful Reconnect but the server did.`)):n}catch(e){let t=`Failed to complete negotiation with the server: `+e;return e instanceof O7&&e.statusCode===404&&(t+=` Either this is not a SignalR endpoint or there is a proxy blocking the connection.`),this._logger.log(j7.Error,t),Promise.reject(new yPt(t))}}_createConnectUrl(e,t){return t?e+(e.indexOf(`?`)===-1?`?`:`&`)+`id=${t}`:e}async _createTransport(e,t,n,r){let i=this._createConnectUrl(e,n.connectionToken);if(this._isITransport(t)){this._logger.log(j7.Debug,`Connection was provided an instance of ITransport, using that directly.`),this.transport=t,await this._startTransport(i,r),this.connectionId=n.connectionId;return}let a=[],o=n.availableTransports||[],s=n;for(let n of o){let o=this._resolveTransportOrError(n,t,r,s?.useStatefulReconnect===!0);if(o instanceof Error)a.push(`${n.transport} failed:`),a.push(o);else if(this._isITransport(o)){if(this.transport=o,!s){try{s=await this._getNegotiationResponse(e)}catch(e){return Promise.reject(e)}i=this._createConnectUrl(e,s.connectionToken)}try{await this._startTransport(i,r),this.connectionId=s.connectionId;return}catch(e){if(this._logger.log(j7.Error,`Failed to start the transport '${n.transport}': ${e}`),s=void 0,a.push(new vPt(`${n.transport} failed: ${e}`,U7[n.transport])),this._connectionState!==`Connecting`){let e=`Failed to select transport before stop() was called.`;return this._logger.log(j7.Debug,e),Promise.reject(new k7(e))}}}}return a.length>0?Promise.reject(new bPt(`Unable to connect to the server with any of the available transports. ${a.join(` `)}`,a)):Promise.reject(Error(`None of the transports supported by the client are supported by the server.`))}_constructTransport(e){switch(e){case U7.WebSockets:if(!this._options.WebSocket)throw Error(`'WebSocket' is not supported in your environment.`);return new ZPt(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case U7.ServerSentEvents:if(!this._options.EventSource)throw Error(`'EventSource' is not supported in your environment.`);return new XPt(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case U7.LongPolling:return new YPt(this._httpClient,this._logger,this._options);default:throw Error(`Unknown transport: ${e}.`)}}_startTransport(e,t){return this.transport.onreceive=this.onreceive,this.features.reconnect?this.transport.onclose=async n=>{let r=!1;if(this.features.reconnect)try{this.features.disconnected(),await this.transport.connect(e,t),await this.features.resend()}catch{r=!0}else{this._stopConnection(n);return}r&&this._stopConnection(n)}:this.transport.onclose=e=>this._stopConnection(e),this.transport.connect(e,t)}_resolveTransportOrError(e,t,n,r){let i=U7[e.transport];if(i==null)return this._logger.log(j7.Debug,`Skipping transport '${e.transport}' because it is not supported by this client.`),Error(`Skipping transport '${e.transport}' because it is not supported by this client.`);if(eFt(t,i))if(e.transferFormats.map(e=>W7[e]).indexOf(n)>=0){if(i===U7.WebSockets&&!this._options.WebSocket||i===U7.ServerSentEvents&&!this._options.EventSource)return this._logger.log(j7.Debug,`Skipping transport '${U7[i]}' because it is not supported in your environment.'`),new gPt(`'${U7[i]}' is not supported in your environment.`,i);this._logger.log(j7.Debug,`Selecting transport '${U7[i]}'.`);try{return this.features.reconnect=i===U7.WebSockets?r:void 0,this._constructTransport(i)}catch(e){return e}}else return this._logger.log(j7.Debug,`Skipping transport '${U7[i]}' because it does not support the requested transfer format '${W7[n]}'.`),Error(`'${U7[i]}' does not support ${W7[n]}.`);else return this._logger.log(j7.Debug,`Skipping transport '${U7[i]}' because it was disabled by the client.`),new _Pt(`'${U7[i]}' is disabled by the client.`,i)}_isITransport(e){return e&&typeof e==`object`&&`connect`in e}_stopConnection(e){if(this._logger.log(j7.Debug,`HttpConnection.stopConnection(${e}) called while in state ${this._connectionState}.`),this.transport=void 0,e=this._stopError||e,this._stopError=void 0,this._connectionState===`Disconnected`){this._logger.log(j7.Debug,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is already in the disconnected state.`);return}if(this._connectionState===`Connecting`)throw this._logger.log(j7.Warning,`Call to HttpConnection.stopConnection(${e}) was ignored because the connection is still in the connecting state.`),Error(`HttpConnection.stopConnection(${e}) was called while the connection is still in the connecting state.`);if(this._connectionState===`Disconnecting`&&this._stopPromiseResolver(),e?this._logger.log(j7.Error,`Connection disconnected with error '${e}'.`):this._logger.log(j7.Information,`Connection disconnected.`),this._sendQueue&&=(this._sendQueue.stop().catch(e=>{this._logger.log(j7.Error,`TransportSendQueue.stop() threw error '${e}'.`)}),void 0),this.connectionId=void 0,this._connectionState=`Disconnected`,this._connectionStarted){this._connectionStarted=!1;try{this.onclose&&this.onclose(e)}catch(t){this._logger.log(j7.Error,`HttpConnection.onclose(${e}) threw error '${t}'.`)}}}_resolveUrl(e){if(e.lastIndexOf(`https://`,0)===0||e.lastIndexOf(`http://`,0)===0)return e;if(!P7.isBrowser)throw Error(`Cannot resolve '${e}'.`);let t=window.document.createElement(`a`);return t.href=e,this._logger.log(j7.Information,`Normalizing '${e}' to '${t.href}'.`),t.href}_resolveNegotiateUrl(e){let t=new URL(e);t.pathname.endsWith(`/`)?t.pathname+=`negotiate`:t.pathname+=`/negotiate`;let n=new URLSearchParams(t.searchParams);return n.has(`negotiateVersion`)||n.append(`negotiateVersion`,this._negotiateVersion.toString()),n.has(`useStatefulReconnect`)?n.get(`useStatefulReconnect`)===`true`&&(this._options._useStatefulReconnect=!0):this._options._useStatefulReconnect===!0&&n.append(`useStatefulReconnect`,`true`),t.search=n.toString(),t.toString()}};function eFt(e,t){return!e||(t&e)!==0}var tFt=class e{constructor(e){this._transport=e,this._buffer=[],this._executing=!0,this._sendBufferedData=new G7,this._transportResult=new G7,this._sendLoopPromise=this._sendLoop()}send(e){return this._bufferData(e),this._transportResult||=new G7,this._transportResult.promise}stop(){return this._executing=!1,this._sendBufferedData.resolve(),this._sendLoopPromise}_bufferData(e){if(this._buffer.length&&typeof this._buffer[0]!=typeof e)throw Error(`Expected data to be of type ${typeof this._buffer} but was of type ${typeof e}`);this._buffer.push(e),this._sendBufferedData.resolve()}async _sendLoop(){for(;;){if(await this._sendBufferedData.promise,!this._executing){this._transportResult&&this._transportResult.reject(`Connection stopped.`);break}this._sendBufferedData=new G7;let t=this._transportResult;this._transportResult=void 0;let n=typeof this._buffer[0]==`string`?this._buffer.join(``):e._concatBuffers(this._buffer);this._buffer.length=0;try{await this._transport.send(n),t.resolve()}catch(e){t.reject(e)}}}static _concatBuffers(e){let t=e.map(e=>e.byteLength).reduce((e,t)=>e+t),n=new Uint8Array(t),r=0;for(let t of e)n.set(new Uint8Array(t),r),r+=t.byteLength;return n.buffer}},G7=class{constructor(){this.promise=new Promise((e,t)=>[this._resolver,this._rejecter]=[e,t])}resolve(){this._resolver()}reject(e){this._rejecter(e)}},nFt=`json`,rFt=class{constructor(){this.name=nFt,this.version=2,this.transferFormat=W7.Text}parseMessages(e,t){if(typeof e!=`string`)throw Error(`Invalid input for JSON hub protocol. Expected a string.`);if(!e)return[];t===null&&(t=M7.instance);let n=z7.parse(e),r=[];for(let e of n){let n=JSON.parse(e);if(typeof n.type!=`number`)throw Error(`Invalid payload.`);switch(n.type){case B7.Invocation:this._isInvocationMessage(n);break;case B7.StreamItem:this._isStreamItemMessage(n);break;case B7.Completion:this._isCompletionMessage(n);break;case B7.Ping:break;case B7.Close:break;case B7.Ack:this._isAckMessage(n);break;case B7.Sequence:this._isSequenceMessage(n);break;default:t.log(j7.Information,`Unknown message type '`+n.type+`' ignored.`);continue}r.push(n)}return r}writeMessage(e){return z7.write(JSON.stringify(e))}_isInvocationMessage(e){this._assertNotEmptyString(e.target,`Invalid payload for Invocation message.`),e.invocationId!==void 0&&this._assertNotEmptyString(e.invocationId,`Invalid payload for Invocation message.`)}_isStreamItemMessage(e){if(this._assertNotEmptyString(e.invocationId,`Invalid payload for StreamItem message.`),e.item===void 0)throw Error(`Invalid payload for StreamItem message.`)}_isCompletionMessage(e){if(e.result&&e.error)throw Error(`Invalid payload for Completion message.`);!e.result&&e.error&&this._assertNotEmptyString(e.error,`Invalid payload for Completion message.`),this._assertNotEmptyString(e.invocationId,`Invalid payload for Completion message.`)}_isAckMessage(e){if(typeof e.sequenceId!=`number`)throw Error(`Invalid SequenceId for Ack message.`)}_isSequenceMessage(e){if(typeof e.sequenceId!=`number`)throw Error(`Invalid SequenceId for Sequence message.`)}_assertNotEmptyString(e,t){if(typeof e!=`string`||e===``)throw Error(t)}},iFt={trace:j7.Trace,debug:j7.Debug,info:j7.Information,information:j7.Information,warn:j7.Warning,warning:j7.Warning,error:j7.Error,critical:j7.Critical,none:j7.None};function aFt(e){let t=iFt[e.toLowerCase()];if(t!==void 0)return t;throw Error(`Unknown log level: ${e}`)}var oFt=class{configureLogging(e){if(N7.isRequired(e,`logging`),sFt(e))this.logger=e;else if(typeof e==`string`){let t=aFt(e);this.logger=new L7(t)}else this.logger=new L7(e);return this}withUrl(e,t){return N7.isRequired(e,`url`),N7.isNotEmpty(e,`url`),this.url=e,typeof t==`object`?this.httpConnectionOptions={...this.httpConnectionOptions,...t}:this.httpConnectionOptions={...this.httpConnectionOptions,transport:t},this}withHubProtocol(e){return N7.isRequired(e,`protocol`),this.protocol=e,this}withAutomaticReconnect(e){if(this.reconnectPolicy)throw Error(`A reconnectPolicy has already been set.`);return e?Array.isArray(e)?this.reconnectPolicy=new KPt(e):this.reconnectPolicy=e:this.reconnectPolicy=new KPt,this}withServerTimeout(e){return N7.isRequired(e,`milliseconds`),this._serverTimeoutInMilliseconds=e,this}withKeepAliveInterval(e){return N7.isRequired(e,`milliseconds`),this._keepAliveIntervalInMilliseconds=e,this}withStatefulReconnect(e){return this.httpConnectionOptions===void 0&&(this.httpConnectionOptions={}),this.httpConnectionOptions._useStatefulReconnect=!0,this._statefulReconnectBufferSize=e?.bufferSize,this}build(){let e=this.httpConnectionOptions||{};if(e.logger===void 0&&(e.logger=this.logger),!this.url)throw Error(`The 'HubConnectionBuilder.withUrl' method must be called before building the connection.`);let t=new $Pt(this.url,e);return WPt.create(t,this.logger||M7.instance,this.protocol||new rFt,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}};function sFt(e){return e.log!==void 0}var cFt=15e3,lFt=5,uFt=(e,t=Math.random)=>{let n=Math.min(cFt,1e3*2**Math.min(Math.max(e,0),lFt));return Math.round(t()*n)},dFt=class{nextRetryDelayInMilliseconds(e){return uFt(e.previousRetryCount)}},fFt=e=>({log(t,n){t>=j7.Error?e.error(n):t>=j7.Warning?e.warn(n):e.debug(n)}}),pFt=e=>{switch(e){case V7.Connected:return`connected`;case V7.Connecting:return`connecting`;case V7.Reconnecting:return`reconnecting`;case V7.Disconnected:case V7.Disconnecting:return`disconnected`;default:return`disconnected`}},mFt=class{connection;logger;statusHandlers=new Set;starting=null;intentionallyStopped=!0;reconnectTimer=null;reconnectAttempt=0;constructor(e,t){this.logger=t.child(`realtime`),this.connection=new oFt().withUrl(e.url,{accessTokenFactory:()=>e.accessTokenProvider()??``}).withAutomaticReconnect(new dFt).configureLogging(fFt(this.logger)).build(),this.connection.onreconnecting(()=>{this.emitStatus(`reconnecting`)}),this.connection.onreconnected(()=>{this.reconnectAttempt=0,this.emitStatus(`connected`)}),this.connection.onclose(()=>{this.emitStatus(`disconnected`),this.scheduleReconnect()})}get status(){return pFt(this.connection.state)}async start(){if(this.intentionallyStopped=!1,this.clearReconnectTimer(),this.connection.state===V7.Disconnecting)for(;this.connection.state===V7.Disconnecting;)await new Promise(e=>setTimeout(e,50));if(this.connection.state===V7.Disconnected)return this.starting===null?(this.emitStatus(`connecting`),this.starting=this.connection.start().then(()=>{this.reconnectAttempt=0,this.emitStatus(`connected`)}).catch(e=>{throw this.emitStatus(`disconnected`),this.logger.warn(`Realtime connection failed to start`),e}).finally(()=>{this.starting=null}),this.starting):this.starting}async stop(){this.intentionallyStopped=!0,this.clearReconnectTimer(),await this.connection.stop(),this.emitStatus(`disconnected`)}on(e,t){let n=e=>{t(e)};return this.connection.on(e,n),()=>{this.connection.off(e,n)}}invoke(e,...t){return this.connection.invoke(e,...t)}onStatusChange(e){return this.statusHandlers.add(e),e(this.status),()=>{this.statusHandlers.delete(e)}}scheduleReconnect(){if(this.intentionallyStopped)return;this.clearReconnectTimer();let e=uFt(this.reconnectAttempt);this.reconnectAttempt+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectNow()},e)}async reconnectNow(){if(this.reconnectTimer=null,!(this.intentionallyStopped||this.connection.state!==V7.Disconnected)){if(!this.isOnline()){this.scheduleReconnect();return}this.emitStatus(`reconnecting`);try{await this.connection.start(),this.reconnectAttempt=0,this.emitStatus(`connected`)}catch{this.emitStatus(`disconnected`),this.scheduleReconnect()}}}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}isOnline(){return typeof navigator>`u`?!0:navigator.onLine}emitStatus(e){for(let t of this.statusHandlers)t(e)}},hFt=class{logger;constructor(e){this.logger=e.logger}create(e){return new mFt(e,this.logger)}},gFt=class{status=`disconnected`;async start(){return Promise.resolve()}async stop(){return Promise.resolve()}on(e,t){return()=>{}}async invoke(e,...t){return Promise.reject(Error(`Cannot invoke method on NullRealtimeConnection`))}onStatusChange(e){return()=>{}}},_Ft=class{moduleAccessGateway;logger;constructor(e){this.moduleAccessGateway=e.moduleAccessGateway,this.logger=e.logger.child(`get-module-access`)}async execute(){let e=await this.moduleAccessGateway.getModuleAccess();return e.ok||this.logger.warn(`Loading module access failed`,{code:e.error.code}),e}},vFt=`/api/app/sdk-capabilities`,yFt=gm({apiVersion:k(),modules:hm(k())}),bFt=e=>{let t=new Set;for(let n of e.modules)sPt(n)&&t.add(D7[n]);return{grantedModules:t,grantedPolicies:new Set,canManageUserAccess:!1}},xFt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`sdk-module-access`)}async getModuleAccess(){let e;try{e=await this.httpClient.get(vFt)}catch(e){return this.logger.error(`Failed to fetch SDK capabilities`,{error:e}),O(new aPt(e))}let t=yFt.safeParse(e);return t.success?Yf(bFt(t.data)):(this.logger.error(`Malformed capabilities response`,{error:t.error}),O(new aPt(t.error)))}},SFt=e=>({getModuleAccess:new _Ft({moduleAccessGateway:new xFt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger}),gateMode:`fail-closed`}),CFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`list-conversations`)}async execute(e){let t=await this.chatGateway.listConversations(e);return t.ok||this.logger.warn(`Listing conversations failed`,{code:t.error.code}),t}},wFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-conversation`)}async execute(e){let t=await this.chatGateway.getConversation(e);return t.ok||this.logger.warn(`Fetching conversation failed`,{code:t.error.code}),t}},TFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-conversation-counts`)}async execute(){let e=await this.chatGateway.getConversationCounts();return e.ok||this.logger.warn(`Fetching conversation counts failed`,{code:e.error.code}),e}},EFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`list-staff`)}async execute(e){let t=await this.chatGateway.listStaff(e);return t.ok||this.logger.warn(`Listing staff failed`,{code:t.error.code}),t}},DFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-group-member-pool`)}async execute(e){let t=await this.chatGateway.getGroupMemberPool(e);return t.ok||this.logger.warn(`Fetching the group member pool failed`,{code:t.error.code}),t}},OFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-viewer`)}async execute(){let e=await this.chatGateway.getViewer();return e.ok||this.logger.warn(`Loading viewer failed`,{code:e.error.code}),e}},kFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-messages`)}async execute(e){let t=await this.chatGateway.getMessages(e,50);return t.ok||this.logger.warn(`Loading messages failed`,{code:t.error.code}),t}},AFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-messages-since`)}async execute(e,t,n){let r=await this.chatGateway.getMessagesSince(e,t,n);return r.ok||this.logger.warn(`Loading messages since cursor failed`,{code:r.error.code}),r}},jFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`get-messages-before`)}async execute(e,t,n){let r=await this.chatGateway.getMessagesBefore(e,t,n);return r.ok||this.logger.warn(`Loading messages before cursor failed`,{code:r.error.code}),r}},MFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`start-direct`)}async execute(e){let t=e.trim();return t.length===0?(this.logger.warn(`Rejected start-direct with no recipient`),O(new Kve)):this.chatGateway.startDirect(t)}},NFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`create-group`)}async execute(e,t){let n=e.trim();return n.length===0?(this.logger.warn(`Rejected group with no title`),O(new Wve)):t.length===0?(this.logger.warn(`Rejected group with no members`),O(new Gve)):this.chatGateway.createGroup(n,t)}},PFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`send-message`)}async execute(e,t,n,r){let i=t.trim();return i.length===0?(this.logger.warn(`Rejected empty message`,{conversationId:e}),O(new Hve)):i.length>4e3?(this.logger.warn(`Rejected oversized message`,{conversationId:e}),O(new Uve(4e3))):this.chatGateway.sendMessage(e,i,n,r)}},FFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`mark-delivered`)}execute(e,t){return this.logger.debug(`Mark delivered`,{conversationId:e,uptoSequence:t}),this.chatGateway.markDelivered(e,t)}},IFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`mark-read`)}execute(e,t){return this.logger.debug(`Mark read`,{conversationId:e,uptoSequence:t}),this.chatGateway.markRead(e,t)}},LFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`set-favourite`)}async execute(e,t){return this.logger.info(`Set favourite`,{conversationId:e,favourite:t}),this.chatGateway.setFavourite(e,t)}},RFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`set-archived`)}async execute(e,t){return this.logger.info(`Set archived`,{conversationId:e,archived:t}),this.chatGateway.setArchived(e,t)}},zFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`set-pinned`)}async execute(e,t){return this.logger.info(`Set pinned`,{conversationId:e,pinned:t}),this.chatGateway.setPinned(e,t)}},BFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`delete-conversation`)}async execute(e){return this.logger.info(`Delete conversation`,{conversationId:e}),this.chatGateway.deleteConversation(e)}},VFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`leave-conversation`)}async execute(e){return this.logger.info(`Leave conversation`,{conversationId:e}),this.chatGateway.leaveConversation(e)}},HFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`refresh-portal`)}async execute(e){return this.logger.info(`Refresh portal data`,{conversationId:e}),this.chatGateway.refreshPortal(e)}},UFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`react-to-message`)}async execute(e,t,n){return n.trim().length===0?(this.logger.warn(`Rejected empty reaction`,{conversationId:e,messageId:t}),O(new sh)):this.chatGateway.reactToMessage(e,t,n)}},WFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`save-members`)}async execute(e,t,n){return this.logger.info(`Save members`,{conversationId:e,members:t.length,admins:n.length}),this.chatGateway.saveMembers(e,t,n)}},GFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`edit-message`)}async execute(e,t,n){let r=n.trim(),i=await this.chatGateway.editMessage(e,t,r);return i.ok||this.logger.warn(`Edit message failed`,{code:i.error.code}),i}},KFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`delete-message`)}async execute(e,t){let n=await this.chatGateway.deleteMessage(e,t);return n.ok||this.logger.warn(`Delete message failed`,{code:n.error.code}),n}},qFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`delete-message-for-me`)}async execute(e,t){let n=await this.chatGateway.deleteMessageForMe(e,t);return n.ok||this.logger.warn(`Delete message for me failed`,{code:n.error.code}),n}},JFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`send-media-message`)}async execute(e){let t=await this.chatGateway.sendMediaMessage(e);return t.ok||this.logger.warn(`Send media message failed`,{code:t.error.code}),t}},YFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`download-chat-media`)}async execute(e){let t=await this.chatGateway.downloadMedia(e);return t.ok||this.logger.warn(`Downloading media failed`,{code:t.error.code}),t}},XFt=class{chatGateway;logger;constructor(e){this.chatGateway=e.chatGateway,this.logger=e.logger.child(`subscribe-push`)}async execute(e){let t=await this.chatGateway.subscribePush(e);return t.ok||this.logger.warn(`Subscribe push failed`,{code:t.error.code}),t}},ZFt=e=>{let t={chatGateway:new iMt({httpClient:e.httpClient,clock:e.clock,logger:e.logger}),logger:e.logger},n=pMt();return{listConversations:new CFt(t),getConversation:new wFt(t),getConversationCounts:new TFt(t),listStaff:new EFt(t),getGroupMemberPool:new DFt(t),getViewer:new OFt(t),getMessages:new kFt(t),getMessagesSince:new AFt(t),getMessagesBefore:new jFt(t),startDirect:new MFt(t),createGroup:new NFt(t),sendMessage:new PFt(t),sendMediaMessage:new JFt(t),downloadChatMedia:new YFt(t),editMessage:new GFt(t),deleteMessage:new KFt(t),deleteMessageForMe:new qFt(t),subscribePush:new XFt(t),markDelivered:new FFt(t),markRead:new IFt(t),setFavourite:new LFt(t),setArchived:new RFt(t),setPinned:new zFt(t),deleteConversation:new BFt(t),leaveConversation:new VFt(t),refreshPortal:new HFt(t),reactToMessage:new UFt(t),saveMembers:new WFt(t),clock:e.clock,realtime:e.realtime,realtimeStore:Bve(),logger:e.logger.child(`chat-realtime`),outbox:n}},QFt=({module:e,children:t})=>(0,D.jsx)(nye.Provider,{value:e,children:(0,D.jsx)(Vve.Provider,{value:e.realtimeStore,children:t})}),$Ft=e=>e.connection.on(C7.MessageReceived,t=>{let n=SMt(t,C7.MessageReceived,e.logger);if(n===null)return;let r=e.viewerId()??``,i=IMt(f7(n),r);if(e.queryClient.setQueryData(yh(n.conversationId),e=>i7(e??[],i)),hh(e.queryClient),i.kind===`system`){if(i.text.endsWith(` left the group`)){let t=i.text.slice(0,-15).trim().toLowerCase();_h(e.queryClient,n.conversationId,e=>{let n=e.members.find(e=>e.name.toLowerCase()===t);return n===void 0?e:e.with({members:e.members.filter(e=>e.id!==n.id),adminIds:e.adminIds.filter(e=>e!==n.id)})})}e.queryClient.refetchQueries({queryKey:ph(n.conversationId)})}}),eIt=(e,t,n)=>e.connection.on(t,r=>{let i=CMt(r,t,e.logger);i===null||i.byUserId===e.viewerId()||e.store.getState().applyReceipt(i.conversationId,i.byUserId,n,i.uptoSequence)}),tIt=e=>e.connection.on(C7.Typing,t=>{let n=wMt(t,C7.Typing,e.logger);n===null||n.userId===e.viewerId()||e.store.getState().applyTyping(n.conversationId,n.userId,n.isTyping,Date.now())}),nIt=e=>e.connection.on(C7.ReactionToggled,t=>{let n=DMt(t,C7.ReactionToggled,e.logger),r=e.viewerId();n===null||n.byUserId===r||e.queryClient.setQueryData(yh(n.conversationId),e=>e?.map(e=>e.id===n.messageId?dye(e,n,r??``):e))}),rIt=e=>e.connection.on(C7.MessageEdited,t=>{let n=SMt(t,C7.MessageEdited,e.logger);if(n===null)return;let r=e.viewerId()??``,i=IMt(f7(n),r);e.queryClient.setQueryData(yh(n.conversationId),e=>e?.map(e=>e.id===i.id?i:e)??[i])}),iIt=e=>e.connection.on(C7.MessageDeleted,t=>{let n=OMt(t,C7.MessageDeleted,e.logger);n!==null&&(e.queryClient.setQueryData(yh(n.conversationId),e=>e?.map(e=>e.id===n.messageId?e.asDeletedForEveryone():e)??[]),hh(e.queryClient))}),aIt=e=>e.connection.on(C7.RemovedFromConversation,t=>{let n=kMt(t,C7.RemovedFromConversation,e.logger);n!==null&&e.store.getState().markRemovedFromConversation(n.conversationId)}),oIt=e=>e.connection.on(C7.PresenceChanged,t=>{let n=TMt(t,C7.PresenceChanged,e.logger);n!==null&&e.store.getState().applyPresence(n.userId,n.online,n.lastSeenUtc)}),sIt=e=>e.connection.on(C7.StatusChanged,t=>{let n=EMt(t,C7.StatusChanged,e.logger);n!==null&&DSe(n.userId,Nh(n.status),n.untilUtc??null)}),cIt=e=>{let t=[$Ft(e),rIt(e),iIt(e),eIt(e,C7.MessageDelivered,`delivered`),eIt(e,C7.MessageRead,`read`),tIt(e),oIt(e),sIt(e),nIt(e),aIt(e)];return()=>{for(let e of t)e()}},lIt=(e,t,n)=>{n.length!==0&&e.setQueryData(yh(t),e=>n.reduce((e,t)=>i7(e,t),e??[]))},uIt=async(e,t,n,r)=>{let i=e.getState().activeConversationId;if(i===null){gh(t);return}let a=EOt(t.getQueryData(yh(i))??[]);try{lIt(t,i,await Zf(n.execute(i,a,50)))}catch{r.warn(`Reconnect sync failed; conversation list will still refresh`)}gh(t)},dIt=()=>{let{realtime:e,getMessagesSince:t,logger:n}=uh(),r=ih(),i=Hm();(0,y.useEffect)(()=>{let a=e.status;return e.onStatusChange(e=>{e===`connected`&&a!==`connected`&&uIt(r,i,t,n),a=e})},[e,r,i,t,n])},fIt=()=>{let{isAuthenticated:e}=qh(),{realtime:t,logger:n}=uh(),r=ih(),i=Hm(),a=bh();dIt();let o=(0,y.useRef)(null);o.current=a.data?.id??null,(0,y.useEffect)(()=>t.onStatusChange(e=>{r.getState().setStatus(e)}),[t,r]),(0,y.useEffect)(()=>cIt({connection:t,store:r,queryClient:i,viewerId:()=>o.current,logger:n}),[t,r,i,n]),(0,y.useEffect)(()=>{if(!e){t.stop(),r.getState().clear(),kSe();return}return t.start().catch(()=>{}),()=>{t.stop()}},[e,t,r])},pIt=({children:e})=>(fIt(),(0,D.jsx)(D.Fragment,{children:e})),mIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`get-post`)}async execute(e){let t=await this.feedGateway.getPost(e);return t.ok||this.logger.warn(`Fetching post by id failed`,{code:t.error.code}),t}},hIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`list-feed`)}async execute(e){let t=await this.feedGateway.listPosts(e.scope,e.skipCount,e.maxResultCount);return t.ok||this.logger.warn(`Listing feed failed`,{code:t.error.code,scope:e.scope}),t}},gIt=class extends Yn{},K7=class extends gIt{code=`FEED_UNAVAILABLE`;constructor(e){super(`The news feed is currently unavailable. Please try again.`,{cause:e})}},_It=class extends gIt{code=`FEED_EMPTY_POST`;constructor(){super(`Write something before posting.`)}},vIt=class{id;authorUserId;authorName;authorInitials;authorColor;authorRole;categoryLabel;categoryColor;audienceLabel;timestamp;createdAt;pinned;mustAcknowledge;acknowledged;title;body;reactions;myReaction;commentCount;comments;seenCount;bookmarked;taggedUserIds;locationLabel;imageUrls;department;audienceId;feelingId;feelingLabel;feelingEmoji;scheduledAt;isRecurring;recurrenceFrequency;constructor(e){this.id=e.id,this.authorUserId=e.authorUserId,this.authorName=e.authorName,this.authorInitials=e.authorInitials,this.authorColor=e.authorColor,this.authorRole=e.authorRole,this.categoryLabel=e.categoryLabel,this.categoryColor=e.categoryColor,this.audienceLabel=e.audienceLabel,this.timestamp=e.timestamp,this.createdAt=e.createdAt,this.pinned=e.pinned,this.mustAcknowledge=e.mustAcknowledge,this.acknowledged=e.acknowledged,this.title=e.title,this.body=e.body,this.reactions=e.reactions,this.myReaction=e.myReaction,this.commentCount=e.commentCount,this.comments=e.comments,this.seenCount=e.seenCount,this.bookmarked=e.bookmarked,this.taggedUserIds=e.taggedUserIds,this.locationLabel=e.locationLabel,this.imageUrls=e.imageUrls,this.department=e.department,this.audienceId=e.audienceId,this.feelingId=e.feelingId,this.feelingLabel=e.feelingLabel,this.feelingEmoji=e.feelingEmoji,this.scheduledAt=e.scheduledAt??null,this.isRecurring=e.isRecurring??!1,this.recurrenceFrequency=e.recurrenceFrequency??null}get totalReactions(){return this.reactions.like+this.reactions.insightful+this.reactions.celebrate}get needsAcknowledgement(){return this.mustAcknowledge&&!this.acknowledged}},yIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`create-post`)}async execute(e){return e.body.trim().length===0?(this.logger.warn(`Rejected empty post`),O(new _It)):this.feedGateway.createPost({...e,body:e.body.trim()})}},bIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`update-post`)}async execute(e,t){return t.body.trim().length===0?(this.logger.warn(`Rejected empty body for post update`),O(new _It)):this.feedGateway.updatePost(e,{...t,body:t.body.trim()})}},xIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`react-to-post`)}async execute(e,t){let n=await this.feedGateway.react(e,t);return n.ok||this.logger.warn(`Reacting to post failed`,{code:n.error.code}),n}},SIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`toggle-bookmark`)}async execute(e){let t=await this.feedGateway.toggleBookmark(e);return t.ok||this.logger.warn(`Bookmarking post failed`,{code:t.error.code}),t}},CIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`acknowledge-post`)}async execute(e){let t=await this.feedGateway.acknowledge(e);return t.ok||this.logger.warn(`Acknowledging post failed`,{code:t.error.code}),t}},wIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`add-comment`)}async execute({postId:e,text:t}){if(t.trim().length===0)return this.logger.warn(`Rejected empty comment`,{postId:e}),O(new K7);let n=await this.feedGateway.addComment(e,t.trim());return n.ok||this.logger.warn(`Adding comment failed`,{code:n.error.code}),n}},TIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listCategories()}},EIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listAudiences()}},DIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listFeelings()}},OIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.searchUsers(e)}},kIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.detectLocation()}},AIt=class{gateway;logger;constructor(e){this.gateway=e.feedGateway,this.logger=e.logger.child(`upload-feed-image-use-case`)}async execute(e){return this.logger.debug(`Uploading feed image`),this.gateway.uploadImage(e)}},jIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`mark-seen`)}async execute(e){let t=await this.feedGateway.markSeen(e);return t.ok||this.logger.warn(`Marking post as seen failed`,{code:t.error.code}),t}},MIt=class{feedGateway;logger;constructor(e){this.feedGateway=e.feedGateway,this.logger=e.logger.child(`set-post-pinned`)}async execute(e,t){let n=await this.feedGateway.setPinned(e,t);return n.ok||this.logger.warn(`Pinning post failed`,{code:n.error.code,pinned:t}),n}},NIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.getNotifications()}},PIt=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.markNotificationAsRead(e)}};function FIt(e){return e.replace(/\s+(division|province|district|state|region)$/i,``).trim()}function IIt(e){let t=FIt(e.regionName??e.region??``),n=t.length>0?t:(e.cityName??e.city??``).trim(),r=(e.countryName??e.country_name??``).trim();return n.length>0&&r.length>0?`${n}, ${r}`:r.length>0?r:null}function LIt(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e){let t=e.split(`/`),n=t[t.length-1];if(n)return n.replace(/_/g,` `)}}catch{}return`London Office`}async function RIt(e){try{let t=await fetch(`/ip-geolocation`);if(t.ok){let e=IIt(await t.json());if(e!==null)return Yf(e)}e.warn(`Proxy location fetch returned unexpected response, falling back to local timezone`)}catch(t){e.warn(`Failed to fetch location via dev proxy, falling back to local timezone`,{error:t})}return Yf(LIt())}var zIt=gm({type:pm(),count:pm(),reacted:mm()}),BIt=gm({id:k(),authorUserId:k(),authorName:k(),authorInitials:k(),authorColor:k(),text:k(),createdAt:k(),time:k()}),VIt=gm({id:k(),authorUserId:k(),authorName:k(),authorInitials:k(),authorColor:k(),authorRole:k(),department:k().nullable().optional(),categoryLabel:k(),categoryColor:k(),audienceLabel:k(),createdAt:k(),timestamp:k(),pinned:mm(),mustAcknowledge:mm(),acknowledged:mm(),title:k().nullable(),body:k(),reactions:hm(zIt),myReaction:pm().nullable().optional(),commentCount:pm(),comments:hm(BIt),seenCount:pm(),bookmarked:mm(),audienceId:k(),taggedUserIds:hm(k()).optional(),scheduledAt:k().nullable().optional(),isRecurring:mm().optional(),recurrenceFrequency:k().nullable().optional(),nextOccurrenceTime:k().nullable().optional(),feelingId:k().nullable().optional(),feelingLabel:k().nullable().optional(),feelingEmoji:k().nullable().optional(),locationLabel:k().nullable().optional(),imageUrls:hm(k()).optional()}).passthrough();hm(VIt);var HIt=gm({totalCount:pm(),items:hm(VIt)}),UIt=hm(gm({id:k(),name:k(),email:k(),userName:k(),role:k(),initials:k(),color:k()})),WIt=hm(gm({id:k(),key:k().optional(),label:k(),color:k(),templateIds:hm(k()).optional(),dataTemplateIds:hm(k()).optional(),webhookId:k().nullable().optional()})),GIt=hm(gm({key:k(),label:k()})),KIt=hm(gm({id:k(),label:k(),emoji:k()})),qIt=e=>e===1?`insightful`:e===2?`celebrate`:`like`,JIt=e=>{let t={like:0,insightful:0,celebrate:0};for(let n of e){let e=qIt(n.type);t[e]=n.count}return t},YIt=e=>({id:e.id,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,text:e.text,time:e.time,createdAt:e.createdAt}),XIt=e=>e==null?null:qIt(e),ZIt=e=>({department:e.department??null,feelingId:e.feelingId??null,feelingLabel:e.feelingLabel??null,feelingEmoji:e.feelingEmoji??null,locationLabel:e.locationLabel??null}),QIt=e=>{let t=ZIt(e);return new vIt({id:e.id,authorUserId:e.authorUserId,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,authorRole:e.authorRole,categoryLabel:e.categoryLabel,categoryColor:e.categoryColor,audienceLabel:e.audienceLabel,createdAt:e.createdAt,timestamp:e.timestamp,pinned:e.pinned,mustAcknowledge:e.mustAcknowledge,acknowledged:e.acknowledged,title:e.title,body:e.body,reactions:JIt(e.reactions),myReaction:XIt(e.myReaction),commentCount:e.commentCount,comments:e.comments.map(YIt),seenCount:e.seenCount,bookmarked:e.bookmarked,taggedUserIds:e.taggedUserIds??[],imageUrls:e.imageUrls??[],audienceId:e.audienceId,scheduledAt:e.scheduledAt??null,isRecurring:e.isRecurring??!1,recurrenceFrequency:e.recurrenceFrequency??null,...t})},$It=e=>({id:e.key??e.id,label:e.label,color:e.color,categoryKey:e.key??e.id,templateIds:e.templateIds??[],dataTemplateIds:e.dataTemplateIds??[],webhookId:e.webhookId??void 0}),eLt=e=>({id:e.key,label:e.label}),tLt=e=>({id:e.id,label:e.label,emoji:e.emoji}),q7=(e,t,n)=>(e.error(`Feed ${t} returned an unexpected shape`,n),O(new K7(n))),J7=(e,t)=>(e.error(`Feed request failed`,t),new K7(t)),nLt=(e,t,n)=>{let r=HIt.safeParse(n);return r.success?Yf({totalCount:r.data.totalCount,items:r.data.items.map(QIt)}):q7(e,t,r.error)},Y7=(e,t,n)=>{let r=VIt.safeParse(n);return r.success?Yf(QIt(r.data)):q7(e,t,r.error)},rLt=(e,t,n)=>{let r=WIt.safeParse(n);return r.success?Yf(r.data.map($It)):q7(e,t,r.error)},iLt=(e,t,n)=>{let r=GIt.safeParse(n);return r.success?Yf(r.data.map(eLt)):q7(e,t,r.error)},aLt=(e,t,n)=>{let r=KIt.safeParse(n);return r.success?Yf(r.data.map(tLt)):q7(e,t,r.error)},oLt=(e,t,n)=>{let r=UIt.safeParse(n);return r.success?Yf(r.data):q7(e,t,r.error)},sLt=hm(gm({id:k(),userId:k(),kind:ym([`meeting`,`group`,`feed`,`member`]),actorName:k(),initials:k(),color:k(),message:k(),detail:k().nullable().optional(),postId:k().nullable().optional(),isRead:mm(),creationTime:k()})),cLt={for_you:0,team:1,company:2,saved:3},lLt={like:0,insightful:1,celebrate:2},uLt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-feed-gateway`)}async listPosts(e,t,n){try{let r=cLt[e],i=await this.httpClient.get(`/api/app/feed/posts`,{query:{scope:r,...t!==void 0&&{skipCount:t},...n!==void 0&&{maxResultCount:n}}});return nLt(this.logger,`listPosts`,i)}catch(e){return O(J7(this.logger,e))}}async getPost(e){try{let t=await this.httpClient.get(`/api/app/feed/post/${e}`);return Y7(this.logger,`getPost`,t)}catch(e){return O(J7(this.logger,e))}}async createPost(e){try{let t=await this.httpClient.post(`/api/app/feed/post`,e);return Y7(this.logger,`createPost`,t)}catch(e){return O(J7(this.logger,e))}}async updatePost(e,t){try{let n=await this.httpClient.put(`/api/app/feed/post/${e}`,t);return Y7(this.logger,`updatePost`,n)}catch(e){return O(J7(this.logger,e))}}async react(e,t){try{let n=await this.httpClient.post(`/api/app/feed/react-to-post/${e}`,{type:lLt[t]});return Y7(this.logger,`react`,n)}catch(e){return O(J7(this.logger,e))}}async toggleBookmark(e){try{let t=await this.httpClient.post(`/api/app/feed/toggle-bookmark/${e}`,void 0);return Y7(this.logger,`toggleBookmark`,t)}catch(e){return O(J7(this.logger,e))}}async setPinned(e,t){try{let n=await this.httpClient.post(`/api/app/feed/set-pinned/${e}`,{pinned:t});return Y7(this.logger,`setPinned`,n)}catch(e){return O(J7(this.logger,e))}}async acknowledge(e){try{let t=await this.httpClient.post(`/api/app/feed/acknowledge/${e}`,void 0);return Y7(this.logger,`acknowledge`,t)}catch(e){return O(J7(this.logger,e))}}async markSeen(e){try{let t=await this.httpClient.post(`/api/app/feed/mark-seen/${e}`,void 0);return Y7(this.logger,`markSeen`,t)}catch(e){return O(J7(this.logger,e))}}async addComment(e,t){try{let n=await this.httpClient.post(`/api/app/feed/comment/${e}`,{text:t});return Y7(this.logger,`addComment`,n)}catch(e){return O(J7(this.logger,e))}}async listCategories(){try{let e=await this.httpClient.get(`/api/app/feed/feed-categories`);return rLt(this.logger,`listCategories`,e)}catch(e){return O(J7(this.logger,e))}}async listAudiences(){try{let e=await this.httpClient.get(`/api/app/feed/feed-audiences`);return iLt(this.logger,`listAudiences`,e)}catch(e){return O(J7(this.logger,e))}}async listFeelings(){try{let e=await this.httpClient.get(`/api/app/feed/feed-feelings`);return aLt(this.logger,`listFeelings`,e)}catch(e){return O(J7(this.logger,e))}}async searchUsers(e){try{let t=await this.httpClient.get(`/api/app/feed/search-users`,{query:{filter:e}});return oLt(this.logger,`searchUsers`,t)}catch(e){return O(J7(this.logger,e))}}async detectLocation(){return RIt(this.logger)}async uploadImage(e){try{let t=new FormData;t.append(`file`,e);let n=await this.httpClient.post(`/api/app/file/upload?category=FeedPost`,t);return typeof n==`object`&&n&&`id`in n&&typeof n.id==`string`?Yf(n.id):O(new K7(`Invalid response shape`))}catch(e){return O(J7(this.logger,e))}}async getNotifications(){try{let e=await this.httpClient.get(`/api/app/notification`);return Yf(sLt.parse(e).map(e=>({id:e.id,kind:e.kind,initials:e.initials,color:e.color,actor:e.actorName,message:e.message,creationTime:e.creationTime,...e.detail!==null&&e.detail!==void 0?{detail:e.detail}:{},...e.postId!==null&&e.postId!==void 0?{postId:e.postId}:{}})))}catch(e){return O(J7(this.logger,e))}}async markNotificationAsRead(e){try{return await this.httpClient.post(`/api/app/notification/${e}/mark-as-read`,void 0),Yf(void 0)}catch(e){return O(J7(this.logger,e))}}async deleteNotification(e){try{return await this.httpClient.delete(`/api/app/notification/${e}`),Yf(void 0)}catch(e){return O(J7(this.logger,e))}}},dLt=e=>{let t={feedGateway:new uLt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listFeed:new hIt(t),getPost:new mIt(t),createPost:new yIt(t),updatePost:new bIt(t),reactToPost:new xIt(t),toggleBookmark:new SIt(t),acknowledgePost:new CIt(t),addComment:new wIt(t),listFeedCategories:new TIt(t),listFeedAudiences:new EIt(t),listFeedFeelings:new DIt(t),searchFeedUsers:new OIt(t),detectLocation:new kIt(t),uploadFeedImage:new AIt(t),setPostPinned:new MIt(t),markSeen:new jIt(t),getNotifications:new NIt(t),markNotificationRead:new PIt(t),notificationRealtime:e.notificationRealtime,logger:e.logger}},fLt=(0,y.createContext)(null),pLt=({module:e,children:t})=>(0,D.jsx)(fLt.Provider,{value:e,children:t}),X7=()=>{let e=(0,y.useContext)(fLt);if(e===null)throw Error(`Feed hooks must be used within <FeedModuleProvider>.`);return e},mLt=e=>[`feed`,e],hLt=e=>{e.invalidateQueries({queryKey:[`feed`]})},Z7=(e,t)=>{e.setQueriesData({queryKey:[`feed`]},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t.id?t:e)}))}),e.setQueryData([`feed-post`,t.id],t)},gLt=e=>{let{listFeed:t}=X7();return cve({queryKey:mLt(e),queryFn:({pageParam:n})=>Zf(t.execute({scope:e,skipCount:n,maxResultCount:10})),initialPageParam:0,getNextPageParam:(e,t)=>{let n=t.reduce((e,t)=>e+t.items.length,0);if(!(n>=e.totalCount))return n}})},_Lt=()=>{let{createPost:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:()=>{hLt(t)}})},vLt=()=>{let{updatePost:e}=X7(),t=Hm();return Wm({mutationFn:({postId:t,input:n})=>Zf(e.execute(t,n)),onSuccess:e=>{Z7(t,e)}})},yLt=()=>{let{reactToPost:e}=X7(),t=Hm();return Wm({mutationFn:({postId:t,type:n})=>Zf(e.execute(t,n)),onSuccess:e=>{Z7(t,e)}})},bLt=()=>{let{toggleBookmark:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e),t.invalidateQueries({queryKey:mLt(`saved`)})}})},xLt=()=>{let{acknowledgePost:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e)}})},SLt=()=>{let{markSeen:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e)}})},CLt=()=>{let{addComment:e}=X7(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{Z7(t,e)}})},wLt=()=>{let{setPostPinned:e}=X7(),t=Hm();return Wm({mutationFn:({postId:t,pinned:n})=>Zf(e.execute(t,n)),onSuccess:e=>{Z7(t,e)}})},Q7=()=>{let{listFeedCategories:e}=X7();return Um({queryKey:[`feed-categories`],queryFn:()=>Zf(e.execute())})},TLt=()=>{let{listFeedAudiences:e}=X7();return Um({queryKey:[`feed-audiences`],queryFn:()=>Zf(e.execute())})},ELt=()=>{let{listFeedFeelings:e}=X7();return Um({queryKey:[`feed-feelings`],queryFn:()=>Zf(e.execute())})},DLt=e=>{let{searchFeedUsers:t}=X7();return Um({queryKey:[`feed-search-users`,e],queryFn:()=>Zf(t.execute(e)),enabled:e.trim().length>0})},OLt=()=>{let{uploadFeedImage:e}=X7();return Wm({mutationFn:t=>Zf(e.execute(t))})},kLt=e=>{let{getPost:t}=X7();return Um({queryKey:[`feed-post`,e],queryFn:()=>Zf(t.execute(e??``)),enabled:e!==null})},ALt=e=>{let{data:t=[]}=Q7(),n=t.find(t=>t.id===e.department);return{categoryLabel:n?.label??e.categoryLabel,categoryColor:n?.color??e.categoryColor}},jLt=e=>{if(e.length===0)return[];let t=e[0]?.fullName??e[0]?.name??``;if(e.length===1)return[{text:`with `,bold:!1},{text:t,bold:!0}];let n=e[1]?.fullName??e[1]?.name??``;return e.length===2?[{text:`with `,bold:!1},{text:t,bold:!0},{text:` and `,bold:!1},{text:n,bold:!0}]:[{text:`with `,bold:!1},{text:t,bold:!0},{text:`, `,bold:!1},{text:n,bold:!0},{text:` and `,bold:!1},{text:`${String(e.length-2)} others`,bold:!0}]},$7=e=>{let t=e;return/^\d{4}-\d{2}-\d{2}T/.test(e)&&!e.endsWith(`Z`)&&!/[+-]\d{2}:?\d{2}$/.test(e)&&(t=`${e}Z`),new Date(t)},e9=e=>{let t=String(e.minute).padStart(2,`0`),n=e.hour>=12?`PM`:`AM`,r=e.hour%12;return`${String(r===0?12:r)}:${t} ${n}`},MLt=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],NLt=(e,t)=>e.year===t.year&&e.month===t.month&&e.day===t.day,PLt=(e,t,n)=>{let r=n.getTime()-t.getTime();if(r<0){let t=new Date(e);if(!Number.isNaN(t.getTime())){let e=n.getTime()-t.getTime();if(e>=0)return e}}return r},FLt=(e,t,n)=>{let r=$7(e);if(Number.isNaN(r.getTime()))return null;let i=r.getTime()-t.getTime();if(i<=0)return null;let a=60*1e3,o=60*a,s=24*o;if(i<a)return`Publishes shortly`;if(i<o){let e=Math.floor(i/a);return`Publishes in ${String(e)}m`}if(i<s){let e=Math.floor(i/o);return`Publishes in ${String(e)} ${e===1?`hour`:`hours`}`}let c=Qm(r,n);return NLt(c,Qm(new Date(t.getTime()+s),n))?`Scheduled for tomorrow at ${e9(c)}`:`Scheduled for ${MLt[c.month-1]??``} ${String(c.day)} at ${e9(c)}`},ILt=(e,t,n)=>t&&$7(t).getTime()<=n.getTime()?t:e,LLt=(e,t,n,r)=>{let i=60*1e3,a=60*i,o=24*a;if(e<i)return`now`;if(e<a)return`${String(Math.floor(e/i))}m ago`;if(e<o){let t=Math.floor(e/a);return`${String(t)} ${t===1?`hour`:`hours`} ago`}let s=Qm(t,n);return NLt(s,Qm(new Date(r.getTime()-o),n))?`Yesterday at ${e9(s)}`:`${MLt[s.month-1]??``} ${String(s.day)} at ${e9(s)}`},RLt=(e,t,n=null,r=new Date)=>{if(n&&$7(n).getTime()>r.getTime()){let e=FLt(n,r,t);if(e!==null)return e}let i=ILt(e,n,r),a=$7(i);return Number.isNaN(a.getTime())?`now`:LLt(PLt(i,a,r),a,t,r)},zLt=(e,t,n)=>{let r=document.getElementById(e),i=document.getElementById(t);if(r&&i){let e=i.getBoundingClientRect(),t=r.getBoundingClientRect(),a=t.top-e.top,o=i.scrollTop+a;n===`center`&&(o=o-e.height/2+t.height/2),i.scrollTo({top:o,behavior:`smooth`})}},BLt=(e,t=1600,n=1600,r=.8)=>new Promise(i=>{if(!e.type.startsWith(`image/`)){i(e);return}let a=new Image;a.src=URL.createObjectURL(e),a.onload=()=>{URL.revokeObjectURL(a.src);let o=a.width,s=a.height;if(o>t||s>n){let e=Math.min(t/o,n/s);o=Math.round(o*e),s=Math.round(s*e)}let c=document.createElement(`canvas`);c.width=o,c.height=s;let l=c.getContext(`2d`);if(!l){i(e);return}l.drawImage(a,0,0,o,s),c.toBlob(t=>{if(!t){i(e);return}i(new File([t],e.name.replace(/\.[^/.]+$/,``)+`.jpg`,{type:`image/jpeg`,lastModified:Date.now()}))},`image/jpeg`,r)},a.onerror=()=>{i(e)}}),VLt={ReceiveNotification:`ReceiveNotification`},HLt=gm({id:k(),kind:ym([`meeting`,`group`,`feed`,`member`]),initials:k(),color:k(),actor:k(),time:k(),message:k().nullable().optional(),detail:k().nullable().optional(),postId:k().nullable().optional()}),ULt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-contacts`)}async execute(e){let t=await this.meetingGateway.listContacts(e);return t.ok||this.logger.warn(`Listing booking contacts failed`,{code:t.error.code}),t}},WLt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-available-slots`)}async execute(e){let t=await this.meetingGateway.getAvailableSlots(e);return t.ok||this.logger.warn(`Listing available slots failed`,{code:t.error.code}),t}},GLt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-attendee-availability`)}async execute(e){let t=await this.meetingGateway.listAttendeeAvailability(e);return t.ok||this.logger.warn(`Listing attendee availability failed`,{code:t.error.code}),t}},KLt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`list-meetings`)}async execute(){let e=await this.meetingGateway.listMeetings();return e.ok||this.logger.warn(`Listing meetings failed`,{code:e.error.code}),e}},qLt=class extends Yn{},JLt=class extends qLt{code=`MEETINGS_UNAVAILABLE`;constructor(e){super(`Meetings are currently unavailable. Please try again.`,{cause:e})}},YLt=class extends qLt{code=`MEETINGS_INCOMPLETE_BOOKING`;constructor(){super(`Pick a person, a date, and a time slot to book a meeting.`)}},XLt=class{id;title;withName;withInitials;withColor;dateLabel;startUtc;endUtc;location;isOrganizer;myStatus;bucket;isGroup;attendeeIds;description;awaitingResponse;constructor(e){this.id=e.id,this.title=e.title,this.withName=e.withName,this.withInitials=e.withInitials,this.withColor=e.withColor,this.dateLabel=e.dateLabel,this.startUtc=e.startUtc,this.endUtc=e.endUtc,this.location=e.location,this.isOrganizer=e.isOrganizer,this.myStatus=e.myStatus,this.bucket=e.bucket,this.isGroup=e.isGroup,this.attendeeIds=e.attendeeIds,this.description=e.description,this.awaitingResponse=e.awaitingResponse}},t9=[{id:`Pacific/Honolulu`,city:`Honolulu`,offset:`GMT-10`},{id:`America/Anchorage`,city:`Anchorage`,offset:`GMT-9`},{id:`America/Los_Angeles`,city:`Los Angeles`,offset:`GMT-8`},{id:`America/Denver`,city:`Denver`,offset:`GMT-7`},{id:`America/Chicago`,city:`Chicago`,offset:`GMT-6`},{id:`America/New_York`,city:`New York`,offset:`GMT-5`},{id:`America/Sao_Paulo`,city:`São Paulo`,offset:`GMT-3`},{id:`Atlantic/Reykjavik`,city:`Reykjavik`,offset:`GMT+0`},{id:`Europe/London`,city:`London`,offset:`GMT+1`},{id:`Europe/Paris`,city:`Paris`,offset:`GMT+2`},{id:`Europe/Athens`,city:`Athens`,offset:`GMT+3`},{id:`Africa/Nairobi`,city:`Nairobi`,offset:`GMT+3`},{id:`Asia/Dubai`,city:`Dubai`,offset:`GMT+4`},{id:`Asia/Karachi`,city:`Karachi`,offset:`GMT+5`},{id:`Asia/Kolkata`,city:`Mumbai`,offset:`GMT+5:30`},{id:`Asia/Dhaka`,city:`Dhaka`,offset:`GMT+6`},{id:`Asia/Bangkok`,city:`Bangkok`,offset:`GMT+7`},{id:`Asia/Singapore`,city:`Singapore`,offset:`GMT+8`},{id:`Asia/Shanghai`,city:`Shanghai`,offset:`GMT+8`},{id:`Asia/Tokyo`,city:`Tokyo`,offset:`GMT+9`},{id:`Australia/Sydney`,city:`Sydney`,offset:`GMT+11`},{id:`Pacific/Auckland`,city:`Auckland`,offset:`GMT+13`}],ZLt={id:`Europe/London`,city:`London`,offset:`GMT+1`};ZLt.id;var QLt=e=>{try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`longOffset`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`);if(t){let e=t.value;if(e===`GMT`)return`GMT+0`;e=e.replace(/^GMT/,``);let n=e.startsWith(`-`)?`-`:`+`,[r=`0`,i=`0`]=e.replace(/^[+-]/,``).split(`:`),a=parseInt(r,10),o=parseInt(i,10);return o===0?`GMT${n}${String(a)}`:`GMT${n}${String(a)}:${String(o)}`}}catch{}return`GMT+0`},$Lt=e=>{let t=t9.find(t=>t.id===e);if(t)return t;try{let t=QLt(e),n=e.split(`/`);return{id:e,city:(n[n.length-1]??``).replace(/_/g,` `),offset:t}}catch{return ZLt}},eRt=e=>$Lt(e),tRt=(e,t,n)=>{let r=new Date(n.start).getTime(),i=new Date(n.end).getTime();return e.getTime()<i&&t.getTime()>r},nRt=(e,t,n)=>e.userId===t||t===n&&n!==``&&e.userId===void 0,rRt=(e,t)=>e.allBlocks.filter(t=>nRt(t,e.userId,e.selfUserId)&&t.status!==`available`).flatMap(e=>ap(e,t.start,t.end)),iRt=(e,t)=>e.allBlocks.filter(t=>nRt(t,e.userId,e.selfUserId)&&t.status===`available`).flatMap(e=>ap(e,t.start,t.end)).map(e=>({start:new Date(e.start),end:new Date(e.end)})),aRt=(e,t,n)=>t.getTime()>=e.start.getTime()&&n.getTime()<=e.end.getTime(),oRt=e=>{let t={start:e.rangeStart,end:e.rangeEnd},n={userId:e.userId,selfUserId:e.selfUserId,allBlocks:e.allBlocks},r=e.workWindows.some(t=>aRt(t,e.slotStart,e.slotEnd)),i=iRt(n,t).some(t=>aRt(t,e.slotStart,e.slotEnd));return!r&&!i?`ooh`:rRt(n,t).some(t=>tRt(e.slotStart,e.slotEnd,t))?`busy`:`available`},sRt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`book-meeting`)}async execute(e){return e.contactId.length===0||e.dateLabel.length===0||e.slot.length===0?(this.logger.warn(`Rejected incomplete booking`),O(new YLt)):this.meetingGateway.book(e)}},cRt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`respond-to-meeting`)}async execute(e,t){let n=await this.meetingGateway.respond(e,t);return n.ok||this.logger.warn(`Responding to meeting failed`,{code:n.error.code}),n}},lRt=class{meetingGateway;logger;constructor(e){this.meetingGateway=e.meetingGateway,this.logger=e.logger.child(`cancel-meeting`)}async execute(e){let t=await this.meetingGateway.cancel(e);return t.ok||this.logger.warn(`Cancelling meeting failed`,{code:t.error.code}),t}},n9=`Online — link generated automatically`,uRt=null;uRt??=[{id:`mt-1`,title:`1:1 Catch-up`,withName:`Andreea Cinpoi`,withInitials:`AN`,withColor:`#7c3aed`,dateLabel:`Tue, 24 Jun`,startUtc:`2026-06-24T14:00:00Z`,endUtc:`2026-06-24T15:00:00Z`,location:n9,isOrganizer:!0,myStatus:`accepted`,bucket:`upcoming`},{id:`mt-2`,title:`Application review`,withName:`Raj Ahmed`,withInitials:`RA`,withColor:`#0ea5e9`,dateLabel:`Wed, 25 Jun`,startUtc:`2026-06-25T11:00:00Z`,endUtc:`2026-06-25T12:00:00Z`,location:n9,isOrganizer:!1,myStatus:`pending`,bucket:`upcoming`},{id:`mt-3`,title:`Visa cases sync`,withName:`Jennifer Aboje`,withInitials:`JA`,withColor:`#fc7300`,dateLabel:`Thu, 26 Jun`,startUtc:`2026-06-26T10:00:00Z`,endUtc:`2026-06-26T10:30:00Z`,location:n9,isOrganizer:!1,myStatus:`accepted`,bucket:`upcoming`},{id:`mt-4`,title:`Consultant onboarding`,withName:`Tousif Sadman`,withInitials:`TS`,withColor:`#0e7c66`,dateLabel:`Mon, 16 Jun`,startUtc:`2026-06-16T09:00:00Z`,endUtc:`2026-06-16T09:30:00Z`,location:n9,isOrganizer:!0,myStatus:`accepted`,bucket:`passed`},{id:`mt-5`,title:`Compliance check`,withName:`Nur Mohammad`,withInitials:`NM`,withColor:`#8b5cf6`,dateLabel:`Fri, 13 Jun`,startUtc:`2026-06-13T15:00:00Z`,endUtc:`2026-06-13T16:00:00Z`,location:n9,isOrganizer:!0,myStatus:`accepted`,bucket:`canceled`}];var dRt=encodeURIComponent,r9={list:`/api/app/meeting`,contacts:`/api/app/meeting/list-contacts`,availableSlots:`/api/app/meeting/list-available-slots`,attendeeAvailability:`/api/app/meeting/list-attendee-availability`,book:`/api/app/meeting/book`,respond:e=>`/api/app/meeting/${dRt(e)}/respond`,cancel:e=>`/api/app/meeting/${dRt(e)}/cancel`},fRt=gm({id:k(),organizerUserId:k(),title:k(),withName:k(),withInitials:k(),withColor:k(),dateLabel:k(),start:k(),end:k(),location:k(),isOrganizer:mm(),myStatus:pm(),bucket:pm(),awaitingResponse:mm().optional(),isGroup:mm(),attendeeIds:hm(k()),description:k()}).passthrough(),pRt=hm(fRt),mRt=hm(gm({id:k(),name:k(),initials:k(),color:k(),role:k()}).passthrough()),hRt=hm(gm({label:k(),startUtc:k(),endUtc:k(),conflicts:hm(k())}).passthrough()),gRt=hm(gm({userId:k(),busy:hm(gm({startUtc:k(),endUtc:k()})),workingHours:hm(gm({startUtc:k(),endUtc:k()})).optional()}).passthrough()),_Rt={0:`pending`,1:`accepted`,2:`rejected`},vRt={0:`upcoming`,1:`passed`,2:`canceled`},yRt=/[zZ]|[+-]\d{2}:?\d{2}$/,bRt=e=>yRt.test(e)?e:`${e}Z`,xRt=e=>new XLt({id:e.id,title:e.title,withName:e.withName,withInitials:e.withInitials,withColor:e.withColor,dateLabel:e.dateLabel,startUtc:bRt(e.start),endUtc:bRt(e.end),location:e.location,isOrganizer:e.isOrganizer,myStatus:_Rt[e.myStatus]??`pending`,bucket:vRt[e.bucket]??`upcoming`,isGroup:e.isGroup,attendeeIds:e.attendeeIds,description:e.description,awaitingResponse:e.awaitingResponse??!1}),SRt=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role}),CRt=e=>({label:e.label,startUtc:e.startUtc,endUtc:e.endUtc,conflicts:e.conflicts}),wRt=e=>({userId:e.userId,busy:e.busy.map(e=>({startUtc:e.startUtc,endUtc:e.endUtc})),workingHours:(e.workingHours??[]).map(e=>({startUtc:e.startUtc,endUtc:e.endUtc}))}),TRt=e=>({contactId:e.isGroup===!0?null:e.contactId,attendeeIds:e.attendeeIds??[],dateLabel:e.dateLabel,slot:e.slot,isoDate:e.isoDate,startUtc:e.startUtc,endUtc:e.endUtc,isGroup:e.isGroup??!1,title:e.title,location:e.location,description:e.description}),ERt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-meeting-gateway`)}async listContacts(e){try{let t=e?.trim(),n=await this.httpClient.post(r9.contacts,void 0,{query:{search:t===void 0||t===``?void 0:t}}),r=mRt.safeParse(n);return r.success?Yf(r.data.map(SRt)):this.fail(`List contacts returned an unexpected shape`,r.error)}catch(e){return this.fail(`List contacts failed`,e)}}async getAvailableSlots(e){try{let t=await this.httpClient.post(r9.availableSlots,{isoDate:e.isoDate,timeZone:e.timeZone??void 0,isGroup:e.isGroup,contactId:e.contactId??void 0,attendeeIds:e.attendeeIds}),n=hRt.safeParse(t);return n.success?Yf(n.data.map(CRt)):this.fail(`Available slots returned an unexpected shape`,n.error)}catch(e){return this.fail(`Available slots failed`,e)}}async listAttendeeAvailability(e){try{let t=await this.httpClient.post(r9.attendeeAvailability,{isoDate:e.isoDate,attendeeIds:e.attendeeIds}),n=gRt.safeParse(t);return n.success?Yf(n.data.map(wRt)):this.fail(`Attendee availability returned an unexpected shape`,n.error)}catch(e){return this.fail(`Attendee availability failed`,e)}}async listMeetings(){try{let e=await this.httpClient.get(r9.list),t=pRt.safeParse(e);return t.success?Yf(t.data.map(xRt)):this.fail(`List meetings returned an unexpected shape`,t.error)}catch(e){return this.fail(`List meetings failed`,e)}}async book(e){try{let t=await this.httpClient.post(r9.book,TRt(e));return this.parseMeeting(t,`Book meeting`)}catch(e){return this.fail(`Book meeting failed`,e)}}async respond(e,t){try{let n=await this.httpClient.post(r9.respond(e),void 0,{query:{accept:t}});return this.parseMeeting(n,`Respond to meeting`)}catch(e){return this.fail(`Respond to meeting failed`,e)}}async cancel(e){try{let t=await this.httpClient.post(r9.cancel(e));return this.parseMeeting(t,`Cancel meeting`)}catch(e){return this.fail(`Cancel meeting failed`,e)}}parseMeeting(e,t){let n=fRt.safeParse(e);return n.success?Yf(xRt(n.data)):this.fail(`${t} returned an unexpected shape`,n.error)}fail(e,t){return this.logger.error(e,t),O(new JLt(t))}},DRt=e=>{let t={meetingGateway:new ERt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listContacts:new ULt(t),listAvailableSlots:new WLt(t),listAttendeeAvailability:new GLt(t),listMeetings:new KLt(t),bookMeeting:new sRt(t),respondToMeeting:new cRt(t),cancelMeeting:new lRt(t)}},ORt=(0,y.createContext)(null),kRt=({module:e,children:t})=>(0,D.jsx)(ORt.Provider,{value:e,children:t}),i9=()=>{let e=(0,y.useContext)(ORt);if(e===null)throw Error(`Meetings hooks must be used within <MeetingsModuleProvider>.`);return e},ARt=[`meetings`,`list`],jRt=[`meetings`,`contacts`],MRt=[`meetings`,`available-slots`],NRt=[`meetings`,`attendee-availability`],PRt=(e,t)=>{e.setQueryData(ARt,e=>e===void 0?[t]:e.map(e=>e.id===t.id?t:e))},FRt=e=>{let{listContacts:t}=i9(),n=e?.trim()??``;return Um({queryKey:[...jRt,n],queryFn:()=>Zf(t.execute(n||void 0)),placeholderData:p_e})},IRt=e=>{let{listMeetings:t}=i9();return Um({queryKey:ARt,queryFn:()=>Zf(t.execute()),staleTime:0,refetchOnWindowFocus:!0,...e===void 0?{}:{refetchInterval:e}})},LRt=e=>{let{listAvailableSlots:t}=i9();return Um({queryKey:[...MRt,e],queryFn:()=>e===null?Promise.resolve([]):Zf(t.execute(e)),enabled:e!==null,staleTime:0,refetchOnWindowFocus:!0})},RRt=(e,t)=>{let{listAttendeeAvailability:n}=i9(),r=t!==null&&e.length>0;return Um({queryKey:[...NRt,t,[...e].sort()],queryFn:()=>r?Zf(n.execute({isoDate:t,attendeeIds:e})):Promise.resolve([]),enabled:r,staleTime:0,refetchOnWindowFocus:!0})},zRt=()=>{let{bookMeeting:e}=i9(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:ARt})}})},BRt=()=>{let{respondToMeeting:e}=i9(),t=Hm();return Wm({mutationFn:({meetingId:t,accept:n})=>Zf(e.execute(t,n)),onSuccess:e=>{PRt(t,e)}})},VRt=()=>{let{cancelMeeting:e}=i9(),t=Hm();return Wm({mutationFn:t=>Zf(e.execute(t)),onSuccess:e=>{PRt(t,e)}})},HRt=class{userGateway;logger;constructor(e){this.userGateway=e.userGateway,this.logger=e.logger.child(`list-users`)}async execute(e){let t=await this.userGateway.list(e);return t.ok||this.logger.warn(`Listing users failed`,{code:t.error.code}),t}},URt=class{userGateway;logger;constructor(e){this.userGateway=e.userGateway,this.logger=e.logger.child(`list-directory-facets`)}async execute(){let[e,t,n]=await Promise.all([this.userGateway.getDepartments(),this.userGateway.getAccessRoles(),this.userGateway.getBranches()]);return e.ok?t.ok?n.ok?Yf({departments:e.value,accessRoles:t.value,branches:n.value}):(this.logger.warn(`Loading directory facets failed`,{code:n.error.code}),O(n.error)):(this.logger.warn(`Loading directory facets failed`,{code:t.error.code}),O(t.error)):(this.logger.warn(`Loading directory facets failed`,{code:e.error.code}),O(e.error))}},WRt=class extends Yn{},a9=class extends WRt{code=`USERS_UNAVAILABLE`;constructor(e){super(`The users directory is currently unavailable. Please try again.`,{cause:e})}},GRt=class{id;fullName;email;roleName;department;branchKey;branchName;level;online;status;statusUntilUtc;hasAccount;initials;color;permissionSetName;permissionSetColor;constructor(e){this.id=e.id,this.fullName=e.fullName,this.email=e.email,this.roleName=e.roleName,this.department=e.department,this.branchKey=e.branchKey,this.branchName=e.branchName,this.level=e.level,this.online=e.online,this.status=e.status??`offline`,this.statusUntilUtc=e.statusUntilUtc??null,this.hasAccount=e.hasAccount??!0,this.initials=e.initials,this.color=e.color,this.permissionSetName=e.permissionSetName,this.permissionSetColor=e.permissionSetColor}get isSenior(){return this.level<=3}},KRt=gm({id:k(),fullName:k(),email:k(),roleName:k(),department:k(),branchKey:k().nullish(),branchName:k().nullish(),level:pm(),online:mm(),status:pm().nullish(),statusUntilUtc:k().nullish(),hasAccount:mm().nullish(),initials:k(),color:k(),permissionSetName:k().nullish(),permissionSetColor:k().nullish()}),qRt=gm({totalCount:pm(),items:hm(KRt)}),JRt=(e,t)=>(e.error(`Users request failed`,t),new a9(t)),o9={staffMembers:`/api/app/staff-member`,departments:`/api/app/staff-member/departments`,accessRoles:`/api/app/staff-member/access-roles`,branches:`/api/app/staff-member/branches`},s9={skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,department:`department`,accessRole:`accessRole`,branch:`branch`,online:`online`},YRt=e=>new GRt({id:e.id,fullName:e.fullName,email:e.email,roleName:e.roleName,department:e.department,branchKey:e.branchKey??``,branchName:e.branchName??``,level:e.level,online:e.online,status:Nh(e.status),statusUntilUtc:e.statusUntilUtc??null,hasAccount:e.hasAccount??!0,initials:e.initials,color:e.color,permissionSetName:e.permissionSetName??void 0,permissionSetColor:e.permissionSetColor??void 0}),XRt=hm(k()),ZRt=hm(gm({key:k(),name:k()})),QRt=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger}async list(e){try{let t={[s9.skipCount]:(e.page-1)*e.pageSize,[s9.maxResultCount]:e.pageSize};e.filter!==``&&(t[s9.filter]=e.filter),e.department!==``&&(t[s9.department]=e.department),e.accessRole!==``&&(t[s9.accessRole]=e.accessRole),e.branch!==``&&(t[s9.branch]=e.branch),e.status!==`all`&&(t[s9.online]=e.status===`online`);let n=await this.httpClient.get(o9.staffMembers,{query:t}),r=qRt.safeParse(n);if(!r.success)throw this.logger.error(`Users staff-member list returned an unexpected shape`,r.error),new a9(r.error);return Yf({users:r.data.items.map(YRt),totalCount:r.data.totalCount})}catch(e){return O(JRt(this.logger,e))}}async getDepartments(){return this.getStringList(o9.departments,`departments`)}async getAccessRoles(){return this.getStringList(o9.accessRoles,`access roles`)}async getBranches(){try{let e=await this.httpClient.get(o9.branches),t=ZRt.safeParse(e);if(!t.success)throw this.logger.error(`Users branches returned an unexpected shape`,t.error),new a9(t.error);return Yf(t.data)}catch(e){return O(JRt(this.logger,e))}}async getStringList(e,t){try{let n=await this.httpClient.get(e),r=XRt.safeParse(n);if(!r.success)throw this.logger.error(`Users ${t} returned an unexpected shape`,r.error),new a9(r.error);return Yf(r.data)}catch(e){return O(JRt(this.logger,e))}}},$Rt=e=>{let t={userGateway:new QRt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listUsers:new HRt(t),listDirectoryFacets:new URt(t)}},ezt=(0,y.createContext)(null),tzt=({module:e,children:t})=>(0,D.jsx)(ezt.Provider,{value:e,children:t}),nzt=()=>{let e=(0,y.useContext)(ezt);if(e===null)throw Error(`Users hooks must be used within <UsersModuleProvider>.`);return e},rzt=[`users`],izt=e=>{let{listUsers:t}=nzt();return Um({queryKey:[...rzt,e],queryFn:()=>Zf(t.execute(e)),placeholderData:p_e,staleTime:3e4})},azt=class{gateway;logger;constructor(e){this.gateway=e.meetingVideoGateway,this.logger=e.logger.child(`join-meeting-video`)}async execute(e){let t=await this.gateway.join(e);return t.ok||this.logger.warn(`Joining meeting video failed`,{code:t.error.code}),t}},ozt=class extends Yn{},szt=class extends ozt{code=`MEETING_VIDEO_UNAVAILABLE`;constructor(e){super(`This meeting could not be joined right now. Please try again.`,{cause:e})}},czt=gm({token:k(),providerType:k(),roomId:k(),participantName:k(),title:k().nullish()}).passthrough(),lzt=encodeURIComponent,uzt={join:e=>`/api/app/meeting-video/${lzt(e)}/join`},dzt=e=>({token:e.token,providerType:e.providerType,roomId:e.roomId,participantName:e.participantName,title:e.title??``}),fzt=class{http;logger;constructor(e){this.http=e.httpClient,this.logger=e.logger.child(`http-meeting-video-gateway`)}async join(e){try{let t=await this.http.post(uzt.join(e)),n=czt.safeParse(t);return n.success?Yf(dzt(n.data)):this.fail(`Join returned an unexpected shape`,n.error)}catch(e){return this.fail(`Joining meeting video failed`,e)}}fail(e,t){return this.logger.error(e,t),O(new szt(t))}},pzt=e=>({joinMeetingVideo:new azt({meetingVideoGateway:new fzt({httpClient:e.httpClient,logger:e.logger}),logger:e.logger})}),mzt=(0,y.createContext)(null),hzt=({module:e,children:t})=>(0,D.jsx)(mzt.Provider,{value:e,children:t}),gzt=jf(e=>({activeMeeting:null,isJoined:!1,requestedMeetingId:null,setActiveMeeting:t=>{e({activeMeeting:t})},setJoined:t=>{e({isJoined:t})},setRequestedMeetingId:t=>{e({requestedMeetingId:t})},leaveActiveMeeting:()=>{e({activeMeeting:null,isJoined:!1,requestedMeetingId:null})}})),_zt=15e3,vzt=5*6e4,yzt=(e,t,n)=>{let r=new hFt({logger:t}),i=t=>e.modules===void 0||e.modules.includes(t);return{chat:i(`commhub.chat`)?r.create({url:`${e.apiBaseUrl}/signalr/chat`,accessTokenProvider:n}):new gFt,calls:i(`commhub.chat`)?r.create({url:`${e.apiBaseUrl}/signalr/calls`,accessTokenProvider:n}):new gFt,notifications:i(`commhub.feed`)?r.create({url:`${e.apiBaseUrl}/signalr/notifications`,accessTokenProvider:n}):new gFt}},bzt=e=>{let t=e.logger??new mp(`info`),n=new Xm,r=e.authStore,i=r.getState().session?.accessToken??null,a=r.subscribe(e=>{i=e.session?.accessToken??null}),o=()=>i??void 0,s=new whe(new Che(new yhe(new fp({logger:t,baseUrl:e.apiBaseUrl,getAuthToken:o}),{timeoutMs:_zt,logger:t}),{logger:t}),{logger:t,refresh:()=>r.getState().refreshSession()}),c=new K_e({defaultOptions:{queries:{staleTime:vzt,retry:1,refetchOnWindowFocus:!0}}}),l=yzt(e,t,o);return{logger:t,authStore:r,moduleAccessModule:SFt({httpClient:s,logger:t}),chatModule:ZFt({logger:t,httpClient:s,realtime:l.chat,clock:n}),feedModule:dLt({logger:t,httpClient:s,notificationRealtime:l.notifications}),meetingsModule:DRt({logger:t,httpClient:s}),meetingVideoModule:pzt({logger:t,httpClient:s}),scheduleModule:qge({logger:t,httpClient:s,clock:n}),settingsModule:oSe({logger:t,httpClient:s}),usersModule:$Rt({logger:t,httpClient:s}),presenceModule:USe({logger:t,httpClient:s}),callsModule:OCe({logger:t,httpClient:s,realtime:l.calls}),queryClient:c,dispose:async()=>{a(),c.clear(),await Promise.all([l.chat.stop(),l.calls.stop(),l.notifications.stop()])}}},c9=new Map,xzt=e=>`${e.apiBaseUrl}|${e.clientKey}|${e.authKind}`,Szt=(e,t,n)=>{let r=c9.get(e);if(r===void 0){let n=t();r={composition:n.composition,handshake:n.handshake,refCount:0},c9.set(e,r)}r.refCount+=1;let i=!1,a=r;return{composition:a.composition,handshake:a.handshake,release:()=>{i||(i=!0,--a.refCount,!(a.refCount>0)&&(c9.get(e)===a&&c9.delete(e),a.handshake.dispose(),a.composition.dispose().catch(e=>{n?.warn(`Disposing the shared SDK runtime failed`,{error:e})})))}}},Czt=`*`,wzt=e=>{switch(e.kind){case`sso`:return e.getSecret();case`signed`:return e.getAssertion();case`host-token`:return e.getToken()}},Tzt=e=>{let t=new Xm,n=new fp({logger:e.logger,baseUrl:e.apiBaseUrl,getAuthToken:()=>void 0});switch(e.kind){case`sso`:return new ZCe({httpClient:n,clock:t,logger:e.logger});case`signed`:return new nPt({httpClient:n,clock:t,logger:e.logger,clientKey:e.clientKey,modules:e.modules});case`host-token`:return new rPt({clock:t,logger:e.logger})}},Ezt=e=>{let{apiBaseUrl:t,clientKey:n,authKind:r}=e,i=e.modules===void 0?Czt:e.modules.join(`,`),a=(0,y.useRef)(e.logger);a.current=e.logger;let o=(0,y.useMemo)(()=>i===Czt?void 0:Dzt(i),[i]),s=(0,y.useRef)(e.requestCredential);s.current=e.requestCredential;let c=xzt({apiBaseUrl:t,clientKey:n,authKind:r}),[l]=(0,y.useState)(()=>Szt(c,()=>{let e=a.current??new mp(`info`,`commhub-sdk`),i=Tzt({kind:r,clientKey:n,apiBaseUrl:t,logger:e,modules:o??[]}),c=bzt({apiBaseUrl:t,authStore:QNt({clock:new Xm,logger:e,storageNamespace:`sdk:${n}`,authGateway:i,setAccessToken:()=>{}}),modules:o,logger:e});return{composition:c,handshake:new mPt(t=>new pPt({authStore:c.authStore,moduleAccessModule:c.moduleAccessModule,requestCredential:()=>s.current(),requestedModules:o??[],emit:t,logger:e,renewable:r!==`sso`}))}},a.current));return(0,y.useEffect)(()=>()=>{l.release()},[l]),{composition:l.composition,handshake:l.handshake}},Dzt=e=>e===``?[]:e.split(`,`),Ozt=({handshake:e,auth:t,onEvent:n})=>{let r=(0,y.useRef)(n);r.current=n;let i=(0,y.useRef)(t);return i.current=t,(0,y.useEffect)(()=>e.attach(e=>{r.current?.(e)}),[e]),(0,y.useSyncExternalStore)(t=>e.subscribeStatus(t),()=>e.status,()=>e.status)},l9=e=>Math.min(100,Math.max(0,e)),u9=([e,t,n],r=0)=>`hsl(${String(e)} ${String(l9(t))}% ${String(l9(n+r))}%)`,d9=([e,t,n],r)=>`hsl(${String(e)} ${String(l9(t))}% ${String(l9(n))}% / ${String(r)})`,kzt=60,Azt=e=>e[2]>kzt?`#0f172a`:`#ffffff`,f9={a30:.18,a20:.12,a10:.06,a05:.035,border:.22},p9=e=>`${String(Math.max(0,Math.round(e)))}px`,jzt=e=>({"--color-primary":u9(e),"--color-primary-strong":u9(e,-12),"--color-primary-light":u9(e,12),"--color-primary-30":d9(e,f9.a30),"--color-primary-20":d9(e,f9.a20),"--color-primary-10":d9(e,f9.a10),"--color-primary-05":d9(e,f9.a05),"--color-primary-border":d9(e,f9.border),"--color-on-primary":Azt(e)}),Mzt=e=>({"--color-secondary":u9(e),"--color-secondary-strong":u9(e,-12),"--color-secondary-30":d9(e,.3),"--color-secondary-20":d9(e,f9.a20),"--color-secondary-10":d9(e,.07),"--color-secondary-border":d9(e,.3)}),Nzt=e=>({"--radius-sm":p9(e-4),"--radius-md":p9(e),"--radius-lg":p9(e+4),"--radius-xl":p9(e+6)}),Pzt=[4,6,9,12,15,18,24],Fzt=()=>{let e={"--height-btn":p9(32),"--height-input":p9(34),"--height-row":p9(44),"--height-nav":p9(36)};return Pzt.forEach((t,n)=>{e[`--space-${String(n+1)}`]=p9(t)}),e},Izt=e=>e?{...e.brand?jzt(e.brand):{},...e.accent?Mzt(e.accent):{},...e.radius===void 0?{}:Nzt(e.radius),...e.font===void 0?{}:{"--font-sans":e.font},...e.density===`compact`?Fzt():{}}:{},Lzt=e=>{let t=e?.mode??`system`;return t===`system`?null:t},Rzt=`data-theme`,zzt=e=>{let t=e.getRootNode();return t instanceof ShadowRoot?t.host:e},Bzt=e=>{let t=(0,y.useRef)(null),n=JSON.stringify(e??null),r=(0,y.useMemo)(()=>JSON.parse(n),[n]);return(0,y.useEffect)(()=>{let e=t.current;if(e===null)return;let n=zzt(e),i=Izt(r??void 0),a=Lzt(r??void 0);for(let[e,t]of Object.entries(i))n.style.setProperty(e,t);return a===null?n.removeAttribute(Rzt):n.setAttribute(Rzt,a),()=>{for(let e of Object.keys(i))n.style.removeProperty(e);n.removeAttribute(Rzt)}},[r]),t},Vzt=e=>{if(e)return e;try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e)return e}catch{}return`UTC`},Hzt=class extends y.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.logger.error(`Unhandled error inside the Communication Hub widget`,e,{componentStack:t.componentStack}),this.props.onEvent?.({type:`error`,payload:{code:`WIDGET_CRASHED`,message:e.message}})}render(){let{error:e}=this.state;return e===null?this.props.children:(0,D.jsx)(sr,{tone:`error`,title:`This widget could not be displayed`,children:`Something went wrong inside the Communication Hub widget. Reloading the page usually fixes it.`})}};gm({grantedModules:hm(k()).nullish(),grantedPolicies:hm(k()).nullish(),canManageUserAccess:mm().nullish()});var Uzt=(0,y.createContext)(null),Wzt=({module:e,children:t})=>(0,D.jsx)(Uzt.Provider,{value:e,children:t}),Gzt=e=>{let t=HLt.safeParse(e);if(!t.success)return null;let{id:n,kind:r,actor:i,message:a,detail:o,time:s,postId:c}=t.data;return{id:n,kind:r,actor:i,occurredAt:s,...a==null?{}:{message:a},...o==null?{}:{detail:o},...c==null?{}:{postId:c}}},Kzt=({onEvent:e})=>{let{notificationRealtime:t,logger:n}=X7();return(0,y.useEffect)(()=>{if(e===void 0)return;let r=t.on(VLt.ReceiveNotification,t=>{let r=Gzt(t);if(r===null){n.error(`Discarded a malformed notification payload`,{rawPayload:t});return}e({type:`notification`,payload:r})});return t.start().catch(e=>{n.error(`Could not open the notification connection`,e)}),()=>{r()}},[t,n,e]),null},qzt=({composition:e,children:t,onEvent:n})=>(0,D.jsx)(J_e,{client:e.queryClient,children:(0,D.jsx)(Aae,{reducedMotion:`user`,children:(0,D.jsx)(hpe,{children:(0,D.jsx)(awe,{store:e.authStore,children:(0,D.jsx)(Wzt,{module:e.moduleAccessModule,children:(0,D.jsx)(QFt,{module:e.chatModule,children:(0,D.jsx)(pIt,{children:(0,D.jsx)(pLt,{module:e.feedModule,children:(0,D.jsx)(kRt,{module:e.meetingsModule,children:(0,D.jsx)(hzt,{module:e.meetingVideoModule,children:(0,D.jsx)(Yge,{module:e.scheduleModule,children:(0,D.jsx)(cSe,{module:e.settingsModule,children:(0,D.jsx)(tzt,{module:e.usersModule,children:(0,D.jsx)(YSe,{module:e.presenceModule,children:(0,D.jsx)(ACe,{module:e.callsModule,children:(0,D.jsxs)(lwe,{children:[t,(0,D.jsx)(sOt,{}),(0,D.jsx)(Kzt,{onEvent:n}),(0,D.jsx)(xpe,{})]})})})})})})})})})})})})})})})}),Jzt={scope:`_scope_p8b6f_6`},Yzt=e=>{let{auth:t,apiBaseUrl:n,clientKey:r,modules:i,theme:a,timezone:o,logger:s,onEvent:c}=e,{composition:l,handshake:u}=Ezt({apiBaseUrl:n,clientKey:r,authKind:t.kind,modules:i,logger:s,requestCredential:()=>wzt(t)}),d=Ozt({handshake:u,auth:t,onEvent:c}),f=Bzt(a),[p,m]=(0,y.useState)(null);return(0,D.jsx)(`div`,{ref:e=>{f.current=e,m(e)},className:Jzt.scope,"data-timezone":Vzt(o),"data-handshake":d,children:(0,D.jsx)(Vpe,{container:p,children:(0,D.jsx)(Hzt,{logger:l.logger,onEvent:c,children:d===`ready`?(0,D.jsx)(qzt,{composition:l,onEvent:c,children:e.children}):null})})})},Xzt=({children:e,initialRoute:t,...n})=>(0,D.jsx)(Yzt,{...n,children:(0,D.jsx)(ft,{initialEntries:[t??`/`],children:e})}),Zzt=class extends Jn{code=`SDK_WIDGET_CONFIG_INVALID`},Qzt=()=>uge(e=>typeof e==`function`,{message:`Expected a function`}),$zt=fge(`kind`,[gm({kind:mge(`signed`),getAssertion:Qzt()})]),eBt=pge([pm(),pm(),pm()]),tBt=gm({brand:eBt.optional(),accent:eBt.optional(),radius:pm().optional(),font:k().optional(),density:ym([`comfortable`,`compact`]).optional(),mode:ym([`light`,`dark`,`system`]).optional()}),nBt=gm({apiBaseUrl:k().url(),clientKey:k().min(1),auth:$zt,modules:hm(ym(oPt)).optional(),theme:tBt.optional(),timezone:k().optional(),locale:k().optional(),logger:uge().optional(),onEvent:Qzt().optional()}),rBt=e=>{let t=nBt.safeParse(e);return t.success?Yf(t.data):O(new Zzt(t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)))},iBt=`route`,m9=(e,t,n=[])=>{JNt(e,n=>{let r=rBt(n.config);if(!r.ok)return(0,D.jsx)(XNt,{tagName:e,detail:r.error.message});let i=n.getAttribute(iBt);return(0,D.jsx)(Xzt,{...r.value,...i===null?{}:{initialRoute:i},children:t()})},[iBt,...n])},aBt=()=>{m9(`uapp-chat`,()=>(0,D.jsx)(BNt,{}))},oBt={date:``,time:``,recurring:!1,frequency:`weekly`},sBt=[{value:`now`,label:`Post now`},{value:`schedule`,label:`Schedule`}],cBt=[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],lBt={photo:`Add photos`,tag:`Tag people`,feeling:`How are you feeling?`,category:`POST CATEGORY`,item:`Select Item`,template:`Choose Template`},$={screen:`_screen_ltjgo_1`,toolbar:`_toolbar_ltjgo_8`,toolbarContainer:`_toolbarContainer_ltjgo_14`,search:`_search_ltjgo_23`,toolbarRailSpacer:`_toolbarRailSpacer_ltjgo_31`,searchIcon:`_searchIcon_ltjgo_36`,searchInput:`_searchInput_ltjgo_44`,textareaError:`_textareaError_ltjgo_59`,commentComposerError:`_commentComposerError_ltjgo_60`,shareCommentError:`_shareCommentError_ltjgo_61`,wrapper:`_wrapper_ltjgo_70`,column:`_column_ltjgo_80`,rail:`_rail_ltjgo_91`,railHead:`_railHead_ltjgo_102`,railHeadTitle:`_railHeadTitle_ltjgo_109`,railSeeAll:`_railSeeAll_ltjgo_123`,railList:`_railList_ltjgo_132`,cardBody:`_cardBody_ltjgo_142`,seeMoreBtn:`_seeMoreBtn_ltjgo_151`,railFoot:`_railFoot_ltjgo_166`,missed:`_missed_ltjgo_177`,missedHead:`_missedHead_ltjgo_184`,missedSpark:`_missedSpark_ltjgo_192`,missedTitle:`_missedTitle_ltjgo_196`,missedBadge:`_missedBadge_ltjgo_203`,missedScroller:`_missedScroller_ltjgo_212`,missedScrollerFade:`_missedScrollerFade_ltjgo_217`,missedTrack:`_missedTrack_ltjgo_217`,missedNav:`_missedNav_ltjgo_229`,missedNavLeft:`_missedNavLeft_ltjgo_264`,missedNavRight:`_missedNavRight_ltjgo_268`,missedCard:`_missedCard_ltjgo_272`,missedCardTop:`_missedCardTop_ltjgo_282`,missedDot:`_missedDot_ltjgo_289`,missedCat:`_missedCat_ltjgo_297`,missedTime:`_missedTime_ltjgo_304`,missedSummary:`_missedSummary_ltjgo_311`,missedFoot:`_missedFoot_ltjgo_323`,missedCta:`_missedCta_ltjgo_329`,missedPriority:`_missedPriority_ltjgo_338`,compChips:`_compChips_ltjgo_354`,compChip:`_compChip_ltjgo_354`,actionBar:`_actionBar_ltjgo_374`,actionBarLabel:`_actionBarLabel_ltjgo_386`,actionBarBtns:`_actionBarBtns_ltjgo_392`,actionIcon:`_actionIcon_ltjgo_397`,actionIconActive:`_actionIconActive_ltjgo_414`,sheet:`_sheet_ltjgo_419`,sheetHead:`_sheetHead_ltjgo_427`,sheetLabel:`_sheetLabel_ltjgo_435`,sheetClose:`_sheetClose_ltjgo_443`,sheetChips:`_sheetChips_ltjgo_465`,catChip:`_catChip_ltjgo_471`,catChipOn:`_catChipOn_ltjgo_483`,feelGrid:`_feelGrid_ltjgo_488`,feelBtn:`_feelBtn_ltjgo_494`,feelBtnOn:`_feelBtnOn_ltjgo_509`,feelEmoji:`_feelEmoji_ltjgo_515`,photoInput:`_photoInput_ltjgo_519`,photoZone:`_photoZone_ltjgo_523`,photoZoneDrag:`_photoZoneDrag_ltjgo_528`,dropzone:`_dropzone_ltjgo_533`,dropIcon:`_dropIcon_ltjgo_554`,dropTitle:`_dropTitle_ltjgo_566`,dropHint:`_dropHint_ltjgo_572`,photoGrid:`_photoGrid_ltjgo_577`,photoThumb:`_photoThumb_ltjgo_584`,photoImg:`_photoImg_ltjgo_592`,photoRemove:`_photoRemove_ltjgo_599`,photoAddMore:`_photoAddMore_ltjgo_619`,mobilePromoTrigger:`_mobilePromoTrigger_ltjgo_642`,promoPulseGlow:`_promoPulseGlow_ltjgo_1`,mobilePromoTriggerBarHidden:`_mobilePromoTriggerBarHidden_ltjgo_739`,mobilePromoExpanded:`_mobilePromoExpanded_ltjgo_745`,promoShimmerSweep:`_promoShimmerSweep_ltjgo_758`,promoShimmer:`_promoShimmer_ltjgo_758`,promoIconWrap:`_promoIconWrap_ltjgo_774`,sparkleIcon:`_sparkleIcon_ltjgo_787`,sparkleTwinkle:`_sparkleTwinkle_ltjgo_1`,promoBtnText:`_promoBtnText_ltjgo_791`,mobilePromoBadge:`_mobilePromoBadge_ltjgo_810`,promoPopoverOverlay:`_promoPopoverOverlay_ltjgo_827`,promoPopoverCard:`_promoPopoverCard_ltjgo_839`,popoverHeader:`_popoverHeader_ltjgo_853`,popoverCloseX:`_popoverCloseX_ltjgo_862`,popoverBadgeIcon:`_popoverBadgeIcon_ltjgo_883`,popoverTitleRow:`_popoverTitleRow_ltjgo_895`,popoverTitle:`_popoverTitle_ltjgo_895`,popoverSeeAllBtn:`_popoverSeeAllBtn_ltjgo_911`,popoverSub:`_popoverSub_ltjgo_927`,popoverContent:`_popoverContent_ltjgo_934`,popoverEmpty:`_popoverEmpty_ltjgo_943`,missedClose:`_missedClose_ltjgo_992`,missedRead:`_missedRead_ltjgo_1029`,comments:`_comments_ltjgo_1055`,commentRow:`_commentRow_ltjgo_1064`,commentAvatar:`_commentAvatar_ltjgo_1069`,commentBubble:`_commentBubble_ltjgo_1083`,commentAuthor:`_commentAuthor_ltjgo_1091`,commentTime:`_commentTime_ltjgo_1097`,commentText:`_commentText_ltjgo_1102`,commentComposer:`_commentComposer_ltjgo_60`,commentInput:`_commentInput_ltjgo_1128`,commentSend:`_commentSend_ltjgo_1138`,sharePreviewWrap:`_sharePreviewWrap_ltjgo_1168`,sharePreview:`_sharePreview_ltjgo_1168`,sharePreviewAvatar:`_sharePreviewAvatar_ltjgo_1184`,sharePreviewBody:`_sharePreviewBody_ltjgo_1198`,sharePreviewMeta:`_sharePreviewMeta_ltjgo_1203`,sharePreviewCat:`_sharePreviewCat_ltjgo_1209`,sharePreviewTitle:`_sharePreviewTitle_ltjgo_1214`,shareField:`_shareField_ltjgo_1224`,shareComment:`_shareComment_ltjgo_61`,shareSearchWrap:`_shareSearchWrap_ltjgo_1248`,shareSearch:`_shareSearch_ltjgo_1248`,shareSearchInput:`_shareSearchInput_ltjgo_1264`,shareList:`_shareList_ltjgo_1281`,shareSectionLabel:`_shareSectionLabel_ltjgo_1288`,shareRow:`_shareRow_ltjgo_1297`,shareRowOn:`_shareRowOn_ltjgo_1315`,shareAvatar:`_shareAvatar_ltjgo_1321`,shareAvatarSquare:`_shareAvatarSquare_ltjgo_1335`,shareRowBody:`_shareRowBody_ltjgo_1339`,shareRowName:`_shareRowName_ltjgo_1346`,shareRowSub:`_shareRowSub_ltjgo_1352`,shareCheck:`_shareCheck_ltjgo_1357`,shareCheckOn:`_shareCheckOn_ltjgo_1370`,shareEmpty:`_shareEmpty_ltjgo_1375`,shareFootText:`_shareFootText_ltjgo_1383`,shareFootBtns:`_shareFootBtns_ltjgo_1388`,shareCancelBtn:`_shareCancelBtn_ltjgo_1393`,shareSendBtn:`_shareSendBtn_ltjgo_1408`,shareRoot:`_shareRoot_ltjgo_1429`,shareBackdrop:`_shareBackdrop_ltjgo_1439`,shareFade:`_shareFade_ltjgo_1`,shareModal:`_shareModal_ltjgo_1449`,shareIn:`_shareIn_ltjgo_1`,shareHead:`_shareHead_ltjgo_1483`,shareHeadIcon:`_shareHeadIcon_ltjgo_1491`,shareHeadText:`_shareHeadText_ltjgo_1503`,shareTitle:`_shareTitle_ltjgo_1508`,shareDesc:`_shareDesc_ltjgo_1515`,shareCloseBtn:`_shareCloseBtn_ltjgo_1521`,shareFooter:`_shareFooter_ltjgo_1540`,ppRoot:`_ppRoot_ltjgo_1551`,ppOverlay:`_ppOverlay_ltjgo_1559`,ppFade:`_ppFade_ltjgo_1`,ppPanel:`_ppPanel_ltjgo_1569`,ppSlide:`_ppSlide_ltjgo_1`,ppHead:`_ppHead_ltjgo_1601`,ppHeadIcon:`_ppHeadIcon_ltjgo_1610`,ppHeadText:`_ppHeadText_ltjgo_1621`,ppTitle:`_ppTitle_ltjgo_1626`,ppSubtitle:`_ppSubtitle_ltjgo_1643`,ppManaged:`_ppManaged_ltjgo_1649`,ppClose:`_ppClose_ltjgo_1654`,ppTabs:`_ppTabs_ltjgo_1674`,ppTab:`_ppTab_ltjgo_1674`,ppSearch:`_ppSearch_ltjgo_1683`,ppTabActive:`_ppTabActive_ltjgo_1704`,ppTabBg:`_ppTabBg_ltjgo_1708`,ppTabLabel:`_ppTabLabel_ltjgo_1716`,ppSearchIcon:`_ppSearchIcon_ltjgo_1726`,ppSearchInput:`_ppSearchInput_ltjgo_1734`,ppList:`_ppList_ltjgo_1753`,ppListInner:`_ppListInner_ltjgo_1761`,ppEmpty:`_ppEmpty_ltjgo_1776`,emptyState:`_emptyState_ltjgo_1790`,emptyIconWrap:`_emptyIconWrap_ltjgo_1802`,emptyTitle:`_emptyTitle_ltjgo_1814`,emptyText:`_emptyText_ltjgo_1821`,tabs:`_tabs_ltjgo_1830`,tab:`_tab_ltjgo_1830`,tabActive:`_tabActive_ltjgo_1852`,tabBadge:`_tabBadge_ltjgo_1858`,composerCollapsed:`_composerCollapsed_ltjgo_1866`,ccAvatar:`_ccAvatar_ltjgo_1876`,compAvatar:`_compAvatar_ltjgo_1877`,avatar:`_avatar_ltjgo_1878`,ccInput:`_ccInput_ltjgo_1895`,composer:`_composer_ltjgo_1866`,compHead:`_compHead_ltjgo_1921`,compAvatarWrapper:`_compAvatarWrapper_ltjgo_1928`,statusDot:`_statusDot_ltjgo_1933`,compHeaderTagline:`_compHeaderTagline_ltjgo_1950`,compMutedText:`_compMutedText_ltjgo_1956`,taggedTagline:`_taggedTagline_ltjgo_1961`,audiencePill:`_audiencePill_ltjgo_1973`,audienceSection:`_audienceSection_ltjgo_1992`,audienceLabel:`_audienceLabel_ltjgo_2003`,audienceRow:`_audienceRow_ltjgo_2011`,audienceBtn:`_audienceBtn_ltjgo_2017`,audienceBtnActive:`_audienceBtnActive_ltjgo_2035`,compClose:`_compClose_ltjgo_2041`,titleInput:`_titleInput_ltjgo_2060`,textarea:`_textarea_ltjgo_59`,compOption:`_compOption_ltjgo_2093`,compOptionLabel:`_compOptionLabel_ltjgo_2105`,compFooter:`_compFooter_ltjgo_2118`,submitRight:`_submitRight_ltjgo_2127`,modeToggle:`_modeToggle_ltjgo_2133`,cancelBtn:`_cancelBtn_ltjgo_2137`,postBtn:`_postBtn_ltjgo_2152`,card:`_card_ltjgo_142`,urgentStripe:`_urgentStripe_ltjgo_2186`,pinnedRow:`_pinnedRow_ltjgo_2197`,pin:`_pin_ltjgo_2197`,cardHead:`_cardHead_ltjgo_2212`,cardAuthor:`_cardAuthor_ltjgo_2224`,authorName:`_authorName_ltjgo_2229`,metaRow:`_metaRow_ltjgo_2239`,cardRight:`_cardRight_ltjgo_2249`,badge:`_badge_ltjgo_2257`,badgeDot:`_badgeDot_ltjgo_2270`,bookmarkBtn:`_bookmarkBtn_ltjgo_2277`,bookmarkActive:`_bookmarkActive_ltjgo_2295`,pinBtn:`_pinBtn_ltjgo_2300`,pinActive:`_pinActive_ltjgo_2318`,editBtn:`_editBtn_ltjgo_2323`,cardActions:`_cardActions_ltjgo_2341`,cardTitle:`_cardTitle_ltjgo_2347`,ackBanner:`_ackBanner_ltjgo_2367`,ackBtn:`_ackBtn_ltjgo_2382`,ackDone:`_ackDone_ltjgo_2394`,summary:`_summary_ltjgo_2408`,summaryLeft:`_summaryLeft_ltjgo_2418`,summaryIcons:`_summaryIcons_ltjgo_2424`,summaryDot:`_summaryDot_ltjgo_2429`,summaryCount:`_summaryCount_ltjgo_2445`,summaryComments:`_summaryComments_ltjgo_2450`,summaryCommentsClickable:`_summaryCommentsClickable_ltjgo_2454`,postBar:`_postBar_ltjgo_2464`,reactWrap:`_reactWrap_ltjgo_2472`,actionBtn:`_actionBtn_ltjgo_2478`,actionActive:`_actionActive_ltjgo_2502`,picker:`_picker_ltjgo_2519`,pickerVisible:`_pickerVisible_ltjgo_2551`,pickerBtn:`_pickerBtn_ltjgo_2557`,pickerActive:`_pickerActive_ltjgo_2579`,schedule:`_schedule_ltjgo_2622`,scheduleHead:`_scheduleHead_ltjgo_2633`,scheduleGrid:`_scheduleGrid_ltjgo_2647`,scheduleField:`_scheduleField_ltjgo_2653`,scheduleLabel:`_scheduleLabel_ltjgo_2659`,scheduleInput:`_scheduleInput_ltjgo_2665`,scheduleRow:`_scheduleRow_ltjgo_2682`,scheduleRowLabel:`_scheduleRowLabel_ltjgo_2692`,switch:`_switch_ltjgo_2705`,switchOn:`_switchOn_ltjgo_2717`,switchKnob:`_switchKnob_ltjgo_2721`,scheduleFreq:`_scheduleFreq_ltjgo_2736`,scheduleTz:`_scheduleTz_ltjgo_2740`,tagSearch:`_tagSearch_ltjgo_2754`,tagSearchInput:`_tagSearchInput_ltjgo_2765`,tagList:`_tagList_ltjgo_2774`,tagRow:`_tagRow_ltjgo_2782`,tagRowActive:`_tagRowActive_ltjgo_2799`,tagRowContent:`_tagRowContent_ltjgo_2804`,tagAvatar:`_tagAvatar_ltjgo_2810`,tagInfo:`_tagInfo_ltjgo_2823`,tagName:`_tagName_ltjgo_2828`,tagRole:`_tagRole_ltjgo_2834`,tagCheckbox:`_tagCheckbox_ltjgo_2839`,tagCheckboxActive:`_tagCheckboxActive_ltjgo_2850`,postImagesGrid:`_postImagesGrid_ltjgo_2857`,grid1:`_grid1_ltjgo_2876`,grid2:`_grid2_ltjgo_2880`,grid3:`_grid3_ltjgo_2884`,grid4:`_grid4_ltjgo_2889`,gridImageWrap:`_gridImageWrap_ltjgo_2894`,gridImage:`_gridImage_ltjgo_2894`,moreImagesOverlay:`_moreImagesOverlay_ltjgo_2920`,lightboxOverlay:`_lightboxOverlay_ltjgo_2943`,lightboxContainer:`_lightboxContainer_ltjgo_2960`,lightboxLeft:`_lightboxLeft_ltjgo_2973`,lightboxRight:`_lightboxRight_ltjgo_2983`,lightboxScrollableContent:`_lightboxScrollableContent_ltjgo_2993`,lightboxDivider:`_lightboxDivider_ltjgo_3004`,lightboxClose:`_lightboxClose_ltjgo_3028`,lightboxImage:`_lightboxImage_ltjgo_3041`,lightboxArrow:`_lightboxArrow_ltjgo_3077`,lightboxArrowLeft:`_lightboxArrowLeft_ltjgo_3099`,lightboxArrowRight:`_lightboxArrowRight_ltjgo_3107`,lightboxCounter:`_lightboxCounter_ltjgo_3115`,templateSheet:`_templateSheet_ltjgo_3133`,templateSheetHeader:`_templateSheetHeader_ltjgo_3139`,templateBackBtn:`_templateBackBtn_ltjgo_3147`,templateSheetTitle:`_templateSheetTitle_ltjgo_3170`,templateSheetMeta:`_templateSheetMeta_ltjgo_3179`,templateSearch:`_templateSearch_ltjgo_3191`,templateSearchIcon:`_templateSearchIcon_ltjgo_3197`,templateSearchInput:`_templateSearchInput_ltjgo_3206`,templateList:`_templateList_ltjgo_3223`,templateItem:`_templateItem_ltjgo_3230`,templateItemBody:`_templateItemBody_ltjgo_3254`,templateItemTitle:`_templateItemTitle_ltjgo_3262`,templateItemSub:`_templateItemSub_ltjgo_3271`,templateUseBtn:`_templateUseBtn_ltjgo_3279`,templateEmpty:`_templateEmpty_ltjgo_3300`,itemIconContainer:`_itemIconContainer_ltjgo_3307`,itemBadge:`_itemBadge_ltjgo_3319`,itemMetaRow:`_itemMetaRow_ltjgo_3329`},uBt=({on:e,label:t,onToggle:n})=>(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":t,className:E($.switch,e&&$.switchOn),onClick:n,children:(0,D.jsx)(`span`,{className:$.switchKnob})}),dBt=e=>{let t=Qm(new Date,e),n=t.hour*60+t.minute+1,r=Math.floor(n/60)%24,i=n%60;return`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`},fBt=({value:e,todayStr:t,clampTime:n,onChange:r})=>(0,D.jsxs)(`label`,{className:$.scheduleField,children:[(0,D.jsx)(`span`,{className:$.scheduleLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:$.scheduleInput,value:e.date,min:t,onChange:i=>{let a=i.target.value;r({...e,date:a,time:a===t?n(e.time):e.time})}})]}),pBt=({value:e,minTimeStr:t,isPastTime:n,clampTime:r,onChange:i})=>(0,D.jsxs)(`label`,{className:$.scheduleField,children:[(0,D.jsx)(`span`,{className:$.scheduleLabel,children:`Time`}),(0,D.jsx)(`input`,{type:`time`,className:E($.scheduleInput,n&&$.scheduleInputError),"aria-invalid":n,"aria-describedby":n?`schedule-time-error`:void 0,value:e.time,min:t,onChange:t=>{i({...e,time:r(t.target.value)})},onBlur:()=>{n&&i({...e,time:t})}}),n&&(0,D.jsx)(`span`,{id:`schedule-time-error`,className:$.scheduleTimeError,role:`alert`,children:`Past time — snapped to earliest available time.`})]}),mBt=({value:e,onChange:t,timezone:n})=>{let r=Qm(new Date,n),i=`${String(r.year)}-${String(r.month).padStart(2,`0`)}-${String(r.day).padStart(2,`0`)}`,a=e.date===i,o=dBt(n),s=e=>a&&e<o?o:e,c=a&&e.time<o;return(0,D.jsxs)(`div`,{className:$.schedule,children:[(0,D.jsxs)(`div`,{className:$.scheduleHead,children:[(0,D.jsx)(_ee,{size:13}),` SCHEDULE THIS POST`]}),(0,D.jsxs)(`div`,{className:$.scheduleGrid,children:[(0,D.jsx)(fBt,{value:e,todayStr:i,clampTime:s,onChange:t}),(0,D.jsx)(pBt,{value:e,minTimeStr:o,isPastTime:c,clampTime:s,onChange:t})]}),(0,D.jsxs)(`div`,{className:$.scheduleRow,children:[(0,D.jsxs)(`span`,{className:$.scheduleRowLabel,children:[(0,D.jsx)(jn,{size:13}),` Recurring`]}),(0,D.jsx)(uBt,{on:e.recurring,label:`Repeat this post`,onToggle:()=>{t({...e,recurring:!e.recurring})}})]}),e.recurring&&(0,D.jsx)(Ape,{ariaLabel:`Repeat frequency`,className:$.scheduleFreq??``,options:cBt,value:e.frequency,onChange:n=>{t({...e,frequency:n})}}),(0,D.jsxs)(`div`,{className:$.scheduleTz,children:[(0,D.jsx)(rn,{size:12}),` Timezone: `,(0,D.jsx)(`strong`,{children:n})]})]})},hBt=({mode:e,disabled:t,submitLabels:n,hideToggle:r,onMode:i,onCancel:a,onSubmit:o})=>(0,D.jsxs)(`div`,{className:$.compFooter,children:[(0,D.jsx)(`button`,{type:`button`,className:$.cancelBtn,onClick:a,children:`Cancel`}),(0,D.jsxs)(`div`,{className:$.submitRight,children:[!r&&(0,D.jsx)(Ape,{ariaLabel:`Publish timing`,className:$.modeToggle??``,options:sBt,value:e,onChange:i}),(0,D.jsx)(`button`,{type:`button`,className:$.postBtn,disabled:t,onClick:o,children:e===`schedule`?n?.schedule??(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Jt,{size:12}),` Schedule post`]}):n?.now??(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Nn,{size:12}),` Post now`]})})]})]});function gBt(e,t,n){if(e===`schedule`)return eh(t.date,t.time,n)}function _Bt(){let[e,t]=(0,y.useState)(``),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(`general`),[c,l]=(0,y.useState)(`all`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(`now`),[v,b]=(0,y.useState)(oBt),[x,S]=(0,y.useState)([]),[C,w]=(0,y.useState)([]),[T,ee]=(0,y.useState)(null);return{body:e,setBody:t,title:n,setTitle:r,mustRead:i,setMustRead:a,categoryId:o,setCategoryId:s,audienceId:c,setAudienceId:l,feeling:u,setFeeling:d,location:f,setLocation:p,sheet:m,setSheet:h,mode:g,setMode:_,schedule:v,setSchedule:b,taggedUsers:x,setTaggedUsers:S,photos:C,setPhotos:w,selectedItem:T,setSelectedItem:ee}}function vBt(e,t){return e.title.trim().length>300?`Post title cannot exceed 300 characters.`:e.body.trim().length>8e3?`Post body cannot exceed 8000 characters.`:e.mode===`schedule`&&t&&Date.parse(t)<Date.now()?`Schedule time must be in the future.`:null}function yBt(e,t,n){let r=_Lt(),i=OLt(),a=e.body.trim().length===0||r.isPending||i.isPending||e.mode===`schedule`&&(!e.schedule.date||!e.schedule.time);return{submitDisabled:a,submit:async()=>{if(a)return;let o=gBt(e.mode,e.schedule,n),s=vBt(e,o);if(s){Nf.error(s);return}try{let n=[];e.photos.length>0&&(n=await Promise.all(e.photos.map(e=>i.mutateAsync(e)))),r.mutate({body:e.body,categoryId:e.categoryId,audienceId:e.audienceId,mustAcknowledge:e.mustRead,taggedUserIds:e.taggedUsers.map(e=>e.id),...e.title.trim()?{title:e.title.trim()}:{},scheduledAt:o,isRecurring:e.mode===`schedule`?e.schedule.recurring:!1,recurrenceFrequency:e.mode===`schedule`&&e.schedule.recurring?e.schedule.frequency:void 0,locationLabel:e.location??void 0,imageIds:n.length>0?n:void 0},{onSuccess:()=>{e.mode===`schedule`&&Nf.success(`Post scheduled for ${e.schedule.date} at ${e.schedule.time}`),t()},onError:()=>{Nf.error(`Failed to publish post. Please try again.`)}})}catch{Nf.error(`Invalid schedule date or time, or image upload failed.`)}}}}function bBt(e,t){let n=_Bt(),r=nh().display,{submitDisabled:i,submit:a}=yBt(n,e,r),o=e=>{n.setTaggedUsers(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])},s=(e,t)=>{n.setTitle(e),n.setBody(t),n.setSheet(null),n.setSelectedItem(null)},c=e=>{let t=typeof e==`function`?e(n.mode):e;if(n.setMode(t),t===`schedule`&&!n.schedule.date){let e=Qm(new Date,r),t=`${String(e.year)}-${String(e.month).padStart(2,`0`)}-${String(e.day).padStart(2,`0`)}`,i=`${String(e.hour).padStart(2,`0`)}:${String(e.minute).padStart(2,`0`)}`;n.setSchedule({...n.schedule,date:t,time:i})}};return{...n,setMode:c,category:t.find(e=>e.id===n.categoryId),timezone:r,submitDisabled:i,toggleTag:o,applyTemplate:s,submit:a}}var xBt=e=>{let t=e.values,n=[`item_title`,`student_name`,`university_name`,`course_name`,`name`,`title`].find(e=>{let n=t[e];return n?n.trim()!==``:!1}),r=n===void 0?void 0:t[n],i=Object.entries(t).find(([e,t])=>t.trim()!==``),a=r??i?.[1]??e.id,o=n??i?.[0],s=[`item_description`,`university`,`status`].find(e=>{let n=t[e];return n?n.trim()!==``:!1}),c=s===void 0?void 0:t[s],l=Object.entries(t).find(([e,t])=>e!==o&&t.trim()!==``),u=c??l?.[1]??``;return{id:e.id,label:a,sublabel:u,values:t}},SBt=(e,t)=>e===void 0?[]:t.filter(t=>e.templateIds.includes(t.id)||e.dataTemplateIds.includes(t.id)),CBt=(e,t)=>{let n=!!e?.webhookId,r=hSe(n?void 0:e?.categoryKey),i=gSe(e?.categoryKey??``,t,n),a=n?i:r;return{rawItems:a.data??[],isLoadingItems:a.isPending,hasWebhook:n}},wBt={all:Wn,sales:Ft,admission:an,leadership:Rn},TBt=e=>wBt[e]??Wn,EBt=({audienceId:e,onChange:t})=>{let{data:n=[]}=TLt(),r=n.find(t=>t.id===e)??n[0],i=TBt(r?.id??`all`);return(0,D.jsx)(bf,{align:`start`,trigger:(0,D.jsxs)(`button`,{type:`button`,className:$.audiencePill,"aria-label":`Audience`,children:[(0,D.jsx)(i,{size:12}),` `,r?.label??`Everyone`,(0,D.jsx)(Vt,{size:12})]}),items:n.map(e=>{let n=TBt(e.id);return{label:e.label,icon:(0,D.jsx)(n,{size:14}),onSelect:()=>{t(e.id)}}})})},DBt=({audienceId:e,onChange:t})=>{let{data:n=[]}=TLt();return(0,D.jsxs)(`div`,{className:$.audienceSection,children:[(0,D.jsx)(`span`,{className:$.audienceLabel,children:`Who can see this post?`}),(0,D.jsx)(`div`,{className:$.audienceRow,children:n.map(n=>{let r=TBt(n.id),i=n.id===e;return(0,D.jsxs)(`button`,{type:`button`,className:E($.audienceBtn,i&&$.audienceBtnActive),"aria-pressed":i,onClick:()=>{t(n.id)},children:[(0,D.jsx)(r,{size:14}),` `,n.label,i&&(0,D.jsx)(Bt,{size:13})]},n.id)})})]})},OBt=({user:e,isSelected:t,onToggleTag:n})=>(0,D.jsxs)(`button`,{type:`button`,className:E($.tagRow,t&&$.tagRowActive),onClick:()=>{n(e)},children:[(0,D.jsxs)(`div`,{className:$.tagRowContent,children:[(0,D.jsx)(`span`,{className:$.tagAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`div`,{className:$.tagInfo,children:[(0,D.jsx)(`span`,{className:$.tagName,children:e.name}),(0,D.jsx)(`span`,{className:$.tagRole,children:e.role})]})]}),(0,D.jsx)(`div`,{className:E($.tagCheckbox,t&&$.tagCheckboxActive),children:(0,D.jsx)(Bt,{size:12})})]}),kBt=({isSearching:e,isPending:t,search:n,activeList:r,taggedUserIds:i,onToggleTag:a})=>e?t?(0,D.jsx)(`span`,{className:$.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Searching...`}):r.length===0?(0,D.jsxs)(`span`,{className:$.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:[`No teammates found matching "`,n,`".`]}):(0,D.jsx)(D.Fragment,{children:r.map(e=>(0,D.jsx)(OBt,{user:e,isSelected:i.includes(e.id),onToggleTag:a},e.id))}):(0,D.jsx)(`span`,{className:$.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Type a name or email to search teammates.`}),ABt=({taggedUserIds:e,onToggleTag:t})=>{let[n,r]=(0,y.useState)(``),i=DLt(n),{user:a}=qh(),o=n.trim().length>0,s=(i.data??[]).filter(e=>e.id!==a?.id);return(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:$.tagSearch,children:[(0,D.jsx)(Mn,{size:14,className:$.actionBarLabel}),(0,D.jsx)(`input`,{type:`text`,className:$.tagSearchInput,placeholder:`Search teammates`,value:n,onChange:e=>{r(e.target.value)}}),n&&(0,D.jsx)(`button`,{type:`button`,onClick:()=>{r(``)},style:{border:`none`,background:`transparent`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`2px`,color:`var(--color-text-soft)`,borderRadius:`50%`},"aria-label":`Clear search`,children:(0,D.jsx)(qn,{size:14})})]}),(0,D.jsx)(`div`,{className:$.tagList,children:(0,D.jsx)(kBt,{isSearching:o,isPending:i.isPending,search:n,activeList:s,taggedUserIds:e,onToggleTag:t})})]})},jBt=({categoryId:e,onCategory:t})=>{let{data:n=[]}=Q7();return(0,D.jsx)(`div`,{className:$.sheetChips,children:n.map(n=>(0,D.jsx)(`button`,{type:`button`,className:E($.catChip,e===n.id&&$.catChipOn),style:Xn({"--chip":n.color}),onClick:()=>{t(n)},children:n.label},n.id))})},MBt=({feeling:e,onFeeling:t})=>{let{data:n=[]}=ELt();return(0,D.jsx)(`div`,{className:$.feelGrid,children:n.map(n=>(0,D.jsxs)(`button`,{type:`button`,className:E($.feelBtn,e===n.id&&$.feelBtnOn),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:$.feelEmoji,children:n.emoji}),n.label]},n.id))})},h9=(e,t)=>{let n={};return Object.entries(t).forEach(([e,t])=>{n[e.toLowerCase()]=t}),e.replace(/\{\{\s*([a-z0-9_]+)\s*\}\}/gi,(e,t)=>n[t.toLowerCase()]??``)},NBt=e=>e.length>120?`${e.slice(0,120)}…`:e,PBt=(e,t,n,r)=>{t(e),e.dataTemplateIds.length>0||e.templateIds.length>0?n(`item`):r()},FBt=(e,t)=>{t(`item`)},IBt=e=>{let t=new Set,n=/\{\{\s*([a-z0-9_]+)\s*\}\}/gi;return e.forEach(e=>{let r=`${e.postTitle} ${e.postBody}`.matchAll(n);for(let e of r)e[1]!==void 0&&t.add(e[1].toLowerCase())}),t},LBt=({item:e,templates:t})=>{let n=IBt(t),r=Object.entries(e.values).filter(([e,t])=>(n.size===0||n.has(e.toLowerCase()))&&e!==`item_title`&&e!==`student_name`&&e!==`university_name`&&e!==`course_name`&&e!==`name`&&e!==`title`&&e!==`item_description`&&e!==`university`&&e!==`status`&&t.trim()!==``);return r.length===0?null:(0,D.jsx)(`div`,{className:$.itemMetaRow,children:r.map(([e,t])=>(0,D.jsxs)(`span`,{className:$.itemBadge,children:[e.replace(/_/g,` `),`: `,t]},e))})},RBt=({item:e,templates:t,onSelect:n})=>{let r=e.label,i=(0,D.jsxs)(D.Fragment,{children:[e.sublabel!==``&&(0,D.jsx)(`span`,{className:$.templateItemSub,children:e.sublabel}),(0,D.jsx)(LBt,{item:e,templates:t})]});if(t.length>0&&t[0]!==void 0){let n=t[0],a=new Date,o={item_count:`1`,current_year:String(a.getFullYear()),current_date:a.toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}),...e.values};r=h9(n.postTitle,o),i=(0,D.jsx)(`span`,{className:$.templateItemSub,children:NBt(h9(n.postBody,o))})}return(0,D.jsxs)(`button`,{type:`button`,className:$.templateItem,onClick:()=>{n(e)},children:[(0,D.jsx)(`div`,{className:$.itemIconContainer,children:(0,D.jsx)(tn,{size:16})}),(0,D.jsxs)(`div`,{className:$.templateItemBody,children:[(0,D.jsx)(`span`,{className:$.templateItemTitle,children:r}),i]}),(0,D.jsx)(`span`,{className:$.templateUseBtn,children:`SELECT`})]})},zBt=({category:e,items:t,templates:n,searchQuery:r,onSearchQuery:i,isLoading:a,onBack:o,onSelectItem:s})=>{let[c,l]=(0,y.useState)(``),u=i!==void 0,d=u?r??``:c,f=u?i:l,p=u||d.trim()===``?t:t.filter(e=>[e.label,e.sublabel,e.id].join(` `).toLowerCase().includes(d.toLowerCase()));return(0,D.jsxs)(`div`,{className:$.templateSheet,children:[(0,D.jsxs)(`div`,{className:$.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:$.templateBackBtn,onClick:o,children:(0,D.jsx)(At,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:$.templateSheetTitle,children:`Select Item`}),(0,D.jsxs)(`span`,{className:$.templateSheetMeta,children:[`Showing items for `,(0,D.jsx)(`strong`,{children:e.label})]})]})]}),(0,D.jsxs)(`div`,{className:$.templateSearch,children:[(0,D.jsx)(Mn,{size:13,className:$.templateSearchIcon}),(0,D.jsx)(`input`,{type:`text`,className:$.templateSearchInput,placeholder:`Search items…`,value:d,onChange:e=>{f(e.target.value)}}),a&&p.length>0&&(0,D.jsx)(`div`,{style:{marginLeft:`8px`,display:`flex`,alignItems:`center`},children:(0,D.jsx)(rr,{size:`sm`})})]}),(0,D.jsx)(`div`,{className:$.templateList,children:a&&p.length===0?(0,D.jsx)(`div`,{style:{padding:`2rem`,display:`flex`,justifyContent:`center`},children:(0,D.jsx)(rr,{})}):p.length===0?(0,D.jsx)(`p`,{className:$.templateEmpty,children:`No items found.`}):p.map(e=>(0,D.jsx)(RBt,{item:e,templates:n,onSelect:s},e.id))})]})},BBt=({selectedItem:e,templates:t,onBack:n,onUse:r})=>(0,D.jsxs)(`div`,{className:$.templateSheet,children:[(0,D.jsxs)(`div`,{className:$.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:$.templateBackBtn,onClick:n,children:(0,D.jsx)(At,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:$.templateSheetTitle,children:`Choose Template`}),(0,D.jsxs)(`span`,{className:$.templateSheetMeta,children:[e.label,` · `,(0,D.jsx)(`strong`,{children:e.sublabel})]})]})]}),(0,D.jsx)(`div`,{className:$.templateList,children:t.length===0?(0,D.jsx)(`p`,{className:$.templateEmpty,children:`No templates linked to this category.`}):t.map(t=>{let n=new Date,i={item_count:`1`,current_year:String(n.getFullYear()),current_date:n.toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}),...e.values},a=h9(t.postBody,i),o=h9(t.postTitle,i);return(0,D.jsxs)(`button`,{type:`button`,className:$.templateItem,onClick:()=>{r(o,a)},children:[(0,D.jsxs)(`div`,{className:$.templateItemBody,children:[(0,D.jsx)(`span`,{className:$.templateItemTitle,children:t.name}),(0,D.jsx)(`span`,{className:$.templateItemSub,children:NBt(a)})]}),(0,D.jsxs)(`span`,{className:$.templateUseBtn,children:[(0,D.jsx)(Bt,{size:11}),`USE`]})]},t.id)})})]}),VBt=({category:e})=>e===void 0?null:(0,D.jsx)(`div`,{className:$.compChips,children:(0,D.jsxs)(`span`,{className:$.compChip,children:[`🏷️ `,e.label]})}),HBt=({sheet:e,location:t,onSheet:n,onToggleLocation:r,showPhoto:i=!0})=>(0,D.jsxs)(`div`,{className:$.actionBar,children:[(0,D.jsx)(`span`,{className:$.actionBarLabel,children:`Add to your post`}),(0,D.jsxs)(`div`,{className:$.actionBarBtns,children:[i&&(0,D.jsx)(`button`,{type:`button`,title:`Photo/video`,className:E($.actionIcon,e===`photo`&&$.actionIconActive),onClick:()=>{n(`photo`)},children:(0,D.jsx)(xee,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Tag people`,className:E($.actionIcon,e===`tag`&&$.actionIconActive),onClick:()=>{n(`tag`)},children:(0,D.jsx)(Un,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Feeling/activity`,className:E($.actionIcon,e===`feeling`&&$.actionIconActive),onClick:()=>{n(`feeling`)},children:(0,D.jsx)(In,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Location`,className:E($.actionIcon,t!==null&&$.actionIconActive),onClick:r,children:(0,D.jsx)(fn,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Category`,className:E($.actionIcon,(e===`category`||e===`item`||e===`template`)&&$.actionIconActive),onClick:()=>{n(`category`)},children:(0,D.jsx)(kee,{size:15})})]})]}),UBt=({currentCategory:e,categoryItems:t,categoryTemplates:n,searchQuery:r,onSearchQuery:i,isLoadingItems:a,onSetSheet:o,onSelectItem:s})=>(0,D.jsx)(zBt,{category:e,items:t,templates:n.filter(t=>e.dataTemplateIds.includes(t.id)),searchQuery:r,onSearchQuery:i,isLoading:a,onBack:()=>{o(`category`)},onSelectItem:e=>{s(e),o(`template`)}}),WBt=({currentCategory:e,categoryTemplates:t,selectedItem:n,onSetSheet:r,onApplyTemplate:i})=>n===null?null:(0,D.jsx)(BBt,{selectedItem:n,templates:t.filter(t=>e?.templateIds.includes(t.id)),onBack:()=>{FBt(e,r)},onUse:i}),GBt=e=>{let{sheet:t,categoryId:n,feeling:r,taggedUserIds:i,selectedItem:a,categoryItems:o,categoryTemplates:s,currentCategory:c,onCategory:l,onFeeling:u,onToggleTag:d,onSelectItem:f,onApplyTemplate:p,onClose:m,onSetSheet:h,searchQuery:g,onSearchQuery:_,isLoadingItems:v}=e;switch(t){case`category`:return(0,D.jsx)(jBt,{categoryId:n,onCategory:e=>{PBt(e,l,h,m)}});case`feeling`:return(0,D.jsx)(MBt,{feeling:r,onFeeling:u});case`tag`:return(0,D.jsx)(ABt,{taggedUserIds:i,onToggleTag:d});case`item`:return c===void 0?null:(0,D.jsx)(UBt,{currentCategory:c,categoryItems:o,categoryTemplates:s,searchQuery:g,onSearchQuery:_,isLoadingItems:v,onSetSheet:h,onSelectItem:f});case`template`:return(0,D.jsx)(WBt,{currentCategory:c,categoryTemplates:s,selectedItem:a,onSetSheet:h,onApplyTemplate:p});case null:case`photo`:return null;default:return null}},KBt=e=>{let{sheet:t,onClose:n}=e;if(t===null||t===`photo`)return null;let r=t!==`item`&&t!==`template`;return(0,D.jsxs)(`div`,{className:$.sheet,children:[r&&(0,D.jsxs)(`div`,{className:$.sheetHead,children:[(0,D.jsx)(`span`,{className:$.sheetLabel,children:lBt[t]}),(0,D.jsx)(`button`,{type:`button`,className:$.sheetClose,"aria-label":`Close`,onClick:n,children:(0,D.jsx)(qn,{size:14})})]}),(0,D.jsx)(GBt,{...e})]})},qBt=e=>e.map(e=>({url:URL.createObjectURL(e),name:e.name,size:e.size,file:e})),JBt=({onOpen:e})=>(0,D.jsxs)(`button`,{type:`button`,className:$.dropzone,onClick:e,children:[(0,D.jsx)(`span`,{className:$.dropIcon,children:(0,D.jsx)(Yt,{size:20})}),(0,D.jsx)(`span`,{className:$.dropTitle,children:`Click to upload or drag & drop`}),(0,D.jsx)(`span`,{className:$.dropHint,children:`Supported image formats: PNG, JPG, JPEG, GIF, WEBP, HEIC (Max 10MB)`})]}),YBt=({photos:e,onOpen:t,onRemove:n})=>(0,D.jsxs)(`div`,{className:$.photoGrid,children:[e.map(e=>(0,D.jsxs)(`div`,{className:$.photoThumb,children:[(0,D.jsx)(`img`,{src:e.url,alt:e.name,className:$.photoImg}),(0,D.jsx)(`button`,{type:`button`,className:$.photoRemove,"aria-label":`Remove ${e.name}`,onClick:()=>{n(e.id)},children:(0,D.jsx)(qn,{size:12})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:$.photoAddMore,"aria-label":`Add more photos`,onClick:t,children:(0,D.jsx)(cn,{size:18})})]}),XBt=(e,t)=>qBt(e).map((e,n)=>({id:`${e.name}-${String(e.size)}-${String(t+n)}`,url:e.url,name:e.name,file:e.file})),ZBt=async e=>{if(e.files===null)return;let t=5-e.currentCount;if(t<=0){Nf.error(`You can only upload a maximum of 5 images.`);return}let n=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/heic`,`image/heif`],r=e=>{if(n.includes(e.type))return!0;let t=e.name.split(`.`).pop()?.toLowerCase();return t===`heic`||t===`heif`},i=10*1024*1024,a=Array.from(e.files);a.some(e=>!r(e))&&Nf.error(`Only PNG, JPG, JPEG, GIF, WEBP, and HEIC images are supported.`);let o=a.filter(r);o.filter(e=>e.size>i).length>0&&Nf.error(`Some images exceed the 10MB limit and were skipped.`);let s=o.filter(e=>e.size<=i).slice(0,t);if(s.length===0)return;o.length>t&&Nf.error(`Only the first ${String(t)} images were added. Maximum limit is 5.`);let c=XBt(await Promise.all(s.map(e=>BLt(e))),e.existingPicked.length);if(c.length===0)return;let l=[...e.existingPicked,...c];e.onResult(l,l.map(e=>e.file))},QBt=({photos:e,setPhotos:t})=>{let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(null),s=(0,y.useRef)([]);s.current=n,(0,y.useEffect)(()=>()=>{for(let e of s.current)URL.revokeObjectURL(e.url)},[]);let c=i=>{ZBt({files:i,currentCount:e.length,existingPicked:n,onResult:(e,n)=>{r(e),t(n)}})};return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,multiple:!0,className:$.photoInput,onChange:e=>{c(e.target.files),o.current!==null&&(o.current.value=``)}}),(0,D.jsx)(`div`,{className:E($.photoZone,i&&$.photoZoneDrag),onDragOver:e=>{e.preventDefault(),a(!0)},onDragLeave:()=>{a(!1)},onDrop:e=>{e.preventDefault(),a(!1),c(e.dataTransfer.files)},children:n.length===0?(0,D.jsx)(JBt,{onOpen:()=>o.current?.click()}):(0,D.jsx)(YBt,{photos:n,onOpen:()=>o.current?.click(),onRemove:e=>{r(n=>{let r=n.find(t=>t.id===e);r!==void 0&&URL.revokeObjectURL(r.url);let i=n.filter(t=>t.id!==e);return t(i.map(e=>e.file)),i})}})})]})},$Bt=({value:e,onChange:t,className:n})=>(0,D.jsx)(`input`,{className:E($.titleInput,n),placeholder:`Add a headline (optional)`,value:e,onChange:e=>{t(e.target.value)}}),eVt=({on:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:$.compOption,children:[(0,D.jsxs)(`span`,{className:$.compOptionLabel,children:[(0,D.jsx)(Kt,{size:14}),` Must-read — require acknowledgement`]}),(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":`Require acknowledgement`,className:E($.switch,e&&$.switchOn),onClick:t,children:(0,D.jsx)(`span`,{className:$.switchKnob})})]}),tVt=(e,t)=>{let{detectLocation:n}=X7();return()=>{if(e!==null){t(null);return}t(`Detecting location...`),n.execute().then(e=>{t(t=>t===`Detecting location...`?e.ok?e.value:`London Office`:t)})}},nVt=e=>{let{category:t,feeling:n,location:r,sheet:i,categoryId:a,audienceId:o,mustRead:s,taggedUserIds:c,selectedItem:l,categoryItems:u,categoryTemplates:d,setSheet:f,setLocation:p,setCategoryId:m,setFeeling:h,setAudienceId:g,setMustRead:_,onToggleTag:v,onSelectItem:y,onApplyTemplate:b,photos:x,setPhotos:S,isEditMode:C,editImagesNode:w}=e,T=tVt(r,p);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(VBt,{category:t}),C?w:(i===`photo`||x.length>0)&&(0,D.jsx)(QBt,{photos:x,setPhotos:S}),(0,D.jsx)(HBt,{sheet:i,location:r,onSheet:e=>{f(t=>t===e?null:e)},onToggleLocation:T,showPhoto:!C||w===void 0||i===`photo`}),(0,D.jsx)(KBt,{sheet:i,categoryId:a,feeling:n,taggedUserIds:c,selectedItem:l,categoryItems:u,categoryTemplates:d,currentCategory:t,onCategory:m,onFeeling:e=>{h(t=>t===e?null:e)},onToggleTag:v,onSelectItem:y,onApplyTemplate:b,onClose:()=>{f(null)},onSetSheet:f,searchQuery:e.searchQuery,onSearchQuery:e.onSearchQuery,isLoadingItems:e.isLoadingItems}),(0,D.jsx)(DBt,{audienceId:o,onChange:g}),(0,D.jsx)(eVt,{on:s,onToggle:()=>{_(e=>!e)}})]})},rVt=({length:e,limit:t,color:n,fontSize:r,padding:i})=>(0,D.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,fontSize:r,color:n===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,padding:i,fontWeight:500},children:[e,` / `,t]}),iVt=e=>{let{title:t,setTitle:n,body:r,setBody:i,bodyPlaceholder:a,isEditMode:o=!1,editImagesNode:s}=e,c=$n(t,300,250),l=$n(r,8e3,7e3);return(0,D.jsxs)(D.Fragment,{children:[o?(0,D.jsx)(`input`,{type:`text`,className:E($.titleInput,c.isOverLimit&&$.textareaError),value:t,placeholder:`Add a headline (optional)...`,onChange:e=>{n(e.target.value)},style:{width:`100%`}}):(0,D.jsx)($Bt,{value:t,onChange:n,className:c.isOverLimit?$.textareaError:void 0}),c.showCounter&&(0,D.jsx)(rVt,{length:c.length,limit:300,color:c.counterColor,fontSize:`11px`,padding:`2px 16px 4px`}),(0,D.jsx)(`textarea`,{className:E($.textarea,l.isOverLimit&&$.textareaError),placeholder:a,value:r,onChange:e=>{i(e.target.value)},style:o?{width:`100%`,minHeight:`100px`}:void 0}),l.showCounter&&(0,D.jsx)(rVt,{length:l.length,limit:8e3,color:l.counterColor,fontSize:`12px`,padding:`2px 16px 6px`}),(0,D.jsx)(nVt,{...e,isEditMode:o,...s===void 0?{}:{editImagesNode:s}})]})},aVt=({authorInfo:e,audienceId:t,taggedUsers:n,feeling:r,location:i,onAudience:a,onClose:o})=>{let{data:s=[]}=ELt(),c=s.find(e=>e.id===r);return(0,D.jsxs)(`div`,{className:$.compHead,style:o?void 0:{borderBottom:`none`,padding:`0 0 10px`},children:[(0,D.jsxs)(`div`,{className:$.compAvatarWrapper,children:[(0,D.jsx)(`span`,{className:$.compAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),o&&(0,D.jsx)(`span`,{className:$.statusDot})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:$.compHeaderTagline,children:[(0,D.jsx)(`strong`,{children:e.name}),c&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:$.compMutedText,children:` is feeling `}),(0,D.jsxs)(`strong`,{children:[c.emoji,` `,c.label]})]}),i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:$.compMutedText,children:r||n.length>0?n.length>0?` at `:` — at `:` is at `}),(0,D.jsx)(`strong`,{children:i===`Detecting location...`?`Detecting...`:i})]})]}),n.length>0&&(0,D.jsx)(`div`,{className:$.taggedTagline,children:jLt(n).map((e,t)=>{let n=!o&&t===0&&e.text.startsWith(`with `)&&!r?`is ${e.text}`:e.text;return e.bold?(0,D.jsx)(`strong`,{children:n},t):n})}),(0,D.jsx)(EBt,{audienceId:t,onChange:a})]}),o&&(0,D.jsx)(`button`,{type:`button`,className:$.compClose,"aria-label":`Close`,onClick:o,children:(0,D.jsx)(qn,{size:16})})]})},oVt=e=>e.split(/[\s_-]+/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `),sVt=e=>oVt((e.split(`@`)[0]??e).replace(/[._-]+/g,` `)),cVt=(e,t)=>{let n=e.length>0?e:t;return n.includes(`@`)?sVt(n):n},lVt=(e,t,n)=>{let r=e.length>0?e:t;return r.length===0||r.includes(`@`)?cVt(t,n):r},uVt=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?Zn(n):`?`,dVt=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?Qn(n):`#6b7280`,fVt=(e,t)=>{if(!t)return{name:``,initials:`?`,color:`#6b7280`};let n=lVt(e?e.name:``,t.fullName,t.email.value);return{name:n,initials:uVt(e?e.initials:void 0,!0,n),color:dVt(e?e.color:void 0,!0,t.id)}};function pVt({profile:e,onClose:t}){let{data:n=[]}=Q7(),r=bBt(t,n),i=r.category,[a,o]=(0,y.useState)(``),{rawItems:s,isLoadingItems:c,hasWebhook:l}=CBt(i,a),{data:u=[]}=mSe(),d=SBt(i,u),f=s.map(xBt);return(0,D.jsxs)(`div`,{className:$.composer,children:[(0,D.jsx)(aVt,{authorInfo:e,audienceId:r.audienceId,taggedUsers:r.taggedUsers,feeling:r.feeling,location:r.location,onAudience:r.setAudienceId,onClose:t}),(0,D.jsx)(iVt,{title:r.title,setTitle:r.setTitle,body:r.body,setBody:r.setBody,bodyPlaceholder:`What's on your mind, ${e.name.split(` `)[0]??``}?`,category:r.category,feeling:r.feeling,location:r.location,sheet:r.sheet,categoryId:r.categoryId,audienceId:r.audienceId,mustRead:r.mustRead,taggedUserIds:r.taggedUsers.map(e=>e.id),selectedItem:r.selectedItem,categoryItems:f,categoryTemplates:d,setSheet:r.setSheet,setLocation:r.setLocation,setCategoryId:e=>{o(``),r.setCategoryId(e.id)},setFeeling:r.setFeeling,setAudienceId:r.setAudienceId,setMustRead:r.setMustRead,onToggleTag:r.toggleTag,onSelectItem:r.setSelectedItem,onApplyTemplate:r.applyTemplate,photos:r.photos,setPhotos:r.setPhotos,isEditMode:!1,searchQuery:a,onSearchQuery:l?o:void 0,isLoadingItems:c}),r.mode===`schedule`&&(0,D.jsx)(mBt,{value:r.schedule,onChange:r.setSchedule,timezone:r.timezone}),(0,D.jsx)(hBt,{mode:r.mode,disabled:r.submitDisabled,onMode:r.setMode,onCancel:t,onSubmit:()=>{r.submit()}})]})}var mVt=()=>{let[e,t]=(0,y.useState)(!1),{user:n}=qh(),r=bh(),i=fVt(r.data,n),a=r.isPending;if(!e){let e=a?``:i.name.split(` `)[0]??``,n=e.length>0?`What's on your mind, ${e}?`:`What's on your mind?`;return(0,D.jsxs)(`div`,{className:$.composerCollapsed,children:[a?(0,D.jsx)(kpe,{variant:`circle`,width:`36px`,height:`36px`}):(0,D.jsx)(`span`,{className:$.ccAvatar,style:Xn({"--avatar-color":i.color}),children:i.initials}),(0,D.jsx)(`button`,{type:`button`,className:$.ccInput,onClick:()=>{t(!0)},children:n})]})}return(0,D.jsx)(pVt,{profile:i,onClose:()=>{t(!1)}})},hVt=()=>(0,D.jsxs)(`div`,{className:$.emptyState,children:[(0,D.jsx)(`div`,{className:$.emptyIconWrap,children:(0,D.jsx)(See,{size:32})}),(0,D.jsx)(`h3`,{className:$.emptyTitle,children:`It's quiet in here`}),(0,D.jsx)(`p`,{className:$.emptyText,children:`There are no posts in this feed yet. Be the first to share an update!`})]}),gVt=({post:e,taggedUsers:t})=>(0,D.jsxs)(`div`,{className:$.compHeaderTagline,style:{display:`block`,fontSize:`14px`,lineHeight:`1.4`},children:[(0,D.jsx)(`span`,{className:$.authorName,style:{fontWeight:600,color:`var(--color-text-main)`},children:e.authorName}),e.feelingEmoji&&e.feelingLabel&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{style:{color:`var(--color-text-soft)`},children:` is feeling `}),(0,D.jsxs)(`span`,{style:{fontWeight:600,color:`var(--color-text-main)`},children:[e.feelingEmoji,` `,e.feelingLabel]})]}),t.length>0&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{children:` `}),jLt(t).map((t,n)=>{let r=n===0&&t.text.startsWith(`with `)&&!e.feelingId?`is ${t.text}`:t.text;return(0,D.jsx)(`span`,{style:{fontWeight:t.bold?600:`normal`,color:t.bold?`var(--color-text-main)`:`var(--color-text-soft)`},children:r},n)})]}),e.locationLabel&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{style:{color:`var(--color-text-soft)`},children:e.feelingId||t.length>0?t.length>0?` at `:` — at `:` is at `}),(0,D.jsx)(`span`,{style:{fontWeight:600,color:`var(--color-text-main)`},children:e.locationLabel})]})]}),_Vt=({post:e,taggedUsers:t})=>{let n=nh().display;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:$.avatar,style:Xn({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:$.cardAuthor,children:[(0,D.jsx)(gVt,{post:e,taggedUsers:t}),(0,D.jsxs)(`div`,{className:$.metaRow,style:{marginTop:`4px`,display:`flex`,alignItems:`center`,gap:`6px`,fontSize:`12px`,color:`var(--color-text-soft)`},children:[e.authorRole&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{children:e.authorRole}),(0,D.jsx)(`span`,{style:{color:`var(--color-text-muted)`},children:`·`})]}),(0,D.jsx)(`span`,{children:RLt(e.createdAt,n,e.scheduledAt)}),(0,D.jsx)(`span`,{style:{color:`var(--color-text-muted)`},children:`·`}),(0,D.jsx)(`span`,{children:e.audienceLabel}),(0,D.jsx)(`span`,{style:{color:`var(--color-text-muted)`},children:`·`}),(0,D.jsxs)(`span`,{children:[e.seenCount,` `,e.seenCount===1?`view`:`views`]})]})]})]})},vVt=e=>{let t=izt({page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`}).data;return t?t.users.filter(t=>e.includes(t.id)):[]},yVt=({post:e,onBookmark:t,onPin:n,showPinButton:r,onEdit:i,showEditButton:a})=>{let o=vVt(e.taggedUserIds),{categoryLabel:s,categoryColor:c}=ALt(e);return(0,D.jsxs)(`header`,{className:$.cardHead,children:[(0,D.jsx)(_Vt,{post:e,taggedUsers:o}),(0,D.jsxs)(`div`,{className:$.cardRight,children:[(0,D.jsxs)(`span`,{className:$.badge,style:Xn({"--badge-color":c}),children:[(0,D.jsx)(`span`,{className:$.badgeDot}),s]}),(0,D.jsxs)(`div`,{className:$.cardActions,children:[(0,D.jsx)(`button`,{type:`button`,className:E($.bookmarkBtn,e.bookmarked&&$.bookmarkActive),"aria-label":e.bookmarked?`Remove bookmark`:`Save post`,onClick:t,children:(0,D.jsx)(Pt,{size:15,fill:e.bookmarked?`currentColor`:`none`})}),r&&n&&(0,D.jsx)(`button`,{type:`button`,className:E($.pinBtn,e.pinned&&$.pinActive),"aria-label":e.pinned?`Unpin post`:`Pin post`,onClick:n,children:(0,D.jsx)(Tn,{size:15,fill:e.pinned?`currentColor`:`none`})}),a&&i&&(0,D.jsx)(`button`,{type:`button`,className:$.editBtn,"aria-label":`Edit post`,onClick:i,children:(0,D.jsx)(xn,{size:15})})]})]})]})},bVt=({url:e,onRemove:t})=>(0,D.jsxs)(`div`,{className:$.photoThumb,children:[(0,D.jsx)(`img`,{src:e,alt:`thumbnail`,className:$.photoImg}),(0,D.jsx)(`button`,{type:`button`,onClick:t,className:$.photoRemove,children:(0,D.jsx)(qn,{size:12})})]}),xVt=({file:e,onRemove:t})=>{let[n,r]=(0,y.useState)(``);return(0,y.useEffect)(()=>{let t=URL.createObjectURL(e);return r(t),()=>{URL.revokeObjectURL(t)}},[e]),n?(0,D.jsx)(bVt,{url:n,onRemove:t}):null},SVt=({existingImages:e,newPhotos:t,onAddPhotos:n,onRemoveExisting:r,onRemoveNew:i})=>{let a=(0,y.useRef)(null);return e.length===0&&t.length===0?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:a,type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&n(e.target.files)},style:{display:`none`}}),(0,D.jsx)(JBt,{onOpen:()=>a.current?.click()})]}):(0,D.jsxs)(`div`,{className:$.photoGrid,children:[e.map(e=>(0,D.jsx)(bVt,{url:e,onRemove:()=>{r(e)}},e)),t.map((e,t)=>(0,D.jsx)(xVt,{file:e,onRemove:()=>{i(t)}},t)),(0,D.jsxs)(`label`,{className:$.photoAddMore,children:[(0,D.jsx)(cn,{size:18}),(0,D.jsx)(`input`,{type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&n(e.target.files)},style:{display:`none`}})]})]})},CVt=e=>({id:e.id,name:e.fullName,email:e.email,userName:e.fullName,role:e.roleName,initials:e.initials,color:e.color}),wVt=e=>{let[t,n]=(0,y.useState)(e),[r,i]=(0,y.useState)([]);return{existingImages:t,setExistingImages:n,newPhotos:r,setNewPhotos:i,handleAddPhotos:async e=>{let n=5-(t.length+r.length);if(n<=0){Nf.error(`You can only have a maximum of 5 images.`);return}let a=Array.from(e).filter(e=>e.type.startsWith(`image/`)||e.name.toLowerCase().endsWith(`.heic`)||e.name.toLowerCase().endsWith(`.heif`)),o=10*1024*1024;a.filter(e=>e.size>o).length>0&&Nf.error(`Some images exceed the 10MB limit and were skipped.`);let s=a.filter(e=>e.size<=o),c=s.slice(0,n);s.length>n&&Nf.error(`Only the first ${String(n)} images were added. Maximum limit is 5.`);let l=await Promise.all(c.map(e=>BLt(e)));i(e=>[...e,...l])},handleRemoveExisting:e=>{n(t=>t.filter(t=>t!==e))},handleRemoveNew:e=>{i(t=>t.filter((t,n)=>n!==e))}}},TVt=(e,t)=>{if(e.scheduledAt){let n=Qm(new Date(e.scheduledAt),t);return{date:`${String(n.year)}-${String(n.month).padStart(2,`0`)}-${String(n.day).padStart(2,`0`)}`,time:`${String(n.hour).padStart(2,`0`)}:${String(n.minute).padStart(2,`0`)}`,recurring:e.isRecurring,frequency:e.recurrenceFrequency??`weekly`}}return oBt},EVt=(e,t,n,r)=>{let[i,a]=(0,y.useState)(e.department??`general`),[o,s]=(0,y.useState)(e.audienceId),[c,l]=(0,y.useState)(e.feelingId),[u,d]=(0,y.useState)(e.locationLabel),[f,p]=(0,y.useState)(e.mustAcknowledge),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),v=!e.scheduledAt||new Date(e.scheduledAt).getTime()<=Date.now(),[b,x]=(0,y.useState)(v?`now`:`schedule`),[S,C]=(0,y.useState)(()=>TVt(e,r)),w=e=>{let t=typeof e==`function`?e(b):e;if(x(t),t===`schedule`&&!S.date){let e=Qm(new Date,r),t=`${String(e.year)}-${String(e.month).padStart(2,`0`)}-${String(e.day).padStart(2,`0`)}`,n=`${String(e.hour).padStart(2,`0`)}:${String(e.minute).padStart(2,`0`)}`;C({...S,date:t,time:n})}},[T,ee]=(0,y.useState)(t.filter(t=>e.taggedUserIds.includes(t.id)).map(CVt));return{categoryId:i,setCategoryId:a,audienceId:o,setAudienceId:s,feeling:c,setFeeling:l,location:u,setLocation:d,mustRead:f,setMustRead:p,taggedUsers:T,setTaggedUsers:ee,sheet:m,setSheet:h,selectedItem:g,setSelectedItem:_,mode:b,setMode:w,schedule:S,setSchedule:C,toggleTag:e=>{ee(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])},handleToggleLocation:()=>{if(u!==null){d(null);return}d(`Detecting location...`),n.execute().then(e=>{d(t=>t===`Detecting location...`?e.ok?e.value:`London Office`:t)})},isAlreadyPublished:v}},DVt=e=>{let t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,n=e.indexOf(`#`);if(n!==-1){let r=e.substring(n+1);if(t.test(r))return r}let r=(e.split(`?`)[0]??e).split(`/`).pop()??``;return t.test(r)?r:null},OVt=e=>e.map(e=>DVt(e)).filter(e=>e!==null),kVt=async(e,t)=>{if(e.length===0)return[];let n=await Promise.allSettled(e.map(e=>t(e))),r=[],i=0;for(let e of n)e.status===`fulfilled`?r.push(e.value):i+=1;return i>0&&Nf.error(`${String(i)} image${i>1?`s`:``} failed to upload.`),r},AVt=async({post:e,editTitle:t,editBody:n,photosState:r,composerState:i,updatePostMutation:a,uploadImageMutation:o,setIsEditing:s,timezone:c})=>{if(t.trim().length>300){Nf.error(`Post title cannot exceed 300 characters.`);return}if(n.trim().length>8e3){Nf.error(`Post body cannot exceed 8000 characters.`);return}let l;if(i.mode===`schedule`&&(l=eh(i.schedule.date,i.schedule.time,c),l&&Date.parse(l)<Date.now())){Nf.error(`Schedule time must be in the future.`);return}try{let c=await kVt(r.newPhotos,e=>o.mutateAsync(e)),u=OVt(r.existingImages);a.mutate({postId:e.id,input:{title:t.trim()||null,body:n,imageIds:[...u,...c],categoryId:i.categoryId,audienceId:i.audienceId,mustAcknowledge:i.mustRead,taggedUserIds:i.taggedUsers.map(e=>e.id),feelingId:i.feeling,locationLabel:i.location,scheduledAt:l,isRecurring:i.mode===`schedule`?i.schedule.recurring:!1,recurrenceFrequency:i.mode===`schedule`&&i.schedule.recurring?i.schedule.frequency:void 0}},{onSuccess:()=>{s(!1),r.setNewPhotos([])},onError:()=>{Nf.error(`Failed to update the post. Please try again.`)}})}catch{Nf.error(`Failed to process post images. Please try again.`)}},jVt=({post:e,setTitle:t,setBody:n,photos:r,composer:i,allUsers:a,timezone:o})=>{if(t(e.title??``),n(e.body),r.setExistingImages(e.imageUrls),r.setNewPhotos([]),i.setCategoryId(e.department??`general`),i.setAudienceId(e.audienceId),i.setFeeling(e.feelingId),i.setLocation(e.locationLabel),i.setMustRead(e.mustAcknowledge),i.setSheet(null),i.setSelectedItem(null),i.setMode(i.isAlreadyPublished?`now`:`schedule`),e.scheduledAt){let t=Qm(new Date(e.scheduledAt),o),n=`${String(t.year)}-${String(t.month).padStart(2,`0`)}-${String(t.day).padStart(2,`0`)}`,r=`${String(t.hour).padStart(2,`0`)}:${String(t.minute).padStart(2,`0`)}`;i.setSchedule({date:n,time:r,recurring:e.isRecurring,frequency:e.recurrenceFrequency??`weekly`})}else i.setSchedule(oBt);i.setTaggedUsers(a.filter(t=>e.taggedUserIds.includes(t.id)).map(CVt))},MVt=()=>{let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!1);return{commentsOpen:e,setCommentsOpen:t,shareOpen:n,setShareOpen:r,lightboxIndex:i,setLightboxIndex:a,isEditing:o,setIsEditing:s}},NVt={page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`},PVt=e=>({...e.ui,editTitle:e.editTitle,setEditTitle:e.setEditTitle,editBody:e.editBody,setEditBody:e.setEditBody,existingImages:e.photosState.existingImages,newPhotos:e.photosState.newPhotos,isPending:e.isPending,timezone:e.timezone,handleAddPhotos:t=>{e.photosState.handleAddPhotos(t)},handleRemoveExisting:e.photosState.handleRemoveExisting,handleRemoveNew:e.photosState.handleRemoveNew,handleSave:()=>{AVt({post:e.post,editTitle:e.editTitle,editBody:e.editBody,photosState:e.photosState,composerState:e.composerState,updatePostMutation:e.updatePostMutation,uploadImageMutation:e.uploadImageMutation,setIsEditing:e.ui.setIsEditing,timezone:e.timezone})},handleCancel:()=>{jVt({post:e.post,setTitle:e.setEditTitle,setBody:e.setEditBody,photos:e.photosState,composer:e.composerState,allUsers:e.allUsers,timezone:e.timezone}),e.ui.setIsEditing(!1)},categoryId:e.composerState.categoryId,setCategoryId:e.composerState.setCategoryId,audienceId:e.composerState.audienceId,setAudienceId:e.composerState.setAudienceId,feeling:e.composerState.feeling,setFeeling:e.composerState.setFeeling,location:e.composerState.location,setLocation:e.composerState.setLocation,mustRead:e.composerState.mustRead,setMustRead:e.composerState.setMustRead,taggedUsers:e.composerState.taggedUsers,sheet:e.composerState.sheet,setSheet:e.composerState.setSheet,selectedItem:e.composerState.selectedItem,setSelectedItem:e.composerState.setSelectedItem,mode:e.composerState.mode,setMode:e.composerState.setMode,schedule:e.composerState.schedule,setSchedule:e.composerState.setSchedule,isAlreadyPublished:e.composerState.isAlreadyPublished,toggleTag:e.composerState.toggleTag,handleToggleLocation:e.composerState.handleToggleLocation}),FVt=e=>{let t=MVt(),[n,r]=(0,y.useState)(e.title??``),[i,a]=(0,y.useState)(e.body),o=nh().display,s=izt(NVt).data?.users??[],{detectLocation:c}=X7(),l=wVt(e.imageUrls),u=EVt(e,s,c,o),d=vLt(),f=OLt();return(0,y.useEffect)(()=>{t.isEditing||jVt({post:e,setTitle:r,setBody:a,photos:l,composer:u,allUsers:s,timezone:o})},[t.isEditing,e,s,o]),PVt({ui:t,editTitle:n,setEditTitle:r,editBody:i,setEditBody:a,timezone:o,photosState:l,composerState:u,isPending:d.isPending||f.isPending,post:e,allUsers:s,updatePostMutation:d,uploadImageMutation:f})},IVt=()=>{},LVt=e=>{if(!(e.existingImages.length===0&&e.newPhotos.length===0&&e.sheet!==`photo`))return(0,D.jsx)(SVt,{existingImages:e.existingImages,newPhotos:e.newPhotos,onAddPhotos:t=>{e.handleAddPhotos(t)},onRemoveExisting:e.handleRemoveExisting,onRemoveNew:e.handleRemoveNew})},RVt=e=>{let{data:t=[]}=Q7(),n=t.find(t=>t.id===e),[r,i]=(0,y.useState)(``),{rawItems:a,isLoadingItems:o,hasWebhook:s}=CBt(n,r),{data:c=[]}=mSe();return{category:n,searchQuery:r,setSearchQuery:i,isLoadingItems:o,hasWebhook:s,categoryTemplates:SBt(n,c),categoryItems:a.map(xBt)}},zVt=e=>{let t=RVt(e.categoryId),n=n=>{t.setSearchQuery(``),e.setCategoryId(n.id)},r=(t,n)=>{e.setEditTitle(t),e.setEditBody(n),e.setSheet(null),e.setSelectedItem(null)};return{...t,handleSetCategory:n,handleApplyTemplate:r}},BVt=({post:e,state:t})=>{let n=zVt(t);return(0,D.jsxs)(`div`,{style:{padding:`20px`,display:`flex`,flexDirection:`column`,gap:`12px`},children:[(0,D.jsx)(aVt,{authorInfo:{name:e.authorName,initials:e.authorInitials,color:e.authorColor},audienceId:t.audienceId,taggedUsers:t.taggedUsers,feeling:t.feeling,location:t.location,onAudience:t.setAudienceId}),(0,D.jsx)(iVt,{title:t.editTitle,setTitle:t.setEditTitle,body:t.editBody,setBody:t.setEditBody,bodyPlaceholder:`What's on your mind?`,category:n.category,feeling:t.feeling,location:t.location,sheet:t.sheet,categoryId:t.categoryId,audienceId:t.audienceId,mustRead:t.mustRead,taggedUserIds:t.taggedUsers.map(e=>e.id),setSheet:t.setSheet,setLocation:t.setLocation,setCategoryId:n.handleSetCategory,selectedItem:t.selectedItem,categoryItems:n.categoryItems,categoryTemplates:n.categoryTemplates,onSelectItem:t.setSelectedItem,onApplyTemplate:n.handleApplyTemplate,setFeeling:t.setFeeling,setAudienceId:t.setAudienceId,setMustRead:t.setMustRead,onToggleTag:t.toggleTag,photos:[],setPhotos:IVt,isEditMode:!0,searchQuery:n.searchQuery,onSearchQuery:n.hasWebhook?n.setSearchQuery:void 0,isLoadingItems:n.isLoadingItems,editImagesNode:LVt(t)}),t.mode===`schedule`&&(0,D.jsx)(mBt,{value:t.schedule,timezone:t.timezone,onChange:t.setSchedule}),(0,D.jsx)(hBt,{mode:t.mode,hideToggle:t.isAlreadyPublished,disabled:t.isPending||!t.editBody.trim(),submitLabels:{schedule:t.isPending?`Saving...`:`Save schedule`,now:t.isPending?`Saving...`:`Save`},onMode:t.setMode,onCancel:t.handleCancel,onSubmit:t.handleSave})]})},VVt=({comment:e,displayZone:t})=>(0,D.jsxs)(`div`,{className:$.commentRow,children:[(0,D.jsx)(`span`,{className:$.commentAvatar,style:Xn({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:$.commentBubble,children:[(0,D.jsxs)(`div`,{className:$.commentAuthor,children:[e.authorName,` `,(0,D.jsxs)(`span`,{className:$.commentTime,children:[`· `,RLt(e.createdAt,t)]})]}),(0,D.jsx)(`div`,{className:$.commentText,children:e.text})]})]}),HVt=({profile:e,isViewerLoading:t,pending:n,onAdd:r})=>{let[i,a]=(0,y.useState)(``),o=$n(i,4e3),s=()=>{i.trim()!==``&&(r(i.trim()),a(``))};return(0,D.jsxs)(`div`,{className:$.commentRow,children:[t?(0,D.jsx)(kpe,{variant:`circle`,width:`26px`,height:`26px`}):(0,D.jsx)(`span`,{className:$.commentAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsxs)(`div`,{className:E($.commentComposer,o.isOverLimit&&$.commentComposerError),children:[(0,D.jsx)(`input`,{className:$.commentInput,placeholder:`Write a comment…`,value:i,onChange:e=>{a(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&!o.isOverLimit&&s()}}),(0,D.jsx)(`button`,{type:`button`,className:$.commentSend,disabled:i.trim()===``||n||o.isOverLimit,onClick:s,children:(0,D.jsx)(Nn,{size:13})})]}),o.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:o.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[o.length,` / 4000`]})]})]})},UVt=({comments:e,pending:t,onAdd:n})=>{let{user:r}=qh(),i=bh(),a=nh().display,o=fVt(i.data,r);return(0,D.jsxs)(`div`,{className:$.comments,children:[e.map(e=>(0,D.jsx)(VVt,{comment:e,displayZone:a},e.id)),(0,D.jsx)(HVt,{profile:o,isViewerLoading:i.isPending,pending:t,onAdd:n})]})},WVt=({url:e,alt:t,className:n})=>(0,D.jsx)(`img`,{src:e,alt:t,className:n,loading:`lazy`}),GVt=({urls:e,onImageClick:t})=>{let n=e.length;if(n===0)return null;let r=$.grid1;n===2&&(r=$.grid2),n===3&&(r=$.grid3),n>=4&&(r=$.grid4);let i=n>4?e.slice(0,4):e;return(0,D.jsx)(`div`,{className:E($.postImagesGrid,r),children:i.map((e,r)=>{let i=r===3&&n>4;return(0,D.jsx)(`div`,{className:E($.gridImageWrap,i&&$.moreImagesOverlay),"data-more":i?`+${String(n-4)}`:void 0,onClick:()=>{t(r)},role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&t(r)},children:(0,D.jsx)(WVt,{url:e,alt:`Attached`,className:$.gridImage})},r)})})},KVt=(e,t,n)=>e===``||t.toLowerCase().includes(e)||n.toLowerCase().includes(e),qVt=e=>({id:`conv_${e.id}`,name:e.title,subtitle:e.subtitle||(e.kind===`group`?`${String(e.memberCount)} members`:``),initials:e.initials,color:e.color,square:e.kind===`group`,targetType:`conversation`,originalId:e.id}),JVt=e=>({id:`user_${e.id}`,name:e.name,subtitle:e.role,initials:e.initials,color:e.color,square:!1,targetType:`user`,originalId:e.id}),YVt=({post:e,comment:t,selected:n,sendMessage:r,startDirect:i,setIsSending:a,close:o,count:s,allTargets:c})=>{a(!0);let l=`${window.location.origin}/feed/posts/${e.postId}`,u={comment:t.trim(),card:{title:e.title,body:e.bodySnippet,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,categoryLabel:e.categoryLabel,categoryColor:e.categoryColor,link:l}},d=`__UAPP_SHARED_CARD__::${JSON.stringify(u)}`,f=Array.from(n).map(async e=>{let t=c.get(e);if(!t)return;let n=t.originalId;if(t.targetType===`user`){let e=await i.execute(n);if(e.ok)n=e.value.id;else throw Error(`Could not create DM`)}return r.execute(n,d,crypto.randomUUID())});Promise.allSettled(f).then(()=>{Nf.success(`Shared to ${String(s)} ${s===1?`chat`:`chats`}`),o()}).catch(()=>{Nf.error(`Failed to share post`),a(!1)})},XVt=(e,t,n)=>{let[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(()=>new Set),[l,u]=(0,y.useState)(!1),{sendMessage:d,startDirect:f}=uh(),{data:p}=bh(),{data:m=[]}=mh(`all`,``,{enabled:n}),h=m.filter(e=>e.kind===`dm`&&e.peerUserId!==null).map(e=>e.peerUserId??``),g=xh(p?[p.id,...h]:h,`directory`),_=a.trim().toLowerCase(),v=e=>{o(e),g.setSearch(e)},b=[...m.filter(e=>e.kind===`dm`).map(qVt).filter(e=>KVt(_,e.name,e.subtitle)),...g.results.map(JVt)],x=m.filter(e=>e.kind===`group`).map(qVt).filter(e=>KVt(_,e.name,e.subtitle)),S=e=>{c(t=>{let n=new Set(t);return n.delete(e)?n:n.add(e)})},C=()=>{i(``),o(``),g.setSearch(``),c(new Set),u(!1),t()},w=new Map([...x,...b].map(e=>[e.id,e])),T=s.size;return{comment:r,setComment:i,query:a,setQuery:v,selected:s,isSending:l,dms:b,groups:x,count:T,toggle:S,close:C,send:()=>{T===0||l||r.length>1e3||YVt({post:e,comment:r,selected:s,sendMessage:d,startDirect:f,setIsSending:u,close:C,count:T,allTargets:w})}}},ZVt=({onClose:e})=>(0,D.jsxs)(`div`,{className:$.shareHead,children:[(0,D.jsx)(`div`,{className:$.shareHeadIcon,children:(0,D.jsx)(kn,{size:15})}),(0,D.jsxs)(`div`,{className:$.shareHeadText,children:[(0,D.jsx)(`h3`,{className:$.shareTitle,children:`Share Post`}),(0,D.jsx)(`p`,{className:$.shareDesc,children:`Share this post to chat conversations`})]}),(0,D.jsx)(`button`,{type:`button`,className:$.shareCloseBtn,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(qn,{size:18})})]}),QVt=({count:e,disabled:t,onCancel:n,onSend:r})=>(0,D.jsxs)(`div`,{className:$.shareFooter,children:[(0,D.jsx)(`span`,{className:$.shareFootText,children:e===0?`Select at least one chat`:`${String(e)} ${e===1?`chat`:`chats`} selected`}),(0,D.jsxs)(`div`,{className:$.shareFootBtns,children:[(0,D.jsx)(`button`,{type:`button`,className:$.shareCancelBtn,onClick:n,children:`Cancel`}),(0,D.jsxs)(`button`,{type:`button`,className:$.shareSendBtn,disabled:e===0||t,onClick:r,children:[(0,D.jsx)(Nn,{size:12}),` Send`]})]})]}),$Vt=({post:e})=>(0,D.jsx)(`div`,{className:$.sharePreviewWrap,children:(0,D.jsxs)(`div`,{className:$.sharePreview,children:[(0,D.jsx)(`span`,{className:$.sharePreviewAvatar,style:Xn({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:$.sharePreviewBody,children:[(0,D.jsxs)(`div`,{className:$.sharePreviewMeta,children:[e.authorName,` ·`,` `,(0,D.jsx)(`span`,{className:$.sharePreviewCat,style:Xn({"--cat":e.categoryColor}),children:e.categoryLabel})]}),e.authorRole?(0,D.jsx)(`div`,{style:{fontSize:`11px`,color:`var(--color-text-soft)`,marginTop:`1px`,marginBottom:`2px`},children:e.authorRole}):null,(0,D.jsx)(`div`,{className:$.sharePreviewTitle,children:e.title})]})]})}),eHt=({target:e,selected:t,onToggle:n})=>(0,D.jsxs)(`button`,{type:`button`,className:E($.shareRow,t&&$.shareRowOn),"aria-pressed":t,onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:E($.shareAvatar,e.square&&$.shareAvatarSquare),style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:$.shareRowBody,children:[(0,D.jsx)(`span`,{className:$.shareRowName,children:e.name}),(0,D.jsx)(`span`,{className:$.shareRowSub,children:e.subtitle})]}),(0,D.jsx)(`span`,{className:E($.shareCheck,t&&$.shareCheckOn),children:t&&(0,D.jsx)(Bt,{size:11,strokeWidth:3})})]}),tHt=({label:e,targets:t,selected:n,onToggle:r})=>t.length===0?null:(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:$.shareSectionLabel,children:e}),t.map(e=>(0,D.jsx)(eHt,{target:e,selected:n.has(e.id),onToggle:r},e.id))]}),nHt=({comment:e,query:t,onComment:n,onQuery:r})=>{let i=$n(e,1e3);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:$.shareField,style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsx)(`input`,{className:E($.shareComment,i.isOverLimit&&$.shareCommentError),placeholder:`Add a comment (optional)`,value:e,onChange:e=>{n(e.target.value)}}),i.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:i.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[i.length,` / 1000`]})]}),(0,D.jsx)(`div`,{className:$.shareSearchWrap,children:(0,D.jsxs)(`div`,{className:$.shareSearch,children:[(0,D.jsx)(Mn,{size:13}),(0,D.jsx)(`input`,{className:$.shareSearchInput,placeholder:`Search people or groups…`,value:t,onChange:e=>{r(e.target.value)}})]})})]})},rHt=({groups:e,dms:t,selected:n,onToggle:r})=>(0,D.jsxs)(`div`,{className:$.shareList,children:[(0,D.jsx)(tHt,{label:`Groups`,targets:e,selected:n,onToggle:r}),(0,D.jsx)(tHt,{label:`People`,targets:t,selected:n,onToggle:r}),e.length===0&&t.length===0&&(0,D.jsx)(`div`,{className:$.shareEmpty,children:`No matches.`})]}),iHt=({open:e,post:t,onClose:n})=>{let r=XVt(t,n,e),i=co();return e?(0,b.createPortal)((0,D.jsxs)(`div`,{className:$.shareRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:$.shareBackdrop,"aria-label":`Close`,onClick:r.close}),(0,D.jsxs)(`div`,{className:$.shareModal,role:`dialog`,"aria-label":`Share post`,children:[(0,D.jsx)(ZVt,{onClose:r.close}),(0,D.jsx)($Vt,{post:t}),(0,D.jsx)(nHt,{comment:r.comment,query:r.query,onComment:r.setComment,onQuery:r.setQuery}),(0,D.jsx)(rHt,{groups:r.groups,dms:r.dms,selected:r.selected,onToggle:r.toggle}),(0,D.jsx)(QVt,{count:r.count,disabled:r.comment.length>1e3,onCancel:r.close,onSend:r.send})]})]}),i??document.body):null},aHt=[{id:`like`,label:`Like`,Icon:Aee,color:`#2563eb`},{id:`insightful`,label:`Insightful`,Icon:un,color:`#f59e0b`},{id:`celebrate`,label:`Celebrate`,Icon:yn,color:`#ec4899`}],oHt=({post:e,onCommentClick:t})=>{if(e.totalReactions===0&&e.commentCount===0)return null;let n=aHt.filter(t=>e.reactions[t.id]>0).slice(0,3);return(0,D.jsxs)(`div`,{className:$.summary,children:[(0,D.jsxs)(`div`,{className:$.summaryLeft,children:[n.length>0&&(0,D.jsx)(`span`,{className:$.summaryIcons,children:n.map(({id:e,Icon:t,color:n})=>(0,D.jsx)(`span`,{className:$.summaryDot,style:Xn({"--react-color":n}),children:(0,D.jsx)(t,{size:10})},e))}),e.totalReactions>0&&(0,D.jsx)(`span`,{className:$.summaryCount,children:e.totalReactions})]}),e.commentCount>0&&(0,D.jsxs)(`span`,{className:E($.summaryComments,t!==void 0&&$.summaryCommentsClickable),onClick:t,role:t===void 0?void 0:`button`,tabIndex:t===void 0?void 0:0,onKeyDown:t===void 0?void 0:e=>{(e.key===`Enter`||e.key===` `)&&t()},children:[e.commentCount,` `,e.commentCount===1?`comment`:`comments`]})]})},sHt=({post:e,commentsOpen:t,onReact:n,onComment:r,onShare:i})=>{let[a,o]=(0,y.useState)(!1),s=aHt.find(t=>t.id===e.myReaction),c=s?.Icon??Aee;return(0,D.jsxs)(`div`,{className:$.postBar,children:[(0,D.jsxs)(`div`,{className:$.reactWrap,onMouseEnter:()=>{o(!0)},onMouseLeave:()=>{o(!1)},children:[(0,D.jsxs)(`button`,{type:`button`,className:E($.actionBtn,s!==void 0&&$.actionActive),style:s===void 0?void 0:Xn({"--react-color":s.color}),onClick:()=>{n(e.myReaction??`like`),o(!1)},children:[(0,D.jsx)(c,{size:16}),` `,s?.label??`Like`]}),(0,D.jsx)(`div`,{className:E($.picker,a&&$.pickerVisible),children:aHt.map(({id:t,label:r,Icon:i,color:a})=>(0,D.jsx)(`button`,{type:`button`,className:E($.pickerBtn,e.myReaction===t&&$.pickerActive),style:Xn({"--react-color":a}),title:r,onClick:()=>{n(t),o(!1)},children:(0,D.jsx)(i,{size:18})},t))})]}),(0,D.jsxs)(`button`,{type:`button`,className:E($.actionBtn,t&&$.actionActive),onClick:r,children:[(0,D.jsx)(hn,{size:16}),` Comment`]}),(0,D.jsxs)(`button`,{type:`button`,className:$.actionBtn,onClick:i,children:[(0,D.jsx)(Eee,{size:16}),` Share`]})]})},cHt=({post:e,onAcknowledge:t})=>e.mustAcknowledge?e.acknowledged?(0,D.jsx)(`div`,{className:$.ackDone,children:`✓ You acknowledged this`}):(0,D.jsxs)(`div`,{className:$.ackBanner,children:[(0,D.jsx)(`span`,{children:`Must read — please confirm you have seen this.`}),(0,D.jsx)(`button`,{type:`button`,className:$.ackBtn,onClick:t,children:`Acknowledge`})]}):null,g9={lightboxOverlay:`_lightboxOverlay_z9s6t_5`,lightboxContainer:`_lightboxContainer_z9s6t_20`,lightboxContainerTextOnly:`_lightboxContainerTextOnly_z9s6t_33`,lightboxLeft:`_lightboxLeft_z9s6t_48`,lightboxRight:`_lightboxRight_z9s6t_58`,lightboxRightFull:`_lightboxRightFull_z9s6t_69`,lightboxHeaderWrapper:`_lightboxHeaderWrapper_z9s6t_82`,lightboxScrollableContent:`_lightboxScrollableContent_z9s6t_91`,lightboxDivider:`_lightboxDivider_z9s6t_108`,lightboxClose:`_lightboxClose_z9s6t_138`,lightboxImage:`_lightboxImage_z9s6t_151`,lightboxArrow:`_lightboxArrow_z9s6t_186`,lightboxArrowLeft:`_lightboxArrowLeft_z9s6t_208`,lightboxArrowRight:`_lightboxArrowRight_z9s6t_216`,lightboxCounter:`_lightboxCounter_z9s6t_224`},lHt=({urls:e,index:t,onPrev:n,onNext:r})=>(0,D.jsxs)(`div`,{className:g9.lightboxLeft,children:[e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:E(g9.lightboxArrow,g9.lightboxArrowLeft),onClick:n,"aria-label":`Previous image`,children:(0,D.jsx)(Ht,{size:24})}),(0,D.jsx)(WVt,{url:e[t]??``,alt:`Fullscreen view`,className:g9.lightboxImage}),e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:E(g9.lightboxArrow,g9.lightboxArrowRight),onClick:r,"aria-label":`Next image`,children:(0,D.jsx)(Ut,{size:24})}),(0,D.jsxs)(`div`,{className:g9.lightboxCounter,children:[t+1,` / `,e.length]})]}),uHt=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,onShare:o,onPin:s,showPinButton:c,onEdit:l,showEditButton:u,fullWidth:d=!1})=>(0,D.jsxs)(`div`,{className:d?g9.lightboxRightFull:g9.lightboxRight,children:[(0,D.jsx)(`div`,{className:g9.lightboxHeaderWrapper,children:(0,D.jsx)(yVt,{post:e,onBookmark:r,onPin:s,showPinButton:c,onEdit:l,showEditButton:u})}),(0,D.jsxs)(`div`,{className:g9.lightboxScrollableContent,children:[e.title!==null&&(0,D.jsx)(`h2`,{className:$.cardTitle,children:e.title}),(0,D.jsx)(`p`,{className:$.cardBody,children:e.body}),(0,D.jsx)(cHt,{post:e,onAcknowledge:i}),(0,D.jsx)(`div`,{className:g9.lightboxDivider}),(0,D.jsx)(oHt,{post:e}),(0,D.jsx)(sHt,{post:e,commentsOpen:!0,onReact:n,onComment:()=>{},onShare:o}),(0,D.jsx)(`div`,{className:g9.lightboxDivider}),(0,D.jsx)(UVt,{comments:e.comments,pending:t,onAdd:a})]})]}),dHt=({hasImages:e,index:t,urlsLength:n,onClose:r,onChange:i})=>{(0,y.useEffect)(()=>{let a=a=>{a.key===`Escape`&&r(),e&&i!==void 0&&(a.key===`ArrowLeft`&&i((t-1+n)%n),a.key===`ArrowRight`&&i((t+1)%n))};return window.addEventListener(`keydown`,a),()=>{window.removeEventListener(`keydown`,a)}},[e,t,r,i,n])},fHt=({urls:e=[],index:t=0,onClose:n,onChange:r,post:i,commentPending:a,onReact:o,onBookmark:s,onAcknowledge:c,onAddComment:l,onShare:u,onPin:d,showPinButton:f,onEdit:p,showEditButton:m})=>{let{data:h}=kLt(i.id),g=h??i,_=e.length>0,v=co();return dHt({hasImages:_,index:t,urlsLength:e.length,onClose:n,onChange:r}),(0,b.createPortal)((0,D.jsx)(`div`,{className:g9.lightboxOverlay,onClick:n,role:`presentation`,children:(0,D.jsxs)(`div`,{className:_?g9.lightboxContainer:g9.lightboxContainerTextOnly,onClick:e=>{e.stopPropagation()},role:`presentation`,children:[(0,D.jsx)(`button`,{type:`button`,className:g9.lightboxClose,onClick:n,"aria-label":`Close lightbox`,children:(0,D.jsx)(qn,{size:20})}),_&&(0,D.jsx)(lHt,{urls:e,index:t,onPrev:()=>{r!==void 0&&r((t-1+e.length)%e.length)},onNext:()=>{r!==void 0&&r((t+1)%e.length)}}),(0,D.jsx)(uHt,{post:g,commentPending:a,onReact:o,onBookmark:s,onAcknowledge:c,onAddComment:l,onShare:u,onPin:d,showPinButton:f,onEdit:p,showEditButton:m,fullWidth:!_})]})}),v??document.body)},pHt=({open:e,post:t,onClose:n})=>{let{categoryLabel:r,categoryColor:i}=ALt(t);return(0,D.jsx)(iHt,{open:e,post:{postId:t.id,authorName:t.authorName,authorRole:t.authorRole,authorInitials:t.authorInitials,authorColor:t.authorColor,categoryLabel:r,categoryColor:i,title:t.title??t.body,bodySnippet:t.body.length>150?`${t.body.slice(0,150)}...`:t.body},onClose:n})},mHt=({index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l,onPin:u,showPinButton:d,onEdit:f,showEditButton:p})=>e===null?null:(0,D.jsx)(fHt,{urls:t.imageUrls,index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l,onPin:u,showPinButton:d,onEdit:f,showEditButton:p}),hHt=({body:e,onOpenDetail:t})=>{let[n,r]=(0,y.useState)(!1),i=e.length>200;return(0,D.jsxs)(`p`,{className:$.cardBody,onClick:t,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&t()},style:{cursor:`pointer`},children:[i&&!n?`${e.slice(0,200)}...`:e,i&&(0,D.jsx)(`button`,{type:`button`,className:$.seeMoreBtn,onClick:e=>{e.stopPropagation(),n||t(),r(e=>!e)},children:n?` See less`:` See more`})]})},gHt=({title:e,onOpenDetail:t})=>(0,D.jsx)(`h2`,{className:$.cardTitle,onClick:t,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&t()},style:{cursor:`pointer`},children:e}),_Ht=(e,t,n,r)=>{let i=SLt();return{handleShare:()=>{t(!0),i.mutate(e.id)},handleImageClick:t=>{n(t),t!==null&&i.mutate(e.id)},handleOpenDetail:()=>{r(),i.mutate(e.id)}}},vHt=({post:e,commentsOpen:t,commentPending:n,shareOpen:r,lightboxIndex:i,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,toggleComments:l,setShareOpen:u,setLightboxIndex:d,onOpenDetail:f,onPin:p,showPinButton:m,onEdit:h,showEditButton:g})=>{let{handleShare:_,handleImageClick:v,handleOpenDetail:y}=_Ht(e,u,d,f);return(0,D.jsxs)(D.Fragment,{children:[e.title!==null&&(0,D.jsx)(gHt,{title:e.title,onOpenDetail:y}),(0,D.jsx)(hHt,{body:e.body,onOpenDetail:y}),(0,D.jsx)(GVt,{urls:e.imageUrls,onImageClick:v}),(0,D.jsx)(cHt,{post:e,onAcknowledge:s}),(0,D.jsx)(oHt,{post:e,onCommentClick:l}),(0,D.jsx)(sHt,{post:e,commentsOpen:t,onReact:a,onComment:l,onShare:_}),t&&(0,D.jsx)(UVt,{comments:e.comments,pending:n,onAdd:c}),(0,D.jsx)(pHt,{open:r,post:e,onClose:()=>{u(!1)}}),(0,D.jsx)(mHt,{index:i,post:e,commentPending:n,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,onShare:_,onClose:()=>{d(null)},onChange:d,onPin:p,showPinButton:m,onEdit:h,showEditButton:g})]})},yHt=e=>{let t=(0,y.useRef)(null);(0,y.useEffect)(()=>{t.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:n}=Wse({target:e,container:t,offset:[`start end`,`end start`]});return id(n,[0,1],[-12,12])},bHt=({post:e,state:t})=>(0,D.jsx)(BVt,{post:e,state:t}),xHt=e=>{let[t,n]=(0,y.useState)(0);return(0,D.jsx)(fHt,{post:e.post,urls:e.post.imageUrls,index:t,onChange:n,commentPending:e.commentPending,onReact:e.onReact,onBookmark:e.onBookmark,onAcknowledge:e.onAcknowledge,onAddComment:e.onAddComment,onShare:e.onShare,onClose:e.onClose,onPin:e.onPin,showPinButton:e.showPinButton,onEdit:e.onEdit,showEditButton:e.showEditButton})},SHt=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,state:o,onOpenDetail:s,onPin:c,showPinButton:l,onEdit:u,showEditButton:d})=>o.isEditing?(0,D.jsx)(bHt,{post:e,state:o}):(0,D.jsx)(vHt,{post:e,commentsOpen:o.commentsOpen,commentPending:t,shareOpen:o.shareOpen,lightboxIndex:o.lightboxIndex,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,toggleComments:()=>{o.setCommentsOpen(e=>!e)},setShareOpen:o.setShareOpen,setLightboxIndex:o.setLightboxIndex,onOpenDetail:s,onPin:c,showPinButton:l,onEdit:u,showEditButton:d}),CHt=(e,t)=>({handleEdit:()=>{e.setIsEditing(!0)},handleOpenDetail:()=>{t(!0)},handleEditFromDetail:()=>{e.setIsEditing(!0),t(!1)},handleShare:()=>{e.setShareOpen(!0)},handleCloseDetail:()=>{t(!1)}}),wHt=({post:e,isAuthor:t,commentPending:n,onBookmark:r,onPin:i,showPinButton:a,onReact:o,onAcknowledge:s,onAddComment:c,state:l,cardY:u,elementRef:d})=>{let[f,p]=(0,y.useState)(!1),m=CHt(l,p);return(0,D.jsxs)(Zu.article,{id:`feed-post-${e.id}`,ref:d,style:{y:u},className:$.card,children:[e.needsAcknowledgement&&(0,D.jsx)(`span`,{className:$.urgentStripe}),e.pinned&&(0,D.jsxs)(`div`,{className:$.pinnedRow,children:[(0,D.jsx)(Tn,{size:10,className:$.pin}),` Pinned`]}),!l.isEditing&&(0,D.jsx)(yVt,{post:e,onBookmark:r,onPin:i,showPinButton:a,showEditButton:t,onEdit:m.handleEdit}),(0,D.jsx)(SHt,{post:e,commentPending:n,onReact:o,onBookmark:r,onAcknowledge:s,onAddComment:c,state:l,onOpenDetail:m.handleOpenDetail,onPin:i,showPinButton:a,onEdit:m.handleEdit,showEditButton:t}),f&&(0,D.jsx)(xHt,{post:e,commentPending:n,onReact:o,onBookmark:r,onPin:i,showPinButton:a,onEdit:m.handleEditFromDetail,showEditButton:t,onAcknowledge:s,onAddComment:c,onShare:m.handleShare,onClose:m.handleCloseDetail})]})},THt=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a})=>{let o=FVt(e),{user:s}=qh(),c=e.authorUserId===s?.id,l=wLt(),u=s!==null&&(s.hasRole(`admin`)||s.hasRole(`system-admin`)||s.hasRole(`FullAccess`)),d=()=>{l.mutateAsync({postId:e.id,pinned:!e.pinned})},f=(0,y.useRef)(null);return(0,D.jsx)(wHt,{post:e,isAuthor:c,commentPending:t,onBookmark:r,onPin:d,showPinButton:u,onReact:n,onAcknowledge:i,onAddComment:a,state:o,cardY:yHt(f),elementRef:f})},EHt=({posts:e})=>{let t=yLt(),n=bLt(),r=xLt(),i=CLt();return(0,D.jsx)(D.Fragment,{children:e.map(e=>(0,D.jsx)(THt,{post:e,commentPending:i.isPending,onReact:n=>{t.mutate({postId:e.id,type:n})},onBookmark:()=>{n.mutate(e.id),Nf.success(e.bookmarked?`Bookmark removed`:`Post saved to bookmarks`)},onAcknowledge:()=>{r.mutate(e.id),Nf.success(`Post acknowledged`)},onAddComment:t=>{i.mutate({postId:e.id,text:t})}},e.id))})},DHt=2,OHt=e=>[...e].filter(e=>e.active).sort((e,t)=>e.priority-t.priority),kHt=(e,t)=>e.find(e=>e.id===t.templateId),AHt=(e,t,n)=>OHt(e).map(e=>{let r=t.filter(t=>t.categoryId===e.id);return{id:e.id,name:e.name,color:e.color,count:r.length,template:kHt(n,e),items:r.slice(0,DHt)}}).filter(e=>e.count>0),jHt=e=>[{id:`all`,label:`All`},...OHt(e).map(e=>({id:e.id,label:e.name}))],MHt=e=>Object.values(e.values).join(` `).toLowerCase(),NHt=(e,t,n)=>{let r=[];for(let i of OHt(e.categories)){if(t!==`all`&&i.id!==t)continue;let a=kHt(e.templates,i);if(a===void 0)continue;let o=e.promotions.filter(e=>e.categoryId===i.id),s=n===``?o:o.filter(e=>MHt(e).includes(n));s.length>0&&r.push({category:i,template:a,items:s,count:o.length})}return r},PHt=({onClose:e})=>(0,D.jsxs)(`div`,{className:$.ppHead,children:[(0,D.jsx)(`span`,{className:$.ppHeadIcon,children:(0,D.jsx)(pn,{size:18})}),(0,D.jsxs)(`div`,{className:$.ppHeadText,children:[(0,D.jsx)(`h2`,{className:$.ppTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`p`,{className:$.ppSubtitle,children:`Latest campaigns, university updates, intake alerts and events.`}),(0,D.jsx)(`span`,{className:$.ppManaged,children:`Read-only · Managed by System Admin`})]}),(0,D.jsx)(`button`,{type:`button`,className:$.ppClose,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(qn,{size:18})})]}),FHt=({tabs:e,active:t,onSelect:n})=>(0,D.jsx)(`div`,{className:$.ppTabs,children:e.map(e=>{let r=e.id===t;return(0,D.jsxs)(`button`,{type:`button`,className:E($.ppTab,r&&$.ppTabActive),onClick:()=>{n(e.id)},children:[r&&(0,D.jsx)(Zu.span,{layoutId:`ppTabBg`,className:$.ppTabBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:$.ppTabLabel,children:e.label})]},e.id)})}),IHt=({categories:e,promotions:t,templates:n,initialTab:r,onClose:i})=>{let[a,o]=(0,y.useState)(r),[s,c]=(0,y.useState)(``),l=jHt(e),u=NHt({categories:e,promotions:t,templates:n},a,s.trim().toLowerCase());return(0,D.jsxs)(`div`,{className:$.ppRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:$.ppOverlay,"aria-label":`Close promotions`,onClick:i}),(0,D.jsxs)(`div`,{className:$.ppPanel,role:`dialog`,"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(PHt,{onClose:i}),(0,D.jsx)(FHt,{tabs:l,active:a,onSelect:o}),(0,D.jsxs)(`div`,{className:$.ppSearch,children:[(0,D.jsx)(Mn,{size:14,className:$.ppSearchIcon}),(0,D.jsx)(`input`,{type:`search`,className:$.ppSearchInput,placeholder:`Search promotions…`,value:s,onChange:e=>{c(e.target.value)}})]}),(0,D.jsx)(`div`,{className:$.ppList,children:(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(Zu.div,{className:$.ppListInner,initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.18,ease:`easeOut`},children:u.length===0?(0,D.jsx)(`p`,{className:$.ppEmpty,children:s.trim()===``?`No active promotions right now.`:`No promotions match.`}):u.map(e=>(0,D.jsx)(Mh,{template:e.template,color:e.category.color,name:e.category.name,count:e.count,items:e.items},e.category.id))},a)})})]})]})},LHt=({sections:e,onClose:t,onSeeAll:n,onSelectTab:r})=>(0,D.jsx)(Zu.div,{className:$.promoPopoverOverlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,D.jsxs)(Zu.div,{className:$.promoPopoverCard,initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,y:20},transition:{type:`spring`,damping:25,stiffness:300},children:[(0,D.jsxs)(`div`,{className:$.popoverHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:$.popoverCloseX,onClick:t,"aria-label":`Close promotions modal`,children:(0,D.jsx)(qn,{size:18})}),(0,D.jsx)(`div`,{className:$.popoverBadgeIcon,children:(0,D.jsx)(pn,{size:24})}),(0,D.jsxs)(`div`,{className:$.popoverTitleRow,children:[(0,D.jsx)(`h3`,{className:$.popoverTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`button`,{type:`button`,className:$.popoverSeeAllBtn,onClick:()=>{t(),n()},children:`See all`})]}),(0,D.jsx)(`p`,{className:$.popoverSub,children:`Stay updated with active promotions and university campaigns`})]}),(0,D.jsx)(`div`,{className:$.popoverContent,children:e.length===0?(0,D.jsx)(`p`,{className:$.popoverEmpty,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)(Mh,{template:e.template,color:e.color,name:e.name,count:e.count,items:e.items,onViewAll:()=>{t(),r(e.id)}},e.id))})]})}),RHt=({sections:e,onSeeAll:t,onSelectTab:n})=>(0,D.jsxs)(`aside`,{className:$.rail,children:[(0,D.jsxs)(`div`,{className:$.railHead,children:[(0,D.jsxs)(`span`,{className:$.railHeadTitle,children:[(0,D.jsx)(pn,{size:11}),` PROMOTIONS & CAMPAIGNS`]}),(0,D.jsx)(`button`,{type:`button`,className:$.railSeeAll,onClick:t,children:`See all`})]}),(0,D.jsx)(`div`,{className:$.railList,children:e.length===0?(0,D.jsx)(`p`,{className:$.railFoot,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)(Mh,{template:e.template,color:e.color,name:e.name,count:e.count,items:e.items,onViewAll:()=>{n(e.id)}},e.id))}),(0,D.jsx)(`div`,{className:$.railFoot,children:`Managed by System Admin`})]}),zHt=({onOpen:e})=>{let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(!1),a=(0,y.useRef)(0);return(0,y.useEffect)(()=>{let e=document.getElementById(`app-scroll-container`);if(!e)return;let t=()=>{let t=e.scrollTop;t<=4||t<a.current?i(!1):i(!0),a.current=t};return e.addEventListener(`scroll`,t,{passive:!0}),()=>{e.removeEventListener(`scroll`,t)}},[]),(0,y.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>{n(!1)},4e3);return()=>{clearTimeout(e)}},[t]),(0,D.jsxs)(`button`,{type:`button`,className:E($.mobilePromoTrigger,t&&$.mobilePromoExpanded,r&&$.mobilePromoTriggerBarHidden),onClick:()=>{t?(n(!1),e()):n(!0)},"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(`span`,{className:$.promoShimmerSweep}),(0,D.jsx)(`span`,{className:$.promoIconWrap,children:(0,D.jsx)(pn,{size:15,className:$.sparkleIcon})}),(0,D.jsx)(`span`,{className:$.promoBtnText,children:`Promotions & Campaigns`})]})},BHt=()=>{let e=uSe(),t=fSe(),n=dSe(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),s=e.data??[],c=t.data??[],l=n.data??[],u=AHt(s,c,l);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(RHt,{sections:u,onSeeAll:()=>{i(`all`)},onSelectTab:e=>{i(e)}}),(0,D.jsx)(zHt,{onOpen:()=>{o(!0)}}),(0,D.jsx)(Uu,{children:a&&(0,D.jsx)(LHt,{sections:u,onClose:()=>{o(!1)},onSeeAll:()=>{i(`all`)},onSelectTab:e=>{i(e)}})}),r!==null&&(0,D.jsx)(IHt,{categories:s,promotions:c,templates:l,initialTab:r,onClose:()=>{i(null)}})]})},VHt=[{id:`for_you`,label:`For You`},{id:`team`,label:`Team Updates`},{id:`company`,label:`Company Wide`},{id:`saved`,label:`Saved Posts`,icon:Pt}],HHt=({scope:e,onChange:t})=>{let n=gLt(`saved`).data?.pages[0]?.totalCount;return(0,D.jsx)(`div`,{className:$.tabs,children:VHt.map(r=>{let i=r.icon;return(0,D.jsxs)(`button`,{type:`button`,className:E($.tab,e===r.id&&$.tabActive),onClick:()=>{t(r.id)},children:[i!==void 0&&(0,D.jsx)(i,{size:13}),r.label,r.id===`saved`&&n!==void 0&&n>0&&(0,D.jsx)(`span`,{className:$.tabBadge,children:n})]},r.id)})})},_9={skeletonCard:`_skeletonCard_7d381_1`,skeletonHeader:`_skeletonHeader_7d381_11`,skeletonAvatar:`_skeletonAvatar_7d381_17`,pulse:`_pulse_7d381_1`,skeletonMeta:`_skeletonMeta_7d381_25`,skeletonLine:`_skeletonLine_7d381_32`,short:`_short_7d381_39`,medium:`_medium_7d381_43`,full:`_full_7d381_47`,skeletonBody:`_skeletonBody_7d381_51`},UHt=({count:e=3})=>(0,D.jsx)(D.Fragment,{children:Array.from({length:e}).map((e,t)=>(0,D.jsxs)(`div`,{className:_9.skeletonCard,children:[(0,D.jsxs)(`div`,{className:_9.skeletonHeader,children:[(0,D.jsx)(`div`,{className:_9.skeletonAvatar}),(0,D.jsxs)(`div`,{className:_9.skeletonMeta,children:[(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.medium)}),(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.short)})]})]}),(0,D.jsxs)(`div`,{className:_9.skeletonBody,children:[(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.full)}),(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.full)}),(0,D.jsx)(`div`,{className:E(_9.skeletonLine,_9.medium)})]})]},t))}),WHt=e=>{zLt(`feed-post-${e}`,`app-scroll-container`,`start`)},GHt=({post:e,onView:t,onDismiss:n,displayZone:r})=>{let{categoryLabel:i,categoryColor:a}=ALt(e);return(0,D.jsxs)(`div`,{className:$.missedCard,children:[(0,D.jsx)(`button`,{type:`button`,className:$.missedClose,"aria-label":`Dismiss`,onClick:n,children:(0,D.jsx)(qn,{size:11,strokeWidth:2.5})}),(0,D.jsxs)(`div`,{className:$.missedCardTop,children:[(0,D.jsx)(`span`,{className:$.missedDot,style:Xn({"--dot":a})}),(0,D.jsx)(`span`,{className:$.missedCat,children:i}),(0,D.jsx)(`span`,{className:$.missedTime,children:RLt(e.createdAt,r,e.scheduledAt)})]}),(0,D.jsx)(`p`,{className:$.missedSummary,children:e.title??e.body}),(0,D.jsxs)(`div`,{className:$.missedFoot,children:[(0,D.jsxs)(`button`,{type:`button`,className:$.missedCta,onClick:t,children:[`View post `,(0,D.jsx)(Ut,{size:10,strokeWidth:3})]}),e.mustAcknowledge&&(0,D.jsxs)(`span`,{className:$.missedPriority,children:[(0,D.jsx)(Gt,{size:8}),` Priority`]})]})]})},KHt=({posts:e})=>{let[t,n]=(0,y.useState)(new Set),[r,i]=(0,y.useState)(!1),a=(0,y.useRef)(null),o=nh().display,s=e.filter(e=>e.mustAcknowledge&&!t.has(e.id)&&!e.acknowledged);if(r||s.length===0)return null;let c=e=>{a.current?.scrollBy({left:e*300,behavior:`smooth`})},l=s.length>2;return(0,D.jsxs)(`div`,{className:$.missed,children:[(0,D.jsxs)(`div`,{className:$.missedHead,children:[(0,D.jsx)(gee,{size:14,className:$.missedSpark}),(0,D.jsx)(`span`,{className:$.missedTitle,children:`WHAT YOU MISSED`}),(0,D.jsx)(`span`,{className:$.missedBadge,children:s.length}),(0,D.jsx)(`button`,{type:`button`,className:$.missedRead,onClick:()=>{i(!0)},children:`Mark all read`})]}),(0,D.jsxs)(`div`,{className:E($.missedScroller,l&&$.missedScrollerFade),children:[l&&(0,D.jsx)(`button`,{type:`button`,className:E($.missedNav,$.missedNavLeft),"aria-label":`Scroll left`,onClick:()=>{c(-1)},children:(0,D.jsx)(Ht,{size:16})}),(0,D.jsx)(`div`,{className:$.missedTrack,ref:a,children:s.map(e=>(0,D.jsx)(GHt,{post:e,displayZone:o,onView:()=>{WHt(e.id)},onDismiss:()=>{n(t=>new Set(t).add(e.id))}},e.id))}),l&&(0,D.jsx)(`button`,{type:`button`,className:E($.missedNav,$.missedNavRight),"aria-label":`Scroll right`,onClick:()=>{c(1)},children:(0,D.jsx)(Ut,{size:16})})]})]})},qHt=(e,t)=>{let n=t.trim();if(n===``)return e;let r=n.replace(/\s+/g,` `).toLowerCase();return e.filter(e=>[e.authorName,e.authorRole,e.audienceLabel,e.timestamp,e.title,e.body].filter(Boolean).join(` `).replace(/\s+/g,` `).toLowerCase().includes(r))},JHt=(e,t,n)=>{let r=(0,y.useRef)(null),i=(0,y.useCallback)(r=>{r[0]?.isIntersecting&&e&&!t&&n()},[e,t,n]);return(0,y.useEffect)(()=>{let e=r.current;if(!e)return;let t=new IntersectionObserver(i,{rootMargin:`2000px`});return t.observe(e),()=>{t.disconnect()}},[i]),r},YHt=e=>{let[t,n]=xt(),r=kLt(t.get(`postId`));(0,y.useEffect)(()=>{if(r.data===void 0)return;e(r.data);let t=new URLSearchParams(window.location.search);t.has(`postId`)&&(t.delete(`postId`),n(t,{replace:!0}))},[r.data])},XHt=(e,t)=>{let n=yLt(),r=bLt(),i=xLt(),a=CLt(),o=wLt();return{handleReact:t=>{n.mutateAsync({postId:e.id,type:t})},handleBookmark:()=>{r.mutateAsync(e.id)},handleAcknowledge:()=>{i.mutateAsync(e.id)},handleAddComment:t=>{a.mutateAsync({postId:e.id,text:t})},handlePin:()=>{o.mutateAsync({postId:e.id,pinned:!e.pinned})},handleEdit:()=>{t.setIsEditing(!0)},handleShare:()=>{t.setShareOpen(!0)},handleCloseShare:()=>{t.setShareOpen(!1)},commentPending:a.isPending}},ZHt=({post:e,onClose:t})=>{let[n,r]=(0,y.useState)(0),{data:i}=kLt(e.id),a=i??e,o=FVt(a),s=XHt(a,o),c=co(),{user:l}=qh(),u=a.authorUserId===l?.id,d=l!==null&&(l.hasRole(`admin`)||l.hasRole(`system-admin`)||l.hasRole(`FullAccess`));return o.isEditing?(0,b.createPortal)((0,D.jsx)(`div`,{className:g9.lightboxOverlay,children:(0,D.jsxs)(`div`,{className:g9.lightboxContainerTextOnly,style:{padding:0},children:[(0,D.jsx)(`button`,{type:`button`,className:g9.lightboxClose,onClick:()=>{o.setIsEditing(!1)},"aria-label":`Close edit`,children:(0,D.jsxs)(`svg`,{width:`24`,height:`24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,D.jsx)(`path`,{d:`M18 6 6 18`}),(0,D.jsx)(`path`,{d:`m6 6 12 12`})]})}),(0,D.jsx)(`div`,{style:{flex:1,overflowY:`auto`},children:(0,D.jsx)(BVt,{post:a,state:o})})]})}),c??document.body):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(fHt,{post:a,urls:a.imageUrls,index:n,onChange:r,commentPending:s.commentPending,onReact:s.handleReact,onBookmark:s.handleBookmark,onAcknowledge:s.handleAcknowledge,onAddComment:s.handleAddComment,onPin:s.handlePin,showPinButton:d,onEdit:s.handleEdit,showEditButton:u,onShare:s.handleShare,onClose:t}),(0,D.jsx)(pHt,{post:a,open:o.shareOpen,onClose:s.handleCloseShare})]})},QHt=()=>{let[e,t]=(0,y.useState)(`for_you`),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(null),o=gLt(e),{hasNextPage:s,isFetchingNextPage:c,fetchNextPage:l}=o,u=qHt(o.data?o.data.pages.flatMap(e=>e.items):[],n);YHt(e=>{a(e)});let d=JHt(s,c,l);return(0,D.jsxs)(`div`,{className:$.screen,children:[(0,D.jsx)(`div`,{className:$.toolbar,children:(0,D.jsxs)(`div`,{className:$.toolbarContainer,children:[(0,D.jsxs)(`div`,{className:$.search,children:[(0,D.jsx)(Mn,{size:14,className:$.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:$.searchInput,placeholder:`Search posts by keyword, title, author, or role…`,value:n,onChange:e=>{r(e.target.value)}})]}),(0,D.jsx)(`div`,{className:$.toolbarRailSpacer})]})}),(0,D.jsxs)(`div`,{className:$.wrapper,children:[(0,D.jsxs)(`div`,{className:$.column,children:[(0,D.jsx)(HHt,{scope:e,onChange:e=>{t(e)}}),(0,D.jsx)(KHt,{posts:u}),(0,D.jsx)(mVt,{}),o.isPending&&(0,D.jsx)(UHt,{count:3}),o.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not load the feed`,children:o.error.message}),o.isSuccess&&u.length===0&&(0,D.jsx)(hVt,{}),(0,D.jsx)(EHt,{posts:u}),(0,D.jsx)(`div`,{ref:d,style:{height:`20px`,width:`100%`},children:o.isFetchingNextPage&&(0,D.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:`1rem`},children:(0,D.jsx)(rr,{})})})]}),(0,D.jsx)(BHt,{})]}),i!==null&&(0,D.jsx)(ZHt,{post:i,onClose:()=>{a(null)}})]})},$Ht=({path:e,children:t})=>(0,D.jsxs)(gt,{children:[(0,D.jsx)(mt,{path:e,element:(0,D.jsx)(D.Fragment,{children:t})}),(0,D.jsx)(mt,{path:`*`,element:(0,D.jsx)(pt,{to:e,replace:!0})})]}),eUt=()=>{m9(`uapp-feed`,()=>(0,D.jsx)($Ht,{path:`/comms/feed`,children:(0,D.jsx)(QHt,{})}))},tUt=e=>{let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`?`:((t[0]?.[0]??``)+(t.length>1?t[t.length-1]?.[0]??``:``)).toUpperCase()},nUt=()=>{let{user:e}=qh(),t=e?.fullName??``;return{id:e?.id??``,name:t,initials:tUt(t),color:`#0f1f1f`,role:`Organizer`}},rUt=(e,t,n)=>{let r=new Date(e).getTime(),i=new Date(t).getTime();return n.some(e=>new Date(e.startUtc).getTime()<i&&new Date(e.endUtc).getTime()>r)},iUt=(e,t,n)=>{let r=new Date(e).getTime(),i=new Date(t).getTime();return n.some(e=>new Date(e.startUtc).getTime()<=r&&new Date(e.endUtc).getTime()>=i)},aUt=e=>{let t=e=>{let[t,n]=e.split(`:`).map(Number);return(t??0)*60+(n??0)},n=e=>`${String(Math.floor(e/60)).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`,r=t(e.end),i=[];for(let a=t(e.start);a+30<=r;a+=30)i.push({start:n(a),end:n(a+30),label:`${n(a)} – ${n(a+30)}`});return i},oUt=(e,t)=>{let n=e??t,r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,`0`),a=String(n.getDate()).padStart(2,`0`);return`${String(r)}-${i}-${a}`},sUt=(e,t)=>new Date(e).toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`,hour12:!0,timeZone:t}),v9=(e,t,n)=>!e||!t?``:`${sUt(e,n)} – ${sUt(t,n)}`,cUt=(e,t)=>e?new Date(e).toLocaleDateString(`en-US`,{weekday:`short`,day:`numeric`,month:`short`,timeZone:t}):``,lUt=(e,t)=>t.id!==``&&e===t.id,uUt=(e,t,n)=>{if(lUt(e,n))return n.name.split(` `)[0]??n.name;let r=t.find(t=>t.id===e);return r===void 0?``:r.name.split(` `)[0]??``},dUt=(e,t,n)=>{if(lUt(e,n))return{name:`${n.name} (You)`,role:n.role,initials:n.initials,color:n.color};let r=t.find(t=>t.id===e);return{name:r?.name??``,role:r?.role??``,initials:r?.initials??``,color:r?.color??`#555`}},fUt=(e,t,n)=>{let r=new Date(eh(e,`00:00`,t));return{rangeStart:r,rangeEnd:new Date(r.getTime()+1440*60*1e3),workWindows:n?.active?n.slots.map(n=>({start:new Date(eh(e,n.from,t)),end:new Date(eh(e,n.to,t))})):[]}},pUt=(e,t,n,r)=>{let i=[],a=(e,t)=>{i.push({startUtc:new Date(e).getTime(),endUtc:new Date(t).getTime()})};r.workWindows.forEach(e=>{a(e.start,e.end)}),n.forEach(e=>{ap(e,r.rangeStart,r.rangeEnd).forEach(e=>{a(e.start,e.end)})}),e.forEach(e=>{let n=t.get(e);n&&(n.workingHours.forEach(e=>{a(e.startUtc,e.endUtc)}),n.busy.forEach(e=>{a(e.startUtc,e.endUtc)}))});let o=r.rangeStart.getTime(),s=r.rangeEnd.getTime(),c=i.filter(e=>e.startUtc<s&&e.endUtc>o).map(e=>({startOffsetMs:Math.max(e.startUtc,o)-o,endOffsetMs:Math.min(e.endUtc,s)-o}));if(c.length===0)return{start:`09:00`,end:`17:00`};let l=1440*60*1e3,u=0;c.forEach(e=>{e.startOffsetMs<l&&(l=e.startOffsetMs),e.endOffsetMs>u&&(u=e.endOffsetMs)});let d=Math.floor(Math.max(0,l/6e4-60)/30)*30,f=Math.ceil(Math.min(1440,u/6e4+60)/30)*30,p=e=>`${String(Math.floor(e/60)).padStart(2,`0`)}:${String(e%60).padStart(2,`0`)}`;return{start:p(d),end:p(f)}},y9={bookCard:`_bookCard_g1hkd_7`,bookTopBar:`_bookTopBar_g1hkd_16`,bookGrid:`_bookGrid_g1hkd_26`,colCalendar:`_colCalendar_g1hkd_31`,search:`_search_g1hkd_37`,searchIcon:`_searchIcon_g1hkd_42`,searchInput:`_searchInput_g1hkd_50`,contactList:`_contactList_g1hkd_61`,contactRow:`_contactRow_g1hkd_72`,contactActive:`_contactActive_g1hkd_91`,contactAvatar:`_contactAvatar_g1hkd_96`,contactText:`_contactText_g1hkd_112`,contactName:`_contactName_g1hkd_120`,contactRole:`_contactRole_g1hkd_135`,contactCheck:`_contactCheck_g1hkd_144`,contactCheckOn:`_contactCheckOn_g1hkd_158`,contactCheckIcon:`_contactCheckIcon_g1hkd_164`,contactEmpty:`_contactEmpty_g1hkd_170`,calHead:`_calHead_g1hkd_177`,calMonth:`_calMonth_g1hkd_184`,calNav:`_calNav_g1hkd_190`,calNavBtn:`_calNavBtn_g1hkd_195`,calDays:`_calDays_g1hkd_208`,calDayLabel:`_calDayLabel_g1hkd_214`,calGrid:`_calGrid_g1hkd_222`,calCell:`_calCell_g1hkd_228`,calCellToday:`_calCellToday_g1hkd_248`,calCellSelected:`_calCellSelected_g1hkd_254`,calCellPast:`_calCellPast_g1hkd_262`,calCellBlank:`_calCellBlank_g1hkd_267`,bookBar:`_bookBar_g1hkd_272`,bookHint:`_bookHint_g1hkd_282`,bookSummary:`_bookSummary_g1hkd_287`,bookSummaryName:`_bookSummaryName_g1hkd_295`,bookSummarySlot:`_bookSummarySlot_g1hkd_300`,bookBtn:`_bookBtn_g1hkd_305`,confirmBody:`_confirmBody_g1hkd_327`,confirmWho:`_confirmWho_g1hkd_333`,confirmAvatar:`_confirmAvatar_g1hkd_343`,confirmWhoText:`_confirmWhoText_g1hkd_357`,confirmName:`_confirmName_g1hkd_364`,confirmRole:`_confirmRole_g1hkd_370`,confirmRows:`_confirmRows_g1hkd_375`,confirmRow:`_confirmRow_g1hkd_375`,confirmRowIcon:`_confirmRowIcon_g1hkd_392`,confirmRowLabel:`_confirmRowLabel_g1hkd_404`,confirmRowValue:`_confirmRowValue_g1hkd_412`,bookedNote:`_bookedNote_g1hkd_420`,typeSelector:`_typeSelector_g1hkd_430`,typeBtn:`_typeBtn_g1hkd_438`,typeBtnActive:`_typeBtnActive_g1hkd_456`},mUt=({spanKey:e,name:t,dateLabel:n,formattedSlot:r})=>(0,D.jsxs)(Zu.span,{className:y9.bookSummary,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(`span`,{className:y9.bookSummaryName,children:t}),` · `,n,` ·`,` `,(0,D.jsx)(`span`,{className:y9.bookSummarySlot,children:r})]},e),hUt=({meetingType:e,contact:t,dateLabel:n,slot:r,selectedContactIds:i,groupTitle:a,formattedSlot:o})=>e===`1:1`?t!==null&&n!==``&&r!==null?(0,D.jsx)(mUt,{spanKey:`summary`,name:t.name,dateLabel:n,formattedSlot:o}):null:i.length>0&&n!==``&&r!==null?(0,D.jsx)(mUt,{spanKey:`group-summary`,name:`${a||`Group Meeting`} (${String(i.length)} guests)`,dateLabel:n,formattedSlot:o}):null,gUt=({success:e,meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,selectedSlot:s,tzId:c})=>{if(e)return(0,D.jsxs)(Zu.span,{className:y9.bookedNote,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(Bt,{size:14,strokeWidth:3}),` Meeting booked — see the Scheduled tab.`]},`done`);let l=hUt({meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,formattedSlot:s?v9(s.startUtc,s.endUtc,c):``});return l===null?(0,D.jsx)(`span`,{className:y9.bookHint,children:t===`1:1`?`Pick a person, a date, and a time to book.`:`Select participants, set group title, pick a date and a time to book.`},`hint`):l},_Ut=({contact:e,dateLabel:t,slot:n,canBook:r,success:i,meetingType:a,selectedContactIds:o,groupTitle:s,onBook:c,selectedSlot:l,tzId:u})=>(0,D.jsxs)(`div`,{className:y9.bookBar,children:[(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(gUt,{success:i,meetingType:a,contact:e,dateLabel:t,slot:n,selectedContactIds:o,groupTitle:s,selectedSlot:l,tzId:u})}),(0,D.jsxs)(Zu.button,{type:`button`,className:y9.bookBtn,disabled:!r,...r?{whileTap:{scale:.97}}:{},onClick:()=>{c()},children:[`Confirm booking `,(0,D.jsx)(jt,{size:15})]})]}),vUt=[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],yUt=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],bUt=e=>e.toLocaleDateString(`en-GB`,{weekday:`short`,day:`2-digit`,month:`short`}),xUt=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),SUt=(e,t,n)=>{let r=new Date(e,t,1).getDay(),i=new Date(e,t+1,0).getDate(),a=new Date(n.getFullYear(),n.getMonth(),n.getDate()),o=Array.from({length:r},()=>null);for(let r=1;r<=i;r+=1){let i=new Date(e,t,r);o.push({day:r,date:i,past:i<a,today:xUt(i,n)})}return o},b9={col:`_col_18ut1_6`,colTitle:`_colTitle_18ut1_13`,stepDot:`_stepDot_18ut1_22`},CUt=({cell:e,selected:t,onPick:n})=>(0,D.jsx)(Zu.button,{type:`button`,disabled:e.past,...e.past?{}:{whileHover:{scale:1.12},whileTap:{scale:.9}},className:E(y9.calCell,e.past&&y9.calCellPast,e.today&&y9.calCellToday,t?.toDateString()===e.date.toDateString()&&y9.calCellSelected),onClick:()=>{n(e.date)},children:e.day}),wUt=({view:e,today:t,selected:n,onShift:r,onPick:i})=>(0,D.jsxs)(`div`,{className:y9.colCalendar,children:[(0,D.jsxs)(`div`,{className:b9.colTitle,children:[(0,D.jsx)(`span`,{className:b9.stepDot,children:`2`}),` Pick a date`]}),(0,D.jsxs)(`div`,{className:y9.calHead,children:[(0,D.jsxs)(`span`,{className:y9.calMonth,children:[yUt[e.month],` `,e.year]}),(0,D.jsxs)(`div`,{className:y9.calNav,children:[(0,D.jsx)(Zu.button,{type:`button`,"aria-label":`Previous month`,className:y9.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(-1)},children:(0,D.jsx)(Ht,{size:15})}),(0,D.jsx)(Zu.button,{type:`button`,"aria-label":`Next month`,className:y9.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(1)},children:(0,D.jsx)(Ut,{size:15})})]})]}),(0,D.jsx)(`div`,{className:y9.calDays,children:vUt.map(e=>(0,D.jsx)(`span`,{className:y9.calDayLabel,children:e},e))}),(0,D.jsx)(Zu.div,{className:y9.calGrid,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.22,1,.36,1]},children:SUt(e.year,e.month,t).map((e,t)=>e===null?(0,D.jsx)(`span`,{className:y9.calCellBlank},`blank-${String(t)}`):(0,D.jsx)(CUt,{cell:e,selected:n,onPick:i},e.day))},`${String(e.year)}-${String(e.month)}`)]}),TUt={hidden:{},visible:{transition:{staggerChildren:.05,delayChildren:.05}}},EUt={hidden:{opacity:0,x:-8},visible:{opacity:1,x:0,transition:{duration:.18,ease:`easeOut`}}},x9=({icon:e,label:t,value:n})=>(0,D.jsxs)(Zu.div,{className:y9.confirmRow,variants:EUt,children:[(0,D.jsx)(`span`,{className:y9.confirmRowIcon,children:e}),(0,D.jsx)(`span`,{className:y9.confirmRowLabel,children:t}),(0,D.jsx)(`span`,{className:y9.confirmRowValue,children:n})]}),DUt=({open:e,contact:t,dateLabel:n,slot:r,zone:i,pending:a,onConfirm:o,onClose:s,selectedSlot:c,tzId:l})=>{let u=v9(c?.startUtc,c?.endUtc,l);return(0,D.jsx)(cd,{open:e&&t!==null&&r!==null&&n!==``,onOpenChange:e=>{e||s()},title:`Confirm your booking`,description:`A calendar invite is sent to both of you once confirmed.`,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ar,{variant:`ghost`,onClick:s,children:`Back`}),(0,D.jsx)(ar,{isLoading:a,onClick:o,children:`Confirm booking`})]}),children:t!==null&&r!==null?(0,D.jsxs)(`div`,{className:y9.confirmBody,children:[(0,D.jsxs)(`div`,{className:y9.confirmWho,children:[(0,D.jsx)(`span`,{className:y9.confirmAvatar,style:Xn({"--avatar-color":t.color}),children:t.initials}),(0,D.jsxs)(`span`,{className:y9.confirmWhoText,children:[(0,D.jsx)(`span`,{className:y9.confirmName,children:t.name}),(0,D.jsx)(`span`,{className:y9.confirmRole,children:t.role})]})]}),(0,D.jsxs)(Zu.div,{className:y9.confirmRows,variants:TUt,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(x9,{icon:(0,D.jsx)(Lt,{size:15}),label:`Date`,value:n}),(0,D.jsx)(x9,{icon:(0,D.jsx)(Jt,{size:15}),label:`Time`,value:u}),(0,D.jsx)(x9,{icon:(0,D.jsx)(rn,{size:15}),label:`Timezone`,value:`${i.city} · ${i.offset}`}),(0,D.jsx)(x9,{icon:(0,D.jsx)(Gn,{size:15}),label:`Location`,value:`Online — link generated automatically`})]})]}):null})},OUt={titleWrap:`_titleWrap_18nb9_3`,titleInput:`_titleInput_18nb9_7`},kUt={hidden:{},visible:{transition:{staggerChildren:.04}}},AUt=({contact:e,active:t,onSelect:n})=>(0,D.jsxs)(Zu.button,{type:`button`,layout:!0,variants:ad,whileHover:{x:3},whileTap:{scale:.985},transition:{type:`spring`,stiffness:500,damping:34},className:E(y9.contactRow,t&&y9.contactActive),onClick:n,children:[(0,D.jsx)(`span`,{className:y9.contactAvatar,style:Xn({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:y9.contactText,children:[(0,D.jsx)(`span`,{className:y9.contactName,children:e.name}),(0,D.jsx)(`span`,{className:y9.contactRole,children:e.role})]}),(0,D.jsx)(`span`,{className:E(y9.contactCheck,t&&y9.contactCheckOn),children:(0,D.jsx)(Uu,{children:t&&(0,D.jsx)(Zu.span,{className:y9.contactCheckIcon,initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Bt,{size:11,strokeWidth:3})})})})]}),jUt=({contacts:e,selectedId:t,search:n,onSearch:r,onSelect:i,mode:a=`1:1`,selectedIds:o=[],onSelectGroup:s,groupTitle:c=``,onGroupTitleChange:l})=>(0,D.jsxs)(`div`,{className:b9.col,children:[(0,D.jsxs)(`div`,{className:b9.colTitle,children:[(0,D.jsx)(`span`,{className:b9.stepDot,children:`1`}),` `,a===`group`?`Configure Group Event`:`Choose a person`]}),a===`group`&&l&&(0,D.jsx)(`div`,{className:OUt.titleWrap,children:(0,D.jsx)(`input`,{type:`text`,className:E(y9.searchInput,OUt.titleInput),placeholder:`Group Event Title (e.g. Team Sync)`,value:c,onChange:e=>{l(e.target.value)}})}),(0,D.jsxs)(`div`,{className:y9.search,children:[(0,D.jsx)(Mn,{size:14,className:y9.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:y9.searchInput,placeholder:`Search people…`,value:n,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(Zu.div,{className:y9.contactList,variants:kUt,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(Uu,{initial:!1,children:e.map(e=>(0,D.jsx)(AUt,{contact:e,active:a===`group`?o.includes(e.id):t===e.id,onSelect:()=>{a===`group`&&s?s(o.includes(e.id)?o.filter(t=>t!==e.id):[...o,e.id]):i(e.id)}},e.id))}),e.length===0&&(0,D.jsx)(`p`,{className:y9.contactEmpty,children:`No people match.`})]})]}),S9={wizardContainer:`_wizardContainer_pyr7v_8`,stepper:`_stepper_pyr7v_17`,stepItem:`_stepItem_pyr7v_27`,stepLine:`_stepLine_pyr7v_34`,stepLineActive:`_stepLineActive_pyr7v_40`,stepCircle:`_stepCircle_pyr7v_44`,stepCircleActive:`_stepCircleActive_pyr7v_60`,stepCircleDone:`_stepCircleDone_pyr7v_66`,stepText:`_stepText_pyr7v_72`,stepTextActive:`_stepTextActive_pyr7v_78`,wizardContent:`_wizardContent_pyr7v_83`,wizardRow:`_wizardRow_pyr7v_90`,wizardPanelLeft:`_wizardPanelLeft_pyr7v_96`,wizardPanelRight:`_wizardPanelRight_pyr7v_106`,timePanelLeft:`_timePanelLeft_pyr7v_114`,wizardList:`_wizardList_pyr7v_118`,timePanelRight:`_timePanelRight_pyr7v_128`,panelHeading:`_panelHeading_pyr7v_132`,wizardSearch:`_wizardSearch_pyr7v_139`,wizardListBtn:`_wizardListBtn_pyr7v_159`,wizardListBtnActive:`_wizardListBtnActive_pyr7v_176`,avatar:`_avatar_pyr7v_181`,avatarSmall:`_avatarSmall_pyr7v_193`,contactName:`_contactName_pyr7v_205`,contactRole:`_contactRole_pyr7v_211`,checkbox:`_checkbox_pyr7v_217`,checkboxActive:`_checkboxActive_pyr7v_228`,panelHeader:`_panelHeader_pyr7v_234`,badge:`_badge_pyr7v_246`,selectedGrid:`_selectedGrid_pyr7v_254`,selectedEmpty:`_selectedEmpty_pyr7v_274`,selectedEmptyIcon:`_selectedEmptyIcon_pyr7v_285`,selectedItemCard:`_selectedItemCard_pyr7v_291`,cardName:`_cardName_pyr7v_301`,cardRole:`_cardRole_pyr7v_310`,removeBtn:`_removeBtn_pyr7v_318`,attendeeStatusItem:`_attendeeStatusItem_pyr7v_337`,statusIndicator:`_statusIndicator_pyr7v_346`,statusIndicatorAvail:`_statusIndicatorAvail_pyr7v_353`,statusIndicatorBusy:`_statusIndicatorBusy_pyr7v_357`,statusIndicatorOoh:`_statusIndicatorOoh_pyr7v_361`,gridToolbar:`_gridToolbar_pyr7v_366`,datePickerInput:`_datePickerInput_pyr7v_377`,durationSelector:`_durationSelector_pyr7v_386`,durBtn:`_durBtn_pyr7v_394`,durBtnActive:`_durBtnActive_pyr7v_405`,legend:`_legend_pyr7v_411`,legendItem:`_legendItem_pyr7v_418`,dotAvail:`_dotAvail_pyr7v_425`,dotBusy:`_dotBusy_pyr7v_426`,dotOoh:`_dotOoh_pyr7v_427`,suggestedStrip:`_suggestedStrip_pyr7v_443`,suggestedRow:`_suggestedRow_pyr7v_449`,suggestedCard:`_suggestedCard_pyr7v_456`,suggestedCardActive:`_suggestedCardActive_pyr7v_472`,suggestedCardFree:`_suggestedCardFree_pyr7v_479`,gridEmpty:`_gridEmpty_pyr7v_489`,wizardConfirmContainer:`_wizardConfirmContainer_pyr7v_501`,confirmHeading:`_confirmHeading_pyr7v_509`,confirmSub:`_confirmSub_pyr7v_516`,confirmCard:`_confirmCard_pyr7v_522`,confirmRow:`_confirmRow_pyr7v_532`,confirmLabel:`_confirmLabel_pyr7v_540`,confirmVal:`_confirmVal_pyr7v_548`,confirmAttendeeBadge:`_confirmAttendeeBadge_pyr7v_554`,avatarTiny:`_avatarTiny_pyr7v_567`,wizardFooter:`_wizardFooter_pyr7v_580`,wizardBackBtn:`_wizardBackBtn_pyr7v_589`,wizardNextBtn:`_wizardNextBtn_pyr7v_609`,selectedStatusAlert:`_selectedStatusAlert_pyr7v_634`,successContainer:`_successContainer_pyr7v_647`,successHeader:`_successHeader_pyr7v_659`,successTitle:`_successTitle_pyr7v_667`,successSub:`_successSub_pyr7v_674`,successCard:`_successCard_pyr7v_680`,successRow:`_successRow_pyr7v_694`,successLabel:`_successLabel_pyr7v_707`,successVal:`_successVal_pyr7v_716`,successActions:`_successActions_pyr7v_725`,successBtn:`_successBtn_pyr7v_733`,successBtnPrimary:`_successBtnPrimary_pyr7v_743`,successBtnSecondary:`_successBtnSecondary_pyr7v_752`},C9={titleVal:`_titleVal_195yt_3`,inlineIcon:`_inlineIcon_195yt_8`,agendaVal:`_agendaVal_195yt_13`,lastRow:`_lastRow_195yt_17`,guestList:`_guestList_195yt_21`},MUt=({d:e})=>{let t=e.selectedContactIds.map(t=>e.list.find(e=>e.id===t)),n=e.groupTitle.trim()===``?`Group Meeting`:e.groupTitle,r=e.selectedSlot?v9(e.selectedSlot.startUtc,e.selectedSlot.endUtc,e.tzId):`No time selected`,i=e.selectedSlot?cUt(e.selectedSlot.startUtc,e.tzId):e.dateLabel;return(0,D.jsxs)(`div`,{className:S9.wizardConfirmContainer,children:[(0,D.jsx)(`h3`,{className:S9.confirmHeading,children:`Review group meeting`}),(0,D.jsx)(`p`,{className:S9.confirmSub,children:`Ensure everything is correct before sending invitations.`}),(0,D.jsxs)(`div`,{className:S9.confirmCard,children:[(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Title`}),(0,D.jsx)(`span`,{className:E(S9.confirmVal,C9.titleVal),children:n})]}),(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:S9.confirmVal,children:[i,` @ `,r,` (`,e.zone.offset,`)`]})]}),(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Location`}),(0,D.jsxs)(`span`,{className:S9.confirmVal,children:[(0,D.jsx)(fn,{size:13,className:C9.inlineIcon}),e.groupLocation]})]}),e.groupDescription.trim()&&(0,D.jsxs)(`div`,{className:S9.confirmRow,children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:E(S9.confirmVal,C9.agendaVal),children:e.groupDescription})]}),(0,D.jsxs)(`div`,{className:E(S9.confirmRow,C9.lastRow),children:[(0,D.jsx)(`span`,{className:S9.confirmLabel,children:`Invited Guests`}),(0,D.jsx)(`div`,{className:E(S9.confirmVal,C9.guestList),children:t.map(e=>e===void 0?null:(0,D.jsxs)(`span`,{className:S9.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:S9.avatarTiny,style:{backgroundColor:e.color},children:e.initials}),e.name]},e.id))})]})]})]})},w9={wizardDetailsForm:`_wizardDetailsForm_79bfd_3`,detailsHeading:`_detailsHeading_79bfd_11`,detailsSub:`_detailsSub_79bfd_18`,formGroup:`_formGroup_79bfd_24`,formLabel:`_formLabel_79bfd_28`,formInput:`_formInput_79bfd_37`,formTextarea:`_formTextarea_79bfd_54`},NUt=({d:e})=>(0,D.jsxs)(`div`,{className:w9.wizardDetailsForm,children:[(0,D.jsx)(`h3`,{className:w9.detailsHeading,children:`Meeting details`}),(0,D.jsx)(`p`,{className:w9.detailsSub,children:`Add context to the invite so attendees know what to expect.`}),(0,D.jsxs)(`div`,{className:w9.formGroup,children:[(0,D.jsx)(`label`,{className:w9.formLabel,children:`MEETING TITLE *`}),(0,D.jsx)(`input`,{type:`text`,className:w9.formInput,placeholder:`e.g. Weekly Admissions Alignment`,value:e.groupTitle,onChange:t=>{e.setGroupTitle(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:w9.formGroup,children:[(0,D.jsx)(`label`,{className:w9.formLabel,children:`LOCATION / TYPE *`}),(0,D.jsx)(`input`,{type:`text`,className:w9.formInput,placeholder:`e.g. Google Meet, Room 402`,value:e.groupLocation,onChange:t=>{e.setGroupLocation(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:w9.formGroup,children:[(0,D.jsx)(`label`,{className:w9.formLabel,children:`AGENDA / DESCRIPTION`}),(0,D.jsx)(`textarea`,{className:w9.formTextarea,rows:5,placeholder:`What will you cover in this meeting? (optional)`,value:e.groupDescription,onChange:t=>{e.setGroupDescription(t.target.value)}})]})]}),PUt={searchWrap:`_searchWrap_3i51q_3`,contactMeta:`_contactMeta_3i51q_7`,selectedMeta:`_selectedMeta_3i51q_13`},FUt=({d:e,isSelected:t,onToggle:n})=>(0,D.jsxs)(`div`,{className:S9.wizardPanelLeft,children:[(0,D.jsxs)(`div`,{className:PUt.searchWrap,children:[(0,D.jsx)(`h3`,{className:S9.panelHeading,children:`Add participants`}),(0,D.jsx)(`input`,{type:`text`,className:S9.wizardSearch,placeholder:`Search by name, role or department...`,value:e.search,onChange:t=>{e.setSearch(t.target.value)}})]}),(0,D.jsx)(`div`,{className:S9.wizardList,children:e.searchResults.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:E(S9.wizardListBtn,t(e.id)&&S9.wizardListBtnActive),onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:S9.avatar,style:{backgroundColor:e.color},children:e.initials}),(0,D.jsxs)(`div`,{className:PUt.contactMeta,children:[(0,D.jsx)(`div`,{className:S9.contactName,children:e.name}),(0,D.jsx)(`div`,{className:S9.contactRole,children:e.role})]}),(0,D.jsx)(`div`,{className:E(S9.checkbox,t(e.id)&&S9.checkboxActive),children:t(e.id)&&(0,D.jsx)(Bt,{size:10,strokeWidth:3})})]},e.id))})]}),IUt=({d:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:S9.wizardPanelRight,children:[(0,D.jsxs)(`div`,{className:S9.panelHeader,children:[(0,D.jsx)(`span`,{children:`SELECTED`}),(0,D.jsxs)(`span`,{className:S9.badge,children:[String(e.selectedContactIds.length),` guests`]})]}),(0,D.jsx)(`div`,{className:S9.selectedGrid,children:(0,D.jsx)(Uu,{initial:!1,children:e.selectedContactIds.length===0?(0,D.jsxs)(Zu.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:S9.selectedEmpty,children:[(0,D.jsx)(Wn,{size:22,className:S9.selectedEmptyIcon}),(0,D.jsx)(`span`,{children:`Select people on the left to add them to the meeting.`})]},`empty`):e.selectedContactIds.map(n=>{let r=e.list.find(e=>e.id===n);return r===void 0?null:(0,D.jsxs)(Zu.div,{layout:!0,initial:{opacity:0,y:10,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,scale:.9,x:20},transition:{type:`spring`,stiffness:300,damping:25},className:S9.selectedItemCard,children:[(0,D.jsx)(`span`,{className:S9.avatarSmall,style:{backgroundColor:r.color},children:r.initials}),(0,D.jsxs)(`div`,{className:PUt.selectedMeta,children:[(0,D.jsx)(`div`,{className:S9.cardName,children:r.name}),(0,D.jsx)(`div`,{className:S9.cardRole,children:r.role})]}),(0,D.jsx)(`button`,{type:`button`,className:S9.removeBtn,onClick:()=>{t(n)},children:(0,D.jsx)(Vn,{size:13})})]},n)})})})]}),LUt=({d:e})=>{let t=t=>e.selectedContactIds.includes(t),n=n=>{t(n)?e.setSelectedContactIds(e.selectedContactIds.filter(e=>e!==n)):e.setSelectedContactIds([...e.selectedContactIds,n])};return(0,D.jsxs)(`div`,{className:S9.wizardRow,children:[(0,D.jsx)(FUt,{d:e,isSelected:t,onToggle:n}),(0,D.jsx)(IUt,{d:e,onToggle:n})]})},T9={timelineContainer:`_timelineContainer_11xrs_3`,timelineHeaderRow:`_timelineHeaderRow_11xrs_18`,timelineTimeCell:`_timelineTimeCell_11xrs_27`,timelineHeaderCell:`_timelineHeaderCell_11xrs_38`,timelineBody:`_timelineBody_11xrs_52`,timelineRow:`_timelineRow_11xrs_57`,timelineTimeCellActive:`_timelineTimeCellActive_11xrs_75`,timelineCell:`_timelineCell_11xrs_81`,cellAvail:`_cellAvail_11xrs_90`,cellBusy:`_cellBusy_11xrs_94`,cellOoh:`_cellOoh_11xrs_98`,cellSelected:`_cellSelected_11xrs_109`,gridTooltip:`_gridTooltip_11xrs_114`},RUt=30,zUt=(e,t,n)=>{let r=eh(t,e.start,n);return{startUtc:r,endUtc:new Date(new Date(r).getTime()+RUt*6e4).toISOString()}},BUt=(e,t,n)=>{let r=new Date(new Date(n.startUtc).getTime()+e.groupDuration*6e4).toISOString();e.pickSlot({label:t,startUtc:n.startUtc,endUtc:r,conflicts:[]})},VUt=({id:e,d:t,rowInstants:n,serverBusy:r,selfBounds:i,allBlocks:a})=>{let o=r.get(e);return o===void 0?t.selected===null?`ooh`:oRt({userId:e,selfUserId:t.viewer.id,slotStart:new Date(n.startUtc),slotEnd:new Date(n.endUtc),allBlocks:a,rangeStart:i.rangeStart,rangeEnd:i.rangeEnd,workWindows:i.workWindows}):rUt(n.startUtc,n.endUtc,o.busy)?`busy`:o.workingHours.length>0&&!iUt(n.startUtc,n.endUtc,o.workingHours)?`ooh`:`available`},HUt=({id:e,slotItem:t,d:n,allBlocks:r,serverBusy:i,rowInstants:a,selfBounds:o,isSelected:s,hoverCell:c,setHoverCell:l})=>{let u=VUt({id:e,d:n,rowInstants:a,serverBusy:i,selfBounds:o,allBlocks:r}),d=c!==null&&c.userId===e&&c.slotLabel===t.label;return(0,D.jsx)(`div`,{className:E(T9.timelineCell,u===`available`&&T9.cellAvail,u===`busy`&&T9.cellBusy,u===`ooh`&&T9.cellOoh,s&&T9.cellSelected),onClick:()=>{BUt(n,t.label,a)},onMouseEnter:()=>{l({userId:e,slotLabel:t.label})},onMouseLeave:()=>{l(null)},children:d&&(0,D.jsxs)(`div`,{className:T9.gridTooltip,children:[(0,D.jsx)(`strong`,{children:uUt(e,n.list,n.viewer)}),` ·`,` `,u.toUpperCase()]})})},UUt=({slotItem:e,d:t,activeAttendees:n,allBlocks:r,serverBusy:i,isoDate:a,displayZone:o,selfBounds:s,hoverCell:c,setHoverCell:l})=>{let u=t.slot===e.label,d=zUt(e,a,o),f=th.from({pick:o}).formatTime(d.startUtc);return(0,D.jsxs)(`div`,{className:T9.timelineRow,children:[(0,D.jsx)(`button`,{type:`button`,className:E(T9.timelineTimeCell,u&&T9.timelineTimeCellActive),onClick:()=>{BUt(t,e.label,d)},children:f}),n.map(n=>(0,D.jsx)(HUt,{id:n,slotItem:e,d:t,allBlocks:r,serverBusy:i,rowInstants:d,selfBounds:s,isSelected:u,hoverCell:c,setHoverCell:l},n+`-`+e.label))]})},WUt=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>{let s=e.tzId,c=fUt(i,s,e.hostDayWindow),l=aUt(pUt(t,r,n,c));return(0,D.jsxs)(`div`,{className:T9.timelineContainer,children:[(0,D.jsxs)(`div`,{className:T9.timelineHeaderRow,children:[(0,D.jsx)(`div`,{className:T9.timelineTimeCell}),t.map(t=>(0,D.jsx)(`div`,{className:T9.timelineHeaderCell,children:uUt(t,e.list,e.viewer)},t))]}),(0,D.jsx)(`div`,{className:T9.timelineBody,children:l.map(l=>(0,D.jsx)(UUt,{slotItem:l,d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,displayZone:s,selfBounds:c,hoverCell:a,setHoverCell:o},l.label))})]})},GUt={header:`_header_1afpk_3`,slotNote:`_slotNote_1afpk_7`,cardMeta:`_cardMeta_1afpk_12`},KUt=({userId:e,selfUserId:t,startStr:n,endStr:r,anchorTzId:i,isoDate:a,allBlocks:o,dayWindow:s})=>{let c=s?.active?s.slots.map(e=>({start:new Date(eh(a,e.from,i)),end:new Date(eh(a,e.to,i))})):[],l=new Date(eh(a,`00:00`,i)),u=new Date(l.getTime()+1440*60*1e3);return oRt({userId:e,selfUserId:t,slotStart:new Date(eh(a,n,i)),slotEnd:new Date(eh(a,r,i)),allBlocks:o,rangeStart:l,rangeEnd:u,workWindows:c})},qUt=(e,t,n)=>{let{id:r,d:i,allBlocks:a,serverBusy:o,anchorTzId:s,isoDate:c}=e,l=i.hostDayWindow;if(i.selected===null||l===null)return`available`;let u=o.get(r);if(u!==void 0){let e=eh(c,t,s),r=eh(c,n,s);return rUt(e,r,u.busy)?`busy`:u.workingHours.length>0&&!iUt(e,r,u.workingHours)?`ooh`:`available`}return KUt({userId:r,selfUserId:i.viewer.id,startStr:t,endStr:n,anchorTzId:s,isoDate:c,allBlocks:a,dayWindow:l})},JUt=e=>{let{id:t,d:n,curSlot:r}=e,i=dUt(t,n.list,n.viewer),[a,o]=r?r.split(` – `):[null,null],s=a&&o?qUt(e,a,o):`available`;return(0,D.jsxs)(`div`,{className:S9.attendeeStatusItem,children:[(0,D.jsx)(`span`,{className:S9.avatarSmall,style:{backgroundColor:i.color},children:i.initials}),(0,D.jsxs)(`div`,{className:GUt.cardMeta,children:[(0,D.jsx)(`div`,{className:S9.cardName,children:i.name}),(0,D.jsx)(`div`,{className:S9.cardRole,children:i.role})]}),(0,D.jsx)(`span`,{className:E(S9.statusIndicator,s===`available`&&S9.statusIndicatorAvail,s===`busy`&&S9.statusIndicatorBusy,s===`ooh`&&S9.statusIndicatorOoh)})]})},YUt=({d:e,activeAttendees:t,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o})=>(0,D.jsxs)(`div`,{className:E(S9.wizardPanelLeft,S9.timePanelLeft),children:[(0,D.jsxs)(`div`,{className:GUt.header,children:[(0,D.jsx)(`h3`,{className:S9.panelHeading,children:`Attendees Availability`}),(0,D.jsxs)(`span`,{className:GUt.slotNote,children:[`For selected slot: `,n??`None`]})]}),(0,D.jsx)(`div`,{className:S9.wizardList,children:t.map(t=>(0,D.jsx)(JUt,{id:t,d:e,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o},t))})]}),E9={toolbarGroup:`_toolbarGroup_1hpun_3`,toolbarLabel:`_toolbarLabel_1hpun_9`,suggestedHeader:`_suggestedHeader_1hpun_15`,suggestedTitle:`_suggestedTitle_1hpun_22`,freeBadge:`_freeBadge_1hpun_29`,slotTime:`_slotTime_1hpun_34`,noSlots:`_noSlots_1hpun_40`,emptyIcon:`_emptyIcon_1hpun_46`},XUt=({suggestedOptions:e,slot:t,activeAttendeesCount:n,setSlot:r,tzId:i})=>(0,D.jsxs)(`div`,{className:S9.suggestedRow,children:[e.map(e=>{let a=t===e.label,o=n-e.conflicts.length,s=v9(e.startUtc,e.endUtc,i);return(0,D.jsxs)(`button`,{type:`button`,className:E(S9.suggestedCard,a&&S9.suggestedCardActive,e.conflicts.length===0&&S9.suggestedCardFree),onClick:()=>{r(e.label)},children:[(0,D.jsx)(`div`,{className:E9.freeBadge,children:e.conflicts.length===0?`ALL FREE`:`${String(o)}/${String(n)} FREE`}),(0,D.jsx)(`div`,{className:E9.slotTime,children:s})]},e.label)}),e.length===0&&(0,D.jsx)(`div`,{className:E9.noSlots,children:`No suggested slots found.`})]}),ZUt=({d:e})=>(0,D.jsxs)(`div`,{className:S9.gridToolbar,children:[(0,D.jsxs)(`div`,{className:E9.toolbarGroup,children:[(0,D.jsx)(Lt,{size:14,color:`var(--color-primary)`}),(0,D.jsx)(`input`,{type:`date`,className:S9.datePickerInput,value:e.selected?e.selected.toISOString().substring(0,10):``,onChange:t=>{t.target.value&&e.pickDate(new Date(t.target.value))}})]}),(0,D.jsxs)(`div`,{className:E9.toolbarGroup,children:[(0,D.jsx)(`span`,{className:E9.toolbarLabel,children:`DURATION`}),(0,D.jsx)(`div`,{className:S9.durationSelector,children:[30,60,90,120].map(t=>(0,D.jsx)(`button`,{type:`button`,className:E(S9.durBtn,e.groupDuration===t&&S9.durBtnActive),onClick:()=>{e.setGroupDuration(t)},children:t<60?`${String(t)}m`:`${String(t/60)}h`},t))})]}),(0,D.jsxs)(`div`,{className:S9.legend,children:[(0,D.jsxs)(`span`,{className:S9.legendItem,children:[(0,D.jsx)(`span`,{className:S9.dotAvail}),` Free`]}),(0,D.jsxs)(`span`,{className:S9.legendItem,children:[(0,D.jsx)(`span`,{className:S9.dotBusy}),` Busy`]}),(0,D.jsxs)(`span`,{className:S9.legendItem,children:[(0,D.jsx)(`span`,{className:S9.dotOoh}),` Out of hours`]})]})]}),QUt=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>e.selected===null?(0,D.jsxs)(`div`,{className:S9.gridEmpty,children:[(0,D.jsx)(Jt,{size:28,className:E9.emptyIcon}),(0,D.jsx)(`span`,{children:`Select a date above to display the availability grid.`})]}):(0,D.jsx)(WUt,{d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o}),$Ut=e=>{let t=qm().data??[],n=nh().anchor,r=e.selected===null?null:oUt(e.selected,e.today),i=RRt(e.selectedContactIds,r);return{allBlocks:t,anchorTzId:n,isoDate:r,serverBusy:(0,y.useMemo)(()=>{let e=new Map;for(let t of i.data??[])e.set(t.userId,{busy:t.busy,workingHours:t.workingHours});return e},[i.data]),activeAttendees:e.viewer.id===``?[...e.selectedContactIds]:[e.viewer.id,...e.selectedContactIds],curSlot:e.slot}},eWt=({d:e})=>{let{allBlocks:t,anchorTzId:n,isoDate:r,serverBusy:i,activeAttendees:a,curSlot:o}=$Ut(e),[s,c]=(0,y.useState)(null);return(0,D.jsxs)(`div`,{className:S9.wizardRow,children:[(0,D.jsx)(YUt,{d:e,activeAttendees:a,curSlot:o,allBlocks:t,serverBusy:i,anchorTzId:n,isoDate:r??``}),(0,D.jsxs)(`div`,{className:E(S9.wizardPanelRight,S9.timePanelRight),children:[(0,D.jsx)(ZUt,{d:e}),(0,D.jsxs)(`div`,{className:S9.suggestedStrip,children:[(0,D.jsxs)(`div`,{className:E9.suggestedHeader,children:[(0,D.jsx)(Ln,{size:12,color:`var(--color-secondary)`}),(0,D.jsx)(`span`,{className:E9.suggestedTitle,children:`SUGGESTED TIMESLOTS`})]}),(0,D.jsx)(XUt,{suggestedOptions:e.availableSlots.slice(0,4),slot:e.slot,activeAttendeesCount:a.length,setSlot:e.setSlot,tzId:e.tzId})]}),(0,D.jsx)(QUt,{d:e,activeAttendees:a,allBlocks:t,serverBusy:i,isoDate:r??``,hoverCell:s,setHoverCell:c})]})]})},tWt=()=>{let[e,t]=(0,y.useState)(`participants`),[n,r]=(0,y.useState)(30),[i,a]=(0,y.useState)(`Online Meeting`),[o,s]=(0,y.useState)(``);return{groupStep:e,groupDuration:n,groupLocation:i,groupDescription:o,setGroupStep:t,setGroupDuration:r,setGroupLocation:a,setGroupDescription:s,resetGroupWizardState:()=>{t(`participants`),r(30),a(`Online Meeting`),s(``)}}},nWt=(e,t,n,r)=>{let i=e.s.meetingType===`group`;return{contactId:i?e.s.selectedContactIds[0]??``:e.s.contactId??``,dateLabel:bUt(t),slot:n,title:i?e.s.groupTitle||`Group Meeting`:void 0,isGroup:i,attendeeIds:i?e.s.selectedContactIds:void 0,location:i?e.gw.groupLocation:void 0,description:i?e.gw.groupDescription:void 0,isoDate:oUt(t,e.today),startUtc:r?.startUtc,endUtc:r?.endUtc}},rWt=e=>e.s.pickedSlot??(e.s.slot===null?null:e.availableSlots.find(t=>t.label===e.s.slot)??null),iWt=e=>()=>{if(e.s.slot===null||e.s.selected===null)return;let t=rWt(e);e.book.mutate(nWt(e,e.s.selected,e.s.slot,t),{onSuccess:()=>{e.s.setBookedSlot(t),e.s.setSlot(null),e.s.setPickedSlot(null),e.s.setConfirmOpen(!1)},onError:e=>{Nf.error(e.message)}})},aWt=e=>({setMeetingType:t=>{e.s.setMeetingType(t),t===`group`&&e.resetGroupWizard()},setContactId:t=>{e.s.setContactId(t),e.s.setSlot(null),e.s.setPickedSlot(null)},setSelectedContactIds:t=>{e.s.setSelectedContactIds(t),e.s.setSlot(null),e.s.setPickedSlot(null)},setGroupTitle:e.s.setGroupTitle,setSearch:e.s.setSearch,setTzId:e.setTzId,setSlot:t=>{e.s.setSlot(t),e.s.setPickedSlot(null)},pickSlot:t=>{e.s.setSlot(t.label),e.s.setPickedSlot(t)},setConfirmOpen:e.s.setConfirmOpen,shift:t=>{e.s.setView(e=>({year:e.year+Math.floor((e.month+t)/12),month:((e.month+t)%12+12)%12}))},pickDate:t=>{e.s.setSelected(t),e.s.setSlot(null),e.s.setPickedSlot(null)},setGroupStep:e.gw.setGroupStep,setGroupDuration:e.gw.setGroupDuration,setGroupLocation:e.gw.setGroupLocation,setGroupDescription:e.gw.setGroupDescription,resetGroupWizard:e.resetGroupWizard,reset:e.reset,confirm:iWt(e)}),oWt=e=>{let t=aWt(e);return{today:e.today,viewer:e.viewer,meetingType:e.s.meetingType,contactId:e.s.contactId,selectedContactIds:e.s.selectedContactIds,groupTitle:e.s.groupTitle,search:e.s.search,tzId:e.tzId,view:e.s.view,selected:e.s.selected,slot:e.s.slot,selectedSlot:rWt(e),bookedSlot:e.s.bookedSlot,confirmOpen:e.s.confirmOpen,list:e.list,searchResults:e.searchResults,contact:e.contact,dateLabel:e.s.selected===null?``:bUt(e.s.selected),zone:eRt(e.tzId),canBook:(e.s.meetingType===`1:1`?e.s.contactId!==null:e.s.selectedContactIds.length>0)&&e.s.selected!==null&&e.s.slot!==null&&!e.book.isPending,pending:e.book.isPending,success:e.book.isSuccess,availableSlots:e.availableSlots,hostDayWindow:e.hostDayWindow,groupStep:e.gw.groupStep,groupDuration:e.gw.groupDuration,groupLocation:e.gw.groupLocation,groupDescription:e.gw.groupDescription,...t}},sWt=(e,t)=>{let[n,r]=(0,y.useState)(e);return(0,y.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>{clearTimeout(n)}},[e,t]),n},cWt=e=>`${String(e.getFullYear())}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,lWt=e=>{let t=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],n={};for(let r of t)n[r]={active:e[r].active,slots:e[r].active?[{id:r+`-default`,from:e[r].from,to:e[r].to}]:[]};return n},uWt=(e,t)=>e.selected===null?null:e.meetingType===`group`?e.selectedContactIds.length===0?null:{isoDate:cWt(e.selected),timeZone:t,isGroup:!0,contactId:void 0,attendeeIds:[...e.selectedContactIds].sort()}:e.contactId===null?null:{isoDate:cWt(e.selected),timeZone:t,isGroup:!1,contactId:e.contactId,attendeeIds:void 0},dWt=e=>{let[t,n]=(0,y.useState)(`1:1`),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)([]),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)({year:e.getFullYear(),month:e.getMonth()}),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1);return{meetingType:t,setMeetingType:n,contactId:r,setContactId:i,selectedContactIds:a,setSelectedContactIds:o,groupTitle:s,setGroupTitle:c,search:l,setSearch:u,tzId:d,setTzIdState:f,view:p,setView:m,selected:h,setSelected:g,slot:_,setSlot:v,pickedSlot:b,setPickedSlot:x,bookedSlot:S,setBookedSlot:C,confirmOpen:w,setConfirmOpen:T}},fWt=()=>{let e=zRt(),t=nUt(),n=new Date,r=tWt(),i=dWt(n),a=sWt(i.search,250),o=FRt(),s=FRt(a),c=Ym(),l=fve(),u=Ah(),d=o.data??[],f=d,p=s.data??[],m=d.find(e=>e.id===i.contactId)??null,h=c.data??{meetingDuration:r.groupDuration,bufferMinutes:5,workStart:`09:00`,workEnd:`17:00`,timezone:`Europe/London`,branchId:`uk`,availabilityTimezone:`Europe/London`},g=th.from({pick:i.tzId,personal:h.timezone,anchor:h.availabilityTimezone}).display,_=u.data?lWt(Ibe(u.data,h.branchId)):null,v=Ome(l.data??null,_),y=i.selected===null?null:kme(v,i.selected);return oWt({today:n,viewer:t,s:i,gw:r,book:e,list:f,searchResults:p,contact:m,availableSlots:LRt(uWt(i,g)).data??[],hostDayWindow:y,tzId:g,setTzId:e=>{i.setTzIdState(e)},resetGroupWizard:()=>{r.resetGroupWizardState(),i.setSelectedContactIds([]),i.setGroupTitle(``),i.setSlot(null),i.setPickedSlot(null),i.setSelected(null)},reset:()=>{e.reset(),i.setContactId(null),i.setSelectedContactIds([]),i.setGroupTitle(``),i.setSlot(null),i.setPickedSlot(null),i.setBookedSlot(null),i.setSelected(null),r.resetGroupWizardState()}})},pWt={wizardContentClip:`_wizardContentClip_14i7n_3`,wizardStep:`_wizardStep_14i7n_8`},mWt=({currentStep:e})=>{let t=[{id:`participants`,label:`Participants`},{id:`time`,label:`Find a time`},{id:`details`,label:`Details`},{id:`confirm`,label:`Confirm`}],n=(e=>t.findIndex(t=>t.id===e))(e);return(0,D.jsx)(`div`,{className:S9.stepper,children:t.map((e,t)=>{let r=t<n,i=t===n;return(0,D.jsxs)(y.Fragment,{children:[t>0&&(0,D.jsx)(`div`,{className:E(S9.stepLine,t<=n&&S9.stepLineActive)}),(0,D.jsxs)(`div`,{className:S9.stepItem,children:[(0,D.jsx)(`div`,{className:E(S9.stepCircle,i&&S9.stepCircleActive,r&&S9.stepCircleDone),children:r?(0,D.jsx)(Bt,{size:12,strokeWidth:3}):t+1}),(0,D.jsx)(`span`,{className:E(S9.stepText,i&&S9.stepTextActive),children:e.label})]})]},e.id)})})},hWt=e=>e===`participants`?`time`:e===`time`?`details`:e===`details`?`confirm`:null,gWt=e=>e===`time`?`participants`:e===`details`?`time`:e===`confirm`?`details`:null,_Wt=({step:e,selectedContactIds:t,slot:n,title:r,location:i,pending:a})=>e===`participants`?t.length===0:e===`time`?n===null:e===`details`?r.trim()===``||i.trim()===``:a,vWt=e=>e===`participants`?`Next: Find a time`:e===`time`?`Next: Details`:e===`details`?`Next: Confirm`:`Confirm Booking`,yWt=({d:e})=>{let t=()=>{let t=gWt(e.groupStep);t?e.setGroupStep(t):e.setMeetingType(`1:1`)},n=()=>{let t=hWt(e.groupStep);t?e.setGroupStep(t):e.confirm()},r=_Wt({step:e.groupStep,selectedContactIds:e.selectedContactIds,slot:e.slot,title:e.groupTitle,location:e.groupLocation,pending:e.pending}),i=vWt(e.groupStep);return(0,D.jsxs)(`div`,{className:S9.wizardContainer,children:[(0,D.jsx)(mWt,{currentStep:e.groupStep}),(0,D.jsx)(`div`,{className:E(S9.wizardContent,pWt.wizardContentClip),children:(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsxs)(Zu.div,{initial:{opacity:0,x:15},animate:{opacity:1,x:0},exit:{opacity:0,x:-15},transition:{duration:.18,ease:`easeInOut`},className:pWt.wizardStep,children:[e.groupStep===`participants`&&(0,D.jsx)(LUt,{d:e}),e.groupStep===`time`&&(0,D.jsx)(eWt,{d:e}),e.groupStep===`details`&&(0,D.jsx)(NUt,{d:e}),e.groupStep===`confirm`&&(0,D.jsx)(MUt,{d:e})]},e.groupStep)})}),(0,D.jsxs)(`div`,{className:S9.wizardFooter,children:[(0,D.jsxs)(`button`,{type:`button`,className:S9.wizardBackBtn,onClick:t,disabled:e.pending,children:[(0,D.jsx)(Ht,{size:16}),` Back`]}),e.groupStep===`time`&&e.slot&&(0,D.jsxs)(`div`,{className:S9.selectedStatusAlert,children:[(0,D.jsx)(Gt,{size:14,color:`var(--color-primary)`}),(0,D.jsxs)(`span`,{children:[`Selected: `,e.slot]})]}),(0,D.jsxs)(`button`,{type:`button`,className:S9.wizardNextBtn,disabled:r||e.pending,onClick:n,children:[e.pending?`Booking...`:i,!e.pending&&(0,D.jsx)(Ut,{size:16})]})]})]})},D9={slotsDate:`_slotsDate_1rdif_3`,slotsEmpty:`_slotsEmpty_1rdif_10`,slotsEmptyIcon:`_slotsEmptyIcon_1rdif_24`,slotsEmptyTitle:`_slotsEmptyTitle_1rdif_36`,slotList:`_slotList_1rdif_42`,slot:`_slot_1rdif_3`,slotActive:`_slotActive_1rdif_86`,slotWithConflicts:`_slotWithConflicts_1rdif_102`,slotMain:`_slotMain_1rdif_113`,slotConflictList:`_slotConflictList_1rdif_120`,conflictLabel:`_conflictLabel_1rdif_131`,conflictAvatar:`_conflictAvatar_1rdif_136`,noSlots:`_noSlots_1rdif_162`},bWt={hidden:{},visible:{transition:{staggerChildren:.03}}},xWt=`You're not available at this time — you can still book.`,SWt=({option:e,isSelected:t,onSlot:n,contactsList:r,viewer:i,tzId:a})=>{let o=v9(e.startUtc,e.endUtc,a),s=e.conflicts.length>0,c=e.conflicts.includes(i.id);return(0,D.jsxs)(Zu.button,{type:`button`,variants:ad,whileTap:{scale:.97},className:E(D9.slot,t&&D9.slotActive,s&&!t&&D9.slotWithConflicts),title:c?xWt:void 0,onClick:()=>{n(e.label)},children:[(0,D.jsxs)(`div`,{className:D9.slotMain,children:[(0,D.jsx)(`span`,{children:o}),t&&(0,D.jsx)(Bt,{size:14,strokeWidth:3})]}),s&&(0,D.jsxs)(`div`,{className:D9.slotConflictList,children:[(0,D.jsx)(`span`,{className:D9.conflictLabel,children:c?`You're busy —`:`Conflict:`}),e.conflicts.map(e=>{let t=e===i.id,n=r.find(t=>t.id===e);return(0,D.jsx)(`span`,{className:D9.conflictAvatar,title:t?xWt:`${n?.name??``} is busy / unavailable`,children:t?i.initials||`YOU`:n?.initials??``},e)})]})]})},CWt=({dateLabel:e,slot:t,offset:n,onSlot:r,slots:i,contactsList:a,viewer:o,tzId:s})=>(0,D.jsxs)(`div`,{className:b9.col,children:[(0,D.jsxs)(`div`,{className:b9.colTitle,children:[(0,D.jsx)(`span`,{className:b9.stepDot,children:`3`}),` Available times`]}),e===``?(0,D.jsxs)(`div`,{className:D9.slotsEmpty,children:[(0,D.jsx)(`span`,{className:D9.slotsEmptyIcon,children:(0,D.jsx)(Jt,{size:28})}),(0,D.jsx)(`span`,{className:D9.slotsEmptyTitle,children:`Pick a date`}),(0,D.jsx)(`span`,{children:`Choose a day to see open times.`})]}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:D9.slotsDate,children:[e,` · times in `,n]}),(0,D.jsxs)(Zu.div,{className:D9.slotList,variants:bWt,initial:`hidden`,animate:`visible`,children:[i.map(e=>(0,D.jsx)(SWt,{option:e,isSelected:t===e.label,onSlot:r,contactsList:a,viewer:o,tzId:s},e.label)),i.length===0&&(0,D.jsx)(`div`,{className:D9.noSlots,children:`No available timeslots found for this day.`})]})]})]}),O9={tzWrap:`_tzWrap_n6w9w_3`,tzBtn:`_tzBtn_n6w9w_8`,tzBtnOffset:`_tzBtnOffset_n6w9w_30`,tzChevron:`_tzChevron_n6w9w_36`,tzBackdrop:`_tzBackdrop_n6w9w_40`,tzPop:`_tzPop_n6w9w_49`,tzSearch:`_tzSearch_n6w9w_62`,tzSearchInput:`_tzSearchInput_n6w9w_74`,tzList:`_tzList_n6w9w_84`,tzRow:`_tzRow_n6w9w_119`,tzRowActive:`_tzRowActive_n6w9w_138`,tzCity:`_tzCity_n6w9w_142`,tzRowOffset:`_tzRowOffset_n6w9w_151`,tzCheck:`_tzCheck_n6w9w_157`,tzEmpty:`_tzEmpty_n6w9w_161`},wWt=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(Zu.div,{className:O9.tzPop,variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:O9.tzSearch,children:[(0,D.jsx)(Mn,{size:13}),(0,D.jsx)(`input`,{className:O9.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:O9.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:E(O9.tzRow,e.id===n&&O9.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:O9.tzCity,children:e.city}),(0,D.jsx)(`span`,{className:O9.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Bt,{size:13,className:O9.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:O9.tzEmpty,children:`No timezones match.`})]})]}),TWt=({value:e,onChange:t})=>{let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(``),o=eRt(e),s=i.trim().toLowerCase(),c=(t9.some(e=>e.id===o.id)?t9:[o,...t9]).filter(e=>s===``||e.city.toLowerCase().includes(s)||e.offset.toLowerCase().includes(s)||e.id.toLowerCase().includes(s));return(0,D.jsxs)(`div`,{className:O9.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:O9.tzBtn,"aria-expanded":n,"aria-label":`Change timezone`,onClick:()=>{r(e=>!e)},children:[(0,D.jsx)(rn,{size:13}),(0,D.jsx)(`span`,{className:O9.tzBtnCity,children:o.city}),(0,D.jsx)(`span`,{className:O9.tzBtnOffset,children:o.offset}),(0,D.jsx)(Vt,{size:13,className:O9.tzChevron})]}),(0,D.jsx)(Uu,{children:n&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:O9.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{r(!1)}}),(0,D.jsx)(wWt,{search:i,list:c,value:e,onSearch:a,onPick:e=>{t(e),a(``),r(!1)}})]})})]})},k9={badgeWrap:`_badgeWrap_swq6w_3`,badgeCircle:`_badgeCircle_swq6w_10`,guestRow:`_guestRow_swq6w_21`,eventVal:`_eventVal_swq6w_28`,iconRow:`_iconRow_swq6w_33`,iconRowMuted:`_iconRowMuted_swq6w_39`,iconRowTop:`_iconRowTop_swq6w_47`,agendaVal:`_agendaVal_swq6w_53`,iconTop:`_iconTop_swq6w_58`},EWt=()=>(0,D.jsxs)(`div`,{className:S9.successHeader,children:[(0,D.jsx)(`div`,{className:k9.badgeWrap,children:(0,D.jsx)(Zu.div,{initial:{scale:0},animate:{scale:1},transition:{type:`spring`,stiffness:260,damping:20},className:k9.badgeCircle,children:(0,D.jsx)(Zu.div,{initial:{scale:0,rotate:-45},animate:{scale:1,rotate:0},transition:{delay:.2,type:`spring`,stiffness:200,damping:15},children:(0,D.jsx)(Bt,{size:32,color:`var(--color-success)`,strokeWidth:3})})})}),(0,D.jsx)(`h2`,{className:S9.successTitle,children:`Booking Confirmed!`}),(0,D.jsx)(`p`,{className:S9.successSub,children:`A calendar invite has been sent to all participants.`})]}),DWt=({d:e})=>{let t=e.meetingType===`group`;return(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:t?`Invited Guests`:`Attendee`}),(0,D.jsx)(`div`,{className:E(S9.successVal,k9.guestRow),children:t?e.selectedContactIds.map(t=>{let n=e.list.find(e=>e.id===t);return n===void 0?null:(0,D.jsxs)(`span`,{className:S9.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:S9.avatarTiny,style:{backgroundColor:n.color},children:n.initials}),n.name]},n.id)}):e.contact?(0,D.jsxs)(`span`,{className:S9.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:S9.avatarTiny,style:{backgroundColor:e.contact.color},children:e.contact.initials}),e.contact.name]}):`None`})]})},OWt=({d:e})=>{let t=e.meetingType===`group`,n=t?e.groupTitle||`Group Meeting`:`1:1 with ${e.contact?.name??`Attendee`}`,r=t?e.groupLocation:`Online — link generated automatically`,i=t?e.groupDescription:``,a=v9(e.bookedSlot?.startUtc,e.bookedSlot?.endUtc,e.tzId);return(0,D.jsxs)(Zu.div,{className:S9.successCard,initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{delay:.3,duration:.25,ease:`easeOut`},children:[(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Event`}),(0,D.jsx)(`span`,{className:E(S9.successVal,k9.eventVal),children:n})]}),(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:S9.successVal,children:[(0,D.jsxs)(`span`,{className:k9.iconRow,children:[(0,D.jsx)(Lt,{size:14,color:`var(--color-primary)`}),e.dateLabel]}),(0,D.jsxs)(`span`,{className:k9.iconRowMuted,children:[(0,D.jsx)(Jt,{size:14}),a,` (`,e.zone.offset,`)`]})]})]}),(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Location`}),(0,D.jsx)(`span`,{className:S9.successVal,children:(0,D.jsxs)(`span`,{className:k9.iconRow,children:[(0,D.jsx)(fn,{size:14,color:`var(--color-primary)`}),r]})})]}),(0,D.jsx)(DWt,{d:e}),t&&i.trim()!==``&&(0,D.jsxs)(`div`,{className:S9.successRow,children:[(0,D.jsx)(`span`,{className:S9.successLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:E(S9.successVal,k9.agendaVal),children:(0,D.jsxs)(`span`,{className:k9.iconRowTop,children:[(0,D.jsx)(Bn,{size:14,className:k9.iconTop}),i]})})]})]})},kWt=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:S9.successActions,children:[(0,D.jsx)(`button`,{type:`button`,className:E(S9.successBtn,S9.successBtnPrimary),onClick:()=>{t!==void 0&&t()},children:`View Scheduled Meetings`}),(0,D.jsx)(`button`,{type:`button`,className:E(S9.successBtn,S9.successBtnSecondary),onClick:()=>{e.reset()},children:`Book Another Meeting`})]}),AWt=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:S9.successContainer,children:[(0,D.jsx)(EWt,{}),(0,D.jsx)(OWt,{d:e}),(0,D.jsx)(kWt,{d:e,onViewScheduled:t})]}),jWt=({d:e})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:y9.bookGrid,children:[(0,D.jsx)(jUt,{contacts:e.searchResults,selectedId:e.contactId,search:e.search,onSearch:t=>{e.setSearch(t)},onSelect:t=>{e.setContactId(t)},mode:e.meetingType,selectedIds:e.selectedContactIds,onSelectGroup:t=>{e.setSelectedContactIds(t)},groupTitle:e.groupTitle,onGroupTitleChange:t=>{e.setGroupTitle(t)}}),(0,D.jsx)(wUt,{view:e.view,today:e.today,selected:e.selected,onShift:t=>{e.shift(t)},onPick:t=>{e.pickDate(t)}}),(0,D.jsx)(CWt,{dateLabel:e.dateLabel,slot:e.slot,offset:e.zone.offset,onSlot:t=>{e.setSlot(t)},slots:e.availableSlots,contactsList:e.list,viewer:e.viewer,tzId:e.tzId})]}),(0,D.jsx)(_Ut,{contact:e.contact,dateLabel:e.dateLabel,slot:e.slot,canBook:e.canBook,success:e.success,meetingType:e.meetingType,selectedContactIds:e.selectedContactIds,groupTitle:e.groupTitle,onBook:()=>{e.setConfirmOpen(!0)},selectedSlot:e.selectedSlot,tzId:e.tzId}),(0,D.jsx)(DUt,{open:e.confirmOpen,contact:e.contact,dateLabel:e.dateLabel,slot:e.slot,zone:e.zone,pending:e.pending,onConfirm:()=>{e.confirm()},onClose:()=>{e.setConfirmOpen(!1)},selectedSlot:e.selectedSlot,tzId:e.tzId})]}),MWt=({onViewScheduled:e})=>{let t=fWt();return t.success?(0,D.jsx)(AWt,{d:t,onViewScheduled:e}):(0,D.jsxs)(`div`,{className:y9.bookCard,children:[(0,D.jsxs)(`div`,{className:y9.bookTopBar,children:[(0,D.jsxs)(`div`,{className:y9.typeSelector,children:[(0,D.jsx)(`button`,{type:`button`,className:E(y9.typeBtn,t.meetingType===`1:1`&&y9.typeBtnActive),onClick:()=>{t.setMeetingType(`1:1`)},children:`1:1 Meeting`}),(0,D.jsx)(`button`,{type:`button`,className:E(y9.typeBtn,t.meetingType===`group`&&y9.typeBtnActive),onClick:()=>{t.setMeetingType(`group`)},children:`Group Meeting (1:Many)`})]}),(0,D.jsx)(TWt,{value:t.tzId,onChange:e=>{t.setTzId(e)}})]}),t.meetingType===`group`?(0,D.jsx)(yWt,{d:t}):(0,D.jsx)(jWt,{d:t})]})},A9={schedWrap:`_schedWrap_1p5xn_4`,bucketTabs:`_bucketTabs_1p5xn_11`,bucketTab:`_bucketTab_1p5xn_11`,bucketTabActive:`_bucketTabActive_1p5xn_38`,bucketBg:`_bucketBg_1p5xn_45`,bucketLabel:`_bucketLabel_1p5xn_53`,bucketCount:`_bucketCount_1p5xn_58`,meetingList:`_meetingList_1p5xn_76`,meeting:`_meeting_1p5xn_76`,datePlate:`_datePlate_1p5xn_101`,datePlatePassed:`_datePlatePassed_1p5xn_114`,datePlateCanceled:`_datePlateCanceled_1p5xn_118`,datePlateMonth:`_datePlateMonth_1p5xn_122`,datePlateDay:`_datePlateDay_1p5xn_129`,meetingAvatar:`_meetingAvatar_1p5xn_141`,meetingBody:`_meetingBody_1p5xn_155`,meetingTitle:`_meetingTitle_1p5xn_163`,meetingMeta:`_meetingMeta_1p5xn_169`,meetingMetaItem:`_meetingMetaItem_1p5xn_178`,meetingActions:`_meetingActions_1p5xn_184`,acceptBtn:`_acceptBtn_1p5xn_191`,joinBtn:`_joinBtn_1p5xn_192`,joinBtnDisabled:`_joinBtnDisabled_1p5xn_209`,declineBtn:`_declineBtn_1p5xn_217`,cancelBtn:`_cancelBtn_1p5xn_228`,cancelBtnDisabled:`_cancelBtnDisabled_1p5xn_239`,statusPill:`_statusPill_1p5xn_247`,statusAccepted:`_statusAccepted_1p5xn_257`,statusPending:`_statusPending_1p5xn_262`,statusRejected:`_statusRejected_1p5xn_267`,statusCanceled:`_statusCanceled_1p5xn_268`,statusCompleted:`_statusCompleted_1p5xn_273`,empty:`_empty_1p5xn_278`,emptyIconWrap:`_emptyIconWrap_1p5xn_288`,emptyTitle:`_emptyTitle_1p5xn_300`,emptyText:`_emptyText_1p5xn_307`},NWt=e=>e.isGroup?e.title===``||/^group (meeting|event)$/i.test(e.title.trim())?`Group Meeting`:`${e.title} · Group Meeting`:/^1:1\b/i.test(e.title.trim())||e.title===``?`1:1 with ${e.withName}`:e.withName===``?e.title:`${e.title} · ${e.withName}`,PWt=e=>e===`accepted`?`Accepted`:e===`rejected`?`Declined`:`Pending`,FWt=1800*1e3,IWt=e=>{let t=Math.max(1,Math.ceil(e/6e4)),n=Math.floor(t/1440);if(n>=1){let e=Math.floor((t-n*60*24)/60);return e>0?`in ${String(n)}d ${String(e)}h`:`in ${String(n)}d`}let r=Math.floor(t/60),i=t%60;return r>=1?i>0?`in ${String(r)}h ${String(i)}m`:`in ${String(r)}h`:`in ${String(i)}m`},LWt=({onRespond:e})=>(0,D.jsxs)(`div`,{className:A9.meetingActions,children:[(0,D.jsxs)(`button`,{type:`button`,className:A9.acceptBtn,onClick:()=>{e(!0)},children:[(0,D.jsx)(Bt,{size:12,strokeWidth:3}),` Accept`]}),(0,D.jsx)(`button`,{type:`button`,className:A9.declineBtn,onClick:()=>{e(!1)},children:`Decline`})]}),RWt=e=>e===`accepted`?A9.statusAccepted??!1:e===`rejected`?A9.statusRejected??!1:A9.statusPending??!1,zWt=({meeting:e,onCancel:t,onJoin:n,canJoin:r,joinHint:i})=>{let a=gzt(e=>e.activeMeeting),o=gzt(e=>e.isJoined)&&a!==null&&a.meetingId===e.id,s=e.myStatus===`accepted`,c=!r||o,l=o?`You are currently in this meeting`:i,u=o?`Leave the active call before canceling`:`Cancel meeting`;return(0,D.jsxs)(`div`,{className:A9.meetingActions,children:[(0,D.jsx)(`span`,{className:E(A9.statusPill,RWt(e.myStatus)),children:PWt(e.myStatus)}),s&&(0,D.jsx)(Of,{label:l,side:`top`,children:(0,D.jsxs)(`button`,{type:`button`,className:E(A9.joinBtn,c&&A9.joinBtnDisabled),disabled:c,"aria-label":l,onClick:n,children:[(0,D.jsx)(Gn,{size:13}),` `,o?`Joined`:`Join`]})}),e.isOrganizer&&(0,D.jsx)(Of,{label:u,side:`top`,children:(0,D.jsx)(`button`,{type:`button`,className:E(A9.cancelBtn,o&&A9.cancelBtnDisabled),disabled:o,"aria-label":u,onClick:t,children:`Cancel`})})]})},BWt=e=>{let{meeting:t,onRespond:n}=e;return t.awaitingResponse?(0,D.jsx)(LWt,{onRespond:n}):t.bucket===`canceled`?(0,D.jsx)(`span`,{className:E(A9.statusPill,A9.statusCanceled),children:`Canceled`}):t.bucket===`passed`?(0,D.jsx)(`span`,{className:E(A9.statusPill,A9.statusCompleted),children:`Completed`}):(0,D.jsx)(zWt,{...e})},VWt=(e,t)=>({month:e.toLocaleDateString(`en-US`,{month:`short`,timeZone:t}).toUpperCase(),day:e.toLocaleDateString(`en-US`,{day:`numeric`,timeZone:t})}),HWt=(e,t)=>{let[n,r]=(0,y.useState)(()=>Date.now());(0,y.useEffect)(()=>{let e=setInterval(()=>{r(Date.now())},3e4);return()=>{clearInterval(e)}},[]);let i=n>=e-FWt&&n<=t;return{canJoin:i,joinHint:i?`Join the meeting`:n>t?`This meeting has ended`:`Join opens 30 min before — starts ${IWt(e-n)}`}},UWt=e=>{let{meeting:t}=e,n=nh(),r=new Date(t.startUtc),i=new Date(t.endUtc),a=n.formatTime(t.startUtc),o=n.formatTime(t.endUtc),s=VWt(r,n.display),c=` (${eRt(n.display).offset})`,{canJoin:l,joinHint:u}=HWt(r.getTime(),i.getTime()),d=(0,y.useRef)(null),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{f.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:p}=Wse({target:d,container:f,offset:[`start end`,`end start`]}),m=id(p,[0,1],[-8,8]);return(0,D.jsxs)(Zu.article,{ref:d,style:{y:m},className:A9.meeting,variants:ad,whileHover:{y:-2},transition:{type:`spring`,stiffness:400,damping:30},children:[(0,D.jsxs)(`div`,{className:E(A9.datePlate,t.bucket===`passed`&&A9.datePlatePassed,t.bucket===`canceled`&&A9.datePlateCanceled),children:[(0,D.jsx)(`span`,{className:A9.datePlateMonth,children:s.month}),(0,D.jsx)(`span`,{className:A9.datePlateDay,children:s.day})]}),(0,D.jsx)(`span`,{className:A9.meetingAvatar,style:Xn({"--avatar-color":t.withColor}),children:t.withInitials}),(0,D.jsxs)(`div`,{className:A9.meetingBody,children:[(0,D.jsx)(`span`,{className:A9.meetingTitle,children:NWt(t)}),(0,D.jsxs)(`div`,{className:A9.meetingMeta,children:[(0,D.jsxs)(`span`,{className:A9.meetingMetaItem,children:[(0,D.jsx)(Jt,{size:11}),` `,a,`–`,o,c]}),(0,D.jsxs)(`span`,{className:A9.meetingMetaItem,children:[(0,D.jsx)(fn,{size:11}),` `,t.location]})]})]}),(0,D.jsx)(BWt,{...e,canJoin:l,joinHint:u})]})},j9={list:`_list_1vv5w_1`,meeting:`_meeting_1vv5w_7`,datePlate:`_datePlate_1vv5w_17`,pulse:`_pulse_1vv5w_1`,avatar:`_avatar_1vv5w_26`,body:`_body_1vv5w_35`,title:`_title_1vv5w_43`,meta:`_meta_1vv5w_51`,actions:`_actions_1vv5w_59`,btn:`_btn_1vv5w_66`},WWt=()=>(0,D.jsx)(`div`,{className:j9.list,children:Array.from({length:3}).map((e,t)=>(0,D.jsxs)(`div`,{className:j9.meeting,children:[(0,D.jsx)(`div`,{className:j9.datePlate}),(0,D.jsx)(`div`,{className:j9.avatar}),(0,D.jsxs)(`div`,{className:j9.body,children:[(0,D.jsx)(`div`,{className:j9.title}),(0,D.jsx)(`div`,{className:j9.meta})]}),(0,D.jsxs)(`div`,{className:j9.actions,children:[(0,D.jsx)(`div`,{className:j9.btn}),(0,D.jsx)(`div`,{className:j9.btn})]})]},`skel-${String(t)}`))}),GWt=[{id:`upcoming`,label:`Upcoming`},{id:`passed`,label:`Past`},{id:`canceled`,label:`Canceled`}],KWt={type:`spring`,stiffness:420,damping:34},qWt={hidden:{},visible:{transition:{staggerChildren:.05}}},JWt=({bucket:e,counts:t,onSelect:n})=>(0,D.jsx)(`div`,{className:A9.bucketTabs,children:GWt.map(r=>{let i=e===r.id;return(0,D.jsxs)(`button`,{type:`button`,className:E(A9.bucketTab,i&&A9.bucketTabActive),onClick:()=>{n(r.id)},children:[i&&(0,D.jsx)(Zu.span,{layoutId:`bucketBg`,className:A9.bucketBg,transition:KWt}),(0,D.jsx)(`span`,{className:A9.bucketLabel,children:r.label}),(0,D.jsx)(`span`,{className:A9.bucketCount,children:t[r.id]})]},r.id)})}),YWt=1e4,XWt=()=>{let e=qe(),t=IRt(YWt),n=BRt(),r=VRt(),[i,a]=(0,y.useState)(`upcoming`),o=t.data??[],s=t.data===void 0,c=[...o].filter(e=>e.bucket===i).sort((e,t)=>new Date(e.startUtc).getTime()-new Date(t.startUtc).getTime()),l={upcoming:o.filter(e=>e.bucket===`upcoming`).length,passed:o.filter(e=>e.bucket===`passed`).length,canceled:o.filter(e=>e.bucket===`canceled`).length};return(0,D.jsxs)(`div`,{className:A9.schedWrap,children:[(0,D.jsx)(JWt,{bucket:i,counts:l,onSelect:a}),t.isPending?(0,D.jsx)(WWt,{}):null,t.isError&&s?(0,D.jsx)(sr,{tone:`error`,title:`Could not load meetings`,children:t.error.message}):null,t.isError&&!s?(0,D.jsx)(sr,{tone:`info`,title:`Showing the last known meetings`,children:`Could not refresh just now. This will update on its own.`}):null,!s&&c.length===0?(0,D.jsxs)(`div`,{className:A9.empty,children:[(0,D.jsx)(`div`,{className:A9.emptyIconWrap,children:(0,D.jsx)(Rt,{size:32})}),(0,D.jsxs)(`span`,{className:A9.emptyTitle,children:[`No `,i,` meetings`]}),(0,D.jsx)(`span`,{className:A9.emptyText,children:`Nothing scheduled here yet.`})]}):null,!s&&c.length>0?(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(Zu.div,{className:A9.meetingList,variants:qWt,initial:`hidden`,animate:`visible`,children:c.map(t=>(0,D.jsx)(UWt,{meeting:t,onRespond:e=>{n.mutate({meetingId:t.id,accept:e})},onCancel:()=>{r.mutate(t.id)},onJoin:()=>{e(`/comms/meetings/${t.id}/room`)}},t.id))},i)}):null]})},M9={screen:`_screen_18kgg_6`,head:`_head_18kgg_13`,headTop:`_headTop_18kgg_19`,title:`_title_18kgg_27`,subtitle:`_subtitle_18kgg_35`,headBadge:`_headBadge_18kgg_41`,headBadgeNum:`_headBadgeNum_18kgg_47`,headBadgeLabel:`_headBadgeLabel_18kgg_53`,tabs:`_tabs_18kgg_59`,tab:`_tab_18kgg_59`,tabActive:`_tabActive_18kgg_84`,tabUnderline:`_tabUnderline_18kgg_90`,body:`_body_18kgg_100`,tabContent:`_tabContent_18kgg_107`},ZWt=()=>{let[e,t]=(0,y.useState)(`scheduled`),n=(IRt().data??[]).filter(e=>e.bucket===`upcoming`).length;return(0,D.jsxs)(`div`,{className:M9.screen,children:[(0,D.jsxs)(`header`,{className:M9.head,children:[(0,D.jsxs)(`div`,{className:M9.headTop,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h1`,{className:M9.title,children:`Meetings`}),(0,D.jsx)(`p`,{className:M9.subtitle,children:`Book 1:1 meetings and manage your invitations.`})]}),(0,D.jsxs)(`div`,{className:M9.headBadge,children:[(0,D.jsx)(`span`,{className:M9.headBadgeNum,children:n}),(0,D.jsx)(`span`,{className:M9.headBadgeLabel,children:`upcoming`})]})]}),(0,D.jsxs)(`div`,{className:M9.tabs,children:[(0,D.jsxs)(`button`,{type:`button`,className:E(M9.tab,e===`book`&&M9.tabActive),onClick:()=>{t(`book`)},children:[(0,D.jsx)(Lt,{size:15}),` Book a Meeting`,e===`book`&&(0,D.jsx)(Zu.span,{layoutId:`bookTabUnderline`,className:M9.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]}),(0,D.jsxs)(`button`,{type:`button`,className:E(M9.tab,e===`scheduled`&&M9.tabActive),onClick:()=>{t(`scheduled`)},children:[(0,D.jsx)(Jt,{size:15}),` Scheduled`,e===`scheduled`&&(0,D.jsx)(Zu.span,{layoutId:`bookTabUnderline`,className:M9.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]})]})]}),(0,D.jsx)(`div`,{className:M9.body,children:(0,D.jsx)(Uu,{mode:`wait`,children:(0,D.jsx)(Zu.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2,ease:`easeOut`},className:M9.tabContent,children:e===`book`?(0,D.jsx)(MWt,{onViewScheduled:()=>{t(`scheduled`)}}):(0,D.jsx)(XWt,{})},e)})})]})},QWt=()=>{let{meetingId:e}=Ze(),t=gzt(e=>e.setRequestedMeetingId);return(0,y.useEffect)(()=>{e!==void 0&&t(e)},[e,t]),(0,D.jsx)(D.Fragment,{})},$Wt=`/comms/bookings`,eGt=`/comms/meetings/:meetingId/room`,tGt=()=>(0,D.jsxs)(gt,{children:[(0,D.jsx)(mt,{path:$Wt,element:(0,D.jsx)(ZWt,{})}),(0,D.jsx)(mt,{path:eGt,element:(0,D.jsx)(QWt,{})}),(0,D.jsx)(mt,{path:`*`,element:(0,D.jsx)(pt,{to:$Wt,replace:!0})})]}),nGt=()=>{m9(`uapp-bookings`,()=>(0,D.jsx)(tGt,{}))},N9=(e,t=0)=>{let n=new Date(e);return n.setHours(0,0,0,0),n.setDate(e.getDate()-(e.getDay()+6)%7+t*7),Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),r})},rGt=(e,t)=>{let n=rp(e);return N9(e,t).map(e=>({date:e,dayNumber:e.getDate(),isToday:rp(e)===n}))},P9=(e,t)=>e.toLocaleDateString(void 0,t),iGt=(e,t)=>{let n=N9(e,t),r=n[0]??e,i=n[6]??e,a=r.getFullYear()===i.getFullYear();return a&&r.getMonth()===i.getMonth()?`${String(r.getDate())} – ${P9(i,{day:`numeric`,month:`long`,year:`numeric`})}`:a?`${P9(r,{day:`numeric`,month:`short`})} – ${P9(i,{day:`numeric`,month:`short`,year:`numeric`})}`:`${P9(r,{day:`numeric`,month:`short`,year:`numeric`})} – ${P9(i,{day:`numeric`,month:`short`,year:`numeric`})}`},aGt=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),oGt=(e,t)=>aGt(e,t).toLocaleDateString(void 0,{month:`long`,year:`numeric`}),sGt=(e,t)=>{let n=aGt(e,t),r=(n.getDay()+6)%7,i=new Date(n.getFullYear(),n.getMonth()+1,0).getDate(),a=Math.ceil((r+i)/7),o=new Date(n);return o.setDate(n.getDate()-r),Array.from({length:a*7},(e,t)=>{let n=new Date(o);return n.setDate(o.getDate()+t),n})},cGt=e=>{if(e<60)return`${String(e)}m`;let t=Math.floor(e/60),n=e%60;return n===0?`${String(t)}h`:`${String(t)}h ${String(n)}m`},F9=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`},lGt=e=>new Date(e).toLocaleDateString(void 0,{weekday:`short`,day:`numeric`,month:`short`}),I9=e=>rp(e),L9=e=>F9(e),R9=(e,t)=>{let[n,r,i]=e.split(`-`),[a,o]=t.split(`:`);return new Date(Number(n??`1970`),Number(r??`1`)-1,Number(i??`1`),Number(a??`0`),Number(o??`0`),0,0).toISOString()},z9={available:{label:`Available`,color:`#22c55e`,Icon:Bt},busy:{label:`Busy`,color:`#ef4444`,Icon:Mt},meeting:{label:`Meeting`,color:`#3b82f6`,Icon:Gn},focus:{label:`Focus`,color:`#8b5cf6`,Icon:zn},away:{label:`Away`,color:`#94a3b8`,Icon:Jt}},B9=e=>e===0||e===24?`12 AM`:e===12?`12 PM`:e<12?`${String(e)} AM`:`${String(e-12)} PM`,V9=(e,t)=>{let n=tp(e),r=tp(t);return r<=n?1440:r},uGt=(e,t)=>{let n=lp(t);return n<=lp(e)?1440:n},dGt=(e,t,n)=>{let r=lp(n)<=lp(t)?0:Math.max(0,Math.floor(lp(t)/60)-1),i=Math.min(24,Math.ceil(uGt(t,n)/60)+1);for(let t of e){let e=t.block.status===`available`&&(t.continuesFromPrevDay===!0||t.continuesToNextDay===!0);t.block.allDay&&!e||(r=Math.min(r,Math.floor(tp(t.start)/60)),i=Math.max(i,Math.ceil(V9(t.start,t.end)/60)))}return r=Math.max(0,Math.min(r,22)),i=Math.min(24,Math.max(i,r+2)),{startHour:r,endHour:i}},fGt=e=>Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n),pGt=e=>(e.endHour-e.startHour)*52,mGt=(e,t,n)=>{let r=tp(e),i=V9(e,t);return{top:(r-n.startHour*60)*52/60,height:Math.max(20,(i-r)*52/60-2)}},hGt=(e,t,n)=>{let r=n.startHour*60,i=Math.max(e,r),a=Math.min(t,n.endHour*60);return a<=i?null:{top:(i-r)*52/60,height:(a-i)*52/60}},gGt=(e,t,n)=>e?t.flatMap(e=>{let t=lp(e.from),r=lp(e.to);if(r<=t)return[hGt(t,1440,n),hGt(0,r,n)].filter(e=>e!==null);let i=hGt(t,r,n);return i===null?[]:[i]}):[],_Gt=(e,t)=>{let n=e.getHours()*60+e.getMinutes();return n<t.startHour*60||n>t.endHour*60?null:(n-t.startHour*60)*52/60},vGt=(e,t,n,r=90)=>((lp(t)<=lp(e)?0:lp(e))-n*60)*52/60-r*52/60,yGt=(e,t,n=90)=>(e.getHours()*60+e.getMinutes()-t*60)*52/60-n*52/60,bGt=e=>{let t=[...e].sort((e,t)=>tp(e.start)-tp(t.start)||V9(e.start,e.end)-V9(t.start,t.end)),n=[],r=[],i=[],a=()=>{let e=Math.max(1,i.length);for(let t of r)n.push({occurrence:t.occurrence,lane:t.lane,lanes:e});r=[],i=[]};for(let e of t){let t=tp(e.start),n=V9(e.start,e.end);r.length>0&&t>=Math.max(...i)&&a();let o=i.findIndex(e=>e<=t);o===-1?(o=i.length,i.push(n)):i[o]=n,r.push({occurrence:e,lane:o})}return a(),n},xGt=e=>{let t=e.filter(e=>e.end>e.start).slice().sort((e,t)=>e.start-t.start),n=[];for(let e of t){let t=n[n.length-1];t!==void 0&&e.start<=t.end?n[n.length-1]={start:t.start,end:Math.max(t.end,e.end)}:n.push(e)}return n},SGt=e=>e.reduce((e,t)=>e+(t.end-t.start),0),CGt=(e,t,n)=>{let r=rp(t),i=e.filter(e=>e.date===r&&!e.block.allDay),a=xGt([...n.map(e=>{let t=lp(e.from),n=lp(e.to);return{start:t,end:n<=t?1440:n}}),...i.filter(e=>e.block.status===`available`).map(e=>({start:tp(e.start),end:V9(e.start,e.end)}))]),o=i.filter(e=>e.block.status!==`available`).map(e=>({start:tp(e.start),end:V9(e.start,e.end)})),s=0;for(let e of a){let t=xGt(o.map(t=>({start:Math.max(e.start,t.start),end:Math.min(e.end,t.end)})));s+=e.end-e.start-SGt(t)}return Math.max(0,Math.round(s/60))},wGt=(e,t)=>new Date(new Date(e).getTime()+t*6e4).toISOString(),TGt=(e,t)=>{let n=new Date(e),r=$m(t,n)-$m(Zm(),n);return r===0?e:new Date(n.getTime()-r*6e4).toISOString()},EGt=(e,t)=>{let n=new Date(e),r=$m(t,n)-$m(Zm(),n);return r===0?e:new Date(n.getTime()+r*6e4).toISOString()},H9=(e,t)=>({...e,start:TGt(e.start,t),end:TGt(e.end,t)}),DGt=e=>{if(e.mode===`edit`){let{block:t}=e;return{title:t.title,status:t.status,start:t.start,end:t.allDay?t.end:R9(I9(t.start),L9(t.end)),allDay:t.allDay,notes:t.notes,recurrence:t.recurrence}}let t=e.start,n=e.end??wGt(t,60),r=null,i=rp(t);if(i!==rp(n)){n=R9(i,L9(n));let a=new Date(t),o=new Date(e.end??n),s=[],c=new Date(a),l=0;for(;rp(c)<=rp(o)&&l<100;)l++,s.push(c.getDay()),c.setDate(c.getDate()+1);r={freq:`weekly`,interval:1,weekdays:s,monthlyMode:`dayOfMonth`,endType:`on`,endCount:13,endDate:rp(o),exceptions:[]}}return{title:e.title??``,status:e.status??`available`,start:t,end:n,allDay:!1,notes:``,recurrence:r}},OGt=e=>({...e,recurrence:e.recurrence===null?Hme(e.start):null}),kGt=(e,t)=>({...e,recurrence:t}),AGt=(e,t)=>({...e,start:R9(t,L9(e.start)),end:R9(t,L9(e.end))}),jGt=(e,t)=>{let n=R9(I9(e.start),t),r=new Date(n).getTime()-new Date(e.start).getTime();return{...e,start:n,end:new Date(new Date(e.end).getTime()+r).toISOString()}},MGt=(e,t)=>({...e,end:R9(I9(e.start),t)}),NGt=(e,t)=>{let n=I9(e.start);return t?{...e,allDay:!0,start:R9(n,`00:00`),end:R9(n,`23:59`)}:{...e,allDay:!1,start:R9(n,`09:00`),end:R9(n,`10:00`)}},U9={notesInput:`_notesInput_1ut2q_7`,actionSpacer:`_actionSpacer_1ut2q_24`,panelHead:`_panelHead_1ut2q_29`,panelTitle:`_panelTitle_1ut2q_41`,panelForm:`_panelForm_1ut2q_47`,microLabel:`_microLabel_1ut2q_54`,panelInput:`_panelInput_1ut2q_62`,inputError:`_inputError_1ut2q_79`,fieldError:`_fieldError_1ut2q_84`,statusPills:`_statusPills_1ut2q_90`,statusPill:`_statusPill_1ut2q_90`,statusPillActive:`_statusPillActive_1ut2q_110`,dtGrid:`_dtGrid_1ut2q_116`,checkRow:`_checkRow_1ut2q_133`,checkbox:`_checkbox_1ut2q_143`,recurToggle:`_recurToggle_1ut2q_150`,recurToggleOn:`_recurToggleOn_1ut2q_163`,recurToggleLabel:`_recurToggleLabel_1ut2q_168`,recurSwitch:`_recurSwitch_1ut2q_181`,recurSwitchOn:`_recurSwitchOn_1ut2q_191`,recurKnob:`_recurKnob_1ut2q_195`,panelFooter:`_panelFooter_1ut2q_210`,panelSummary:`_panelSummary_1ut2q_215`,panelActions:`_panelActions_1ut2q_226`,recurSection:`_recurSection_1ut2q_234`,recurBuilder:`_recurBuilder_1ut2q_240`,recurChips:`_recurChips_1ut2q_250`,recurChip:`_recurChip_1ut2q_250`,recurChipActive:`_recurChipActive_1ut2q_267`,recurInline:`_recurInline_1ut2q_273`,recurInlineLabel:`_recurInlineLabel_1ut2q_281`,recurNumber:`_recurNumber_1ut2q_286`,recurWeekdays:`_recurWeekdays_1ut2q_297`,recurDay:`_recurDay_1ut2q_303`,recurDayActive:`_recurDayActive_1ut2q_315`,recurEnds:`_recurEnds_1ut2q_321`,recurRadio:`_recurRadio_1ut2q_327`,recurDate:`_recurDate_1ut2q_339`,recurSummaryBox:`_recurSummaryBox_1ut2q_349`,panelSummaryError:`_panelSummaryError_1ut2q_360`,disabledButtonWrapper:`_disabledButtonWrapper_1ut2q_368`,resolveConflictBtn:`_resolveConflictBtn_1ut2q_373`,upcomingCard:`_upcomingCard_1ut2q_394`,upcomingHeader:`_upcomingHeader_1ut2q_402`,upcomingRow:`_upcomingRow_1ut2q_414`,upcomingRowDate:`_upcomingRowDate_1ut2q_427`,upcomingRowTime:`_upcomingRowTime_1ut2q_431`,upcomingMore:`_upcomingMore_1ut2q_436`,differentTimeRow:`_differentTimeRow_1ut2q_445`,differentTimeList:`_differentTimeList_1ut2q_456`,differentTimeRowItem:`_differentTimeRowItem_1ut2q_467`,differentTimeDayLabel:`_differentTimeDayLabel_1ut2q_479`,differentTimeNote:`_differentTimeNote_1ut2q_488`,differentTimeRowGroup:`_differentTimeRowGroup_1ut2q_495`,differentTimeDayLabelSpacer:`_differentTimeDayLabelSpacer_1ut2q_501`,slotActionBtn:`_slotActionBtn_1ut2q_507`,slotActionBtnTrash:`_slotActionBtnTrash_1ut2q_524`},W9={center:`_center_10cfo_6`,field:`_field_10cfo_12`,dash:`_dash_10cfo_18`},PGt={timeInput:`_timeInput_ik08d_4`},FGt=[{wd:1,label:`M`,longLabel:`Mon`},{wd:2,label:`T`,longLabel:`Tue`},{wd:3,label:`W`,longLabel:`Wed`},{wd:4,label:`T`,longLabel:`Thu`},{wd:5,label:`F`,longLabel:`Fri`},{wd:6,label:`S`,longLabel:`Sat`},{wd:0,label:`S`,longLabel:`Sun`}],IGt=e=>{let[t,n]=e.split(`:`).map(Number);return(t??0)*60+(n??0)},LGt=e=>{let t=Math.floor(e/60),n=e%60;return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`},RGt=e=>{if(!e)return{start:`09:00`,end:`17:00`};let t=IGt(e.start),n=IGt(e.end),r=n>t?n-t:60,i=n,a=i+r;return i>=1439?{start:`23:00`,end:`23:59`}:(a>1439&&(a=1439),{start:LGt(i),end:LGt(a)})},zGt=({slot:e,index:t,dayMeta:n,dayName:r,showTrash:i,onUpdateStart:a,onUpdateEnd:o,onAdd:s,onRemove:c})=>(0,D.jsxs)(`div`,{className:U9.differentTimeRowItem,children:[t===0?(0,D.jsx)(`span`,{className:U9.differentTimeDayLabel,children:n?.longLabel??r}):(0,D.jsx)(`span`,{className:U9.differentTimeDayLabelSpacer}),(0,D.jsx)(`input`,{type:`time`,className:E(U9.recurDate,PGt.timeInput),value:e.start,onChange:e=>{a(e.target.value)}}),(0,D.jsx)(`span`,{className:W9.dash,children:`–`}),(0,D.jsx)(`input`,{type:`time`,className:E(U9.recurDate,PGt.timeInput),value:e.end,onChange:e=>{o(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:U9.slotActionBtn,onClick:s,children:(0,D.jsx)(En,{size:14})}),i&&(0,D.jsx)(`button`,{type:`button`,className:U9.slotActionBtnTrash,onClick:c,children:(0,D.jsx)(Vn,{size:12})})]}),BGt=({dayMeta:e,dayName:t,slots:n,startIso:r,endIso:i,onChangeSlots:a})=>{let o=n.length>0?n:[{start:L9(r),end:L9(i??r)}];return(0,D.jsx)(`div`,{className:U9.differentTimeRowGroup,children:o.map((n,r)=>(0,D.jsx)(zGt,{slot:n,index:r,dayMeta:e,dayName:t,showTrash:o.length>1,onUpdateStart:e=>{let t=[...o];t[r]={...n,start:e},a(t)},onUpdateEnd:e=>{let t=[...o];t[r]={...n,end:e},a(t)},onAdd:()=>{let e=o[o.length-1];a([...o,RGt(e)])},onRemove:()=>{a(o.filter((e,t)=>t!==r))}},r))})},VGt=({rec:e,onChange:t,startIso:n,endIso:r})=>e.weekdays.length===0?(0,D.jsx)(D.Fragment,{}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:U9.differentTimeRow,children:[(0,D.jsx)(`input`,{type:`checkbox`,checked:e.differentTimes??!1,onChange:n=>{t({...e,differentTimes:n.target.checked})}}),(0,D.jsx)(`span`,{children:`Different time per day`})]}),e.differentTimes&&(0,D.jsxs)(`div`,{className:U9.differentTimeList,children:[e.weekdays.map(i=>{let a=FGt.find(e=>e.wd===i);return(0,D.jsx)(BGt,{dayMeta:a,dayName:a?a.longLabel:``,slots:e.weekdayTimes?.[i]??[],startIso:n,endIso:r,onChangeSlots:n=>{let r={...e.weekdayTimes,[i]:n};t({...e,weekdayTimes:r})}},i)}),(0,D.jsx)(`div`,{className:U9.differentTimeNote,children:`Defaults to the base event time when not overridden. Use + to add multiple slots per day.`})]})]}),HGt=({recurrence:e,startIso:t,endIso:n})=>{let r=new Date(t),i=n===void 0?new Date(r.getTime()+1800*1e3):new Date(n),a=r,o=new Date(r.getTime()+2160*60*60*1e3),s=Yme({start:t,end:i.toISOString(),recurrence:e},a,o),c=s.slice(0,5);return c.length===0?(0,D.jsx)(D.Fragment,{}):(0,D.jsxs)(`div`,{className:U9.upcomingCard,children:[(0,D.jsxs)(`div`,{className:U9.upcomingHeader,children:[(0,D.jsx)(vee,{size:12}),` Upcoming Occurrences`]}),(0,D.jsx)(`div`,{children:c.map((e,t)=>{let n=new Date(e.start).toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`}),r=`${F9(e.start)} – ${F9(e.end)}`;return(0,D.jsxs)(`div`,{className:U9.upcomingRow,children:[(0,D.jsx)(`span`,{className:U9.upcomingRowDate,children:n}),(0,D.jsx)(`span`,{className:U9.upcomingRowTime,children:r})]},t)})}),s.length>5&&(0,D.jsx)(`div`,{className:U9.upcomingMore,children:`...and more beyond`})]})},UGt=[{wd:1,label:`M`},{wd:2,label:`T`},{wd:3,label:`W`},{wd:4,label:`T`},{wd:5,label:`F`},{wd:6,label:`S`},{wd:0,label:`S`}],WGt={daily:`day`,weekly:`week`,monthly:`month`,yearly:`year`},GGt=[{id:`dayOfMonth`,label:`Day of month`},{id:`nthWeekday`,label:`Day of week`}],KGt=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:U9.recurChips,children:zme.map(n=>(0,D.jsx)(`button`,{type:`button`,className:E(U9.recurChip,e.freq===n.id&&U9.recurChipActive),"aria-pressed":e.freq===n.id,onClick:()=>{t({...e,freq:n.id})},children:n.label},n.id))}),qGt=({rec:e,onChange:t})=>(0,D.jsxs)(`label`,{className:U9.recurInline,children:[(0,D.jsx)(`span`,{className:U9.recurInlineLabel,children:`Every`}),(0,D.jsx)(`input`,{type:`number`,min:1,max:99,className:U9.recurNumber,value:e.interval,onChange:n=>{t({...e,interval:Math.max(1,Number(n.target.value)||1)})}}),(0,D.jsxs)(`span`,{className:U9.recurInlineLabel,children:[WGt[e.freq],e.interval>1?`s`:``]})]}),JGt=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:U9.recurWeekdays,children:UGt.map(({wd:n,label:r})=>{let i=e.weekdays.includes(n);return(0,D.jsx)(`button`,{type:`button`,className:E(U9.recurDay,i&&U9.recurDayActive),"aria-pressed":i,onClick:()=>{t({...e,weekdays:i?e.weekdays.filter(e=>e!==n):[...e.weekdays,n]})},children:r},n)})}),YGt=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:U9.recurChips,children:GGt.map(n=>(0,D.jsx)(`button`,{type:`button`,className:E(U9.recurChip,e.monthlyMode===n.id&&U9.recurChipActive),onClick:()=>{t({...e,monthlyMode:n.id})},children:n.label},n.id))}),XGt=({rec:e,startIso:t,onChange:n})=>(0,D.jsxs)(`div`,{className:U9.recurEnds,children:[(0,D.jsxs)(`label`,{className:U9.recurRadio,children:[(0,D.jsx)(`input`,{type:`radio`,name:`recur-end`,checked:e.endType===`never`,onChange:()=>{n({...e,endType:`never`})}}),(0,D.jsx)(`span`,{children:`Never ends`})]}),(0,D.jsxs)(`label`,{className:U9.recurRadio,children:[(0,D.jsx)(`input`,{type:`radio`,name:`recur-end`,checked:e.endType===`after`,onChange:()=>{n({...e,endType:`after`})}}),(0,D.jsx)(`span`,{children:`After`}),(0,D.jsx)(`input`,{type:`number`,min:1,max:365,className:U9.recurNumber,value:e.endCount,disabled:e.endType!==`after`,onChange:t=>{n({...e,endType:`after`,endCount:Math.max(1,Number(t.target.value)||1)})}}),(0,D.jsx)(`span`,{children:`times`})]}),(0,D.jsxs)(`label`,{className:U9.recurRadio,children:[(0,D.jsx)(`input`,{type:`radio`,name:`recur-end`,checked:e.endType===`on`,onChange:()=>{n({...e,endType:`on`})}}),(0,D.jsx)(`span`,{children:`On`}),(0,D.jsx)(`input`,{type:`date`,className:U9.recurDate,min:t.slice(0,10),value:e.endDate,disabled:e.endType!==`on`,onChange:t=>{n({...e,endType:`on`,endDate:t.target.value})}})]})]}),ZGt=({recurrence:e,startIso:t,endIso:n,onChange:r})=>{let i=e.freq===`weekly`,a=e.freq===`monthly`||e.freq===`yearly`;return(0,D.jsxs)(`div`,{className:U9.recurBuilder,children:[(0,D.jsx)(KGt,{rec:e,onChange:r}),(0,D.jsx)(qGt,{rec:e,onChange:r}),i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(JGt,{rec:e,onChange:r}),(0,D.jsx)(VGt,{rec:e,onChange:r,startIso:t,endIso:n})]}),a&&(0,D.jsx)(YGt,{rec:e,onChange:r}),(0,D.jsx)(XGt,{rec:e,startIso:t,onChange:r}),(0,D.jsx)(`div`,{className:U9.recurSummaryBox,children:$me(e,t)}),(0,D.jsx)(HGt,{recurrence:e,startIso:t,endIso:n})]})},QGt=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Status`}),(0,D.jsx)(`div`,{className:U9.statusPills,children:sp.map(n=>{let r=z9[n.id],i=e.status===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:E(U9.statusPill,i&&U9.statusPillActive),style:Xn({"--status-color":r.color}),"aria-pressed":i,onClick:()=>{t({...e,status:n.id})},children:[(0,D.jsx)(r.Icon,{size:13}),` `,n.label]},n.id)})})]}),$Gt=({draft:e,onChange:t})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:e.allDay?W9.field:U9.dtGrid,children:[(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:U9.panelInput,value:I9(e.start),onChange:n=>{t(AGt(e,n.target.value))}})]}),!e.allDay&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Start`}),(0,D.jsx)(Uf,{value:L9(e.start),onChange:n=>{t(jGt(e,n))}})]}),(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`End`}),(0,D.jsx)(Uf,{align:`end`,value:L9(e.end),onChange:n=>{t(MGt(e,n))}})]})]})]}),(0,D.jsxs)(`label`,{className:U9.checkRow,children:[(0,D.jsx)(`input`,{type:`checkbox`,className:U9.checkbox,checked:e.allDay,onChange:n=>{t(NGt(e,n.target.checked))}}),(0,D.jsx)(`span`,{children:`All-day`})]})]}),eKt=({draft:e,onChange:t})=>{let n=e.recurrence!==null;return(0,D.jsxs)(`div`,{className:U9.recurSection,children:[(0,D.jsxs)(`button`,{type:`button`,className:E(U9.recurToggle,n&&U9.recurToggleOn),"aria-pressed":n,onClick:()=>{t(OGt(e))},children:[(0,D.jsxs)(`span`,{className:U9.recurToggleLabel,children:[(0,D.jsx)(jn,{size:13}),` Recurring`]}),(0,D.jsx)(`span`,{className:E(U9.recurSwitch,n&&U9.recurSwitchOn),children:(0,D.jsx)(`span`,{className:U9.recurKnob})})]}),e.recurrence!==null&&(0,D.jsx)(ZGt,{recurrence:e.recurrence,startIso:e.start,endIso:e.end,onChange:n=>{t(kGt(e,n))}})]})},tKt=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:U9.panelForm,children:[(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Title`}),(0,D.jsx)(`input`,{type:`text`,className:E(U9.panelInput,e.title.length>200&&U9.inputError),value:e.title,placeholder:`e.g. Morning availability`,onChange:n=>{t({...e,title:n.target.value})}}),e.title.length>200&&(0,D.jsx)(`span`,{className:U9.fieldError,children:`The field Title must be a string with a maximum length of 200.`})]}),(0,D.jsx)(QGt,{draft:e,onChange:t}),(0,D.jsx)($Gt,{draft:e,onChange:t}),(0,D.jsx)(eKt,{draft:e,onChange:t}),(0,D.jsxs)(`label`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:U9.microLabel,children:`Notes`}),(0,D.jsx)(`textarea`,{className:U9.notesInput,rows:3,value:e.notes,placeholder:`Optional notes`,onChange:n=>{t({...e,notes:n.target.value})}})]})]}),nKt=(e,t,n,r)=>{let i=new Date(e).getTime(),a=new Date(t).getTime(),o=new Date(n).getTime(),s=new Date(r).getTime();return i<=o&&a>=s?{type:`delete`}:i>o&&a<s?{type:`split`,updateEnd:new Date(i).toISOString(),createStart:new Date(a).toISOString(),createEnd:new Date(s).toISOString()}:i<=o&&a>o&&a<s?{type:`update`,start:new Date(a).toISOString(),end:r}:i>o&&i<s&&a>=s?{type:`update`,start:n,end:new Date(i).toISOString()}:null},rKt=(e,t)=>{let n=new Date(e.start).getTime(),r=new Date(e.end).getTime(),i=new Date(t.start).getTime();return n<new Date(t.end).getTime()&&r>i},iKt=(e,t)=>{let n=e.block.status===`available`&&t.block.status===`available`,r=e.block.status!==`available`&&t.block.status!==`available`;return(n||r)&&rKt(e,t)},aKt=(e,t,n)=>{let r=cp([new op({id:`draft`,...e})],n),i=cp(t,n),a=[];for(let e of i)r.some(t=>iKt(t,e))&&a.push(e);return a},oKt=e=>({userId:e.userId,title:e.title,status:e.status,start:e.start,end:e.end,allDay:e.allDay,notes:e.notes,recurrence:e.recurrence}),G9=(e,t,n)=>({...oKt(e),start:t,end:n,recurrence:null}),sKt=(e,t)=>{let n=e.recurrence;if(n===null)return oKt(e);let r=Array.from(new Set([...n.exceptions,...t]));return{...oKt(e),recurrence:{...n,exceptions:r}}},cKt=(e,t,n)=>n.type===`delete`?[]:n.type===`update`?[G9(e,n.start,n.end)]:[G9(e,t.start,n.updateEnd),G9(e,n.createStart,n.createEnd)],lKt=(e,t,n)=>{let r=nKt(n.start,n.end,t.start,t.end);return r===null?[]:r.type===`delete`?[{kind:`delete`,blockId:e.id}]:r.type===`update`?[{kind:`update`,blockId:e.id,draft:G9(e,r.start,r.end)}]:[{kind:`update`,blockId:e.id,draft:G9(e,t.start,r.updateEnd)},{kind:`create`,draft:G9(e,r.createStart,r.createEnd)}]},uKt=(e,t,n)=>{let r=[],i=[];for(let a of t){let t=nKt(n.start,n.end,a.start,a.end);if(t!==null){r.push(a.date);for(let n of cKt(e,a,t))i.push({kind:`create`,draft:n})}}return r.length===0?[]:[{kind:`update`,blockId:e.id,draft:sKt(e,r)},...i]},dKt=(e,t)=>{let n=new Map;for(let e of t){let t=n.get(e.block.id)??[];t.push(e),n.set(e.block.id,t)}let r=[];for(let t of n.values()){let n=t[0];if(n===void 0)continue;let i=n.block.recurrence===null?lKt(n.block,n,e):uKt(n.block,t,e);r.push(...i)}return r},fKt=(e,t)=>e.filter(e=>t.mode!==`edit`||e.id!==t.block.id),pKt=(e,t,n)=>{let r=new Map;for(let i of aKt(e,t,n))r.set(i.block.id,i.block);return[...r.values()]},mKt=300*1e3,hKt=(e,t,n,r)=>{if(!(n.mode!==`edit`||t.start!==H9({...e,start:n.block.start,end:n.block.end},r).start)||new Date(t.start).getTime()>=Date.now()-mKt)return null;let i=new Date(t.end).getTime();return e.allDay&&i>Date.now()?`All-day events cannot be scheduled for today as part of the day has passed. Please uncheck 'All-day' to select a specific time.`:`Cannot schedule an event in the past.`},gKt=(e,t)=>{if(t.length===0)return null;let n=t[0];if(n===void 0)return null;let r=t.some(e=>e.status===`meeting`);return e===`available`&&n.status===`available`?{error:`This block overlaps with an existing availability.`,code:`overlap_availability`,hasMeetingConflict:r}:{error:r?`This block overlaps with a scheduled Meeting. Meetings cannot be auto-adjusted or overwritten.`:`This block overlaps with an existing event.`,code:`overlap_event`,hasMeetingConflict:r}},_Kt=(e,t,n,r)=>{if(e.title.trim().length===0)return{error:`Event title is required.`,code:`empty_title`};if(e.title.length>200)return{error:`The field Title must be a string with a maximum length of 200.`,code:`title_too_long`};if(!Sme(e.start,e.end))return{error:`End time must be after start time.`,code:`invalid_time`};let i=H9(e,r),a=hKt(e,i,n,r);if(a!==null)return{error:a,code:`invalid_time`};let o=N9(new Date(i.start),0),s=pKt(i,fKt(t,n),o);return gKt(e.status,s)??{error:null}},vKt=(e,t,n)=>{let r=hve(),i=Jm(),a=gve(),o=async e=>{if(e.kind===`delete`){await a.mutateAsync(e.blockId);return}if(e.kind===`update`){await i.mutateAsync({id:e.blockId,draft:e.draft});return}await r.mutateAsync(e.draft)};return{resolve:async(r,i)=>{let a=H9(e,n),s=N9(new Date(a.start),0),c=dKt(a,aKt(a,fKt(r,t),s));try{await Promise.all(c.map(o)),Nf.success(`Conflicts resolved successfully!`),i()}catch(e){let t=e instanceof Error?e.message:String(e);Nf.error(`Failed to resolve conflicts: ${t}`)}}}},yKt={errorStack:`_errorStack_q9qoj_4`,errorLine:`_errorLine_q9qoj_11`},K9=` · `,bKt=` – `,xKt=e=>{let t=rp(e.start)===rp(e.end)?lGt(e.start):`${lGt(e.start)}${bKt}${lGt(e.end)}`,n=e.recurrence===null?``:`${K9}${$me(e.recurrence,e.start)}`;return e.allDay?`${t}${K9}All day${n}`:e.recurrence?.differentTimes?`${t}${n}`:`${t}${K9}${`${F9(e.start)}${bKt}${F9(e.end)}`}${K9}${cGt(np(e.start,e.end))}${n}`},SKt=({isEdit:e,busy:t,canSave:n,validationError:r,isConflict:i,summary:a,onSave:o,onDelete:s,onCancel:c,onResolveConflicts:l})=>(0,D.jsxs)(`div`,{className:U9.panelFooter,children:[(0,D.jsx)(`div`,{className:E(U9.panelSummary,r!==null&&U9.panelSummaryError),children:r===null?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Lt,{size:14}),` `,a]}):(0,D.jsxs)(`div`,{className:yKt.errorStack,children:[(0,D.jsxs)(`span`,{className:yKt.errorLine,children:[(0,D.jsx)(Gt,{size:14}),` `,r]}),i&&(0,D.jsxs)(`button`,{type:`button`,className:U9.resolveConflictBtn,onClick:l,disabled:t,children:[(0,D.jsx)(wee,{size:11}),` Auto-adjust blocks to fit`]})]})}),(0,D.jsxs)(`div`,{className:U9.panelActions,children:[e&&(0,D.jsxs)(ar,{variant:`ghost`,onClick:s,disabled:t,children:[(0,D.jsx)(Vn,{size:15}),` Delete`]}),(0,D.jsx)(`span`,{className:U9.actionSpacer}),(0,D.jsx)(ar,{variant:`secondary`,onClick:c,disabled:t,children:`Cancel`}),n?(0,D.jsx)(ar,{onClick:o,isLoading:t,children:e?`Save changes`:`Create`}):(0,D.jsx)(Of,{label:r??`Cannot save`,side:`top`,children:(0,D.jsx)(`span`,{className:U9.disabledButtonWrapper,children:(0,D.jsx)(ar,{onClick:o,isLoading:t,disabled:!0,children:e?`Save changes`:`Create`})})})]})]}),CKt=(e,t,n,r)=>{let i=hve(),a=Jm(),o=gve();return{busy:i.isPending||a.isPending||o.isPending,onSave:()=>{let o=H9(t,n),s=e=>{Nf.success(e),r()};if(e.mode===`edit`){a.mutate({id:e.block.id,draft:o},{onSuccess:()=>{s(`Event updated`)},onError:e=>{Nf.error(e.message)}});return}i.mutate(o,{onSuccess:()=>{s(`Event added`)},onError:e=>{Nf.error(e.message)}})},onDelete:()=>{if(e.mode!==`edit`)return;let t=e.block.sourceMeetingId!==null;o.mutate(e.block.id,{onSuccess:()=>{Nf.success(t?`Meeting cancelled for everyone`:`Event removed`),r()},onError:e=>{Nf.error(e.message)}})}}},wKt=({state:e,timezone:t,onClose:n})=>{let[r,i]=(0,y.useState)(()=>DGt(e)),{busy:a,onSave:o,onDelete:s}=CKt(e,r,t,n),[c,l]=(0,y.useState)(!1),u=e.mode===`edit`&&e.block.sourceMeetingId!==null,{data:d=[]}=qm(),f=vKt(r,e,t),p=e.mode===`edit`,m=_Kt(r,d,e,t),h=m.code===`title_too_long`?null:m.error,g=m.error===null,_=(m.code===`overlap_availability`||m.code===`overlap_event`)&&!m.hasMeetingConflict;return(0,D.jsxs)(tce,{open:!0,side:`right`,title:p?`Edit Event`:`New Event`,onOpenChange:e=>{e||n()},footer:(0,D.jsx)(SKt,{isEdit:p,busy:a,canSave:g,validationError:h,isConflict:_,summary:xKt(r),onSave:o,onDelete:()=>{if(u){l(!0);return}s()},onCancel:n,onResolveConflicts:()=>{f.resolve(d,o)}}),children:[(0,D.jsxs)(`header`,{className:U9.panelHead,children:[(0,D.jsx)(`span`,{className:U9.panelTitle,children:p?`Edit Event`:`New Event`}),(0,D.jsx)(dr,{label:`Close`,onClick:n,children:(0,D.jsx)(qn,{size:18})})]}),(0,D.jsx)(tKt,{draft:r,onChange:i}),(0,D.jsx)(ece,{open:c,elevated:!0,title:`Cancel this meeting?`,message:`This event came from a booking. Removing it cancels the meeting and frees the time on everyone's calendar, not just yours.`,confirmLabel:`Cancel meeting`,onConfirm:()=>{l(!1),s()},onCancel:()=>{l(!1)}})]})},TKt=()=>{let e=Intl.supportedValuesOf;return typeof e==`function`?e(`timeZone`):rhe},EKt=/^(\d{1,2}):(\d{2})$/,DKt=e=>String(e).padStart(2,`0`),OKt=e=>{let t=EKt.exec(e);return t===null?0:Number(t[1])*60+Number(t[2])},kKt=e=>{let t=Math.max(0,Math.min(1439,e)),n=Math.floor(t/60),r=t%60;return`${DKt(n)}:${DKt(r)}`},AKt=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],jKt=e=>AKt[(e+6)%7]??`sun`,MKt=e=>AKt[(e+1)%7]??`mon`,NKt=e=>AKt[e]??`mon`,PKt=(e,t,n)=>{if(e>=0)return null;let r=e+1440,i=Math.min(0,t)+1440;return i<=r?null:{targetDay:jKt(n),from:r,to:i,id:crypto.randomUUID()}},FKt=(e,t,n)=>{if(t<=1440)return null;let r=Math.max(1440,e)-1440,i=t-1440;return i<=r?null:{targetDay:MKt(n),from:r,to:i,id:crypto.randomUUID()}},IKt=(e,t,n,r)=>{let i=Math.max(0,e),a=Math.min(1440,t);return a<=i?null:{targetDay:NKt(n),from:i,to:a,id:r}},LKt=(e,t,n)=>{let r=OKt(e.from),i=e.to===`23:59`||e.to===`24:00`||e.to===`00:00`?1440:OKt(e.to);if(i<=r)return[];let a=r+n,o=i+n;return[PKt(a,o,t),IKt(a,o,t,e.id),FKt(a,o,t)].filter(e=>e!==null)},q9=(e,t,n)=>{e.sort((e,t)=>e.from-t.from);let r=[];for(let t of e){let e=r[r.length-1];e!==void 0&&t.from<=e.to+1?e.to=Math.max(e.to,t.to):r.push({...t})}let i=r.map(e=>({id:e.id,from:kKt(e.from),to:e.to>=1440?`23:59`:kKt(e.to)}));return{active:i.length>0&&t,slots:i.length>0?i:n.map(e=>({...e}))}},J9=(e,t,n,r)=>{if(t===n)return e;let i=$m(n,r)-$m(t,r);if(i===0)return e;let a={mon:[],tue:[],wed:[],thu:[],fri:[],sat:[],sun:[]},o={mon:!1,tue:!1,wed:!1,thu:!1,fri:!1,sat:!1,sun:!1};return Qf.forEach((t,n)=>{let r=e[t.id];r.active&&r.slots.length>0&&r.slots.forEach(e=>{LKt(e,n,i).forEach(e=>{a[e.targetDay].push({from:e.from,to:e.to,id:e.id}),o[e.targetDay]=!0})})}),{mon:q9(a.mon,o.mon,e.mon.slots),tue:q9(a.tue,o.tue,e.tue.slots),wed:q9(a.wed,o.wed,e.wed.slots),thu:q9(a.thu,o.thu,e.thu.slots),fri:q9(a.fri,o.fri,e.fri.slots),sat:q9(a.sat,o.sat,e.sat.slots),sun:q9(a.sun,o.sun,e.sun.slots)}},RKt=(e,t)=>{let n=TKt();return(n.includes(t)?n:[t,...n]).map(t=>({id:t,offset:yve($m(t,e))}))},Y9={tzWrap:`_tzWrap_horpb_4`,tzTrigger:`_tzTrigger_horpb_8`,tzGlobe:`_tzGlobe_horpb_30`,tzTriggerLabel:`_tzTriggerLabel_horpb_35`,tzTriggerOffset:`_tzTriggerOffset_horpb_44`,tzChevron:`_tzChevron_horpb_51`,tzBackdrop:`_tzBackdrop_horpb_56`,tzPop:`_tzPop_horpb_65`,tzSearch:`_tzSearch_horpb_78`,tzSearchInput:`_tzSearchInput_horpb_90`,tzList:`_tzList_horpb_100`,tzRow:`_tzRow_horpb_135`,tzRowActive:`_tzRowActive_horpb_154`,tzRowLabel:`_tzRowLabel_horpb_158`,tzRowOffset:`_tzRowOffset_horpb_171`,tzCheck:`_tzCheck_horpb_178`,tzEmpty:`_tzEmpty_horpb_183`},zKt=(e,t)=>t===``||e.id.toLowerCase().includes(t)||e.offset.toLowerCase().includes(t),BKt=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(Zu.div,{className:Y9.tzPop,variants:od,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:Y9.tzSearch,children:[(0,D.jsx)(Mn,{size:13}),(0,D.jsx)(`input`,{className:Y9.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:Y9.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:E(Y9.tzRow,e.id===n&&Y9.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:Y9.tzRowLabel,children:e.id}),(0,D.jsx)(`span`,{className:Y9.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Bt,{size:13,className:Y9.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:Y9.tzEmpty,children:`No timezones match.`})]})]}),VKt=({value:e,now:t,onChange:n})=>{let[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(``),s=(0,y.useMemo)(()=>RKt(t,e),[t,e]),c=s.find(t=>t.id===e)??{id:e,offset:``},l=a.trim().toLowerCase(),u=s.filter(e=>zKt(e,l));return(0,D.jsxs)(`div`,{className:Y9.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:Y9.tzTrigger,"aria-expanded":r,"aria-label":`Change timezone`,onClick:()=>{i(e=>!e)},children:[(0,D.jsx)(rn,{size:14,className:Y9.tzGlobe}),(0,D.jsx)(`span`,{className:Y9.tzTriggerLabel,children:c.id}),(0,D.jsx)(`span`,{className:Y9.tzTriggerOffset,children:c.offset}),(0,D.jsx)(Vt,{size:15,className:Y9.tzChevron})]}),(0,D.jsx)(Uu,{children:r&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:Y9.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{i(!1)}}),(0,D.jsx)(BKt,{search:a,list:u,value:e,onSearch:o,onPick:e=>{n(e),o(``),i(!1)}})]})})]})},X9={gridScroll:`_gridScroll_1vnsd_7`,gridInner:`_gridInner_1vnsd_33`,gutter:`_gutter_1vnsd_38`,gutterHead:`_gutterHead_1vnsd_44`,gutterAllDay:`_gutterAllDay_1vnsd_48`,gutterHour:`_gutterHour_1vnsd_62`,dayCol:`_dayCol_1vnsd_73`,dayHeader:`_dayHeader_1vnsd_79`,colDay:`_colDay_1vnsd_93`,colDayToday:`_colDayToday_1vnsd_101`,dayNum:`_dayNum_1vnsd_105`,dayNumToday:`_dayNumToday_1vnsd_125`,dayCount:`_dayCount_1vnsd_131`,allDayBand:`_allDayBand_1vnsd_137`,allDayChip:`_allDayChip_1vnsd_148`,hoursWrap:`_hoursWrap_1vnsd_168`,workBand:`_workBand_1vnsd_174`,hourRow:`_hourRow_1vnsd_184`,nowLine:`_nowLine_1vnsd_203`,nowDot:`_nowDot_1vnsd_214`,block:`_block_1vnsd_224`,blockTitle:`_blockTitle_1vnsd_261`,blockTime:`_blockTime_1vnsd_279`,monthScroll:`_monthScroll_1vnsd_293`,monthHead:`_monthHead_1vnsd_302`,monthHeadCell:`_monthHeadCell_1vnsd_309`,monthGrid:`_monthGrid_1vnsd_319`,monthCell:`_monthCell_1vnsd_326`,monthCellOff:`_monthCellOff_1vnsd_347`,monthDayNum:`_monthDayNum_1vnsd_351`,monthCellToday:`_monthCellToday_1vnsd_355`,monthDayNumToday:`_monthDayNumToday_1vnsd_366`,monthChip:`_monthChip_1vnsd_379`,monthMore:`_monthMore_1vnsd_402`,agendaScroll:`_agendaScroll_1vnsd_410`,agendaGroup:`_agendaGroup_1vnsd_418`,agendaDay:`_agendaDay_1vnsd_422`,agendaItems:`_agendaItems_1vnsd_432`,agendaRow:`_agendaRow_1vnsd_438`,agendaAccent:`_agendaAccent_1vnsd_459`,agendaBody:`_agendaBody_1vnsd_467`,agendaTitle:`_agendaTitle_1vnsd_475`,agendaMeta:`_agendaMeta_1vnsd_484`,agendaPill:`_agendaPill_1vnsd_493`,agendaEmpty:`_agendaEmpty_1vnsd_506`,agendaEmptyIcon:`_agendaEmptyIcon_1vnsd_517`,agendaEmptyTitle:`_agendaEmptyTitle_1vnsd_522`,agendaEmptyText:`_agendaEmptyText_1vnsd_528`,agendaEmptyBtn:`_agendaEmptyBtn_1vnsd_533`,availabilityBand:`_availabilityBand_1vnsd_546`,availabilityBandLabel:`_availabilityBandLabel_1vnsd_579`,availabilityBandEditBtn:`_availabilityBandEditBtn_1vnsd_589`,dragSelectionHighlight:`_dragSelectionHighlight_1vnsd_612`,dragSelectionLabel:`_dragSelectionLabel_1vnsd_631`},HKt={hidden:{},visible:{transition:{staggerChildren:.04}}},UKt=e=>{let t=[...e].sort((e,t)=>e.start<t.start?-1:1),n=new Map;for(let e of t){let t=n.get(e.date);t===void 0?n.set(e.date,{key:e.date,label:new Date(e.start).toLocaleDateString(void 0,{weekday:`long`,day:`numeric`,month:`long`}),items:[e]}):t.items.push(e)}return[...n.values()]},WKt=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=z9[n.status],i=n.allDay?`All day`:`${F9(e.start)} – ${F9(e.end)}`;return(0,D.jsxs)(Zu.button,{type:`button`,variants:ad,whileHover:{x:3},className:X9.agendaRow,style:Xn({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(`span`,{className:X9.agendaAccent}),(0,D.jsxs)(`span`,{className:X9.agendaBody,children:[(0,D.jsx)(`span`,{className:X9.agendaTitle,children:n.title}),(0,D.jsxs)(`span`,{className:X9.agendaMeta,children:[i,n.recurrence!==null&&(0,D.jsxs)(D.Fragment,{children:[` · `,(0,D.jsx)(Tee,{size:10}),` Recurring`]})]})]}),(0,D.jsxs)(`span`,{className:X9.agendaPill,children:[(0,D.jsx)(r.Icon,{size:10}),` `,r.label]})]})},GKt=({occurrences:e,onSelectBlock:t,onCreate:n})=>{let r=UKt(e);return r.length===0?(0,D.jsxs)(`div`,{className:X9.agendaEmpty,children:[(0,D.jsx)(`span`,{className:X9.agendaEmptyIcon,children:(0,D.jsx)(Rt,{size:30})}),(0,D.jsx)(`span`,{className:X9.agendaEmptyTitle,children:`Nothing scheduled this month`}),(0,D.jsx)(`span`,{className:X9.agendaEmptyText,children:`Create a block to fill your week.`}),(0,D.jsx)(`button`,{type:`button`,className:X9.agendaEmptyBtn,onClick:n,children:`Create New Event`})]}):(0,D.jsx)(`div`,{className:X9.agendaScroll,children:r.map(e=>(0,D.jsxs)(`div`,{className:X9.agendaGroup,children:[(0,D.jsx)(`div`,{className:X9.agendaDay,children:e.label}),(0,D.jsx)(Zu.div,{className:X9.agendaItems,variants:HKt,initial:`hidden`,animate:`visible`,children:e.items.map(e=>(0,D.jsx)(WKt,{occurrence:e,onSelect:t},e.key))})]},e.key))})},KKt=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],qKt=3,JKt=e=>{let t=new Map;for(let n of e){let e=t.get(n.date)??[];e.push(n),t.set(n.date,e)}for(let e of t.values())e.sort((e,t)=>e.start<t.start?-1:1);return t},YKt=e=>{let{date:t,inMonth:n,isToday:r,occs:i}=e,a=i.length-qKt;return(0,D.jsxs)(`div`,{className:E(X9.monthCell,!n&&X9.monthCellOff,r&&X9.monthCellToday),onClick:()=>{e.onSelectSlot(R9(rp(t),`09:00`))},children:[(0,D.jsx)(`span`,{className:E(X9.monthDayNum,r&&X9.monthDayNumToday),children:t.getDate()}),i.slice(0,qKt).map(t=>(0,D.jsx)(`button`,{type:`button`,className:X9.monthChip,style:Xn({"--status-color":z9[t.block.status].color}),onClick:n=>{n.stopPropagation(),e.onSelectBlock(t.block)},children:t.block.title},t.key)),a>0&&(0,D.jsxs)(`span`,{className:X9.monthMore,children:[`+`,a,` more`]})]})},XKt=({dates:e,anchor:t,occurrences:n,today:r,onSelectBlock:i,onSelectSlot:a})=>{let o=JKt(n),s=rp(r);return(0,D.jsxs)(`div`,{className:X9.monthScroll,children:[(0,D.jsx)(`div`,{className:X9.monthHead,children:KKt.map(e=>(0,D.jsx)(`span`,{className:X9.monthHeadCell,children:e},e))}),(0,D.jsx)(Zu.div,{className:X9.monthGrid,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.2,ease:[.22,1,.36,1]},children:e.map(e=>{let n=rp(e);return(0,D.jsx)(YKt,{date:e,inMonth:e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear(),isToday:n===s,occs:o.get(n)??[],onSelectBlock:i,onSelectSlot:a},n)})})]})},Z9={sidebar:`_sidebar_p4iov_4`,summaryGrid:`_summaryGrid_p4iov_36`,summaryCard:`_summaryCard_p4iov_42`,summaryTop:`_summaryTop_p4iov_54`,summaryTopIcon:`_summaryTopIcon_p4iov_60`,summaryValue:`_summaryValue_p4iov_65`,summaryLabel:`_summaryLabel_p4iov_73`,sideHeader:`_sideHeader_p4iov_82`,quickRow:`_quickRow_p4iov_92`,quickBtn:`_quickBtn_p4iov_97`,legendIcon:`_legendIcon_p4iov_118`,legend:`_legend_p4iov_118`,legendItem:`_legendItem_p4iov_129`,legendItemOn:`_legendItemOn_p4iov_151`,legendOff:`_legendOff_p4iov_156`,legendSwatch:`_legendSwatch_p4iov_160`,legendSwatchOff:`_legendSwatchOff_p4iov_172`,drawerHeader:`_drawerHeader_p4iov_177`,drawerTitle:`_drawerTitle_p4iov_185`,drawerCloseBtn:`_drawerCloseBtn_p4iov_191`},ZKt={hidden:{},visible:{transition:{staggerChildren:.05}}},QKt=({occurrences:e,today:t,availability:n})=>{let r=ohe(e,t),i=Qf[(t.getDay()+6)%7]?.id??`mon`,a=n?.[i],o=a?.active?a.slots:[],s=[{label:`Free`,value:`${String(CGt(e,t,o))}h`,color:`var(--color-primary)`,Icon:Jt},{label:`Busy`,value:`${String(r.busyHours)}h`,color:z9.busy.color,Icon:z9.busy.Icon},{label:`Meetings`,value:String(r.meetingCount),color:z9.meeting.color,Icon:z9.meeting.Icon},{label:`Focus`,value:`${String(r.focusHours)}h`,color:z9.focus.color,Icon:z9.focus.Icon}];return(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Z9.sideHeader,children:`Today`}),(0,D.jsx)(Zu.div,{className:Z9.summaryGrid,variants:ZKt,initial:`hidden`,animate:`visible`,children:s.map(e=>(0,D.jsxs)(Zu.div,{className:Z9.summaryCard,style:Xn({"--v":e.color}),variants:ad,whileHover:{y:-2},children:[(0,D.jsxs)(`span`,{className:Z9.summaryTop,children:[(0,D.jsx)(e.Icon,{size:12,strokeWidth:2.4,className:Z9.summaryTopIcon}),(0,D.jsx)(`span`,{className:Z9.summaryLabel,children:e.label})]}),(0,D.jsx)(`span`,{className:Z9.summaryValue,children:e.value})]},e.label))})]})},$Kt=({onQuickAdd:e})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Z9.sideHeader,children:`Quick add`}),(0,D.jsx)(`div`,{className:Z9.quickRow,children:[{status:`focus`,minutes:60,title:`Deep work`,label:`Focus 1h`},{status:`busy`,minutes:30,title:`Busy`,label:`Busy 30m`}].map(t=>{let n=z9[t.status];return(0,D.jsxs)(Zu.button,{type:`button`,whileTap:{scale:.96},className:Z9.quickBtn,style:Xn({"--status-color":n.color}),onClick:()=>{e(t.status,t.minutes,t.title)},children:[(0,D.jsx)(n.Icon,{size:11}),` `,t.label]},t.label)})})]}),eqt=({activeStatuses:e,onToggleStatus:t})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Z9.sideHeader,children:`Status legend`}),(0,D.jsx)(`div`,{className:Z9.legend,children:sp.map(n=>{let r=z9[n.id],i=e.has(n.id);return(0,D.jsxs)(Zu.button,{type:`button`,whileTap:{scale:.97},className:E(Z9.legendItem,i?Z9.legendItemOn:Z9.legendOff),style:Xn({"--status-color":r.color}),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:E(Z9.legendSwatch,!i&&Z9.legendSwatchOff),children:(0,D.jsx)(Uu,{children:i&&(0,D.jsx)(Zu.span,{initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Bt,{size:11,strokeWidth:3})})})}),(0,D.jsx)(r.Icon,{size:12,className:Z9.legendIcon}),n.label]},n.id)})})]}),tqt=e=>(0,D.jsxs)(`aside`,{className:Z9.sidebar,children:[e.onClose!==void 0&&(0,D.jsxs)(`div`,{className:Z9.drawerHeader,children:[(0,D.jsx)(`span`,{className:Z9.drawerTitle,children:`Schedule Settings`}),(0,D.jsx)(`button`,{type:`button`,className:Z9.drawerCloseBtn,onClick:e.onClose,"aria-label":`Close schedule settings`,children:(0,D.jsx)(qn,{size:16})})]}),(0,D.jsx)(QKt,{occurrences:e.occurrences,today:e.today,availability:e.availability}),(0,D.jsx)($Kt,{onQuickAdd:e.onQuickAdd}),(0,D.jsx)(eqt,{activeStatuses:e.activeStatuses,onToggleStatus:e.onToggleStatus})]}),nqt=(e,t,n,r)=>{let i=Math.min(e,t),a=Math.max(e,t);if(e===t){let e=r-1;return{firstDayIdx:i,lastDayIdx:a,startHour:Math.min(n,e),endHour:Math.max(n,e)+1}}return e>t?{firstDayIdx:i,lastDayIdx:a,startHour:r-1,endHour:n}:{firstDayIdx:i,lastDayIdx:a,startHour:n,endHour:r}},rqt=({item:e,range:t,onSelect:n})=>{let{occurrence:r}=e,{block:i}=r,a=z9[i.status],o=mGt(r.start,r.end,t),s=r.continuesFromPrevDay===!0,c=r.continuesToNextDay===!0,l=s?`Continued from the previous day`:c?`Continues into the next day`:void 0;return(0,D.jsxs)(Zu.button,{type:`button`,draggable:!0,title:l,onDragStartCapture:e=>{e.dataTransfer.setData(`text/plain`,i.id)},initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},transition:{duration:.18,ease:[.22,1,.36,1]},className:X9.block,style:{...Xn({"--status-color":a.color,"--top":`${String(o.top)}px`,"--h":`${String(o.height)}px`,"--lane":e.lane,"--lanes":e.lanes}),...s?{borderTopLeftRadius:0,borderTopRightRadius:0}:{},...c?{borderBottomLeftRadius:0,borderBottomRightRadius:0}:{}},onClick:()=>{n(i)},children:[(0,D.jsxs)(`span`,{className:X9.blockTitle,children:[s&&(0,D.jsx)(Wt,{size:10,"aria-hidden":!0}),` `,(0,D.jsx)(a.Icon,{size:10}),` `,i.title]}),o.height>=30&&(0,D.jsxs)(`span`,{className:X9.blockTime,children:[F9(r.start),` – `,F9(r.end),c&&(0,D.jsx)(Vt,{size:10,"aria-hidden":!0})]})]})},iqt=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=z9[n.status];return(0,D.jsxs)(`button`,{type:`button`,className:X9.allDayChip,style:Xn({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(r.Icon,{size:10}),` `,n.title]})},aqt=e=>`${String(e).padStart(2,`0`)}:00`,oqt=({bands:e,range:t,onSelectSlot:n,onSelectBlock:r})=>(0,D.jsx)(D.Fragment,{children:e.map(e=>{let i=e.block.allDay&&e.continuesFromPrevDay!==!0&&e.continuesToNextDay!==!0?{top:0,height:pGt(t)}:mGt(e.start,e.end,t);return(0,D.jsxs)(`div`,{className:X9.availabilityBand,style:Xn({"--top":`${String(i.top)}px`,"--h":`${String(i.height)}px`}),onClick:()=>{n(e.start,e.end)},children:[(0,D.jsxs)(`span`,{className:X9.availabilityBandLabel,children:[(0,D.jsx)(Bt,{size:11,strokeWidth:3}),` Available`]}),(0,D.jsx)(`button`,{type:`button`,className:X9.availabilityBandEditBtn,onClick:t=>{t.stopPropagation(),r(e.block)},children:`Edit`})]},e.key)})}),sqt=({day:e,cell:t,dayIndex:n,range:r,onDragSelectStart:i,onDragSelectEnter:a,onDropBlock:o,onSelectSlot:s})=>(0,D.jsx)(D.Fragment,{children:fGt(r).map(r=>(0,D.jsx)(`button`,{type:`button`,className:X9.hourRow,"aria-label":`Add a block on ${e.long} at ${B9(r)}`,onMouseDown:e=>{e.button===0&&(e.preventDefault(),i(n,r))},onMouseEnter:e=>{a(n,r,e.buttons)},onDragOver:e=>{e.preventDefault()},onDrop:e=>{let n=e.dataTransfer.getData(`text/plain`);n&&o(n,R9(rp(t.date),aqt(r)))},onClick:()=>{s(R9(rp(t.date),aqt(r)))}},r))}),cqt=e=>e===0?``:e===1?`1 event`:`${String(e)} events`,lqt=({day:e,cell:t,count:n,off:r})=>(0,D.jsxs)(`div`,{className:X9.dayHeader,children:[(0,D.jsx)(`span`,{className:E(X9.colDay,t.isToday&&X9.colDayToday),children:e.short}),(0,D.jsx)(`span`,{className:E(X9.dayNum,t.isToday&&X9.dayNumToday),children:t.dayNumber}),(0,D.jsx)(`span`,{className:X9.dayCount,children:r?`Day off`:cqt(n)})]}),uqt=({allDay:e,onSelectBlock:t})=>(0,D.jsx)(`div`,{className:X9.allDayBand,children:e.map(e=>(0,D.jsx)(iqt,{occurrence:e,onSelect:t},e.key))}),dqt=({dayIndex:e,dragSelect:t,rangeStartHour:n})=>t===null||e<Math.min(t.startDayIndex,t.endDayIndex)||e>Math.max(t.startDayIndex,t.endDayIndex)?null:(0,D.jsx)(`div`,{className:X9.dragSelectionHighlight,style:Xn({"--top":`${String((Math.min(t.startHour,t.endHour-1)-n)*52)}px`,"--h":`${String(Math.abs(t.endHour-t.startHour)*52)}px`}),children:(0,D.jsxs)(`span`,{className:X9.dragSelectionLabel,children:[B9(Math.min(t.startHour,t.endHour)),` –`,` `,B9(Math.max(t.startHour,t.endHour))]})}),fqt=(e,t)=>{let n=e.filter(e=>e.dayIndex===t);return{dayOccs:n,allDay:n.filter(e=>e.block.allDay&&e.block.status!==`available`),availabilityBands:n.filter(e=>e.block.status===`available`),laid:bGt(n.filter(e=>!e.block.allDay&&e.block.status!==`available`))}},pqt=({active:e,slots:t,range:n,cell:r,day:i,dayIndex:a,now:o,availabilityBands:s,laid:c,dragSelect:l,onDragSelectStart:u,onDragSelectEnter:d,onDropBlock:f,onSelectSlot:p,onSelectBlock:m})=>{let h=gGt(e,t,n),g=r.isToday?_Gt(o,n):null;return(0,D.jsxs)(`div`,{className:X9.hoursWrap,style:Xn({"--grid-h":`${String(pGt(n))}px`}),children:[h.map(e=>(0,D.jsx)(`div`,{className:X9.workBand,style:Xn({"--top":`${String(e.top)}px`,"--h":`${String(e.height)}px`})},e.top)),(0,D.jsx)(oqt,{bands:s,range:n,onSelectSlot:p,onSelectBlock:m}),(0,D.jsx)(sqt,{day:i,cell:r,dayIndex:a,range:n,onDragSelectStart:u,onDragSelectEnter:d,onDropBlock:f,onSelectSlot:p}),(0,D.jsx)(dqt,{dayIndex:a,dragSelect:l,rangeStartHour:n.startHour}),g!==null&&(0,D.jsx)(`div`,{className:X9.nowLine,style:Xn({"--top":`${String(g)}px`}),children:(0,D.jsx)(`span`,{className:X9.nowDot})}),c.map(e=>(0,D.jsx)(rqt,{item:e,range:n,onSelect:m},e.occurrence.key))]})},mqt=e=>{let{day:t,cell:n,dayIndex:r,occurrences:i,onSelectBlock:a,active:o}=e,{dayOccs:s,allDay:c,availabilityBands:l,laid:u}=fqt(i,r),d=!o;return(0,D.jsxs)(`div`,{className:E(X9.dayCol,n.isToday&&X9.dayColToday),children:[(0,D.jsx)(lqt,{day:t,cell:n,count:s.length,off:d}),(0,D.jsx)(uqt,{allDay:c,onSelectBlock:a}),(0,D.jsx)(pqt,{...e,availabilityBands:l,laid:u})]})},hqt=({range:e})=>(0,D.jsxs)(`div`,{className:X9.gutter,children:[(0,D.jsx)(`div`,{className:X9.gutterHead}),(0,D.jsx)(`div`,{className:X9.gutterAllDay,children:`all-day`}),Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n).map(e=>(0,D.jsx)(`div`,{className:X9.gutterHour,children:B9(e)},e))]}),gqt=(e,t)=>{let[n,r]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let i=()=>{if(n!==null){let{firstDayIdx:i,lastDayIdx:a,startHour:o,endHour:s}=nqt(n.startDayIndex,n.endDayIndex,n.startHour,n.endHour),c=e[i],l=e[a];c&&l&&t(R9(rp(c.date),`${String(o).padStart(2,`0`)}:00`),R9(rp(l.date),`${String(s).padStart(2,`0`)}:00`)),r(null)}};return window.addEventListener(`mouseup`,i),()=>{window.removeEventListener(`mouseup`,i)}},[n,e,t]),{dragSelect:n,startDrag:(e,t)=>{r({startDayIndex:e,endDayIndex:e,startHour:t,endHour:t+1})},enterDrag:(e,t,i)=>{if(n!==null){if(i!==1){r(null);return}r({...n,endDayIndex:e,endHour:t+1})}}}},_qt=e=>{let t=Jm();return{dropBlock:(n,r)=>{let i=e.find(e=>e.block.id===n);if(!i)return;let a=i.block.durationMinutes,o=new Date(new Date(r).getTime()+a*6e4).toISOString();t.mutate({id:n,draft:{title:i.block.title,status:i.block.status,start:r,end:o,allDay:i.block.allDay,notes:i.block.notes,recurrence:i.block.recurrence}})}}},vqt=e=>({active:e?e.active:!0,slots:e?.slots??[{from:`09:00`,to:`17:00`}]}),yqt=({days:e,cells:t,occurrences:n,availability:r,workStart:i,workEnd:a,range:o,now:s,onSelectBlock:c,onSelectSlot:l})=>{let u=(0,y.useRef)(null),{dragSelect:d,startDrag:f,enterDrag:p}=gqt(t,l),{dropBlock:m}=_qt(n),h=(0,y.useRef)(s);h.current=s;let{startHour:g,endHour:_}=o,v=s.getHours()*60+s.getMinutes(),b=t.some(e=>e.isToday)&&v>=g*60&&v<=_*60;(0,y.useEffect)(()=>{let e=u.current;if(e===null)return;let t=b?yGt(h.current,g):vGt(i,a,g);e.scrollTo({top:Math.max(0,Math.min(t,e.scrollHeight-e.clientHeight))})},[g,i,a,b]);let x=Math.max(1,...e.map(e=>{let t=Qf.findIndex(t=>t.id===e.id);return n.filter(e=>e.dayIndex===t&&e.block.allDay).length}));return(0,D.jsx)(`div`,{className:X9.gridScroll,ref:u,children:(0,D.jsxs)(`div`,{className:X9.gridInner,style:Xn({"--all-day-rows":x}),children:[(0,D.jsx)(hqt,{range:o}),e.map(e=>{let i=Qf.findIndex(t=>t.id===e.id),a=t[i]??t[0];if(a===void 0)return null;let{active:u,slots:h}=vqt(r?r[e.id]:null);return(0,D.jsx)(mqt,{day:e,cell:a,dayIndex:i,active:u,slots:h,range:o,now:s,occurrences:n,dragSelect:d,onDragSelectStart:f,onDragSelectEnter:p,onDropBlock:m,onSelectBlock:c,onSelectSlot:l},e.id)})]})})},bqt=[{id:`day`,label:`Day`},{id:`week`,label:`Week`},{id:`workweek`,label:`Work Week`},{id:`month`,label:`Month`},{id:`agenda`,label:`Agenda`},{id:`hours`,label:`Working Hours`}],xqt=e=>e===`month`||e===`agenda`,Sqt=(e,t)=>{let n=new Set(e);return t===`agenda`?n.delete(`available`):t!==`hours`&&n.add(`available`),n},Cqt=(e,t)=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n},wqt=()=>{let[e,t]=(0,y.useState)(`week`),[n,r]=(0,y.useState)(0),[i,a]=(0,y.useState)(0),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(()=>new Set(sp.map(e=>e.id))),[u,d]=(0,y.useState)(``),f=nh(u).display;return{view:e,setView:e=>{t(e),l(t=>Sqt(t,e))},dayOffset:n,monthOffset:i,goPrev:()=>{xqt(e)?a(e=>e-1):r(e===`day`?e=>e-1:e=>e-7)},goNext:()=>{xqt(e)?a(e=>e+1):r(e===`day`?e=>e+1:e=>e+7)},goToday:()=>{r(0),a(0)},active:c,toggle:e=>{l(t=>Cqt(t,e))},editor:o,openCreate:(e,t)=>{s({mode:`create`,start:e,...t===void 0?{}:{end:t}})},openQuick:(e,t,n)=>{let r=new Date(EGt(new Date().toISOString(),f));r.setSeconds(0,0),r.setMinutes(Math.ceil(r.getMinutes()/5)*5);let i=new Date(r.getTime()+t*6e4);s({mode:`create`,start:r.toISOString(),end:i.toISOString(),status:e,title:n})},openEdit:e=>{s({mode:`edit`,block:e})},closeEditor:()=>{s(null)},timezone:f,setTimezone:d}},Q9={scheduleRoot:`_scheduleRoot_5za8e_7`,toolbar:`_toolbar_5za8e_16`,scheduleSelect:`_scheduleSelect_5za8e_27`,weekNav:`_weekNav_5za8e_39`,dateLabel:`_dateLabel_5za8e_45`,navBtn:`_navBtn_5za8e_54`,todayBtn:`_todayBtn_5za8e_75`,viewChips:`_viewChips_5za8e_92`,viewChip:`_viewChip_5za8e_92`,viewChipBg:`_viewChipBg_5za8e_119`,viewChipLabel:`_viewChipLabel_5za8e_128`,viewChipActive:`_viewChipActive_5za8e_134`,newBtn:`_newBtn_5za8e_140`,main:`_main_5za8e_156`,calArea:`_calArea_5za8e_163`,hoursArea:`_hoursArea_5za8e_172`,sidebarToggleBtn:`_sidebarToggleBtn_5za8e_181`,sidebarToggleBtnActive:`_sidebarToggleBtnActive_5za8e_199`},Tqt=e=>e.view===`month`?(0,D.jsx)(XKt,{dates:e.monthDates,anchor:e.monthAnchor,occurrences:e.monthOccurrences,today:e.today,onSelectBlock:e.onSelectBlock,onSelectSlot:e.onSelectSlot}):e.view===`agenda`?(0,D.jsx)(GKt,{occurrences:e.monthOccurrences,onSelectBlock:e.onSelectBlock,onCreate:e.onCreate}):(0,D.jsx)(yqt,{days:e.days,cells:e.cells,occurrences:e.weekOccurrences,availability:e.availability,workStart:e.workStart,workEnd:e.workEnd,range:e.range,now:e.today,onSelectBlock:e.onSelectBlock,onSelectSlot:e.onSelectSlot}),Eqt=e=>{let t=er(`(max-width: 1024px)`);return(0,D.jsxs)(`div`,{className:Q9.main,children:[(0,D.jsxs)(`div`,{className:Q9.calArea,children:[e.query.isPending&&(0,D.jsx)(`div`,{className:W9.center,children:(0,D.jsx)(rr,{label:`Loading schedule`})}),e.query.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not load schedule`,children:e.query.error.message}),e.query.isSuccess&&Tqt(e)]}),!t&&(0,D.jsx)(tqt,{occurrences:e.summary,today:e.today,availability:e.availability,workStart:e.workStart,workEnd:e.workEnd,activeStatuses:e.active,onToggleStatus:e.onToggle,onQuickAdd:e.onQuickAdd}),t&&(0,D.jsx)(tce,{open:e.isSidebarOpen??!1,onOpenChange:t=>{!t&&e.onCloseSidebar!==void 0&&e.onCloseSidebar()},title:`Schedule Settings`,side:`right`,children:(0,D.jsx)(tqt,{occurrences:e.summary,today:e.today,availability:e.availability,workStart:e.workStart,workEnd:e.workEnd,activeStatuses:e.active,onToggleStatus:e.onToggle,onQuickAdd:e.onQuickAdd,onClose:e.onCloseSidebar})})]})},Dqt=(e,t)=>e.meetingDuration!==t.meetingDuration||e.bufferMinutes!==t.bufferMinutes,Oqt=(e,t,n)=>{let r=th.from({personal:t.timezone,anchor:t.availabilityTimezone});return{anchorZone:r.anchor,initialTimezone:r.display,initialInZone:J9(e,r.anchor,r.display,n)}},kqt=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]={active:r.active,slots:r.slots.map(e=>({from:e.from,to:e.to}))};return t},Aqt=(e,t,n)=>{let r=mve(),i=_ve(),[a]=(0,y.useState)(()=>n.now()),[{anchorZone:o,initialTimezone:s,initialInZone:c}]=(0,y.useState)(()=>Oqt(e,t,a)),[l,u]=(0,y.useState)(c),[d,f]=(0,y.useState)(s),[p,m]=(0,y.useState)(t.meetingDuration),[h,g]=(0,y.useState)(t.bufferMinutes),_=J9(l,d,o,a),v=JSON.stringify(kqt(_))!==JSON.stringify(kqt(e)),b=Dqt({meetingDuration:p,bufferMinutes:h},t);return(0,y.useEffect)(()=>{r.isSuccess&&u(J9(e,o,d,a))},[e,r.isSuccess,o,d,a]),(0,y.useEffect)(()=>{i.isSuccess&&(m(t.meetingDuration),g(t.bufferMinutes))},[t,i.isSuccess]),{draft:l,timezone:d,meetingDuration:p,bufferMinutes:h,now:a,dirty:v||b,isSaving:r.isPending||i.isPending,isSuccess:r.isSuccess||i.isSuccess,isError:r.isError||i.isError,errorMsg:r.error?.message??i.error?.message??``,setMeetingDuration:m,setBufferMinutes:g,patchDay:(e,t)=>{r.reset(),i.reset(),u(n=>({...n,[e]:{...n[e],...t}}))},changeTimezone:e=>{r.reset(),i.reset(),u(t=>J9(t,d,e,a)),f(e)},reset:()=>{r.mutate(null,{onSuccess:()=>{Nf.success(`Reverted to your branch default hours.`)},onError:()=>{Nf.error(`Could not revert to branch defaults. Please try again.`)}})},onSave:()=>{r.reset(),i.reset(),v&&r.mutate(_),b&&i.mutate({...t,meetingDuration:p,bufferMinutes:h})}}},$9={hours:`_hours_ftj0h_5`,fieldLabel:`_fieldLabel_ftj0h_18`,chips:`_chips_ftj0h_24`,chipBtn:`_chipBtn_ftj0h_30`,chipBtnActive:`_chipBtnActive_ftj0h_50`,chipBg:`_chipBg_ftj0h_56`,chipLabel:`_chipLabel_ftj0h_64`,dayRow:`_dayRow_ftj0h_69`,toggle:`_toggle_ftj0h_77`,toggleOn:`_toggleOn_ftj0h_90`,toggleKnob:`_toggleKnob_ftj0h_95`,dayName:`_dayName_ftj0h_102`,overflowLabel:`_overflowLabel_ftj0h_112`,dayTimes:`_dayTimes_ftj0h_119`,timeInput:`_timeInput_ftj0h_127`,resetBtn:`_resetBtn_ftj0h_144`,readonlyField:`_readonlyField_ftj0h_162`,fieldHint:`_fieldHint_ftj0h_175`,formFooter:`_formFooter_ftj0h_180`,formStatus:`_formStatus_ftj0h_188`,saveBtn:`_saveBtn_ftj0h_194`,inheritedBanner:`_inheritedBanner_ftj0h_212`,inheritedBadge:`_inheritedBadge_ftj0h_218`,badgeSub:`_badgeSub_ftj0h_229`,customBadge:`_customBadge_ftj0h_234`,customBadgeText:`_customBadgeText_ftj0h_247`,resetToBranchBtn:`_resetToBranchBtn_ftj0h_251`,settingsGrid:`_settingsGrid_ftj0h_271`},jqt=({name:e,options:t,selected:n,onSelect:r})=>(0,D.jsx)(`div`,{className:$9.chips,children:t.map(t=>{let i=n===t;return(0,D.jsxs)(`button`,{type:`button`,className:E($9.chipBtn,i&&$9.chipBtnActive),onClick:()=>{r(t)},children:[i&&(0,D.jsx)(Zu.span,{layoutId:`chip-${e}`,className:$9.chipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsxs)(`span`,{className:$9.chipLabel,children:[t,`m`]})]},t)})}),Mqt=({meetingDuration:e,bufferMinutes:t,onDurationChange:n,onBufferChange:r})=>(0,D.jsxs)(`div`,{className:$9.settingsGrid,children:[(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Meeting duration`}),(0,D.jsx)(jqt,{name:`duration`,options:the,selected:e,onSelect:n})]}),(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Buffer between meetings`}),(0,D.jsx)(jqt,{name:`buffer`,options:nhe,selected:t,onSelect:r})]})]}),Nqt=({slot:e,index:t,slots:n,active:r,onChange:i})=>{let a=n[t-1],o=n[t+1],s=a===void 0?void 0:a.to,c=e.to,l=e.from,u=o===void 0?void 0:o.from;return(0,D.jsxs)(`div`,{className:$9.dayTimes,children:[(0,D.jsx)(Uf,{value:e.from,minTime:s,maxTime:c,disabled:!r,onChange:r=>{let a=[...n];a[t]={...e,from:r},i(a)}}),(0,D.jsx)(`span`,{className:W9.dash,children:`–`}),(0,D.jsx)(Uf,{value:e.to,minTime:l,maxTime:u,disabled:!r,align:`end`,onChange:r=>{let a=[...n];a[t]={...e,to:r},i(a)}}),(0,D.jsx)(`button`,{type:`button`,className:$9.resetBtn,disabled:!r||n.length===1,onClick:()=>{i(n.filter((e,n)=>n!==t))},children:`Delete`})]})},Pqt=({day:e,value:t,onChange:n})=>(0,D.jsxs)(`div`,{className:$9.dayRow,children:[(0,D.jsx)(`button`,{type:`button`,className:E($9.toggle,t.active&&$9.toggleOn),"aria-pressed":t.active,onClick:()=>{n({active:!t.active})},children:(0,D.jsx)(`span`,{className:$9.toggleKnob})}),(0,D.jsx)(`span`,{className:$9.dayName,children:e.long}),(0,D.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`8px`,flex:1},children:[t.slots.map((e,r)=>(0,D.jsx)(Nqt,{slot:e,index:r,slots:t.slots,active:t.active,onChange:e=>{n({slots:e})}},e.id)),(0,D.jsx)(`button`,{type:`button`,className:$9.resetBtn,style:{alignSelf:`flex-start`,margin:0},disabled:!t.active,onClick:()=>{let e=t.slots[t.slots.length-1],r=`09:00`,i=`17:00`;e!==void 0&&e.to<`22:00`&&(r=e.to,i=`23:00`),n({slots:[...t.slots,{id:crypto.randomUUID(),from:r,to:i}]})},children:`+ Add Time`})]}),(0,D.jsxs)(`button`,{type:`button`,className:$9.resetBtn,onClick:()=>{n({active:!0,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]})},children:[(0,D.jsx)(On,{size:13}),` Reset`]})]}),Fqt=({timezone:e,branchName:t,now:n,onTimezoneChange:r})=>(0,D.jsxs)(`div`,{className:$9.settingsGrid,children:[(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Timezone`}),(0,D.jsx)(VKt,{value:e,now:n,onChange:r}),(0,D.jsx)(`span`,{className:$9.fieldHint,children:`Preview only — set your saved timezone in Profile`})]}),(0,D.jsxs)(`div`,{className:W9.field,children:[(0,D.jsx)(`span`,{className:$9.fieldLabel,children:`Home Branch`}),(0,D.jsx)(`div`,{className:$9.readonlyField,children:t}),(0,D.jsx)(`span`,{className:$9.fieldHint,children:`Assigned from your UAPP account`})]})]}),Iqt=({isOverride:e,branchName:t,onReset:n})=>(0,D.jsx)(`div`,{className:$9.inheritedBanner,children:e?(0,D.jsxs)(`div`,{className:$9.customBadge,children:[(0,D.jsxs)(`span`,{className:$9.customBadgeText,children:[`Customized Working Hours (overrides `,t,`)`]}),(0,D.jsxs)(`button`,{type:`button`,className:$9.resetToBranchBtn,onClick:n,children:[(0,D.jsx)(Hn,{size:13}),` Use Branch Defaults`]})]}):(0,D.jsxs)(`div`,{className:$9.inheritedBadge,children:[(0,D.jsxs)(`span`,{children:[`Inheriting default hours from `,(0,D.jsx)(`strong`,{children:t})]}),(0,D.jsx)(`span`,{className:$9.badgeSub,children:`Modifying the hours below will create a personal override.`})]})}),Lqt=({statusText:e,disabled:t,onClick:n})=>(0,D.jsxs)(`div`,{className:$9.formFooter,children:[(0,D.jsx)(`span`,{className:$9.formStatus,children:e}),(0,D.jsx)(`button`,{type:`button`,className:$9.saveBtn,disabled:t,onClick:n,children:`Save changes`})]}),Rqt=(e,t)=>e?`Unsaved changes`:t?`Saved`:``,zqt=({initial:e,isOverride:t,branchName:n,prefs:r})=>{let{clock:i}=Gm(),a=Aqt(e,r,i),o=Rqt(a.dirty,a.isSuccess);return(0,D.jsxs)(`div`,{className:$9.hours,children:[(0,D.jsx)(Fqt,{timezone:a.timezone,branchName:n,now:a.now,onTimezoneChange:a.changeTimezone}),(0,D.jsx)(Mqt,{meetingDuration:a.meetingDuration,bufferMinutes:a.bufferMinutes,onDurationChange:a.setMeetingDuration,onBufferChange:a.setBufferMinutes}),(0,D.jsx)(Iqt,{isOverride:t,branchName:n,onReset:a.reset}),Qf.map(e=>(0,D.jsx)(Pqt,{day:e,value:a.draft[e.id],onChange:t=>{a.patchDay(e.id,t)}},e.id)),a.isError&&(0,D.jsx)(sr,{tone:`error`,title:`Could not save`,children:a.errorMsg}),(0,D.jsx)(Lqt,{statusText:o,disabled:!a.dirty||a.isSaving,onClick:a.onSave})]})},Bqt=(e,t,n)=>e?.message??t?.message??n?.message??`Unknown error`,Vqt=(e,t)=>e?.branches.find(e=>e.id===t)?.name??`your branch`,Hqt=()=>{let e=pve(),t=Ah(),n=Ym();if(e.isPending||t.isPending||n.isPending)return(0,D.jsx)(`div`,{className:W9.center,children:(0,D.jsx)(rr,{label:`Loading working hours`})});if(e.isError||t.isError||n.isError)return(0,D.jsx)(sr,{tone:`error`,title:`Could not load working hours`,children:Bqt(e.error,t.error,n.error)});let r=Vqt(t.data,n.data.branchId);return(0,D.jsx)(zqt,{initial:e.data.weekly,isOverride:e.data.isOverride,branchName:r,prefs:n.data},`${String(e.data.isOverride)}:${e.data.source}`)},Uqt={workStart:`09:00`,workEnd:`17:00`,branchId:`uk`},Wqt=(e,t)=>e===`day`?Qf.slice(t,t+1):e===`workweek`?Qf.slice(0,5):Qf,Gqt=e=>{let[t]=e.split(`:`);return Number(t??`0`)},Kqt=(e,t,n)=>{if(e!==null)return e;if(t){let e=Ibe(t,n),r={};for(let t of Qf){let n=e[t.id];r[t.id]={active:n.active,slots:[{id:crypto.randomUUID(),from:n.from,to:n.to}]}}return r}let r={};for(let e of Qf)r[e.id]={active:e.id!==`sat`&&e.id!==`sun`,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]};return r},qqt=(e,t,n,r)=>t!==``&&t!==n?J9(e,t,n,r):e,Jqt=e=>{let t=Object.values(e).filter(e=>e.active).flatMap(e=>e.slots),n=t.length>0?Math.min(...t.map(e=>Gqt(e.from))):9,r=t.length>0?Math.max(...t.map(e=>Gqt(e.to))):17;return{workStart:`${String(Math.max(0,n)).padStart(2,`0`)}:00`,workEnd:`${String(Math.min(24,r)).padStart(2,`0`)}:00`}},Yqt=(e,t)=>(0,y.useMemo)(()=>{let n=e??[],r=Zm();if(t===r)return n;let i=e=>{let n=new Date(e),i=$m(t,n)-$m(r,n);return i===0?e:new Date(n.getTime()+i*6e4).toISOString()};return n.map(e=>new op({id:e.id,userId:e.userId,title:e.title,status:e.status,start:i(e.start),end:i(e.end),allDay:e.allDay,notes:e.notes,recurrence:e.recurrence}))},[e,t]),Xqt=e=>{let t=qm(),n=fve().data??null,r=Ym().data,i=r??Uqt,a=Ah(),o=new Date,s=$m(e.timezone,o)-$m(Zm(),o),c=new Date(o.getTime()+s*6e4),l=e.view===`month`||e.view===`agenda`,u=t=>e.active.has(t.block.status),d=i.branchId,f=qqt((0,y.useMemo)(()=>Kqt(n,a.data,d),[n,a.data,d]),r?.availabilityTimezone??``,e.timezone,o),{workStart:p,workEnd:m}=Jqt(f),h=e.timezone,g=Yqt(t.data,h),_=(c.getDay()+6)%7,v=Math.floor((e.dayOffset+_)/7),b=((e.dayOffset+_)%7+7)%7,x=cp(g,N9(c,v)),S=sGt(c,e.monthOffset),C=uhe(S[0]??c,S[S.length-1]??c,g),w=new Date(c);return w.setSeconds(0,0),w.setMinutes(Math.ceil(w.getMinutes()/30)*30),{query:t,today:c,days:Wqt(e.view,b),cells:rGt(c,v),weekOccurrences:x.filter(u),availability:f,workStart:p,workEnd:m,range:dGt(x,p,m),monthDates:S,monthAnchor:aGt(c,e.monthOffset),monthOccurrences:C.filter(u),summary:l?C:x,rangeText:l?oGt(c,e.monthOffset):iGt(c,v),defaultStart:w.toISOString()}},Zqt=({view:e,onView:t})=>(0,D.jsx)(`div`,{className:Q9.viewChips,children:bqt.map(n=>{let r=e===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:E(Q9.viewChip,r&&Q9.viewChipActive),onClick:()=>{t(n.id)},children:[r&&(0,D.jsx)(Zu.span,{layoutId:`schedViewBg`,className:Q9.viewChipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:Q9.viewChipLabel,children:n.label})]},n.id)})}),Qqt=({view:e,onView:t,rangeText:n,showNav:r,onPrev:i,onNext:a,onToday:o,onNew:s,timezone:c,setTimezone:l,todayDate:u,onToggleSidebar:d,isSidebarOpen:f})=>(0,D.jsxs)(`div`,{className:Q9.toolbar,children:[(0,D.jsx)(`select`,{className:Q9.scheduleSelect,"aria-label":`Calendar`,defaultValue:`my`,children:(0,D.jsx)(`option`,{value:`my`,children:`My Schedule`})}),e!==`hours`&&(0,D.jsx)(VKt,{value:c,onChange:l,now:u}),r&&(0,D.jsxs)(`div`,{className:Q9.weekNav,children:[(0,D.jsx)(`button`,{type:`button`,className:Q9.todayBtn,onClick:o,children:`Today`}),(0,D.jsx)(`button`,{type:`button`,className:Q9.navBtn,"aria-label":`Previous week`,onClick:i,children:(0,D.jsx)(Ht,{size:16})}),(0,D.jsx)(`button`,{type:`button`,className:Q9.navBtn,"aria-label":`Next week`,onClick:a,children:(0,D.jsx)(Ut,{size:16})}),(0,D.jsx)(`span`,{className:Q9.dateLabel,children:n})]}),e!==`hours`&&d!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:E(Q9.sidebarToggleBtn,f&&Q9.sidebarToggleBtnActive),"aria-label":`Schedule settings`,title:`Schedule settings`,onClick:d,children:(0,D.jsx)(Oee,{size:15})}),(0,D.jsx)(Zqt,{view:e,onView:t}),(0,D.jsxs)(`button`,{type:`button`,className:Q9.newBtn,onClick:s,children:[(0,D.jsx)(En,{size:14,strokeWidth:2.5}),` New`]})]}),$qt=()=>{let[e,t]=(0,y.useState)(!1),n=wqt(),r=Xqt(n),i=()=>{n.openCreate(r.defaultStart)};return(0,D.jsxs)(`div`,{className:Q9.scheduleRoot,children:[(0,D.jsx)(Qqt,{view:n.view,onView:n.setView,rangeText:r.rangeText,showNav:n.view!==`hours`,onPrev:n.goPrev,onNext:n.goNext,onToday:n.goToday,onNew:i,timezone:n.timezone,setTimezone:n.setTimezone,todayDate:r.today,onToggleSidebar:()=>{t(e=>!e)},isSidebarOpen:e}),n.view===`hours`?(0,D.jsx)(`div`,{className:Q9.hoursArea,children:(0,D.jsx)(Hqt,{})}):(0,D.jsx)(Eqt,{query:r.query,view:n.view,today:r.today,days:r.days,cells:r.cells,weekOccurrences:r.weekOccurrences,availability:r.availability,workStart:r.workStart,workEnd:r.workEnd,range:r.range,monthDates:r.monthDates,monthAnchor:r.monthAnchor,monthOccurrences:r.monthOccurrences,summary:r.summary,active:n.active,onToggle:n.toggle,onSelectBlock:n.openEdit,onSelectSlot:n.openCreate,onCreate:i,onQuickAdd:n.openQuick,isSidebarOpen:e,onCloseSidebar:()=>{t(!1)}}),n.editor!==null&&(0,D.jsx)(wKt,{state:n.editor,timezone:n.timezone,onClose:n.closeEditor})]})},eJt=()=>{m9(`uapp-schedule`,()=>(0,D.jsx)($Ht,{path:`/comms/schedule`,children:(0,D.jsx)($qt,{})}))},tJt=6e4,nJt=e=>{let t=e.logger??new mp(`info`),n=new Xm,r,i=0,a=new Che(new yhe(new fp({logger:t,baseUrl:e.apiBaseUrl,getAuthToken:()=>r}),{timeoutMs:2e4,logger:t}),{logger:t}),o=new nPt({httpClient:a,clock:n,logger:t,clientKey:e.clientKey,modules:e.modules});return{httpClient:a,logger:t,token:async()=>{if(r!==void 0&&n.now().getTime()<i-tJt)return r;let a=await e.getAssertion(),s=await o.exchangeSsoSecret(a);if(!s.ok){t.error(`Could not exchange the assertion for a token`,s.error);return}return r=s.value.accessToken,i=s.value.expiresAt.getTime(),r},currentToken:()=>r}},rJt=`/api/app/notification`,iJt=async(e,t)=>{try{let t=await e.get(rJt);return(Array.isArray(t)?t:[]).map(Gzt).filter(e=>e!==null)}catch(e){return t.error(`Could not load unread notifications`,e),[]}},aJt=(e,t,n)=>new hFt({logger:t}).create({url:`${e}/signalr/notifications`,accessTokenProvider:n});e.CommsProvider=Yzt,e.SDK_MODULE_SCOPES=oPt,e.WidgetRoot=Xzt,e.createNotificationClient=e=>{let t=nJt({apiBaseUrl:e.apiBaseUrl,clientKey:e.clientKey,getAssertion:e.getAssertion,modules:e.modules??[`commhub.feed`],...e.logger===void 0?{}:{logger:e.logger}}),{httpClient:n,logger:r,token:i}=t,a=null,o=null,s=[];return{start:async()=>{a===null&&await i()!==void 0&&(s=await iJt(n,r),s.forEach(e.onNotification),a=aJt(e.apiBaseUrl,r,t.currentToken),o=a.on(VLt.ReceiveNotification,t=>{let n=Gzt(t);if(n===null){r.error(`Discarded a malformed notification payload`,{rawPayload:t});return}s=[n,...s.filter(e=>e.id!==n.id)],e.onNotification(n)}),await a.start())},stop:async()=>{o?.(),o=null,await a?.stop(),a=null},markAsRead:async e=>{await i()!==void 0&&(await n.post(`${rJt}/${e}/mark-as-read`,{}),s=s.filter(t=>t.id!==e))},unread:()=>s}},e.createPresenceClient=e=>{let t=nJt({apiBaseUrl:e.apiBaseUrl,clientKey:e.clientKey,getAssertion:e.getAssertion,modules:e.modules??[`commhub.chat`],...e.logger===void 0?{}:{logger:e.logger}}),n=new HSe({httpClient:t.httpClient,logger:t.logger}),r=async e=>{if(await t.token()===void 0)return null;let n=await e();return lme(n)?n.value:null};return{getMine:()=>r(()=>n.getMine()),setMine:e=>r(()=>n.setMine(e)),clearMine:()=>r(()=>n.clearMine()),getOf:async e=>{if(await t.token()===void 0)return null;let r=await n.getOf(e);return lme(r)?r.value:null}}},e.defineCustomElements=()=>{aBt(),eUt(),nGt(),eJt()},e.registerBookingsWidget=nGt,e.registerChatWidget=aBt,e.registerFeedWidget=eUt,e.registerScheduleWidget=eJt});
|
|
2101
2101
|
//# sourceMappingURL=communication-sdk.standalone.js.map
|