uapp-communication-sdk 1.0.0-dev.58 → 1.0.0-dev.59
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 +1379 -1232
- package/communication-sdk.standalone.js +159 -159
- package/package.json +1 -1
- package/types/sdk/SdkProviders.d.ts.map +1 -1
- package/types/sdk/runtime/sdk-composition-root.d.ts +2 -0
- package/types/sdk/runtime/sdk-composition-root.d.ts.map +1 -1
package/communication-sdk.cjs
CHANGED
|
@@ -52,5 +52,5 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=requi
|
|
|
52
52
|
`),()=>{c.current?.removeAttribute(`data-motion-pop-id`),b.contains(y)&&b.removeChild(y)}},[t]),(0,D.jsx)(Lg,{isPresent:t,childRef:c,sizeRef:l,pop:o,children:o===!1?e:n.cloneElement(e,{ref:d})})}var zg=({children:e,initial:t,isPresent:r,onExitComplete:i,custom:a,presenceAffectsLayout:o,mode:s,anchorX:c,anchorY:l,root:u})=>{let d=Bs(Bg),f=(0,n.useId)(),p=!0,m=(0,n.useMemo)(()=>(p=!1,{id:f,initial:t,isPresent:r,custom:a,onExitComplete:e=>{d.set(e,!0);for(let e of d.values())if(!e)return;i&&i()},register:e=>(d.set(e,!1),()=>d.delete(e))}),[r,d,i]);return o&&p&&(m={...m}),(0,n.useMemo)(()=>{d.forEach((e,t)=>d.set(t,!1))},[r]),n.useEffect(()=>{!r&&!d.size&&i&&i()},[r]),e=(0,D.jsx)(Rg,{pop:s===`popLayout`,isPresent:r,anchorX:c,anchorY:l,root:u,children:e}),(0,D.jsx)(Hs.Provider,{value:m,children:e})};function Bg(){return new Map}function Vg(e=!0){let t=(0,n.useContext)(Hs);if(t===null)return[!0,null];let{isPresent:r,onExitComplete:i,register:a}=t,o=(0,n.useId)();(0,n.useEffect)(()=>{if(e)return a(o)},[e]);let s=(0,n.useCallback)(()=>e&&i&&i(o),[o,i,e]);return!r&&i?[!1,s]:[!0]}var Hg=e=>e.key||``;function Ug(e){let t=[];return n.Children.forEach(e,e=>{(0,n.isValidElement)(e)&&t.push(e)}),t}var Wg=({children:e,custom:t,initial:r=!0,onExitComplete:i,presenceAffectsLayout:a=!0,mode:o=`sync`,propagate:s=!1,anchorX:c=`left`,anchorY:l=`top`,root:u})=>{let[d,f]=Vg(s),p=(0,n.useMemo)(()=>Ug(e),[e]),m=s&&!d?[]:p.map(Hg),h=(0,n.useRef)(!0),g=(0,n.useRef)(p),_=Bs(()=>new Map),v=(0,n.useRef)(new Set),[y,b]=(0,n.useState)(p),[x,S]=(0,n.useState)(p);Vs(()=>{h.current=!1,g.current=p;for(let e=0;e<x.length;e++){let t=Hg(x[e]);m.includes(t)?(_.delete(t),v.current.delete(t)):_.get(t)!==!0&&_.set(t,!1)}},[x,m.length,m.join(`-`)]);let C=[];if(p!==y){let e=[...p];for(let t=0;t<x.length;t++){let n=x[t],r=Hg(n);m.includes(r)||(e.splice(t,0,n),C.push(n))}return o===`wait`&&C.length&&(e=C),S(Ug(e)),b(p),null}process.env.NODE_ENV!==`production`&&o===`wait`&&x.length>1&&console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);let{forceRender:ee}=(0,n.useContext)(zs);return(0,D.jsx)(D.Fragment,{children:x.map(e=>{let n=Hg(e),y=s&&!d?!1:p===x||m.includes(n);return(0,D.jsx)(zg,{isPresent:y,initial:!h.current||r?void 0:!1,custom:t,presenceAffectsLayout:a,mode:o,root:u,onExitComplete:y?void 0:()=>{if(v.current.has(n))return;if(_.has(n))v.current.add(n),_.set(n,!0);else return;let e=!0;_.forEach(t=>{t||(e=!1)}),e&&(ee?.(),S(g.current),s&&f?.(),i&&i())},anchorX:c,anchorY:l,children:e},n)})})},Gg=(0,n.createContext)({strict:!1}),Kg={animation:[`animate`,`variants`,`whileHover`,`whileTap`,`exit`,`whileInView`,`whileFocus`,`whileDrag`],exit:[`exit`],drag:[`drag`,`dragControls`],focus:[`whileFocus`],hover:[`whileHover`,`onHoverStart`,`onHoverEnd`],tap:[`whileTap`,`onTap`,`onTapStart`,`onTapCancel`],pan:[`onPan`,`onPanStart`,`onPanSessionStart`,`onPanEnd`],inView:[`whileInView`,`onViewportEnter`,`onViewportLeave`],layout:[`layout`,`layoutId`]},qg=!1;function Jg(){if(qg)return;let e={};for(let t in Kg)e[t]={isEnabled:e=>Kg[t].some(t=>!!e[t])};Qp(e),qg=!0}function Yg(){return Jg(),$p()}function Xg(e){let t=Yg();for(let n in e)t[n]={...t[n],...e[n]};Qp(t)}var Zg=new Set(`animate.exit.variants.initial.style.values.variants.transition.transformTemplate.custom.inherit.onBeforeLayoutMeasure.onAnimationStart.onAnimationComplete.onUpdate.onDragStart.onDrag.onDragEnd.onMeasureDragConstraints.onDirectionLock.onDragTransitionEnd._dragX._dragY.onHoverStart.onHoverEnd.onViewportEnter.onViewportLeave.globalTapTarget.propagate.ignoreStrict.viewport`.split(`.`));function Qg(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||Zg.has(e)}var $g=e.i({default:()=>e_}),e_,t_=e.r((()=>{throw e_={},Error(`Could not resolve "@emotion/is-prop-valid" imported by "framer-motion". Is it installed?`)})),n_=e=>!Qg(e);function r_(e){typeof e==`function`&&(n_=t=>t.startsWith(`on`)?!Qg(t):e(t))}try{r_((t_(),e.a($g)).default)}catch{}function i_(e,t,n){let r={};for(let i in e)i===`values`&&typeof e.values==`object`||df(e[i])||(n_(i)||n===!0&&Qg(i)||!t&&!Qg(i)||e.draggable&&i.startsWith(`onDrag`))&&(r[i]=e[i]);return r}function a_({children:e,isValidProp:t,...r}){t&&r_(t);let i=(0,n.useContext)(Ng);r={...i,...r},r.transition=Hd(r.transition,i.transition),r.isStatic=Bs(()=>r.isStatic);let a=(0,n.useMemo)(()=>r,[JSON.stringify(r.transition),r.transformPagePoint,r.reducedMotion,r.skipAnimations]);return(0,D.jsx)(Ng.Provider,{value:a,children:e})}var o_=(0,n.createContext)({});function s_(e,t){if(Up(e)){let{initial:t,animate:n}=e;return{initial:t===!1||Bp(t)?t:void 0,animate:Bp(n)?n:void 0}}return e.inherit===!1?{}:t}function c_(e){let{initial:t,animate:r}=s_(e,(0,n.useContext)(o_));return(0,n.useMemo)(()=>({initial:t,animate:r}),[l_(t),l_(r)])}function l_(e){return Array.isArray(e)?e.join(` `):e}var u_=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function d_(e,t,n){for(let r in t)!df(t[r])&&!Nm(r,n)&&(e[r]=t[r])}function f_({transformTemplate:e},t){return(0,n.useMemo)(()=>{let n=u_();return Dm(n,t,e),Object.assign({},n.vars,n.style)},[t])}function p_(e,t){let n=e.style||{},r={};return d_(r,n,e),Object.assign(r,f_(e,t)),r}function m_(e,t){let n={},r=p_(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.touchAction=e.drag===!0?`none`:`pan-${e.drag===`x`?`y`:`x`}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}var h_=()=>({...u_(),attrs:{}});function g_(e,t,r,i){let a=(0,n.useMemo)(()=>{let n=h_();return Vm(n,t,Um(i),e.transformTemplate,e.style),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};d_(t,e.style,e),a.style={...t,...a.style}}return a}var __=[`animate`,`circle`,`defs`,`desc`,`ellipse`,`g`,`image`,`line`,`filter`,`marker`,`mask`,`metadata`,`path`,`pattern`,`polygon`,`polyline`,`rect`,`stop`,`switch`,`symbol`,`svg`,`text`,`tspan`,`use`,`view`];function v_(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(__.indexOf(e)>-1||/[A-Z]/u.test(e))}function y_(e,t,r,{latestValues:i},a,o=!1,s){let c=(s??v_(e)?g_:m_)(t,i,a,e),l=i_(t,typeof e==`string`,o),u=e===n.Fragment?{}:{...l,...c,ref:r},{children:d}=t,f=(0,n.useMemo)(()=>df(d)?d.get():d,[d]);return(0,n.createElement)(e,{...u,children:f})}function b_({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:x_(n,r,i,e),renderState:t()}}function x_(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=Jh(a[e]);let{initial:o,animate:s}=e,c=Up(e),l=Wp(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!zp(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=rf(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var S_=e=>(t,r)=>{let i=(0,n.useContext)(o_),a=(0,n.useContext)(Hs),o=()=>b_(e,t,i,a);return r?o():Bs(o)},C_=S_({scrapeMotionValuesFromProps:Pm,createRenderState:u_}),w_=S_({scrapeMotionValuesFromProps:Gm,createRenderState:h_}),T_=Symbol.for(`motionComponentSymbol`);function E_(e,t,r){let i=(0,n.useRef)(r);(0,n.useInsertionEffect)(()=>{i.current=r});let a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{n&&e.onMount?.(n),t&&(n?t.mount(n):t.unmount());let r=i.current;if(typeof r==`function`)if(n){let e=r(n);typeof e==`function`&&(a.current=e)}else a.current?(a.current(),a.current=null):r(n);else r&&(r.current=n)},[t])}var D_=(0,n.createContext)({});function O_(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}function k_(e,t,r,i,a,o){let{visualElement:s}=(0,n.useContext)(o_),c=(0,n.useContext)(Gg),l=(0,n.useContext)(Hs),u=(0,n.useContext)(Ng),d=u.reducedMotion,f=u.skipAnimations,p=(0,n.useRef)(null),m=(0,n.useRef)(!1);i||=c.renderer,!p.current&&i&&(p.current=i(e,{visualState:t,parent:s,props:r,presenceContext:l,blockInitialAnimation:l?l.initial===!1:!1,reducedMotionConfig:d,skipAnimations:f,isSVG:o}),m.current&&p.current&&(p.current.manuallyAnimateOnMount=!0));let h=p.current,g=(0,n.useContext)(D_);h&&!h.projection&&a&&(h.type===`html`||h.type===`svg`)&&A_(p.current,r,a,g);let _=(0,n.useRef)(!1);(0,n.useInsertionEffect)(()=>{h&&_.current&&h.update(r,l)});let v=r[hf],y=(0,n.useRef)(!!v&&typeof window<`u`&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return Vs(()=>{m.current=!0,h&&(_.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),h.scheduleRenderMicrotask(),y.current&&h.animationState&&h.animationState.animateChanges())}),(0,n.useEffect)(()=>{h&&(!y.current&&h.animationState&&h.animationState.animateChanges(),y.current&&=(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),!1),h.enteringChildren=void 0)}),h}function A_(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l,layoutAnchor:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:j_(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&O_(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:l,layoutAnchor:u})}function j_(e){if(e)return e.options.allowProjection===!1?j_(e.parent):e.projection}function M_(e,{forwardMotionProps:t=!1,type:r}={},i,a){i&&Xg(i);let o=r?r===`svg`:v_(e),s=o?w_:C_;function c(r,c){let l,u={...(0,n.useContext)(Ng),...r,layoutId:N_(r)},{isStatic:d}=u,f=c_(r),p=s(r,d);if(!d&&typeof window<`u`){P_(u,i);let t=F_(u);l=t.MeasureLayout,f.visualElement=k_(e,p,u,a,t.ProjectionNode,o)}return(0,D.jsxs)(o_.Provider,{value:f,children:[l&&f.visualElement?(0,D.jsx)(l,{visualElement:f.visualElement,...u}):null,y_(e,r,E_(p,f.visualElement,c),p,d,t,o)]})}c.displayName=`motion.${typeof e==`string`?e:`create(${e.displayName??e.name??``})`}`;let l=(0,n.forwardRef)(c);return l[T_]=e,l}function N_({layoutId:e}){let t=(0,n.useContext)(zs).id;return t&&e!==void 0?t+`-`+e:e}function P_(e,t){let r=(0,n.useContext)(Gg).strict;if(process.env.NODE_ENV!==`production`&&t&&r){let t="You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.";e.ignoreStrict?qs(!1,t,`lazy-strict-mode`):Js(!1,t,`lazy-strict-mode`)}}function F_(e){let{drag:t,layout:n}=Yg();if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function I_(e,t){if(typeof Proxy>`u`)return M_;let n=new Map,r=(n,r)=>M_(n,r,e,t);return new Proxy((e,t)=>(process.env.NODE_ENV!==`production`&&cc(!1,`motion() is deprecated. Use motion.create() instead.`),r(e,t)),{get:(i,a)=>a===`create`?r:(n.has(a)||n.set(a,M_(a,void 0,e,t)),n.get(a))})}var L_=(e,t)=>t.isSVG??v_(e)?new Km(t):new Im(t,{allowProjection:e!==n.Fragment}),R_=class extends nm{constructor(e){super(e),e.animationState||=$m(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();zp(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}},z_=0,B_={animation:{Feature:R_},exit:{Feature:class extends nm{constructor(){super(...arguments),this.id=z_++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===n)return;if(e&&n===!1){if(this.isExitComplete){let{initial:e,custom:t}=this.node.getProps();if(typeof e==`string`||typeof e==`object`&&e&&!Array.isArray(e)){let n=af(this.node,e,t);if(n){let{transition:e,transitionEnd:t,...r}=n;for(let e in r)this.node.getValue(e)?.jump(r[e])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive(`exit`,!1);this.isExitComplete=!1;return}let r=this.node.animationState.setActive(`exit`,!e);t&&!e&&r.then(()=>{this.isExitComplete=!0,t(this.id)})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}}};function V_(e){return{point:{x:e.pageX,y:e.pageY}}}var H_=e=>t=>$f(t)&&e(t,V_(t));function U_(e,t,n,r){return Wh(e,t,H_(n),r)}var W_=({current:e})=>e?e.ownerDocument.defaultView:null,G_=(e,t)=>Math.abs(e-t);function K_(e,t){let n=G_(e.x,t.x),r=G_(e.y,t.y);return Math.sqrt(n**2+r**2)}var q_=new Set([`auto`,`scroll`]),J_=class{constructor(e,t,{transformPagePoint:n,contextWindow:r=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Y_(this.lastRawMoveEventInfo,this.transformPagePoint));let e=Z_(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=K_(e.offset,{x:0,y:0})>=this.distanceThreshold;if(!t&&!n)return;let{point:r}=e,{timestamp:i}=Rc;this.history.push({...r,timestamp:i});let{onStart:a,onMove:o}=this.handlers;t||(a&&a(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),o&&o(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=Y_(t,this.transformPagePoint),Ic.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=Z_(e.type===`pointercancel`?this.lastMoveEventInfo:Y_(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!$f(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.distanceThreshold=a,this.contextWindow=r||window;let s=Y_(V_(e),this.transformPagePoint),{point:c}=s,{timestamp:l}=Rc;this.history=[{...c,timestamp:l}];let{onSessionStart:u}=t;u&&u(e,Z_(s,this.history)),this.removeListeners=tc(U_(this.contextWindow,`pointermove`,this.handlePointerMove),U_(this.contextWindow,`pointerup`,this.handlePointerUp),U_(this.contextWindow,`pointercancel`,this.handlePointerUp)),o&&this.startScrollTracking(o)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(q_.has(e.overflowX)||q_.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.addEventListener(`scroll`,this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.removeEventListener(`scroll`,this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let n=e===window,r=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},i={x:r.x-t.x,y:r.y-t.y};i.x===0&&i.y===0||(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(e,r),Ic.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Lc(this.updatePoint)}};function Y_(e,t){return t?{point:t(e.point)}:e}function X_(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Z_({point:e},t){return{point:e,delta:X_(e,$_(t)),offset:X_(e,Q_(t)),velocity:ev(t,.1)}}function Q_(e){return e[0]}function $_(e){return e[e.length-1]}function ev(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=$_(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>ic(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>ic(t)*2&&(r=e[1]);let a=ac(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function tv(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?Ll(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?Ll(n,e,r.max):Math.min(e,n)),e}function nv(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function rv(e,{top:t,left:n,bottom:r,right:i}){return{x:nv(e.x,n,i),y:nv(e.y,t,r)}}function iv(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function av(e,t){return{x:iv(e.x,t.x),y:iv(e.y,t.y)}}function ov(e,t){let n=.5,r=uh(e),i=uh(t);return i>r?n=nc(t.min,t.max-r,e.min):r>i&&(n=nc(e.min,e.max-i,t.min)),Gs(0,1,n)}function sv(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}var cv=.35;function lv(e=cv){return e===!1?e=0:e===!0&&(e=cv),{x:uv(e,`left`,`right`),y:uv(e,`top`,`bottom`)}}function uv(e,t,n){return{min:dv(e,t),max:dv(e,n)}}function dv(e,t){return typeof e==`number`?e:e[t]||0}var fv=new WeakMap,pv=class{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Lp(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:n}={}){let{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;let i=e=>{t&&this.snapToCursor(V_(e).point),this.stopAnimation()},a=(e,t)=>{let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();if(n&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Jf(n),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Mh(e=>{let t=this.getAxisMotionValue(e).get()||0;if(fl.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=uh(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&Ic.update(()=>i(e,t),!1,!0),pf(this.visualElement,`transform`);let{animationState:a}=this.visualElement;a&&a.setActive(`whileDrag`,!0)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openDragLock)return;let{offset:o}=t;if(r&&this.currentDirection===null){this.currentDirection=_v(o),this.currentDirection!==null&&i&&i(this.currentDirection);return}this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&Ic.update(()=>a(e,t),!1,!0)},s=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:l}=this.getProps();this.panSession=new J_(e,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:s,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,distanceThreshold:n,contextWindow:W_(this.visualElement),element:this.visualElement.current})}stop(e,t){let n=e||this.latestPointerEvent,r=t||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!r||!n)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:o}=this.getProps();o&&Ic.postRender(()=>o(n,r))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive(`whileDrag`,!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!gv(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=tv(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&O_(e)?this.constraints||=this.resolveRefConstraints():e&&n?this.constraints=rv(n.layoutBox,e):this.constraints=!1,this.elastic=lv(t),r!==this.constraints&&!O_(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&Mh(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=sv(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!O_(e))return!1;let n=e.current;Js(n!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.",`drag-constraints-ref`);let{projection:r}=this.visualElement;if(!r||!r.layout)return!1;r.root&&(r.root.scroll=void 0,r.root.updateScroll());let i=Cm(n,r.root,this.visualElement.getTransformPagePoint()),a=av(r.layout.layoutBox,i);if(t){let e=t(im(a));this.hasMutatedConstraints=!!e,e&&(a=rm(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=Mh(o=>{if(!gv(o,t,this.currentDirection))return;let c=s&&s[o]||{};(a===!0||a===o)&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return pf(this.visualElement,e),n.start(Zd(e,n,0,t,this.visualElement,!1))}stopAnimation(){Mh(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`;return this.visualElement.getProps()[t]||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor(e){Mh(t=>{let{drag:n}=this.getProps();if(!gv(t,n,this.currentDirection))return;let{projection:r}=this.visualElement,i=this.getAxisMotionValue(t);if(r&&r.layout){let{min:n,max:a}=r.layout.layoutBox[t],o=i.get()||0;i.set(e[t]-Ll(n,a,.5)+o)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!O_(t)||!n||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};Mh(e=>{let t=this.getAxisMotionValue(e);if(t&&this.constraints!==!1){let n=t.get();r[e]=ov({min:n,max:n},this.constraints[e])}});let{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),Mh(t=>{if(!gv(t,e,null))return;let n=this.getAxisMotionValue(t),{min:i,max:a}=this.constraints[t];n.set(Ll(i,a,r[t]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;fv.set(this.visualElement,this);let e=this.visualElement.current,t=U_(e,`pointerdown`,t=>{let{drag:n,dragListener:r=!0}=this.getProps(),i=t.target,a=i!==e&&rp(i);n&&r&&!a&&this.start(t)}),n,r=()=>{let{dragConstraints:t}=this.getProps();O_(t)&&t.current&&(this.constraints=this.resolveRefConstraints(),n||=hv(e,t.current,()=>this.scalePositionWithinConstraints()))},{projection:i}=this.visualElement,a=i.addEventListener(`measure`,r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Ic.read(r);let o=Wh(window,`resize`,()=>this.scalePositionWithinConstraints()),s=i.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(Mh(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{o(),t(),a(),s&&s(),n&&n()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=cv,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function mv(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function hv(e,t,n){let r=Tp(e,mv(n)),i=Tp(t,mv(n));return()=>{r(),i()}}function gv(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function _v(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var vv=class extends nm{constructor(e){super(e),this.removeGroupControls=ec,this.removeListeners=ec,this.controls=new pv(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ec}update(){let{dragControls:e}=this.node.getProps(),{dragControls:t}=this.node.prevProps||{};e!==t&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},yv=e=>(t,n)=>{e&&Ic.update(()=>e(t,n),!1,!0)},bv=class extends nm{constructor(){super(...arguments),this.removePointerDownListener=ec}onPointerDown(e){this.session=new J_(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:W_(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:yv(e),onStart:yv(t),onMove:yv(n),onEnd:(e,t)=>{delete this.session,r&&Ic.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=U_(this.node.current,`pointerdown`,e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}},xv=!1,Sv=class extends n.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:i}=e;i&&(t.group&&t.group.add(i),n&&n.register&&r&&n.register(i),xv&&i.root.didUpdate(),i.addEventListener(`animationComplete`,()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),Xh.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:n,drag:r,isPresent:i}=this.props,{projection:a}=n;return a?(a.isPresent=i,e.layoutDependency!==t&&a.setOptions({...a.options,layoutDependency:t}),xv=!0,r||e.layoutDependency!==t||t===void 0||e.isPresent!==i?a.willUpdate():this.safeToRemove(),e.isPresent!==i&&(i?a.promote():a.relegate()||Ic.postRender(()=>{let e=a.getStack();(!e||!e.members.length)&&this.safeToRemove()})),null):null}componentDidUpdate(){let{visualElement:e,layoutAnchor:t}=this.props,{projection:n}=e;n&&(n.options.layoutAnchor=t,n.root.didUpdate(),Wf.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;xv=!0,r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}};function Cv(e){let[t,r]=Vg(),i=(0,n.useContext)(zs);return(0,D.jsx)(Sv,{...e,layoutGroup:i,switchLayoutGroup:(0,n.useContext)(D_),isPresent:t,safeToRemove:r})}var wv={pan:{Feature:bv},drag:{Feature:vv,ProjectionNode:Mg,MeasureLayout:Cv}};function Tv(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&Ic.postRender(()=>i(t,V_(t)))}var Ev=class extends nm{mount(){let{current:e}=this.node;e&&(this.unmount=Zf(e,(e,t)=>(Tv(this.node,t,`Start`),e=>Tv(this.node,e,`End`))))}unmount(){}},Dv=class extends nm{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}!e||!this.node.animationState||(this.node.animationState.setActive(`whileFocus`,!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive(`whileFocus`,!1),this.isActive=!1)}mount(){this.unmount=tc(Wh(this.node.current,`focus`,()=>this.onFocus()),Wh(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function Ov(e,t,n){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&Ic.postRender(()=>i(t,V_(t)))}var kv=class extends nm{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:n}=this.node.props;this.unmount=up(e,(e,t)=>(Ov(this.node,t,`Start`),(e,{success:t})=>Ov(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:t,stopPropagation:n?.tap===!1})}unmount(){}},Av=new WeakMap,jv=new WeakMap,Mv=e=>{let t=Av.get(e.target);t&&t(e)},Nv=e=>{e.forEach(Mv)};function Pv({root:e,...t}){let n=e||document;jv.has(n)||jv.set(n,{});let r=jv.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Nv,{root:e,...t})),r[i]}function Fv(e,t,n){let r=Pv(t);return Av.set(e,n),r.observe(e),()=>{Av.delete(e),r.unobserve(e)}}var Iv={some:0,all:1},Lv=class extends nm{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:Iv[r]},o=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)};this.stopObserver=Fv(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(Rv(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function Rv({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var zv={inView:{Feature:Lv},tap:{Feature:kv},focus:{Feature:Dv},hover:{Feature:Ev}},Bv={layout:{ProjectionNode:Mg,MeasureLayout:Cv}},A=I_({...B_,...zv,...wv,...Bv},L_);function Vv(e){return typeof window>`u`?!1:e?ud():ld()}var Hv=50,Uv=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),Wv=()=>({time:0,x:Uv(),y:Uv()}),Gv={x:{length:`Width`,position:`Left`},y:{length:`Height`,position:`Top`}};function Kv(e,t,n,r){let i=n[t],{length:a,position:o}=Gv[t],s=i.current,c=n.time;i.current=Math.abs(e[`scroll${o}`]),i.scrollLength=e[`scroll${a}`]-e[`client${a}`],i.offset.length=0,i.offset[0]=0,i.offset[1]=i.scrollLength,i.progress=nc(0,i.scrollLength,i.current);let l=r-c;i.velocity=l>Hv?0:oc(i.current-s,l)}function qv(e,t,n){Kv(e,`x`,t,n),Kv(e,`y`,t,n),t.time=n}function Jv(e,t){let n={x:0,y:0},r=e;for(;r&&r!==t;)if(Uf(r))n.x+=r.offsetLeft,n.y+=r.offsetTop,r=r.offsetParent;else if(r.tagName===`svg`){let e=r.getBoundingClientRect();r=r.parentElement;let t=r.getBoundingClientRect();n.x+=e.left-t.left,n.y+=e.top-t.top}else if(r instanceof SVGGraphicsElement){let{x:e,y:t}=r.getBBox();n.x+=e,n.y+=t;let i=null,a=r.parentNode;for(;!i;)a.tagName===`svg`&&(i=a),a=r.parentNode;r=i}else break;return n}var Yv={start:0,center:.5,end:1};function Xv(e,t,n=0){let r=0;if(e in Yv&&(e=Yv[e]),typeof e==`string`){let t=parseFloat(e);e.endsWith(`px`)?r=t:e.endsWith(`%`)?e=t/100:e.endsWith(`vw`)?r=t/100*document.documentElement.clientWidth:e.endsWith(`vh`)?r=t/100*document.documentElement.clientHeight:e=t}return typeof e==`number`&&(r=t*e),n+r}var Zv=[0,0];function Qv(e,t,n,r){let i=Array.isArray(e)?e:Zv,a=0,o=0;return typeof e==`number`?i=[e,e]:typeof e==`string`&&(e=e.trim(),i=e.includes(` `)?e.split(` `):[e,Yv[e]?e:`0`]),a=Xv(i[0],n,r),o=Xv(i[1],t),a-o}var $v={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},ey={x:0,y:0};function ty(e){return`getBBox`in e&&e.tagName!==`svg`?e.getBBox():{width:e.clientWidth,height:e.clientHeight}}function ny(e,t,n){let{offset:r=$v.All}=n,{target:i=e,axis:a=`y`}=n,o=a===`y`?`height`:`width`,s=i===e?ey:Jv(i,e),c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:ty(i),l={width:e.clientWidth,height:e.clientHeight};t[a].offset.length=0;let u=!t[a].interpolate,d=r.length;for(let e=0;e<d;e++){let n=Qv(r[e],l[o],c[o],s[a]);!u&&n!==t[a].interpolatorOffsets[e]&&(u=!0),t[a].offset[e]=n}u&&(t[a].interpolate=vu(t[a].offset,bu(r),{clamp:!1}),t[a].interpolatorOffsets=[...t[a].offset]),t[a].progress=Gs(0,1,t[a].interpolate(t[a].current))}function ry(e,t=e,n){if(n.x.targetOffset=0,n.y.targetOffset=0,t!==e){let r=t;for(;r&&r!==e;)n.x.targetOffset+=r.offsetLeft,n.y.targetOffset+=r.offsetTop,r=r.offsetParent}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth,n.y.targetLength=t===e?t.scrollHeight:t.clientHeight,n.x.containerLength=e.clientWidth,n.y.containerLength=e.clientHeight,process.env.NODE_ENV!==`production`&&e&&t&&t!==e&&e!==document.documentElement&&e!==document.scrollingElement&&e!==document.body&&cc(getComputedStyle(e).position!==`static`,`Please ensure that the container has a non-static position, like 'relative', 'fixed', or 'absolute' to ensure scroll offset is calculated correctly.`)}function iy(e,t,n,r={}){return{measure:t=>{ry(e,r.target,n),qv(e,n,t),(r.offset||r.target)&&ny(e,n,r)},notify:()=>t(n)}}var ay=new WeakMap,oy=new WeakMap,sy=new WeakMap,cy=new WeakMap,ly=new WeakMap,uy=e=>e===document.scrollingElement?window:e;function dy(e,{container:t=document.scrollingElement,trackContentSize:n=!1,...r}={}){if(!t)return ec;let i=sy.get(t);i||(i=new Set,sy.set(t,i));let a=iy(t,e,Wv(),r);if(i.add(a),!ay.has(t)){let e=()=>{for(let e of i)e.measure(Rc.timestamp);Ic.preUpdate(n)},n=()=>{for(let e of i)e.notify()},r=()=>Ic.read(e);ay.set(t,r);let a=uy(t);window.addEventListener(`resize`,r),t!==document.documentElement&&oy.set(t,Tp(t,r)),a.addEventListener(`scroll`,r),r()}if(n&&!ly.has(t)){let e=ay.get(t),n={width:t.scrollWidth,height:t.scrollHeight};cy.set(t,n);let r=Ic.read(()=>{let r=t.scrollWidth,i=t.scrollHeight;(n.width!==r||n.height!==i)&&(e(),n.width=r,n.height=i)},!0);ly.set(t,r)}let o=ay.get(t);return Ic.read(o,!1,!0),()=>{Lc(o);let e=sy.get(t);if(!e||(e.delete(a),e.size))return;let n=ay.get(t);ay.delete(t),n&&(uy(t).removeEventListener(`scroll`,n),oy.get(t)?.(),window.removeEventListener(`resize`,n));let r=ly.get(t);r&&(Lc(r),ly.delete(t)),cy.delete(t)}}var fy=[[$v.Enter,`entry`],[$v.Exit,`exit`],[$v.Any,`cover`],[$v.All,`contain`]],py={start:0,end:1};function my(e){let t=e.trim().split(/\s+/);if(t.length!==2)return;let n=py[t[0]],r=py[t[1]];if(!(n===void 0||r===void 0))return[n,r]}function hy(e){if(e.length!==2)return;let t=[];for(let n of e)if(Array.isArray(n))t.push(n);else if(typeof n==`string`){let e=my(n);if(!e)return;t.push(e)}else return;return t}function gy(e,t){let n=hy(e);if(!n)return!1;for(let e=0;e<2;e++){let r=n[e],i=t[e];if(r[0]!==i[0]||r[1]!==i[1])return!1}return!0}function _y(e){if(!e)return{rangeStart:`contain 0%`,rangeEnd:`contain 100%`};for(let[t,n]of fy)if(gy(e,t))return{rangeStart:`${n} 0%`,rangeEnd:`${n} 100%`}}var vy=new Map;function yy(e){let t={value:0};return{currentTime:t,cancel:dy(n=>{t.value=n[e.axis].progress*100},e)}}function by({source:e,container:t,...n}){let{axis:r}=n;e&&(t=e);let i=vy.get(t);i||(i=new Map,vy.set(t,i));let a=n.target??`self`,o=i.get(a);o||(o={},i.set(a,o));let s=r+(n.offset??[]).join(`,`);return o[s]||(n.target&&Vv(n.target)?_y(n.offset)?o[s]=new ViewTimeline({subject:n.target,axis:r}):o[s]=yy({container:t,...n}):Vv()?o[s]=new ScrollTimeline({source:t,axis:r}):o[s]=yy({container:t,...n})),o[s]}function xy(e,t){let n=by(t),r=t.target?_y(t.offset):void 0,i=t.target?Vv(t.target)&&!!r:Vv();return e.attachTimeline({timeline:i?n:void 0,...r&&i&&{rangeStart:r.rangeStart,rangeEnd:r.rangeEnd},observe:e=>(e.pause(),Ep(t=>{e.time=e.iterationDuration*t},n))})}function Sy(e){return e&&(e.target||e.offset)}function Cy(e){return e.length===2}function wy(e,t){return Cy(e)||Sy(t)?dy(n=>{e(n[t.axis].progress,n)},t):Ep(e,by(t))}function Ty(e,{axis:t=`y`,container:n=document.scrollingElement,...r}={}){if(!n)return ec;let i={axis:t,container:n,...r};return typeof e==`function`?wy(e,i):xy(e,i)}var Ey=()=>({scrollX:Vd(0),scrollY:Vd(0),scrollXProgress:Vd(0),scrollYProgress:Vd(0)}),Dy=e=>e?!e.current:!1;function Oy(e,t,n,r){return{factory:i=>{let a,o=()=>{if(Dy(n)||Dy(r)){Wf.read(o);return}a=Ty(i,{...t,axis:e,container:n?.current||void 0,target:r?.current||void 0})};return Wf.read(o),()=>{Gf(o),a?.()}},times:[0,1],keyframes:[0,1],ease:e=>e,duration:1}}function ky(e,t){return typeof window>`u`?!1:e?ud()&&!!_y(t):ld()}function Ay({container:e,target:t,...r}={}){let i=Bs(Ey);ky(t,r.offset)&&(i.scrollXProgress.accelerate=Oy(`x`,r,e,t),i.scrollYProgress.accelerate=Oy(`y`,r,e,t));let a=(0,n.useRef)(null),o=(0,n.useRef)(!1),s=(0,n.useCallback)(()=>(a.current=Ty((e,{x:t,y:n})=>{i.scrollX.set(t.current),i.scrollXProgress.set(t.progress),i.scrollY.set(n.current),i.scrollYProgress.set(n.progress)},{...r,container:e?.current||void 0,target:t?.current||void 0}),()=>{a.current?.()}),[e,t,JSON.stringify(r.offset)]);return Vs(()=>{if(o.current=!1,Dy(e)||Dy(t)){o.current=!0;return}else return s()},[s]),(0,n.useEffect)(()=>{if(!o.current)return;let n,r=()=>{let r=Dy(e),i=Dy(t);Js(!r,`Container ref is defined but not hydrated`,`use-scroll-ref`),Js(!i,`Target ref is defined but not hydrated`,`use-scroll-ref`),!r&&!i&&(n=s())};return Wf.read(r),()=>{Gf(r),n?.()}},[s]),i}function jy(e){let t=Bs(()=>Vd(e)),{isStatic:r}=(0,n.useContext)(Ng);if(r){let[,r]=(0,n.useState)(e);(0,n.useEffect)(()=>t.on(`change`,r),[])}return t}function My(e,t){let n=jy(t()),r=()=>n.set(t());return r(),Vs(()=>{let t=()=>Ic.preRender(r,!1,!0),n=e.map(e=>e.on(`change`,t));return()=>{n.forEach(e=>e()),Lc(r)}}),n}function Ny(e){zd.current=[],e();let t=My(zd.current,e);return zd.current=void 0,t}function Py(e,t,n,r){if(typeof e==`function`)return Ny(e);if(n!==void 0&&!Array.isArray(n)&&typeof t!=`function`)return Iy(e,t,n,r);let i=typeof t==`function`?t:Op(t,n,r),a=Array.isArray(e)?Fy(e,i):Fy([e],([e])=>i(e)),o=Array.isArray(e)?void 0:e.accelerate;return o&&!o.isTransformed&&typeof t!=`function`&&Array.isArray(n)&&r?.clamp!==!1&&(a.accelerate={...o,times:t,keyframes:n,isTransformed:!0,...r?.ease?{ease:r.ease}:{}}),a}function Fy(e,t){let n=Bs(()=>[]);return My(e,()=>{n.length=0;let r=e.length;for(let t=0;t<r;t++)n[t]=e[t].get();return t(n)})}function Iy(e,t,n,r){let i=Bs(()=>Object.keys(n)),a=Bs(()=>({}));for(let o of i)a[o]=Py(e,t,n[o],r);return a}function Ly(e,t={}){let{isStatic:r}=(0,n.useContext)(Ng),i=()=>df(e)?e.get():e;if(r)return Py(i);let a=jy(i());return(0,n.useInsertionEffect)(()=>kp(a,e,t),[a,JSON.stringify(t)]),a}function Ry(e,t={}){return Ly(e,{type:`spring`,...t})}var zy={hidden:{opacity:0,y:8},visible:{opacity:1,y:0,transition:{duration:.18,ease:`easeOut`}},exit:{opacity:0,y:4,transition:{duration:.12,ease:`easeIn`}}},By={hidden:{opacity:0,scale:.96},visible:{opacity:1,scale:1,transition:{duration:.16,ease:`easeOut`}},exit:{opacity:0,scale:.97,transition:{duration:.12,ease:`easeIn`}}},Vy={hidden:{opacity:0},visible:{opacity:1,transition:{duration:.16,ease:`easeOut`}},exit:{opacity:0,transition:{duration:.12,ease:`easeIn`}}},Hy={overlay:`_overlay_1u32w_1`,positioner:`_positioner_1u32w_11`,positionerMedium:`_positionerMedium_1u32w_25`,positionerWide:`_positionerWide_1u32w_30`,overlayHi:`_overlayHi_1u32w_35`,positionerHi:`_positionerHi_1u32w_39`,content:`_content_1u32w_9`,header:`_header_1u32w_62`,heading:`_heading_1u32w_70`,title:`_title_1u32w_76`,description:`_description_1u32w_83`,body:`_body_1u32w_89`,footer:`_footer_1u32w_98`},Uy=A.create(Ss),Wy=({open:e,onOpenChange:t,title:n,description:r,children:i,footer:a,elevated:o=!1,size:s=`default`})=>{let c=Rs();return(0,D.jsx)(ms,{open:e,onOpenChange:t,children:(0,D.jsx)(Wg,{children:e?(0,D.jsxs)(bs,{forceMount:!0,container:c,children:[(0,D.jsx)(Uy,{className:T(Hy.overlay,o&&Hy.overlayHi),variants:Vy,initial:`hidden`,animate:`visible`,exit:`exit`}),(0,D.jsx)(Es,{className:T(Hy.positioner,s===`medium`&&Hy.positionerMedium,s===`wide`&&Hy.positionerWide,o&&Hy.positionerHi),forceMount:!0,children:(0,D.jsxs)(A.div,{className:Hy.content,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`header`,{className:Hy.header,children:[(0,D.jsxs)(`div`,{className:Hy.heading,children:[(0,D.jsx)(js,{className:Hy.title,children:n}),r===void 0?null:(0,D.jsx)(Ns,{className:Hy.description,children:r})]}),(0,D.jsx)(Fs,{asChild:!0,children:(0,D.jsx)(wi,{label:`Close dialog`,children:(0,D.jsx)(Gy,{})})})]}),(0,D.jsx)(`div`,{className:Hy.body,children:i}),a===void 0?null:(0,D.jsx)(`footer`,{className:Hy.footer,children:a})]})})]}):null})})},Gy=()=>(0,D.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,"aria-hidden":`true`,children:(0,D.jsx)(`path`,{d:`M4 4l8 8M12 4l-8 8`})}),Ky=({open:e,title:t,message:n,confirmLabel:r=`Delete`,onConfirm:i,onCancel:a,elevated:o=!1})=>(0,D.jsx)(Wy,{open:e,elevated:o,onOpenChange:e=>{e||a()},title:t,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(gi,{variant:`ghost`,onClick:a,children:`Cancel`}),(0,D.jsx)(gi,{variant:`danger`,onClick:i,children:r})]}),children:n}),qy={overlay:`_overlay_1rzp2_1`,drawerFadeIn:`_drawerFadeIn_1rzp2_1`,drawerFadeOut:`_drawerFadeOut_1rzp2_1`,panelLeft:`_panelLeft_1rzp2_17`,panelRight:`_panelRight_1rzp2_18`,body:`_body_1rzp2_32`,footer:`_footer_1rzp2_38`,panelWide:`_panelWide_1rzp2_52`,drawerSlideInLeft:`_drawerSlideInLeft_1rzp2_1`,drawerSlideOutLeft:`_drawerSlideOutLeft_1rzp2_1`,drawerSlideInRight:`_drawerSlideInRight_1rzp2_1`,drawerSlideOutRight:`_drawerSlideOutRight_1rzp2_1`,srOnly:`_srOnly_1rzp2_138`},Jy=({open:e,onOpenChange:t,title:n,side:r=`left`,size:i=`default`,children:a,footer:o})=>(0,D.jsx)(ms,{open:e,onOpenChange:t,children:(0,D.jsxs)(bs,{container:Rs(),children:[(0,D.jsx)(Ss,{className:qy.overlay}),(0,D.jsxs)(Es,{className:T(r===`left`?qy.panelLeft:qy.panelRight,i===`wide`&&qy.panelWide),children:[(0,D.jsx)(js,{className:qy.srOnly,children:n}),(0,D.jsx)(`div`,{className:qy.body,children:a}),o!==void 0&&(0,D.jsx)(`div`,{className:qy.footer,children:o})]})]})});function Yy(e){let t=e+`CollectionProvider`,[r,i]=Oi(t),[a,o]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,i=n.useRef(null),o=n.useRef(new Map).current;return(0,D.jsx)(a,{scope:t,itemMap:o,collectionRef:i,children:r})};s.displayName=t;let c=e+`CollectionSlot`,l=Ri(c),u=n.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,D.jsx)(l,{ref:Di(t,o(c,n).collectionRef),children:r})});u.displayName=c;let d=e+`CollectionItemSlot`,f=`data-radix-collection-item`,p=Ri(d),m=n.forwardRef((e,t)=>{let{scope:r,children:i,...a}=e,s=n.useRef(null),c=Di(t,s),l=o(d,r);return n.useEffect(()=>(l.itemMap.set(s,{ref:s,...a}),()=>void l.itemMap.delete(s))),(0,D.jsx)(p,{[f]:``,ref:c,children:i})});m.displayName=d;function h(t){let r=o(e+`CollectionConsumer`,t);return n.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(r.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[r.collectionRef,r.itemMap])}return[{Provider:s,Slot:u,ItemSlot:m},h,i]}var Xy=n.createContext(void 0);function Zy(e){let t=n.useContext(Xy);return e||t||`ltr`}var Qy=[`top`,`right`,`bottom`,`left`],$y=Math.min,eb=Math.max,tb=Math.round,nb=Math.floor,rb=e=>({x:e,y:e}),ib={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ab(e,t,n){return eb(e,$y(t,n))}function ob(e,t){return typeof e==`function`?e(t):e}function sb(e){return e.split(`-`)[0]}function cb(e){return e.split(`-`)[1]}function lb(e){return e===`x`?`y`:`x`}function ub(e){return e===`y`?`height`:`width`}function db(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function fb(e){return lb(db(e))}function pb(e,t,n){n===void 0&&(n=!1);let r=cb(e),i=fb(e),a=ub(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Sb(o)),[o,Sb(o)]}function mb(e){let t=Sb(e);return[hb(e),t,hb(t)]}function hb(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var gb=[`left`,`right`],_b=[`right`,`left`],vb=[`top`,`bottom`],yb=[`bottom`,`top`];function bb(e,t,n){switch(e){case`top`:case`bottom`:return n?t?_b:gb:t?gb:_b;case`left`:case`right`:return t?vb:yb;default:return[]}}function xb(e,t,n,r){let i=cb(e),a=bb(sb(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(hb)))),a}function Sb(e){let t=sb(e);return ib[t]+e.slice(t.length)}function Cb(e){return{top:0,right:0,bottom:0,left:0,...e}}function wb(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Cb(e)}function Tb(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Eb(e,t,n){let{reference:r,floating:i}=e,a=db(t),o=fb(t),s=ub(o),c=sb(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(cb(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Db(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=ob(t,e),p=wb(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Tb(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Tb(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Ob=50,kb=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Db},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Eb(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Ob&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Eb(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Ab=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=ob(e,t)||{};if(l==null)return{};let d=wb(u),f={x:n,y:r},p=fb(i),m=ub(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let ee=b/2-x/2,te=C/2-h[m]/2-1,ne=$y(d[_],te),re=$y(d[v],te),ie=ne,ae=C-h[m]-re,oe=C/2-h[m]/2+ee,se=ab(ie,oe,ae),ce=!c.arrow&&cb(i)!=null&&oe!==se&&a.reference[m]/2-(oe<ie?ne:re)-h[m]/2<0,le=ce?oe<ie?oe-ie:oe-ae:0;return{[p]:f[p]+le,data:{[p]:se,centerOffset:oe-se-le,...ce&&{alignmentOffset:le}},reset:ce}}}),jb=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=ob(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=sb(r),_=db(o),v=sb(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Sb(o)]:mb(o)),x=p!==`none`;!d&&x&&b.push(...xb(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),ee=[],te=i.flip?.overflows||[];if(l&&ee.push(C[g]),u){let e=pb(r,a,y);ee.push(C[e[0]],C[e[1]])}if(te=[...te,{placement:r,overflows:ee}],!ee.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==db(t))||te.every(e=>db(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:te},reset:{placement:t}};let n=te.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=te.filter(e=>{if(x){let t=db(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Mb(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Nb(e){return Qy.some(t=>e[t]>=0)}var Pb=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=ob(e,t);switch(i){case`referenceHidden`:{let e=Mb(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Nb(e)}}}case`escaped`:{let e=Mb(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Nb(e)}}}default:return{}}}}},Fb=new Set([`left`,`top`]);async function Ib(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=sb(n),s=cb(n),c=db(n)===`y`,l=Fb.has(o)?-1:1,u=a&&c?-1:1,d=ob(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Lb=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Ib(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Rb=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=ob(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=db(sb(i)),p=lb(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=ab(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=ab(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},zb=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=ob(e,t),u={x:n,y:r},d=db(i),f=lb(d),p=u[f],m=u[d],h=ob(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Fb.has(sb(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Bb=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=ob(e,t),u=await o.detectOverflow(t,l),d=sb(i),f=cb(i),p=db(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=$y(h-u[g],v),x=$y(m-u[_],y),S=!t.middlewareData.shift,C=b,ee=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(ee=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=eb(u.left,0),t=eb(u.right,0),n=eb(u.top,0),r=eb(u.bottom,0);p?ee=m-2*(e!==0||t!==0?e+t:eb(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:eb(u.top,u.bottom))}await c({...t,availableWidth:ee,availableHeight:C});let te=await o.getDimensions(s.floating);return m!==te.width||h!==te.height?{reset:{rects:!0}}:{}}}};function Vb(){return typeof window<`u`}function Hb(e){return Gb(e)?(e.nodeName||``).toLowerCase():`#document`}function Ub(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Wb(e){return((Gb(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Gb(e){return Vb()?e instanceof Node||e instanceof Ub(e).Node:!1}function Kb(e){return Vb()?e instanceof Element||e instanceof Ub(e).Element:!1}function qb(e){return Vb()?e instanceof HTMLElement||e instanceof Ub(e).HTMLElement:!1}function Jb(e){return!Vb()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Ub(e).ShadowRoot}function Yb(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=ox(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Xb(e){return/^(table|td|th)$/.test(Hb(e))}function Zb(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Qb=/transform|translate|scale|rotate|perspective|filter/,$b=/paint|layout|strict|content/,ex=e=>!!e&&e!==`none`,tx;function nx(e){let t=Kb(e)?ox(e):e;return ex(t.transform)||ex(t.translate)||ex(t.scale)||ex(t.rotate)||ex(t.perspective)||!ix()&&(ex(t.backdropFilter)||ex(t.filter))||Qb.test(t.willChange||``)||$b.test(t.contain||``)}function rx(e){let t=cx(e);for(;qb(t)&&!ax(t);){if(nx(t))return t;if(Zb(t))return null;t=cx(t)}return null}function ix(){return tx??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),tx}function ax(e){return/^(html|body|#document)$/.test(Hb(e))}function ox(e){return Ub(e).getComputedStyle(e)}function sx(e){return Kb(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function cx(e){if(Hb(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Jb(e)&&e.host||Wb(e);return Jb(t)?t.host:t}function lx(e){let t=cx(e);return ax(t)?e.ownerDocument?e.ownerDocument.body:e.body:qb(t)&&Yb(t)?t:lx(t)}function ux(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=lx(e),i=r===e.ownerDocument?.body,a=Ub(r);if(i){let e=dx(a);return t.concat(a,a.visualViewport||[],Yb(r)?r:[],e&&n?ux(e):[])}else return t.concat(r,ux(r,[],n))}function dx(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function fx(e){let t=ox(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=qb(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=tb(n)!==a||tb(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function px(e){return Kb(e)?e:e.contextElement}function mx(e){let t=px(e);if(!qb(t))return rb(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=fx(t),o=(a?tb(n.width):n.width)/r,s=(a?tb(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var hx=rb(0);function gx(e){let t=Ub(e);return!ix()||!t.visualViewport?hx:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function _x(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Ub(e)?!1:t}function vx(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=px(e),o=rb(1);t&&(r?Kb(r)&&(o=mx(r)):o=mx(e));let s=_x(a,n,r)?gx(a):rb(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=Ub(a),t=r&&Kb(r)?Ub(r):r,n=e,i=dx(n);for(;i&&r&&t!==n;){let e=mx(i),t=i.getBoundingClientRect(),r=ox(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Ub(i),i=dx(n)}}return Tb({width:u,height:d,x:c,y:l})}function yx(e,t){let n=sx(e).scrollLeft;return t?t.left+n:vx(Wb(e)).left+n}function bx(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-yx(e,n),y:n.top+t.scrollTop}}function xx(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Wb(r),s=t?Zb(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=rb(1),u=rb(0),d=qb(r);if((d||!d&&!a)&&((Hb(r)!==`body`||Yb(o))&&(c=sx(r)),d)){let e=vx(r);l=mx(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?bx(o,c):rb(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Sx(e){return Array.from(e.getClientRects())}function Cx(e){let t=Wb(e),n=sx(e),r=e.ownerDocument.body,i=eb(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=eb(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+yx(e),s=-n.scrollTop;return ox(r).direction===`rtl`&&(o+=eb(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var wx=25;function Tx(e,t){let n=Ub(e),r=Wb(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=ix();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=yx(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=wx&&(a-=o)}else l<=wx&&(a+=l);return{width:a,height:o,x:s,y:c}}function Ex(e,t){let n=vx(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=qb(e)?mx(e):rb(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Dx(e,t,n){let r;if(t===`viewport`)r=Tx(e,n);else if(t===`document`)r=Cx(Wb(e));else if(Kb(t))r=Ex(t,n);else{let n=gx(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Tb(r)}function Ox(e,t){let n=cx(e);return n===t||!Kb(n)||ax(n)?!1:ox(n).position===`fixed`||Ox(n,t)}function kx(e,t){let n=t.get(e);if(n)return n;let r=ux(e,[],!1).filter(e=>Kb(e)&&Hb(e)!==`body`),i=null,a=ox(e).position===`fixed`,o=a?cx(e):e;for(;Kb(o)&&!ax(o);){let t=ox(o),n=nx(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Yb(o)&&!n&&Ox(e,o))?r=r.filter(e=>e!==o):i=t,o=cx(o)}return t.set(e,r),r}function Ax(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Zb(t)?[]:kx(t,this._c):[].concat(n),r],o=Dx(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Dx(t,a[e],i);s=eb(n.top,s),c=$y(n.right,c),l=$y(n.bottom,l),u=eb(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function jx(e){let{width:t,height:n}=fx(e);return{width:t,height:n}}function Mx(e,t,n){let r=qb(t),i=Wb(t),a=n===`fixed`,o=vx(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=rb(0);function l(){c.x=yx(i)}if(r||!r&&!a)if((Hb(t)!==`body`||Yb(i))&&(s=sx(t)),r){let e=vx(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?bx(i,s):rb(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function Nx(e){return ox(e).position===`static`}function Px(e,t){if(!qb(e)||ox(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Wb(e)===n&&(n=n.ownerDocument.body),n}function Fx(e,t){let n=Ub(e);if(Zb(e))return n;if(!qb(e)){let t=cx(e);for(;t&&!ax(t);){if(Kb(t)&&!Nx(t))return t;t=cx(t)}return n}let r=Px(e,t);for(;r&&Xb(r)&&Nx(r);)r=Px(r,t);return r&&ax(r)&&Nx(r)&&!nx(r)?n:r||rx(e)||n}var Ix=async function(e){let t=this.getOffsetParent||Fx,n=this.getDimensions,r=await n(e.floating);return{reference:Mx(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Lx(e){return ox(e).direction===`rtl`}var Rx={convertOffsetParentRelativeRectToViewportRelativeRect:xx,getDocumentElement:Wb,getClippingRect:Ax,getOffsetParent:Fx,getElementRects:Ix,getClientRects:Sx,getDimensions:jx,getScale:mx,isElement:Kb,isRTL:Lx};function zx(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Bx(e,t){let n=null,r,i=Wb(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=nb(d),h=nb(i.clientWidth-(u+f)),g=nb(i.clientHeight-(d+p)),_=nb(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:eb(0,$y(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!zx(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function Vx(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=px(e),u=i||a?[...l?ux(l):[],...t?ux(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Bx(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?vx(e):null;c&&g();function g(){let t=vx(e);h&&!zx(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Hx=Lb,Ux=Rb,Wx=jb,Gx=Bb,Kx=Pb,qx=Ab,Jx=zb,Yx=(e,t,n)=>{let r=new Map,i={platform:Rx,...n},a={...i.platform,_c:r};return kb(e,t,{...i,platform:a})},Xx=typeof document<`u`?n.useLayoutEffect:function(){};function Zx(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Zx(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Zx(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Qx(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function $x(e,t){let n=Qx(e);return Math.round(t*n)/n}function eS(e){let t=n.useRef(e);return Xx(()=>{t.current=e}),t}function tS(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:r=`absolute`,middleware:a=[],platform:o,elements:{reference:s,floating:c}={},transform:l=!0,whileElementsMounted:u,open:d}=e,[f,p]=n.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[m,h]=n.useState(a);Zx(m,a)||h(a);let[g,_]=n.useState(null),[v,y]=n.useState(null),b=n.useCallback(e=>{e!==ee.current&&(ee.current=e,_(e))},[]),x=n.useCallback(e=>{e!==te.current&&(te.current=e,y(e))},[]),S=s||g,C=c||v,ee=n.useRef(null),te=n.useRef(null),ne=n.useRef(f),re=u!=null,ie=eS(u),ae=eS(o),oe=eS(d),se=n.useCallback(()=>{if(!ee.current||!te.current)return;let e={placement:t,strategy:r,middleware:m};ae.current&&(e.platform=ae.current),Yx(ee.current,te.current,e).then(e=>{let t={...e,isPositioned:oe.current!==!1};ce.current&&!Zx(ne.current,t)&&(ne.current=t,i.flushSync(()=>{p(t)}))})},[m,t,r,ae,oe]);Xx(()=>{d===!1&&ne.current.isPositioned&&(ne.current.isPositioned=!1,p(e=>({...e,isPositioned:!1})))},[d]);let ce=n.useRef(!1);Xx(()=>(ce.current=!0,()=>{ce.current=!1}),[]),Xx(()=>{if(S&&(ee.current=S),C&&(te.current=C),S&&C){if(ie.current)return ie.current(S,C,se);se()}},[S,C,se,ie,re]);let le=n.useMemo(()=>({reference:ee,floating:te,setReference:b,setFloating:x}),[b,x]),ue=n.useMemo(()=>({reference:S,floating:C}),[S,C]),de=n.useMemo(()=>{let e={position:r,left:0,top:0};if(!ue.floating)return e;let t=$x(ue.floating,f.x),n=$x(ue.floating,f.y);return l?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Qx(ue.floating)>=1.5&&{willChange:`transform`}}:{position:r,left:t,top:n}},[r,l,ue.floating,f.x,f.y]);return n.useMemo(()=>({...f,update:se,refs:le,elements:ue,floatingStyles:de}),[f,se,le,ue,de])}var nS=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:qx({element:r.current,padding:i}).fn(n):r?qx({element:r,padding:i}).fn(n):{}}}},rS=(e,t)=>{let n=Hx(e);return{name:n.name,fn:n.fn,options:[e,t]}},iS=(e,t)=>{let n=Ux(e);return{name:n.name,fn:n.fn,options:[e,t]}},aS=(e,t)=>({fn:Jx(e).fn,options:[e,t]}),oS=(e,t)=>{let n=Wx(e);return{name:n.name,fn:n.fn,options:[e,t]}},sS=(e,t)=>{let n=Gx(e);return{name:n.name,fn:n.fn,options:[e,t]}},cS=(e,t)=>{let n=Kx(e);return{name:n.name,fn:n.fn,options:[e,t]}},lS=(e,t)=>{let n=nS(e);return{name:n.name,fn:n.fn,options:[e,t]}},uS=`Arrow`,dS=n.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,D.jsx)(Zi.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,D.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});dS.displayName=uS;var fS=dS;function pS(e){let[t,r]=n.useState(void 0);return Ai(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let n=t[0],i,a;if(`borderBoxSize`in n){let e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;r({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else r(void 0)},[e]),t}var mS=`Popper`,[hS,gS]=Oi(mS),[_S,vS]=hS(mS),yS=e=>{let{__scopePopper:t,children:r}=e,[i,a]=n.useState(null),[o,s]=n.useState(void 0);return(0,D.jsx)(_S,{scope:t,anchor:i,onAnchorChange:a,placementState:o,setPlacementState:s,children:r})};yS.displayName=mS;var bS=`PopperAnchor`,xS=n.forwardRef((e,t)=>{let{__scopePopper:r,virtualRef:i,...a}=e,o=vS(bS,r),s=n.useRef(null),c=o.onAnchorChange,l=Di(t,n.useCallback(e=>{s.current=e,e&&c(e)},[c])),u=n.useRef(null);n.useEffect(()=>{if(!i)return;let e=u.current;u.current=i.current,e!==u.current&&c(u.current)});let d=o.placementState&&jS(o.placementState),f=d?.[0],p=d?.[1];return i?null:(0,D.jsx)(Zi.div,{"data-radix-popper-side":f,"data-radix-popper-align":p,...a,ref:l})});xS.displayName=bS;var SS=`PopperContent`,[CS,wS]=hS(SS),TS=n.forwardRef((e,t)=>{let{__scopePopper:r,side:i=`bottom`,sideOffset:a=0,align:o=`center`,alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:d=0,sticky:f=`partial`,hideWhenDetached:p=!1,updatePositionStrategy:m=`optimized`,onPlaced:h,...g}=e,_=vS(SS,r),[v,y]=n.useState(null),b=Di(t,e=>y(e)),[x,S]=n.useState(null),C=pS(x),ee=C?.width??0,te=C?.height??0,ne=i+(o===`center`?``:`-`+o),re=typeof d==`number`?d:{top:0,right:0,bottom:0,left:0,...d},ie=Array.isArray(u)?u:[u],ae=ie.length>0,oe={padding:re,boundary:ie.filter(kS),altBoundary:ae},{refs:se,floatingStyles:ce,placement:le,isPositioned:ue,middlewareData:de}=tS({strategy:`fixed`,placement:ne,whileElementsMounted:(...e)=>Vx(...e,{animationFrame:m===`always`}),elements:{reference:_.anchor},middleware:[rS({mainAxis:a+te,alignmentAxis:s}),l&&iS({mainAxis:!0,crossAxis:!1,limiter:f===`partial`?aS():void 0,...oe}),l&&oS({...oe}),sS({...oe,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),x&&lS({element:x,padding:c}),AS({arrowWidth:ee,arrowHeight:te}),p&&cS({strategy:`referenceHidden`,...oe,boundary:ae?oe.boundary:void 0})]}),fe=_.setPlacementState;Ai(()=>(fe(le),()=>{fe(void 0)}),[le,fe]);let[pe,me]=jS(le),he=$i(h);Ai(()=>{ue&&he?.()},[ue,he]);let ge=de.arrow?.x,_e=de.arrow?.y,ve=de.arrow?.centerOffset!==0,[ye,be]=n.useState();return Ai(()=>{v&&be(window.getComputedStyle(v).zIndex)},[v]),(0,D.jsx)(`div`,{ref:se.setFloating,"data-radix-popper-content-wrapper":``,style:{...ce,transform:ue?ce.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ye,"--radix-popper-transform-origin":[de.transformOrigin?.x,de.transformOrigin?.y].join(` `),...de.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,D.jsx)(CS,{scope:r,placedSide:pe,placedAlign:me,onArrowChange:S,arrowX:ge,arrowY:_e,shouldHideArrow:ve,children:(0,D.jsx)(Zi.div,{"data-side":pe,"data-align":me,...g,ref:b,style:{...g.style,animation:ue?void 0:`none`}})})})});TS.displayName=SS;var ES=`PopperArrow`,DS={top:`bottom`,right:`left`,bottom:`top`,left:`right`},OS=n.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=wS(ES,n),a=DS[i.placedSide];return(0,D.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,D.jsx)(fS,{...r,ref:t,style:{...r.style,display:`block`}})})});OS.displayName=ES;function kS(e){return e!==null}var AS=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=jS(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function jS(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var MS=yS,NS=xS,PS=TS,FS=OS,IS=`rovingFocusGroup.onEntryFocus`,LS={bubbles:!1,cancelable:!0},RS=`RovingFocusGroup`,[zS,BS,VS]=Yy(RS),[HS,US]=Oi(RS,[VS]),[WS,GS]=HS(RS),KS=n.forwardRef((e,t)=>(0,D.jsx)(zS.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,D.jsx)(zS.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,D.jsx)(qS,{...e,ref:t})})}));KS.displayName=RS;var qS=n.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:i,loop:a=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,p=n.useRef(null),m=Di(t,p),h=Zy(o),[g,_]=Fi({prop:s,defaultProp:c??null,onChange:l,caller:RS}),[v,y]=n.useState(!1),b=$i(u),x=BS(r),S=n.useRef(!1),[C,ee]=n.useState(0);return n.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(IS,b),()=>e.removeEventListener(IS,b)},[b]),(0,D.jsx)(WS,{scope:r,orientation:i,dir:h,loop:a,currentTabStopId:g,onItemFocus:n.useCallback(e=>_(e),[_]),onItemShiftTab:n.useCallback(()=>y(!0),[]),onFocusableItemAdd:n.useCallback(()=>ee(e=>e+1),[]),onFocusableItemRemove:n.useCallback(()=>ee(e=>e-1),[]),children:(0,D.jsx)(Zi.div,{tabIndex:v||C===0?-1:0,"data-orientation":i,...f,ref:m,style:{outline:`none`,...e.style},onMouseDown:O(e.onMouseDown,()=>{S.current=!0}),onFocus:O(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(IS,LS);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);$S([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),d)}}S.current=!1}),onBlur:O(e.onBlur,()=>y(!1))})})}),JS=`RovingFocusGroupItem`,YS=n.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:i=!0,active:a=!1,tabStopId:o,children:s,...c}=e,l=Ni(),u=o||l,d=GS(JS,r),f=d.currentTabStopId===u,p=BS(r),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=d;return n.useEffect(()=>{if(i)return m(),()=>h()},[i,m,h]),(0,D.jsx)(zS.ItemSlot,{scope:r,id:u,focusable:i,active:a,children:(0,D.jsx)(Zi.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...c,ref:t,onMouseDown:O(e.onMouseDown,e=>{i?d.onItemFocus(u):e.preventDefault()}),onFocus:O(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:O(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){d.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=QS(e,d.orientation,d.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=p().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=d.loop?eC(n,r+1):n.slice(r+1)}setTimeout(()=>$S(n))}}),children:typeof s==`function`?s({isCurrentTabStop:f,hasTabStop:g!=null}):s})})});YS.displayName=JS;var XS={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function ZS(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function QS(e,t,n){let r=ZS(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return XS[r]}function $S(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function eC(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var tC=KS,nC=YS,rC=[`Enter`,` `],iC=[`ArrowDown`,`PageUp`,`Home`],aC=[`ArrowUp`,`PageDown`,`End`],oC=[...iC,...aC],sC={ltr:[...rC,`ArrowRight`],rtl:[...rC,`ArrowLeft`]},cC={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},lC=`Menu`,[uC,dC,fC]=Yy(lC),[pC,mC]=Oi(lC,[fC,gS,US]),hC=gS(),gC=US(),[_C,vC]=pC(lC),[yC,bC]=pC(lC),xC=e=>{let{__scopeMenu:t,open:r=!1,children:i,dir:a,onOpenChange:o,modal:s=!0}=e,c=hC(t),[l,u]=n.useState(null),d=n.useRef(!1),f=$i(o),p=Zy(a);return n.useEffect(()=>{let e=()=>{d.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>d.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),n.useEffect(()=>{if(!r)return;let e=()=>f(!1);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[r,f]),(0,D.jsx)(MS,{...c,children:(0,D.jsx)(_C,{scope:t,open:r,onOpenChange:f,content:l,onContentChange:u,children:(0,D.jsx)(yC,{scope:t,onClose:n.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:s,children:i})})})};xC.displayName=lC;var SC=`MenuAnchor`,CC=n.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=hC(n);return(0,D.jsx)(NS,{...i,...r,ref:t})});CC.displayName=SC;var wC=`MenuPortal`,[TC,EC]=pC(wC,{forceMount:void 0}),DC=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=vC(wC,t);return(0,D.jsx)(TC,{scope:t,forceMount:n,children:(0,D.jsx)(Pa,{present:n||a.open,children:(0,D.jsx)(Ma,{asChild:!0,container:i,children:r})})})};DC.displayName=wC;var OC=`MenuContent`,[kC,AC]=pC(OC),jC=n.forwardRef((e,t)=>{let n=EC(OC,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=vC(OC,e.__scopeMenu),o=bC(OC,e.__scopeMenu);return(0,D.jsx)(uC.Provider,{scope:e.__scopeMenu,children:(0,D.jsx)(Pa,{present:r||a.open,children:(0,D.jsx)(uC.Slot,{scope:e.__scopeMenu,children:o.modal?(0,D.jsx)(MC,{...i,ref:t}):(0,D.jsx)(NC,{...i,ref:t})})})})}),MC=n.forwardRef((e,t)=>{let r=vC(OC,e.__scopeMenu),i=n.useRef(null),a=Di(t,i);return n.useEffect(()=>{let e=i.current;if(e)return cs(e)},[]),(0,D.jsx)(FC,{...e,ref:a,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:O(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)})}),NC=n.forwardRef((e,t)=>{let n=vC(OC,e.__scopeMenu);return(0,D.jsx)(FC,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),PC=Ri(`MenuContent.ScrollLock`),FC=n.forwardRef((e,t)=>{let{__scopeMenu:r,loop:i=!1,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:c,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:m,disableOutsideScroll:h,...g}=e,_=vC(OC,r),v=bC(OC,r),y=hC(r),b=gC(r),x=dC(r),[S,C]=n.useState(null),ee=n.useRef(null),te=Di(t,ee,_.onContentChange),ne=n.useRef(0),re=n.useRef(``),ie=n.useRef(0),ae=n.useRef(null),oe=n.useRef(`right`),se=n.useRef(0),ce=h?$o:n.Fragment,le=h?{as:PC,allowPinchZoom:!0}:void 0,ue=e=>{let t=re.current+e,n=x().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=yw(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){re.current=t,window.clearTimeout(ne.current),t!==``&&(ne.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};n.useEffect(()=>()=>window.clearTimeout(ne.current),[]),Ha();let de=n.useCallback(e=>oe.current===ae.current?.side&&xw(e,ae.current?.area),[]);return(0,D.jsx)(kC,{scope:r,searchRef:re,onItemEnter:n.useCallback(e=>{de(e)&&e.preventDefault()},[de]),onItemLeave:n.useCallback(e=>{de(e)||(ee.current?.focus(),C(null))},[de]),onTriggerLeave:n.useCallback(e=>{de(e)&&e.preventDefault()},[de]),pointerGraceTimerRef:ie,onPointerGraceIntentChange:n.useCallback(e=>{ae.current=e},[]),children:(0,D.jsx)(ce,{...le,children:(0,D.jsx)(ya,{asChild:!0,trapped:a,onMountAutoFocus:O(o,e=>{e.preventDefault(),ee.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:(0,D.jsx)(sa,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:m,children:(0,D.jsx)(tC,{asChild:!0,...b,dir:v.dir,orientation:`vertical`,loop:i,currentTabStopId:S,onCurrentTabStopIdChange:C,onEntryFocus:O(l,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,D.jsx)(PS,{role:`menu`,"aria-orientation":`vertical`,"data-state":mw(_.open),"data-radix-menu-content":``,dir:v.dir,...y,...g,ref:te,style:{outline:`none`,...g.style},onKeyDown:O(g.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&ue(e.key));let i=ee.current;if(e.target!==i||!oC.includes(e.key))return;e.preventDefault();let a=x().filter(e=>!e.disabled).map(e=>e.ref.current);aC.includes(e.key)&&a.reverse(),_w(a)}),onBlur:O(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(ne.current),re.current=``)}),onPointerMove:O(e.onPointerMove,Sw(e=>{let t=e.target,n=se.current!==e.clientX;e.currentTarget.contains(t)&&n&&(oe.current=e.clientX>se.current?`right`:`left`,se.current=e.clientX)}))})})})})})})});jC.displayName=OC;var IC=`MenuGroup`,LC=n.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,D.jsx)(Zi.div,{role:`group`,...r,ref:t})});LC.displayName=IC;var RC=`MenuLabel`,zC=n.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,D.jsx)(Zi.div,{...r,ref:t})});zC.displayName=RC;var BC=`MenuItem`,VC=`menu.itemSelect`,HC=n.forwardRef((e,t)=>{let{disabled:r=!1,onSelect:i,...a}=e,o=n.useRef(null),s=bC(BC,e.__scopeMenu),c=AC(BC,e.__scopeMenu),l=Di(t,o),u=n.useRef(!1),d=()=>{let e=o.current;if(!r&&e){let t=new CustomEvent(VC,{bubbles:!0,cancelable:!0});e.addEventListener(VC,e=>i?.(e),{once:!0}),Qi(e,t),t.defaultPrevented?u.current=!1:s.onClose()}};return(0,D.jsx)(UC,{...a,ref:l,disabled:r,onClick:O(e.onClick,d),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:O(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:O(e.onKeyDown,e=>{let t=c.searchRef.current!==``;r||t&&e.key===` `||rC.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});HC.displayName=BC;var UC=n.forwardRef((e,t)=>{let{__scopeMenu:r,disabled:i=!1,textValue:a,...o}=e,s=AC(BC,r),c=gC(r),l=n.useRef(null),u=Di(t,l),[d,f]=n.useState(!1),[p,m]=n.useState(``);return n.useEffect(()=>{let e=l.current;e&&m((e.textContent??``).trim())},[o.children]),(0,D.jsx)(uC.ItemSlot,{scope:r,disabled:i,textValue:a??p,children:(0,D.jsx)(nC,{asChild:!0,...c,focusable:!i,children:(0,D.jsx)(Zi.div,{role:`menuitem`,"data-highlighted":d?``:void 0,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,...o,ref:u,onPointerMove:O(e.onPointerMove,Sw(e=>{i?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:O(e.onPointerLeave,Sw(e=>s.onItemLeave(e))),onFocus:O(e.onFocus,()=>f(!0)),onBlur:O(e.onBlur,()=>f(!1))})})})}),WC=`MenuCheckboxItem`,GC=n.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,D.jsx)($C,{scope:e.__scopeMenu,checked:n,children:(0,D.jsx)(HC,{role:`menuitemcheckbox`,"aria-checked":hw(n)?`mixed`:n,...i,ref:t,"data-state":gw(n),onSelect:O(i.onSelect,()=>r?.(hw(n)?!0:!n),{checkForDefaultPrevented:!1})})})});GC.displayName=WC;var KC=`MenuRadioGroup`,[qC,JC]=pC(KC,{value:void 0,onValueChange:()=>{}}),YC=n.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=$i(r);return(0,D.jsx)(qC,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,D.jsx)(LC,{...i,ref:t})})});YC.displayName=KC;var XC=`MenuRadioItem`,ZC=n.forwardRef((e,t)=>{let{value:n,...r}=e,i=JC(XC,e.__scopeMenu),a=n===i.value;return(0,D.jsx)($C,{scope:e.__scopeMenu,checked:a,children:(0,D.jsx)(HC,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":gw(a),onSelect:O(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});ZC.displayName=XC;var QC=`MenuItemIndicator`,[$C,ew]=pC(QC,{checked:!1}),tw=n.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=ew(QC,n);return(0,D.jsx)(Pa,{present:r||hw(a.checked)||a.checked===!0,children:(0,D.jsx)(Zi.span,{...i,ref:t,"data-state":gw(a.checked)})})});tw.displayName=QC;var nw=`MenuSeparator`,rw=n.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,D.jsx)(Zi.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});rw.displayName=nw;var iw=`MenuArrow`,aw=n.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=hC(n);return(0,D.jsx)(FS,{...i,...r,ref:t})});aw.displayName=iw;var ow=`MenuSub`,[sw,cw]=pC(ow),lw=e=>{let{__scopeMenu:t,children:r,open:i=!1,onOpenChange:a}=e,o=vC(ow,t),s=hC(t),[c,l]=n.useState(null),[u,d]=n.useState(null),f=$i(a);return n.useEffect(()=>(o.open===!1&&f(!1),()=>f(!1)),[o.open,f]),(0,D.jsx)(MS,{...s,children:(0,D.jsx)(_C,{scope:t,open:i,onOpenChange:f,content:u,onContentChange:d,children:(0,D.jsx)(sw,{scope:t,contentId:Ni(),triggerId:Ni(),trigger:c,onTriggerChange:l,children:r})})})};lw.displayName=ow;var uw=`MenuSubTrigger`,dw=n.forwardRef((e,t)=>{let r=vC(uw,e.__scopeMenu),i=bC(uw,e.__scopeMenu),a=cw(uw,e.__scopeMenu),o=AC(uw,e.__scopeMenu),s=n.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:l}=o,u={__scopeMenu:e.__scopeMenu},d=n.useCallback(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return n.useEffect(()=>d,[d]),n.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),l(null)}},[c,l]),(0,D.jsx)(CC,{asChild:!0,...u,children:(0,D.jsx)(UC,{id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":r.open,"aria-controls":r.open?a.contentId:void 0,"data-state":mw(r.open),...e,ref:Ei(t,a.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),r.open||r.onOpenChange(!0))},onPointerMove:O(e.onPointerMove,Sw(t=>{o.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!r.open&&!s.current&&(o.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{r.onOpenChange(!0),d()},100))})),onPointerLeave:O(e.onPointerLeave,Sw(e=>{d();let t=r.content?.getBoundingClientRect();if(t){let n=r.content?.dataset.side,i=n===`right`,a=i?-5:5,s=t[i?`left`:`right`],l=t[i?`right`:`left`];o.onPointerGraceIntentChange({area:[{x:e.clientX+a,y:e.clientY},{x:s,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:s,y:t.bottom}],side:n}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(e),e.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:O(e.onKeyDown,t=>{let n=o.searchRef.current!==``;e.disabled||n&&t.key===` `||sC[i.dir].includes(t.key)&&(r.onOpenChange(!0),r.content?.focus(),t.preventDefault())})})})});dw.displayName=uw;var fw=`MenuSubContent`,pw=n.forwardRef((e,t)=>{let r=EC(OC,e.__scopeMenu),{forceMount:i=r.forceMount,align:a=`start`,...o}=e,s=vC(OC,e.__scopeMenu),c=bC(OC,e.__scopeMenu),l=cw(fw,e.__scopeMenu),u=n.useRef(null),d=Di(t,u);return(0,D.jsx)(uC.Provider,{scope:e.__scopeMenu,children:(0,D.jsx)(Pa,{present:i||s.open,children:(0,D.jsx)(uC.Slot,{scope:e.__scopeMenu,children:(0,D.jsx)(FC,{id:l.contentId,"aria-labelledby":l.triggerId,...o,ref:d,align:a,side:c.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{c.isUsingKeyboardRef.current&&u.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:O(e.onFocusOutside,e=>{e.target!==l.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:O(e.onEscapeKeyDown,e=>{c.onClose(),e.preventDefault()}),onKeyDown:O(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=cC[c.dir].includes(e.key);t&&n&&(s.onOpenChange(!1),l.trigger?.focus(),e.preventDefault())})})})})})});pw.displayName=fw;function mw(e){return e?`open`:`closed`}function hw(e){return e===`indeterminate`}function gw(e){return hw(e)?`indeterminate`:e?`checked`:`unchecked`}function _w(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function vw(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function yw(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=vw(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function bw(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function xw(e,t){return t?bw({x:e.clientX,y:e.clientY},t):!1}function Sw(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Cw=xC,ww=CC,Tw=DC,Ew=jC,Dw=LC,Ow=zC,kw=HC,Aw=GC,jw=YC,Mw=ZC,Nw=tw,Pw=rw,Fw=aw,Iw=dw,Lw=pw,Rw=`DropdownMenu`,[zw,Bw]=Oi(Rw,[mC]),Vw=mC(),[Hw,Uw]=zw(Rw),Ww=e=>{let{__scopeDropdownMenu:t,children:r,dir:i,open:a,defaultOpen:o,onOpenChange:s,modal:c=!0}=e,l=Vw(t),u=n.useRef(null),[d,f]=Fi({prop:a,defaultProp:o??!1,onChange:s,caller:Rw});return(0,D.jsx)(Hw,{scope:t,triggerId:Ni(),triggerRef:u,contentId:Ni(),open:d,onOpenChange:f,onOpenToggle:n.useCallback(()=>f(e=>!e),[f]),modal:c,children:(0,D.jsx)(Cw,{...l,open:d,onOpenChange:f,dir:i,modal:c,children:r})})};Ww.displayName=Rw;var Gw=`DropdownMenuTrigger`,Kw=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Uw(Gw,n),o=Vw(n);return(0,D.jsx)(ww,{asChild:!0,...o,children:(0,D.jsx)(Zi.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:Ei(t,a.triggerRef),onPointerDown:O(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:O(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Kw.displayName=Gw;var qw=`DropdownMenuPortal`,Jw=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Vw(t);return(0,D.jsx)(Tw,{...r,...n})};Jw.displayName=qw;var Yw=`DropdownMenuContent`,Xw=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...i}=e,a=Uw(Yw,r),o=Vw(r),s=n.useRef(!1);return(0,D.jsx)(Ew,{id:a.contentId,"aria-labelledby":a.triggerId,...o,...i,ref:t,onCloseAutoFocus:O(e.onCloseAutoFocus,e=>{s.current||a.triggerRef.current?.focus(),s.current=!1,e.preventDefault()}),onInteractOutside:O(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!a.modal||r)&&(s.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});Xw.displayName=Yw;var Zw=`DropdownMenuGroup`,Qw=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Dw,{...i,...r,ref:t})});Qw.displayName=Zw;var $w=`DropdownMenuLabel`,eT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Ow,{...i,...r,ref:t})});eT.displayName=$w;var tT=`DropdownMenuItem`,nT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(kw,{...i,...r,ref:t})});nT.displayName=tT;var rT=`DropdownMenuCheckboxItem`,iT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Aw,{...i,...r,ref:t})});iT.displayName=rT;var aT=`DropdownMenuRadioGroup`,oT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(jw,{...i,...r,ref:t})});oT.displayName=aT;var sT=`DropdownMenuRadioItem`,cT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Mw,{...i,...r,ref:t})});cT.displayName=sT;var lT=`DropdownMenuItemIndicator`,uT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Nw,{...i,...r,ref:t})});uT.displayName=lT;var dT=`DropdownMenuSeparator`,fT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Pw,{...i,...r,ref:t})});fT.displayName=dT;var pT=`DropdownMenuArrow`,mT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Fw,{...i,...r,ref:t})});mT.displayName=pT;var hT=`DropdownMenuSubTrigger`,gT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Iw,{...i,...r,ref:t})});gT.displayName=hT;var _T=`DropdownMenuSubContent`,vT=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Vw(n);return(0,D.jsx)(Lw,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});vT.displayName=_T;var yT=Ww,bT=Kw,xT=Jw,ST=Xw,CT=nT,wT=fT,TT={content:`_content_w7vtm_1`,header:`_header_w7vtm_14`,separator:`_separator_w7vtm_18`,item:`_item_w7vtm_24`,danger:`_danger_w7vtm_46`,icon:`_icon_w7vtm_54`},ET=({trigger:e,items:t,header:n,align:r=`end`})=>(0,D.jsxs)(yT,{children:[(0,D.jsx)(bT,{asChild:!0,children:e}),(0,D.jsx)(xT,{container:Rs(),children:(0,D.jsxs)(ST,{className:TT.content,align:r,sideOffset:6,children:[n===void 0?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`div`,{className:TT.header,children:n}),(0,D.jsx)(wT,{className:TT.separator})]}),t.map((e,t)=>(0,D.jsxs)(CT,{className:T(TT.item,e.danger===!0&&TT.danger),disabled:e.disabled??!1,onSelect:e.onSelect,children:[e.icon===void 0?null:(0,D.jsx)(`span`,{className:TT.icon,"aria-hidden":`true`,children:e.icon}),e.label]},e.id??(typeof e.label==`string`?e.label:t)))]})})]}),DT=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),OT=`VisuallyHidden`,kT=n.forwardRef((e,t)=>(0,D.jsx)(Zi.span,{...e,ref:t,style:{...DT,...e.style}}));kT.displayName=OT;var AT=kT,[jT,MT]=Oi(`Tooltip`,[gS]),NT=gS(),PT=`TooltipProvider`,FT=700,IT=`tooltip.open`,[LT,RT]=jT(PT),zT=e=>{let{__scopeTooltip:t,delayDuration:r=FT,skipDelayDuration:i=300,disableHoverableContent:a=!1,children:o}=e,s=n.useRef(!0),c=n.useRef(!1),l=n.useRef(0);return n.useEffect(()=>{let e=l.current;return()=>window.clearTimeout(e)},[]),(0,D.jsx)(LT,{scope:t,isOpenDelayedRef:s,delayDuration:r,onOpen:n.useCallback(()=>{i<=0||(window.clearTimeout(l.current),s.current=!1)},[i]),onClose:n.useCallback(()=>{i<=0||(window.clearTimeout(l.current),l.current=window.setTimeout(()=>s.current=!0,i))},[i]),isPointerInTransitRef:c,onPointerInTransitChange:n.useCallback(e=>{c.current=e},[]),disableHoverableContent:a,children:o})};zT.displayName=PT;var BT=`Tooltip`,[VT,HT]=jT(BT),UT=e=>{let{__scopeTooltip:t,children:r,open:i,defaultOpen:a,onOpenChange:o,disableHoverableContent:s,delayDuration:c}=e,l=RT(BT,e.__scopeTooltip),u=NT(t),[d,f]=n.useState(null),p=Ni(),m=n.useRef(0),h=s??l.disableHoverableContent,g=c??l.delayDuration,_=n.useRef(!1),[v,y]=Fi({prop:i,defaultProp:a??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(IT))):l.onClose(),o?.(e)},caller:BT}),b=n.useMemo(()=>v?_.current?`delayed-open`:`instant-open`:`closed`,[v]),x=n.useCallback(()=>{window.clearTimeout(m.current),m.current=0,_.current=!1,y(!0)},[y]),S=n.useCallback(()=>{window.clearTimeout(m.current),m.current=0,y(!1)},[y]),C=n.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{_.current=!0,y(!0),m.current=0},g)},[g,y]);return n.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,D.jsx)(MS,{...u,children:(0,D.jsx)(VT,{scope:t,contentId:p,open:v,stateAttribute:b,trigger:d,onTriggerChange:f,onTriggerEnter:n.useCallback(()=>{l.isOpenDelayedRef.current?C():x()},[l.isOpenDelayedRef,C,x]),onTriggerLeave:n.useCallback(()=>{h?S():(window.clearTimeout(m.current),m.current=0)},[S,h]),onOpen:x,onClose:S,disableHoverableContent:h,children:r})})};UT.displayName=BT;var WT=`TooltipTrigger`,GT=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...i}=e,a=HT(WT,r),o=RT(WT,r),s=NT(r),c=Di(t,n.useRef(null),a.onTriggerChange),l=n.useRef(!1),u=n.useRef(!1),d=n.useCallback(()=>l.current=!1,[]);return n.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,D.jsx)(NS,{asChild:!0,...s,children:(0,D.jsx)(Zi.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...i,ref:c,onPointerMove:O(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:O(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:O(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:O(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:O(e.onBlur,a.onClose),onClick:O(e.onClick,a.onClose)})})});GT.displayName=WT;var KT=`TooltipPortal`,[qT,JT]=jT(KT,{forceMount:void 0}),YT=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=HT(KT,t);return(0,D.jsx)(qT,{scope:t,forceMount:n,children:(0,D.jsx)(Pa,{present:n||a.open,children:(0,D.jsx)(Ma,{asChild:!0,container:i,children:r})})})};YT.displayName=KT;var XT=`TooltipContent`,ZT=n.forwardRef((e,t)=>{let n=JT(XT,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=HT(XT,e.__scopeTooltip);return(0,D.jsx)(Pa,{present:r||o.open,children:o.disableHoverableContent?(0,D.jsx)(nE,{side:i,...a,ref:t}):(0,D.jsx)(QT,{side:i,...a,ref:t})})}),QT=n.forwardRef((e,t)=>{let r=HT(XT,e.__scopeTooltip),i=RT(XT,e.__scopeTooltip),a=n.useRef(null),o=Di(t,a),[s,c]=n.useState(null),{trigger:l,onClose:u}=r,d=a.current,{onPointerInTransitChange:f}=i,p=n.useCallback(()=>{c(null),f(!1)},[f]),m=n.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=oE(r,aE(r,n.getBoundingClientRect())),a=sE(t.getBoundingClientRect());c(lE([...i,...a])),f(!0)},[f]);return n.useEffect(()=>()=>p(),[p]),n.useEffect(()=>{if(l&&d){let e=e=>m(e,d),t=e=>m(e,l);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),n.useEffect(()=>{if(s){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!cE(n,s);r?p():i&&(p(),u())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,s,u,p]),(0,D.jsx)(nE,{...e,ref:o})}),[$T,eE]=jT(BT,{isInside:!1}),tE=Bi(`TooltipContent`),nE=n.forwardRef((e,t)=>{let{__scopeTooltip:r,children:i,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=HT(XT,r),u=NT(r),{onClose:d}=l;return n.useEffect(()=>(document.addEventListener(IT,d),()=>document.removeEventListener(IT,d)),[d]),n.useEffect(()=>{if(l.trigger){let e=e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]),(0,D.jsx)(sa,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,D.jsxs)(PS,{"data-state":l.stateAttribute,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,D.jsx)(tE,{children:i}),(0,D.jsx)($T,{scope:r,isInside:!0,children:(0,D.jsx)(AT,{id:l.contentId,role:`tooltip`,children:a||i})})]})})});ZT.displayName=XT;var rE=`TooltipArrow`,iE=n.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=NT(n);return eE(rE,n).isInside?null:(0,D.jsx)(FS,{...i,...r,ref:t})});iE.displayName=rE;function aE(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function oE(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function sE(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function cE(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function lE(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),uE(t)}function uE(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var dE=zT,fE=UT,pE=GT,mE=YT,hE=ZT,gE=iE,_E={content:`_content_19re1_1`,arrow:`_arrow_19re1_16`},vE=({label:e,children:t,side:n=`top`})=>(0,D.jsxs)(fE,{children:[(0,D.jsx)(pE,{asChild:!0,children:t}),(0,D.jsx)(mE,{children:(0,D.jsxs)(hE,{className:_E.content,side:n,sideOffset:6,children:[e,(0,D.jsx)(gE,{className:_E.arrow})]})})]}),yE=({children:e,delayDuration:t=20})=>(0,D.jsx)(dE,{delayDuration:t,children:e}),bE=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},xE=(e=>e?bE(e):bE),SE=e=>e;function CE(e,t=SE){let r=n.default.useSyncExternalStore(e.subscribe,n.default.useCallback(()=>t(e.getState()),[e,t]),n.default.useCallback(()=>t(e.getInitialState()),[e,t]));return n.default.useDebugValue(r),r}var wE=e=>{let t=xE(e),n=e=>CE(t,e);return Object.assign(n,t),n},TE=(e=>e?wE(e):wE),EE=TE(e=>({toasts:[],add:(t,n=`info`)=>{let r=Math.random().toString(36).substring(2,9);e(e=>({toasts:[...e.toasts,{id:r,message:t,type:n}]})),setTimeout(()=>{e(e=>({toasts:e.toasts.filter(e=>e.id!==r)}))},6e3)},remove:t=>{e(e=>({toasts:e.toasts.filter(e=>e.id!==t)}))}})),j={success:e=>{EE.getState().add(e,`success`)},error:e=>{EE.getState().add(e,`error`)},info:e=>{EE.getState().add(e,`info`)}},DE=()=>EE(e=>e.toasts),OE=e=>{EE.getState().remove(e)},kE={container:`_container_yjtbg_1`,toast:`_toast_yjtbg_14`,iconWrap:`_iconWrap_yjtbg_29`,type_success:`_type_success_yjtbg_35`,type_error:`_type_error_yjtbg_39`,type_info:`_type_info_yjtbg_43`,message:`_message_yjtbg_47`},AE=()=>{let e=DE();return(0,D.jsx)(`div`,{className:kE.container,role:`status`,"aria-live":`polite`,"aria-atomic":`false`,children:(0,D.jsx)(Wg,{children:e.map(e=>{let t=e.type===`success`?Yn:e.type===`error`?Xn:hr,n=kE[`type_${e.type}`];return(0,D.jsxs)(A.div,{layout:!0,initial:{opacity:0,y:50,scale:.9},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,scale:.9,transition:{duration:.2}},className:kE.toast,onClick:()=>{OE(e.id)},children:[(0,D.jsx)(`div`,{className:T(kE.iconWrap,n),children:(0,D.jsx)(t,{size:16})}),(0,D.jsx)(`span`,{className:kE.message,children:e.message})]},e.id)})})})},jE={card:`_card_mk3l2_1`,padSm:`_padSm_mk3l2_8`,padMd:`_padMd_mk3l2_12`,padLg:`_padLg_mk3l2_16`,shadowSm:`_shadowSm_mk3l2_20`,shadowMd:`_shadowMd_mk3l2_24`,interactive:`_interactive_mk3l2_28`},ME=(0,n.forwardRef)(({padding:e=`md`,shadow:t=`sm`,interactive:n=!1,className:r,children:i,...a},o)=>(0,D.jsx)(`div`,{ref:o,className:T(jE.card,e===`sm`&&jE.padSm,e===`md`&&jE.padMd,e===`lg`&&jE.padLg,t===`sm`&&jE.shadowSm,t===`md`&&jE.shadowMd,n&&jE.interactive,r),...a,children:i}));ME.displayName=`Card`;var NE={avatar:`_avatar_eiy4h_1`,circle:`_circle_eiy4h_17`,rounded:`_rounded_eiy4h_21`},PE={xs:`26px`,sm:`30px`,md:`36px`,lg:`42px`},FE={xs:`10px`,sm:`11px`,md:`13px`,lg:`15px`},IE=({initials:e,color:t,size:n=`md`,shape:r=`circle`,className:i})=>(0,D.jsx)(`span`,{className:T(NE.avatar,r===`rounded`?NE.rounded:NE.circle,i),style:E({"--avatar-size":PE[n],"--avatar-font":FE[n],"--avatar-color":t}),"aria-hidden":`true`,children:e}),LE={badge:`_badge_cz5qm_1`,sm:`_sm_cz5qm_14`,toneNeutral:`_toneNeutral_cz5qm_20`,tonePrimary:`_tonePrimary_cz5qm_24`,toneSecondary:`_toneSecondary_cz5qm_28`,toneSuccess:`_toneSuccess_cz5qm_32`,toneDanger:`_toneDanger_cz5qm_36`,toneWarn:`_toneWarn_cz5qm_40`,soft:`_soft_cz5qm_44`,solid:`_solid_cz5qm_50`,outline:`_outline_cz5qm_55`};LE.toneNeutral,LE.tonePrimary,LE.toneSecondary,LE.toneSuccess,LE.toneDanger,LE.toneWarn,LE.soft,LE.solid,LE.outline;var RE={group:`_group_dsmc8_1`,seg:`_seg_dsmc8_21`,segActive:`_segActive_dsmc8_49`,count:`_count_dsmc8_61`},zE=({options:e,value:t,onChange:n,ariaLabel:r,className:i})=>(0,D.jsx)(`div`,{className:T(RE.group,i),role:`group`,"aria-label":r,children:e.map(e=>{let r=e.value===t;return(0,D.jsxs)(`button`,{type:`button`,className:T(RE.seg,r&&RE.segActive),"aria-pressed":r,onClick:()=>{n(e.value)},children:[e.label,e.count!==void 0&&(0,D.jsx)(`span`,{className:RE.count,children:e.count})]},e.value)})}),BE={container:`_container_492h5_3`,trigger:`_trigger_492h5_9`,triggerActive:`_triggerActive_492h5_43`,timeText:`_timeText_492h5_52`,icon:`_icon_492h5_58`,popover:`_popover_492h5_65`,popoverTop:`_popoverTop_492h5_79`,popoverBottom:`_popoverBottom_492h5_83`,popoverLeft:`_popoverLeft_492h5_87`,popoverRight:`_popoverRight_492h5_91`,headerPills:`_headerPills_492h5_97`,pill:`_pill_492h5_103`,pickerBody:`_pickerBody_492h5_120`,column:`_column_492h5_127`,wheelItem:`_wheelItem_492h5_149`,wheelItemActive:`_wheelItemActive_492h5_172`},VE=[1,2,3,4,5,6,7,8,9,10,11,12],HE=Array.from({length:60},(e,t)=>t),UE=[`AM`,`PM`],WE=e=>{let t=e.split(`:`),n=Number.parseInt(t[0]??`9`,10),r=Number.parseInt(t[1]??`0`,10),i=n>=12?`PM`:`AM`,a=n%12==0?12:n%12;return{hour12:a,minute:r,period:i,formatted:`${String(a).padStart(2,`0`)}:${String(r).padStart(2,`0`)} ${i}`}},GE=(e,t,n)=>{let r=e;return n===`PM`&&e<12?r+=12:n===`AM`&&e===12&&(r=0),`${String(r).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`},KE=({items:e,selected:t,formatItem:r,onSelect:i})=>{let a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let e=a.current;e!==null&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})},[]),(0,D.jsx)(`div`,{className:BE.column,children:e.map(e=>{let n=t===e,o=r===void 0?String(e):r(e);return(0,D.jsx)(`button`,{ref:n?a:null,type:`button`,className:T(BE.wheelItem,n&&BE.wheelItemActive),onClick:t=>{t.stopPropagation(),i(e)},children:o},String(e))})})},qE=e=>String(e).padStart(2,`0`),JE=({hour12:e,minute:t,period:n,onSelect:r})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:BE.headerPills,children:[(0,D.jsx)(`span`,{className:BE.pill,children:qE(e)}),(0,D.jsx)(`span`,{className:BE.pill,children:qE(t)}),(0,D.jsx)(`span`,{className:BE.pill,children:n})]}),(0,D.jsxs)(`div`,{className:BE.pickerBody,children:[(0,D.jsx)(KE,{items:VE,selected:e,formatItem:qE,onSelect:e=>{r(e,t,n)}}),(0,D.jsx)(KE,{items:HE,selected:t,formatItem:qE,onSelect:t=>{r(e,t,n)}}),(0,D.jsx)(KE,{items:UE,selected:n,onSelect:n=>{r(e,t,n)}})]})]}),YE=({value:e,onChange:t,disabled:r=!1,className:i,align:a=`start`,side:o=`top`})=>{let[s,c]=(0,n.useState)(!1),l=(0,n.useRef)(null),{hour12:u,minute:d,period:f,formatted:p}=WE(e);return(0,n.useEffect)(()=>{if(!s)return;let e=e=>{l.current!==null&&!l.current.contains(e.target)&&c(!1)},t=e=>{e.key===`Escape`&&c(!1)};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[s]),(0,D.jsxs)(`div`,{ref:l,className:T(BE.container,i),children:[(0,D.jsxs)(`button`,{type:`button`,disabled:r,className:T(BE.trigger,s&&BE.triggerActive),onClick:()=>{c(e=>!e)},children:[(0,D.jsx)(`span`,{className:BE.timeText,children:p}),(0,D.jsx)(Zn,{size:13,className:BE.icon})]}),s?(0,D.jsx)(`div`,{className:T(BE.popover,o===`top`?BE.popoverTop:BE.popoverBottom,a===`end`?BE.popoverRight:BE.popoverLeft),children:(0,D.jsx)(JE,{hour12:u,minute:d,period:f,onSelect:(e,n,r)=>{t(GE(e,n,r))}})}):null]})},XE=({container:e,children:t})=>(0,D.jsx)(Ls.Provider,{value:e,children:t}),ZE=({pendingDelete:e,pendingLeave:t,onConfirmDelete:n,onConfirmLeave:r,onCancelDelete:i,onCancelLeave:a})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Ky,{open:e!==null,title:`Delete chat`,message:`Delete "${e?.title??``}"? This can't be undone.`,confirmLabel:`Delete chat`,onConfirm:n,onCancel:i}),(0,D.jsx)(Ky,{open:t!==null,title:`Leave group`,message:`Leave "${t?.title??``}"? You'll stop receiving its messages.`,confirmLabel:`Leave group`,onConfirm:r,onCancel:a})]});function QE(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function $E(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=process.env.NODE_ENV!==`production`&&!!n.key&&!!n.debug?.call(n),s=0;o&&(s=Date.now());let c=e();if(!(c.length!==r.length||c.some((e,t)=>r[t]!==e)))return i;r=c;let l=0;if(o&&(l=Date.now()),i=t(...c),o){let e=Math.round((Date.now()-s)*100)/100,t=Math.round((Date.now()-l)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
|
|
53
53
|
font-size: .6rem;
|
|
54
54
|
font-weight: bold;
|
|
55
|
-
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function eD(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var tD=(e,t)=>Math.abs(e-t)<1.01,nD=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},rD,iD=()=>{if(rD!==void 0)return rD;if(typeof navigator>`u`)return rD=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return rD=!0;let e=navigator.maxTouchPoints;return rD=navigator.platform===`MacIntel`&&e!==void 0&&e>0},aD=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},oD=e=>e,sD=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},cD=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(aD(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(aD(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},lD={passive:!0},uD=typeof window>`u`?!0:`onscrollend`in window,dD=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&uD,o=0,s=a?null:nD(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,lD),a&&r.addEventListener(`scrollend`,u,lD),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},fD=(e,t)=>dD(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),pD=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},mD=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},hD=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:oD,rangeExtractor:sD,onChange:()=>{},measureElement:pD,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=$E(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:process.env.NODE_ENV!==`production`&&`maybeNotify`,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{t&&this._intendedScrollOffset===null&&e===this.scrollOffset||(this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify())})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!iD()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,lD),e.addEventListener(`touchend`,n,lD),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(iD()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=$E(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=$E(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=QE(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),d=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(d[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,f=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=d[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},d[s]=i}return this.measurementsCache=u,u},{key:process.env.NODE_ENV!==`production`&&`getMeasurements`,debug:()=>this.options.debug}),this.calculateRange=$E(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?_D({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:r===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:process.env.NODE_ENV!==`production`&&`calculateRange`,debug:()=>this.options.debug}),this.getVirtualIndexes=$E(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:process.env.NODE_ENV!==`production`&&`getVirtualIndexes`,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(i)||this.scrollDirection!==`backward`):this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=$E(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:process.env.NODE_ENV!==`production`&&`getVirtualItems`,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return eD(t[gD(0,t.length-1,r?e=>n[e*2]:e=>eD(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(process.env.NODE_ENV!==`production`&&this.options.debug&&console.info(`correction`,e),iD()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&tD(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},gD=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function _D({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:i}){let a=e.length-1,o=i?e=>i[e*2]:t=>e[t].start,s=i?e=>i[e*2]+i[e*2+1]:t=>e[t].end;if(e.length<=r)return{startIndex:0,endIndex:a};let c=gD(0,a,o,n),l=c;if(r===1)for(;l<a&&s(l)<n+t;)l++;else if(r>1){let i=Array(r).fill(0);for(;l<a&&i.some(e=>e<n+t);){let t=e[l];i[t.lane]=t.end,l++}let o=Array(r).fill(n+t);for(;c>=0&&o.some(e=>e>=n);){let t=e[c];o[t.lane]=t.start,c--}c=Math.max(0,c-c%r),l=Math.min(a,l+(r-1-l%r))}return{startIndex:c,endIndex:l}}var vD=typeof document<`u`?n.useLayoutEffect:n.useEffect;function yD({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:r=`transform`,...a}){let o=n.useReducer(e=>e+1,0)[1],s=n.useRef({enabled:t,mode:r,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});s.current.enabled=t,s.current.mode=r;let c=e=>{let t=s.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}let r=!!e.options.horizontal,i=t.mode===`transform`,a=r?`left`:`top`,o=e.options.scrollMargin,c=e.getVirtualItems();for(let n of c){let s=n.start-o,c=e.elementsCache.get(n.key);c&&t.lastPositions.get(c)!==s&&(t.lastPositions.set(c,s),i?c.style.transform=r?`translate3d(${s}px, 0, 0)`:`translate3d(0, ${s}px, 0)`:c.style[a]=`${s}px`)}},l={...a,onChange:(t,n)=>{var r;let l=s.current,u=!0;if(l.enabled){c(t);let e=t.range,n=l.prevRange;u=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,u&&(l.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}u&&(e&&n?(0,i.flushSync)(o):o()),(r=a.onChange)==null||r.call(a,t,n)}},[u]=n.useState(()=>{let e=new hD(l);return Object.assign(e,{containerRef:t=>{let n=s.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return u.setOptions(l),vD(()=>u._didMount(),[]),vD(()=>u._willUpdate()),vD(()=>{c(u)}),u}function bD(e){return yD({observeElementRect:cD,observeElementOffset:fD,scrollToFn:mD,...e})}var xD=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`get-availability`)}async execute(){let e=await this.scheduleGateway.getAvailability();return e.ok||this.logger.warn(`Loading availability failed`,{code:e.error.code}),e}},SD=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`get-effective-availability`)}async execute(){let e=await this.scheduleGateway.getEffectiveAvailability();return e.ok||this.logger.warn(`Loading effective availability failed`,{code:e.error.code}),e}},M=e=>({ok:!0,value:e}),N=e=>({ok:!1,error:e}),CD=e=>!e.ok,wD=e=>{if(CD(e))throw e.error;return e.value},P=async e=>wD(await e),TD=class extends ci{code=`INVALID_EMAIL`;constructor(e){super(`"${e}" is not a valid email address.`,{context:{value:e}})}},ED=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,DD=class e{value;constructor(e){this.value=e}static create(t){let n=t.trim().toLowerCase();return ED.test(n)?M(new e(n)):N(new TD(t))}equals(e){return this.value===e.value}toString(){return this.value}},OD=[{id:`mon`,short:`Mon`,long:`Monday`},{id:`tue`,short:`Tue`,long:`Tuesday`},{id:`wed`,short:`Wed`,long:`Wednesday`},{id:`thu`,short:`Thu`,long:`Thursday`},{id:`fri`,short:`Fri`,long:`Friday`},{id:`sat`,short:`Sat`,long:`Saturday`},{id:`sun`,short:`Sun`,long:`Sunday`}],kD=class extends ci{code=`INVALID_TIME`;constructor(e){super(`"${e}" is not a valid 24-hour time.`,{context:{value:e}})}},AD=/^([01]\d|2[0-3]):([0-5]\d)$/,jD=60,MD=class e{minutes;normalized;constructor(e,t){this.minutes=e,this.normalized=t}static create(t){let n=AD.exec(t.trim());if(n===null)return N(new kD(t));let r=Number(n[1]),i=Number(n[2]);return M(new e(r*jD+i,`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`))}get minutesSinceMidnight(){return this.minutes}get value(){return this.normalized}equals(e){return this.minutes===e.minutes}isBefore(e){return this.minutes<e.minutes}isAfter(e){return this.minutes>e.minutes}toString(){return this.normalized}},ND=class e{start;end;constructor(e,t){this.start=e,this.end=t}static create(t,n){let r=MD.create(t);if(!r.ok)return r;let i=MD.create(n);return i.ok?t===n?N(new kD(`${t}–${n}`)):M(new e(r.value,i.value)):i}get from(){return this.start}get to(){return this.end}get minutes(){let e=this.end.minutesSinceMidnight-this.start.minutesSinceMidnight;return e<0?e+1440:e}},PD=class extends ci{},FD=class extends PD{code=`SCHEDULE_UNAVAILABLE`;constructor(e){super(`Your schedule is currently unavailable. Please try again.`,{cause:e})}},ID=class extends PD{code=`SCHEDULE_INVALID_AVAILABILITY`;constructor(){super(`Each working day must end after it starts.`)}},LD=class extends PD{code=`SCHEDULE_INVALID_BLOCK`;constructor(e=`Give the block a title and an end time after its start.`){super(e)}},RD=class extends PD{code=`SCHEDULE_BLOCK_NOT_FOUND`;constructor(){super(`That schedule block no longer exists.`)}},zD=e=>{let t=new Date(e);return t.getHours()*60+t.getMinutes()},BD=(e,t)=>Math.max(0,Math.round((new Date(t).getTime()-new Date(e).getTime())/6e4)),VD=(e,t)=>new Date(t).getTime()>new Date(e).getTime(),HD=e=>(new Date(e).getDay()+6)%7,UD=e=>{let t=typeof e==`string`?new Date(e):e;return`${String(t.getFullYear())}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`},WD=e=>{let t={mon:{active:e.mon.active,slots:[]},tue:{active:e.tue.active,slots:[]},wed:{active:e.wed.active,slots:[]},thu:{active:e.thu.active,slots:[]},fri:{active:e.fri.active,slots:[]},sat:{active:e.sat.active,slots:[]},sun:{active:e.sun.active,slots:[]}},n=e=>OD[(e+1)%7]?.id??`mon`;OD.forEach((r,i)=>{let a=e[r.id].slots,o=t[r.id].slots;for(let e of a)if(e.from>e.to&&e.from!==e.to){if(o.push({id:e.id,from:e.from,to:`23:59`}),e.to>`00:00`){let r=n(i),a=t[r].slots;a.push({id:crypto.randomUUID(),from:`00:00`,to:e.to}),t[r]={active:!0,slots:a}}}else o.push({...e})});for(let e of OD)t[e.id].slots.sort((e,t)=>e.from.localeCompare(t.from));return t},GD={mon:{active:!0,slots:[{id:`default-mon-1`,from:`09:00`,to:`17:00`}]},tue:{active:!0,slots:[{id:`default-tue-1`,from:`09:00`,to:`17:00`}]},wed:{active:!0,slots:[{id:`default-wed-1`,from:`09:00`,to:`17:00`}]},thu:{active:!0,slots:[{id:`default-thu-1`,from:`09:00`,to:`17:00`}]},fri:{active:!0,slots:[{id:`default-fri-1`,from:`09:00`,to:`17:00`}]},sat:{active:!1,slots:[{id:`default-sat-1`,from:`10:00`,to:`14:00`}]},sun:{active:!1,slots:[{id:`default-sun-1`,from:`10:00`,to:`14:00`}]}},KD=OD.map(e=>e.id),qD=e=>KD[(e.getDay()+6)%7]??`mon`,JD=(e,t)=>e??t??GD,YD=(e,t)=>e[qD(t)],XD=1500,ZD=(e,t)=>new Date(e,t+1,0).getDate(),QD=e=>Math.min(5,Math.ceil(e.getDate()/7)),$D=(e,t,n,r)=>{if(n===5){let n=ZD(e,t),i=new Date(e,t,n);return new Date(e,t,n-(i.getDay()-r+7)%7)}let i=1+(r-new Date(e,t,1).getDay()+7)%7+(n-1)*7;return i>ZD(e,t)?null:new Date(e,t,i)},eO=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),tO=(e,t,n)=>{let r=[],i=eO(e),a=Math.max(1,t);for(;i<=n&&r.length<1500;)r.push(new Date(i)),i.setDate(i.getDate()+a);return r},nO=(e,t,n)=>{let r=Math.max(1,t.interval),i=(t.weekdays.length>0?[...t.weekdays]:[e.getDay()]).sort((e,t)=>e-t),a=eO(e);a.setDate(a.getDate()-a.getDay());let o=[];for(let e=0;o.length<XD;e+=r){let t=new Date(a);if(t.setDate(t.getDate()+e*7),t>n)break;for(let e of i){let r=new Date(t);r.setDate(r.getDate()+e),r<=n&&o.push(r)}}return o},rO=(e,t,n,r)=>t.monthlyMode===`dayOfMonth`?new Date(n,r,Math.min(e.getDate(),ZD(n,r))):$D(n,r,QD(e),e.getDay()),iO=(e,t,n,r)=>{let i=[],a=Math.max(1,t.interval),o=r?12*a:a;for(let r=0;r<600&&i.length<1500;r+=1){let a=e.getMonth()+r*o,s=e.getFullYear()+Math.floor(a/12),c=(a%12+12)%12;if(new Date(s,c,1)>n&&r>0)break;let l=rO(e,t,s,c);l&&l<=n&&i.push(l)}return i},aO=(e,t,n)=>{switch(t.freq){case`daily`:return tO(e,t.interval,n);case`weekly`:return nO(e,t,n);case`monthly`:return iO(e,t,n,!1);case`yearly`:return iO(e,t,n,!0)}},oO=[{id:`daily`,label:`Daily`},{id:`weekly`,label:`Weekly`},{id:`monthly`,label:`Monthly`},{id:`yearly`,label:`Yearly`}],sO=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],cO=[`first`,`second`,`third`,`fourth`,`last`],lO=e=>({freq:`weekly`,interval:1,weekdays:[new Date(e).getDay()],monthlyMode:`dayOfMonth`,endType:`never`,endCount:13,endDate:``,exceptions:[]}),uO=e=>e.endType===`on`&&e.endDate!==``?new Date(`${e.endDate}T23:59:59`):null,dO=(e,t,n)=>{let[r,i]=t.split(`:`),[a,o]=n.split(`:`);return{start:new Date(e.getFullYear(),e.getMonth(),e.getDate(),Number(r??`0`),Number(i??`0`),0,0),end:new Date(e.getFullYear(),e.getMonth(),e.getDate(),Number(a??`0`),Number(o??`0`),0,0)}},fO=({day:e,rec:t,endDate:n,exceptions:r,range:i,count:a,out:o})=>{let s=a,c=e.getDay(),l=t.weekdayTimes?.[c];if(!l||l.length===0)return{count:s,broken:!1};for(let a of l){let{start:c,end:l}=dO(e,a.start,a.end);if(n!==null&&c>n)return{count:s,broken:!0};if(!r.has(UD(c))){if(s+=1,t.endType===`after`&&s>t.endCount)return{count:s,broken:!0};c>=i.start&&c<=i.end&&o.push({start:c.toISOString(),end:l.toISOString()})}}return{count:s,broken:!1}},pO=(e,t)=>{if(!t.differentTimes||!t.weekdayTimes)return!1;let n=t.weekdayTimes[e.getDay()];return n!==void 0&&n.length>0},mO=({day:e,base:t,dur:n,rec:r,endDate:i,exceptions:a,range:o,count:s,out:c})=>{if(pO(e,r))return fO({day:e,rec:r,endDate:i,exceptions:a,range:o,count:s,out:c});let l=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),0,0);if(l<t)return{count:s,broken:!1};if(i!==null&&l>i)return{count:s,broken:!0};if(a.has(UD(l)))return{count:s,broken:!1};let u=s+1;return r.endType===`after`&&u>r.endCount?{count:u,broken:!0}:(l>=o.start&&l<=o.end&&c.push({start:l.toISOString(),end:new Date(l.getTime()+n).toISOString()}),{count:u,broken:!1})},hO=(e,t,n,r)=>{let i=uO(n),a=new Set(n.exceptions),o=[],s=0;for(let c of aO(e,n,r.end)){let l=mO({day:c,base:e,dur:t,rec:n,endDate:i,exceptions:a,range:r,count:s,out:o});if(s=l.count,l.broken)break}return o},gO=(e,t,n)=>{let r=new Date(e.start);return e.recurrence===null?r>=t&&r<=n?[{start:e.start,end:e.end}]:[]:hO(r,new Date(e.end).getTime()-r.getTime(),e.recurrence,{start:t,end:n})},_O=(e,t,n)=>{let r=Math.max(0,new Date(e.end).getTime()-new Date(e.start).getTime()),i=new Date(t.getTime()-r),a=t.getTime(),o=n.getTime();return gO(e,i,n).filter(e=>{let t=new Date(e.start).getTime(),n=new Date(e.end).getTime();return t<=o&&n>a})},vO=e=>{let t={daily:`day`,weekly:`week`,monthly:`month`,yearly:`year`}[e.freq];return e.interval>1?`every ${String(e.interval)} ${t}s`:`every ${t}`},yO=(e,t)=>e.freq===`weekly`?` on ${(e.weekdays.length>0?[...e.weekdays]:[t.getDay()]).sort((e,t)=>e-t).map(e=>sO[e]).join(`, `)}`:e.freq===`monthly`||e.freq===`yearly`?e.monthlyMode===`nthWeekday`?` on the ${cO[QD(t)-1]??`first`} ${sO[t.getDay()]??``}`:` on day ${String(t.getDate())}`:``,bO=e=>e.endType===`after`?`, ${String(e.endCount)} times`:e.endType===`on`&&e.endDate!==``?`, until ${new Date(`${e.endDate}T00:00:00`).toLocaleDateString(void 0,{day:`numeric`,month:`short`,year:`numeric`})}`:``,xO=(e,t)=>{if(e.differentTimes){let n=yO(e,new Date(t));return`${vO(e)}${n} with different times per day${bO(e)}`}return`${vO(e)}${yO(e,new Date(t))}${bO(e)}`},SO=class{id;userId;title;status;start;end;allDay;notes;recurrence;constructor(e){this.id=e.id,this.userId=e.userId,this.title=e.title,this.status=e.status,this.start=e.start,this.end=e.end,this.allDay=e.allDay,this.notes=e.notes,this.recurrence=e.recurrence}get durationMinutes(){return BD(this.start,this.end)}get isRecurring(){return this.recurrence!==null}get hasNotes(){return this.notes.trim().length>0}},CO=e=>{let t=e.title.trim();if(t.length===0)return N(new LD(`Give the block a title.`));if(!VD(e.start,e.end))return N(new LD(`The block must end after it starts.`));let n=e.allDay?26:24;return BD(e.start,e.end)>n*60?N(new LD(`A single block can't span more than ${String(n)} hours. Use a recurring block for events that repeat across days.`)):M({...e,title:t})},wO=[15,30,45,60],TO=[0,5,10,15],EO=[`Europe/London`,`America/New_York`,`America/Los_Angeles`,`Asia/Dhaka`,`Europe/Bucharest`,`Asia/Dubai`],DO=[{id:`available`,label:`Available`},{id:`busy`,label:`Busy`},{id:`meeting`,label:`Meeting`},{id:`focus`,label:`Focus`},{id:`away`,label:`Away`}],OO=e=>Math.round(e*10)/10,kO=(e,t)=>OO(e.filter(e=>!e.block.allDay&&e.block.status===t).reduce((e,t)=>e+BD(t.start,t.end),0)/60),AO=(e,t)=>{let n=UD(t),r=e.filter(e=>e.date===n);return{busyHours:kO(r,`busy`),meetingCount:r.filter(e=>!e.block.allDay&&e.block.status===`meeting`).length,focusHours:kO(r,`focus`)}},jO=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0),MO=(e,t)=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+t,0,0,0,0),NO=(e,t,n)=>{let r=[],i=new Date(t.start).getTime(),a=new Date(t.end).getTime(),o=UD(t.start),s=jO(new Date(t.start)),c=!0;s.getTime()<n.start.getTime()&&(s=jO(n.start),c=!1);for(let l=0;s.getTime()<a&&s.getTime()<=n.end.getTime()&&l<400;l+=1){let l=MO(s,1),u=Math.max(i,s.getTime()),d=Math.min(a,l.getTime());if(d>u&&s.getTime()>=n.start.getTime()){let n=UD(s),l=u===i?t.start:new Date(u).toISOString(),f=d===a?t.end:new Date(d).toISOString(),p=u>i,m=d<a;r.push({key:c?`${e.id}@${o}`:`${e.id}@${o}+${n}`,block:e,dayIndex:HD(l),date:n,start:l,end:f,...p?{continuesFromPrevDay:!0}:{},...m?{continuesToNextDay:!0}:{}})}c=!1,s=l}return r},PO=(e,t,n)=>{let r=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0),i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59,999),a=[];for(let e of n)for(let t of _O(e,r,i))for(let n of NO(e,t,{start:r,end:i}))a.push(n);return a},FO=(e,t)=>{let n=t[0],r=t[6];return n===void 0||r===void 0?[]:PO(n,r,e)},IO=e=>{let[t,n]=e.split(`:`);return Number(t??`0`)*60+Number(n??`0`)},LO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`save-availability`)}async execute(e){return e!==null&&OD.some(t=>{let n=e[t.id];if(!n.active||n.slots.length===0)return!1;if(n.slots.some(e=>{let t=ND.create(e.from,e.to);return!t.ok||t.value.from.minutesSinceMidnight>=t.value.to.minutesSinceMidnight}))return!0;let r=[...n.slots].sort((e,t)=>e.from.localeCompare(t.from)),i=``;for(let e of r){if(e.from<i)return!0;i=e.to}return!1})?(this.logger.warn(`Rejected invalid availability`),N(new ID)):this.scheduleGateway.saveAvailability(e)}},RO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`list-schedule-blocks`)}async execute(){let e=await this.scheduleGateway.listBlocks();return e.ok||this.logger.warn(`Listing schedule blocks failed`,{code:e.error.code}),e}},zO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`create-schedule-block`)}async execute(e){let t=CO(e);return CD(t)?(this.logger.warn(`Rejected invalid block`,{code:t.error.code}),N(t.error)):this.scheduleGateway.createBlock(t.value)}},BO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`update-schedule-block`)}async execute({id:e,draft:t}){let n=CO(t);return CD(n)?(this.logger.warn(`Rejected invalid block edit`,{code:n.error.code}),N(n.error)):this.scheduleGateway.updateBlock(e,n.value)}},VO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`delete-schedule-block`)}async execute(e){let t=await this.scheduleGateway.deleteBlock(e);return t.ok||this.logger.warn(`Deleting schedule block failed`,{code:t.error.code}),t}},HO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`get-preferences`)}async execute(){let e=await this.scheduleGateway.getPreferences();return e.ok||this.logger.warn(`Loading preferences failed`,{code:e.error.code}),e}},UO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`save-preferences`)}async execute(e){let t=await this.scheduleGateway.savePreferences(e);return t.ok||this.logger.warn(`Saving preferences failed`,{code:t.error.code}),t}},WO=class extends si{code=`HTTP`;status;statusText;url;body;retryAfterMs;constructor(e){super(`HTTP ${String(e.status)} ${e.statusText} for ${e.url}`,{context:{status:e.status,url:e.url}}),this.status=e.status,this.statusText=e.statusText,this.url=e.url,this.body=e.body,this.retryAfterMs=e.retryAfterMs}isUnauthorized(){return this.status===401}isForbidden(){return this.status===403}isNotFound(){return this.status===404}isConflict(){return this.status===409}isTooManyRequests(){return this.status===429}isClientError(){return this.status>=400&&this.status<500}isServerError(){return this.status>=500&&this.status<600}},GO=class extends si{code=`NETWORK`;constructor(e,t){super(`Network request to ${e} failed`,{cause:t,context:{url:e}})}},KO=class{baseUrl;logger;getAuthToken;constructor(e){this.baseUrl=e.baseUrl,this.logger=e.logger.child(`http`),this.getAuthToken=e.getAuthToken}get(e,t){return this.send(`GET`,e,void 0,t)}async getBlob(e,t){let n=this.buildUrl(e,t?.query),r={method:`GET`,headers:this.buildHeaders(void 0,t),redirect:`error`};t?.signal!==void 0&&(r.signal=t.signal);let i;try{i=await fetch(n,r)}catch(e){throw this.logger.error(`Blob request failed before a response was received`,e,{url:n}),new GO(n,e)}if(!i.ok)throw this.logger.warn(`Blob request returned a non-2xx status`,{url:n,status:i.status}),new WO({status:i.status,statusText:i.statusText,url:n,body:void 0,retryAfterMs:this.parseRetryAfter(i.headers.get(`Retry-After`))});return i.blob()}post(e,t,n){return this.send(`POST`,e,this.jsonBody(t),n)}put(e,t,n){return this.send(`PUT`,e,this.jsonBody(t),n)}patch(e,t,n){return this.send(`PATCH`,e,this.jsonBody(t),n)}delete(e,t){return this.send(`DELETE`,e,void 0,t)}postForm(e,t,n){let r=new URLSearchParams(t).toString();return this.send(`POST`,e,{body:r,contentType:qO},n)}jsonBody(e){if(e!==void 0)return e instanceof FormData?{body:e,contentType:null}:{body:JSON.stringify(e),contentType:`application/json`}}async send(e,t,n,r){let i=this.buildUrl(t,r?.query),a=this.buildHeaders(n,r);n?.body instanceof FormData&&a.delete(`Content-Type`);let o={method:e,headers:a};n!==void 0&&(o.body=n.body),r?.signal!==void 0&&(o.signal=r.signal);let s;try{s=await fetch(i,o)}catch(e){throw this.logger.error(`Request failed before a response was received`,e,{url:i}),new GO(i,e)}return this.handleResponse(s,i)}async handleResponse(e,t){let n=await this.readBody(e);if(!e.ok){this.logger.warn(`Request returned a non-2xx status`,{url:t,status:e.status});let r=this.parseRetryAfter(e.headers.get(`Retry-After`));throw new WO({status:e.status,statusText:e.statusText,url:t,body:n,retryAfterMs:r})}return n}parseRetryAfter(e){if(e===null||e.length===0)return null;let t=Number(e);if(!Number.isNaN(t))return t>=0?t*1e3:null;let n=Date.parse(e);return Number.isNaN(n)?null:Math.max(0,n-Date.now())}async readBody(e){if(e.status===204||e.status===205)return;let t=await e.text();if(t.length!==0){if(!(e.headers.get(`content-type`)??``).includes(`application/json`))return t;try{return JSON.parse(t)}catch(t){throw new GO(e.url,t)}}}buildHeaders(e,t){let n=new Headers({Accept:`application/json`,...t?.headers});if(e&&e.contentType!==null&&n.set(`Content-Type`,e.contentType),!t?.anonymous){let e=this.getAuthToken();e&&n.set(`Authorization`,`Bearer ${e}`)}return n}buildUrl(e,t){let n=e.startsWith(`http://`)||e.startsWith(`https://`)?e:`${this.baseUrl}${e.startsWith(`/`)?e:`/${e}`}`,r=new URL(n);return t&&this.appendQuery(r,t),r.toString()}appendQuery(e,t){for(let[n,r]of Object.entries(t))if(r!==void 0)if(Array.isArray(r))for(let t of r)e.searchParams.append(n,String(t));else e.searchParams.set(n,String(r))}},qO=`application/x-www-form-urlencoded`,JO=class{inner;timeoutMs;logger;constructor(e,t){this.inner=e,this.timeoutMs=t.timeoutMs,this.logger=t.logger.child(`http-timeout`)}get(e,t){return this.withTimeout(t=>this.inner.get(e,t),t)}getBlob(e,t){return this.withTimeout(t=>this.inner.getBlob(e,t),t)}post(e,t,n){return this.withTimeout(n=>this.inner.post(e,t,n),n)}put(e,t,n){return this.withTimeout(n=>this.inner.put(e,t,n),n)}patch(e,t,n){return this.withTimeout(n=>this.inner.patch(e,t,n),n)}delete(e,t){return this.withTimeout(t=>this.inner.delete(e,t),t)}postForm(e,t,n){return this.withTimeout(n=>this.inner.postForm(e,t,n),n)}async withTimeout(e,t){let n=new AbortController,r=setTimeout(()=>{this.logger.warn(`Request exceeded timeout; aborting`,{timeoutMs:this.timeoutMs}),n.abort(new DOMException(`Request timed out`,`TimeoutError`))},this.timeoutMs),i=[n.signal];t?.signal!==void 0&&i.push(t.signal);let a=AbortSignal.any(i);try{return await e({...t,signal:a})}finally{clearTimeout(r)}}},YO=2,XO=300,ZO=5e3,QO=class{inner;maxRetries;baseDelayMs;maxDelayMs;logger;constructor(e,t){this.inner=e,this.maxRetries=t.maxRetries??YO,this.baseDelayMs=t.baseDelayMs??XO,this.maxDelayMs=t.maxDelayMs??ZO,this.logger=t.logger.child(`http-retry`)}get(e,t){return this.withRetry(()=>this.inner.get(e,t),t)}getBlob(e,t){return this.withRetry(()=>this.inner.getBlob(e,t),t)}post(e,t,n){return this.inner.post(e,t,n)}put(e,t,n){return this.inner.put(e,t,n)}patch(e,t,n){return this.inner.patch(e,t,n)}delete(e,t){return this.inner.delete(e,t)}postForm(e,t,n){return this.inner.postForm(e,t,n)}async withRetry(e,t){let n=0;for(;;)try{return await e()}catch(e){if(n+=1,n>this.maxRetries||!this.isRetryable(e)||t?.signal?.aborted===!0)throw e;let r=this.computeDelay(e,n);this.logger.warn(`Request failed; retrying`,{attempt:n,delay:r}),await this.sleep(r,t?.signal)}}isRetryable(e){return e instanceof GO?!0:e instanceof WO?e.status===429||e.status===503||e.status>=500:!1}computeDelay(e,t){return e instanceof WO&&e.retryAfterMs!==null?Math.min(e.retryAfterMs,this.maxDelayMs):Math.min(this.maxDelayMs,this.baseDelayMs*2**(t-1))*(.5+Math.random()*.5)}sleep(e,t){return new Promise(n=>{let r=()=>{clearTimeout(i),n()},i=setTimeout(()=>{t?.removeEventListener(`abort`,r),n()},e);t!==void 0&&t.addEventListener(`abort`,r,{once:!0})})}},$O=class{inner;refresh;logger;inFlightRefresh=null;constructor(e,t){this.inner=e,this.refresh=t.refresh,this.logger=t.logger.child(`http-auth-refresh`)}get(e,t){return this.withRefresh(t=>this.inner.get(e,t),t)}getBlob(e,t){return this.withRefresh(t=>this.inner.getBlob(e,t),t)}post(e,t,n){return this.withRefresh(n=>this.inner.post(e,t,n),n)}put(e,t,n){return this.withRefresh(n=>this.inner.put(e,t,n),n)}patch(e,t,n){return this.withRefresh(n=>this.inner.patch(e,t,n),n)}delete(e,t){return this.withRefresh(t=>this.inner.delete(e,t),t)}postForm(e,t,n){return this.withRefresh(n=>this.inner.postForm(e,t,n),n)}async withRefresh(e,t){try{return await e(t)}catch(n){if(t?.anonymous===!0||!(n instanceof WO)||n.status!==401||!await this.refreshOnce())throw n;return e(t)}}refreshOnce(){return this.inFlightRefresh??=this.runRefresh(),this.inFlightRefresh}async runRefresh(){try{return await this.refresh()}catch(e){return this.logger.warn(`Token refresh threw; treating as failed`,{error:e instanceof Error?e.message:String(e)}),!1}finally{this.inFlightRefresh=null}}},ek={debug:10,info:20,warn:30,error:40,silent:100},tk=class e{minLevel;scope;minWeight;constructor(e,t){this.minLevel=e,this.scope=t,this.minWeight=ek[e]}debug(e,t){this.write(`debug`,console.debug,e,t)}info(e,t){this.write(`info`,console.info,e,t)}warn(e,t){this.write(`warn`,console.warn,e,t)}error(e,t,n){this.minWeight>ek.error||console.error(this.format(e),{error:t,...n})}child(t){let n=this.scope?`${this.scope}:${t}`:t;return new e(this.minLevel,n)}write(e,t,n,r){this.minWeight>ek[e]||(r?t(this.format(n),r):t(this.format(n)))}format(e){return this.scope?`[${this.scope}] ${e}`:e}},nk;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(nk||={});var rk;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(rk||={});var F=nk.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),ik=e=>{switch(typeof e){case`undefined`:return F.undefined;case`string`:return F.string;case`number`:return Number.isNaN(e)?F.nan:F.number;case`boolean`:return F.boolean;case`function`:return F.function;case`bigint`:return F.bigint;case`symbol`:return F.symbol;case`object`:return Array.isArray(e)?F.array:e===null?F.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?F.promise:typeof Map<`u`&&e instanceof Map?F.map:typeof Set<`u`&&e instanceof Set?F.set:typeof Date<`u`&&e instanceof Date?F.date:F.object;default:return F.unknown}},I=nk.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),ak=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,nk.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};ak.create=e=>new ak(e);var ok=(e,t)=>{let n;switch(e.code){case I.invalid_type:n=e.received===F.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case I.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,nk.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:n=`Unrecognized key(s) in object: ${nk.joinValues(e.keys,`, `)}`;break;case I.invalid_union:n=`Invalid input`;break;case I.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${nk.joinValues(e.options)}`;break;case I.invalid_enum_value:n=`Invalid enum value. Expected ${nk.joinValues(e.options)}, received '${e.received}'`;break;case I.invalid_arguments:n=`Invalid function arguments`;break;case I.invalid_return_type:n=`Invalid function return type`;break;case I.invalid_date:n=`Invalid date`;break;case I.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:nk.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case I.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case I.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case I.custom:n=`Invalid input`;break;case I.invalid_intersection_types:n=`Intersection results could not be merged`;break;case I.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case I.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,nk.assertNever(e)}return{message:n}},sk=ok;function ck(){return sk}var lk=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function L(e,t){let n=ck(),r=lk({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ok?void 0:ok].filter(e=>!!e)});e.common.issues.push(r)}var uk=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return R;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return R;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},R=Object.freeze({status:`aborted`}),dk=e=>({status:`dirty`,value:e}),fk=e=>({status:`valid`,value:e}),pk=e=>e.status===`aborted`,mk=e=>e.status===`dirty`,hk=e=>e.status===`valid`,gk=e=>typeof Promise<`u`&&e instanceof Promise,z;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(z||={});var _k=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},vk=(e,t)=>{if(hk(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new ak(e.common.issues);return this._error=t,this._error}}};function B(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var yk=class{get description(){return this._def.description}_getType(e){return ik(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:ik(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new uk,ctx:{common:e.parent.common,data:e.data,parsedType:ik(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(gk(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ik(e)};return vk(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ik(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return hk(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>hk(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ik(e)},r=this._parse({data:e,path:n.path,parent:n});return vk(n,await(gk(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:I.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new SA({schema:this,typeName:V.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return CA.create(this,this._def)}nullable(){return wA.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return rA.create(this)}promise(){return xA.create(this,this._def)}or(e){return oA.create([this,e],this._def)}and(e){return uA.create(this,e,this._def)}transform(e){return new SA({...B(this._def),schema:this,typeName:V.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new TA({...B(this._def),innerType:this,defaultValue:t,typeName:V.ZodDefault})}brand(){return new OA({typeName:V.ZodBranded,type:this,...B(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new EA({...B(this._def),innerType:this,catchValue:t,typeName:V.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return kA.create(this,e)}readonly(){return AA.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},bk=/^c[^\s-]{8,}$/i,xk=/^[0-9a-z]+$/,Sk=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ck=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,wk=/^[a-z0-9_-]{21}$/i,Tk=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ek=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Dk=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ok=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,kk,Ak=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Mk=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Nk=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Pk=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Fk=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Ik=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Lk=RegExp(`^${Ik}$`);function Rk(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function zk(e){return RegExp(`^${Rk(e)}$`)}function Bk(e){let t=`${Ik}T${Rk(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Vk(e,t){return!!((t===`v4`||!t)&&Ak.test(e)||(t===`v6`||!t)&&Mk.test(e))}function Hk(e,t){if(!Tk.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Uk(e,t){return!!((t===`v4`||!t)&&jk.test(e)||(t===`v6`||!t)&&Nk.test(e))}var Wk=class e extends yk{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==F.string){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.string,received:t.parsedType}),R}let t=new uk,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?L(n,{code:I.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&L(n,{code:I.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Dk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`email`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)kk||=new RegExp(Ok,`u`),kk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`emoji`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)Ck.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`uuid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)wk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`nanoid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)bk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cuid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)xk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cuid2`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Sk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`ulid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),L(n,{validation:`url`,code:I.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`regex`,code:I.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Bk(r).test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Lk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?zk(r).test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ek.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`duration`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Vk(e.data,r.version)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`ip`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Hk(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`jwt`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Uk(e.data,r.version)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cidr`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Pk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`base64`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Fk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`base64url`,code:I.invalid_string,message:r.message}),t.dirty()):nk.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:I.invalid_string,...z.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...z.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...z.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...z.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...z.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...z.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...z.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...z.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...z.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...z.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...z.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...z.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...z.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...z.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...z.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...z.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...z.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...z.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...z.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...z.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...z.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...z.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...z.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...z.errToObj(t)})}nonempty(e){return this.min(1,z.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Wk.create=e=>new Wk({checks:[],typeName:V.ZodString,coerce:e?.coerce??!1,...B(e)});function Gk(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var Kk=class e extends yk{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==F.number){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.number,received:t.parsedType}),R}let t,n=new uk;for(let r of this._def.checks)r.kind===`int`?nk.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),L(t,{code:I.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Gk(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),L(t,{code:I.not_finite,message:r.message}),n.dirty()):nk.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,z.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,z.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,z.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,z.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:z.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:z.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:z.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:z.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:z.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:z.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:z.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:z.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:z.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:z.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&nk.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};Kk.create=e=>new Kk({checks:[],typeName:V.ZodNumber,coerce:e?.coerce||!1,...B(e)});var qk=class e extends yk{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==F.bigint)return this._getInvalidInput(e);let t,n=new uk;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):nk.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.bigint,received:t.parsedType}),R}gte(e,t){return this.setLimit(`min`,e,!0,z.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,z.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,z.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,z.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:z.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:z.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:z.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:z.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:z.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:z.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};qk.create=e=>new qk({checks:[],typeName:V.ZodBigInt,coerce:e?.coerce??!1,...B(e)});var Jk=class extends yk{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==F.boolean){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.boolean,received:t.parsedType}),R}return fk(e.data)}};Jk.create=e=>new Jk({typeName:V.ZodBoolean,coerce:e?.coerce||!1,...B(e)});var Yk=class e extends yk{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==F.date){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.date,received:t.parsedType}),R}if(Number.isNaN(e.data.getTime()))return L(this._getOrReturnCtx(e),{code:I.invalid_date}),R;let t=new uk,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):nk.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:z.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:z.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};Yk.create=e=>new Yk({checks:[],coerce:e?.coerce||!1,typeName:V.ZodDate,...B(e)});var Xk=class extends yk{_parse(e){if(this._getType(e)!==F.symbol){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.symbol,received:t.parsedType}),R}return fk(e.data)}};Xk.create=e=>new Xk({typeName:V.ZodSymbol,...B(e)});var Zk=class extends yk{_parse(e){if(this._getType(e)!==F.undefined){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.undefined,received:t.parsedType}),R}return fk(e.data)}};Zk.create=e=>new Zk({typeName:V.ZodUndefined,...B(e)});var Qk=class extends yk{_parse(e){if(this._getType(e)!==F.null){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.null,received:t.parsedType}),R}return fk(e.data)}};Qk.create=e=>new Qk({typeName:V.ZodNull,...B(e)});var $k=class extends yk{constructor(){super(...arguments),this._any=!0}_parse(e){return fk(e.data)}};$k.create=e=>new $k({typeName:V.ZodAny,...B(e)});var eA=class extends yk{constructor(){super(...arguments),this._unknown=!0}_parse(e){return fk(e.data)}};eA.create=e=>new eA({typeName:V.ZodUnknown,...B(e)});var tA=class extends yk{_parse(e){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.never,received:t.parsedType}),R}};tA.create=e=>new tA({typeName:V.ZodNever,...B(e)});var nA=class extends yk{_parse(e){if(this._getType(e)!==F.undefined){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.void,received:t.parsedType}),R}return fk(e.data)}};nA.create=e=>new nA({typeName:V.ZodVoid,...B(e)});var rA=class e extends yk{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==F.array)return L(t,{code:I.invalid_type,expected:F.array,received:t.parsedType}),R;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(L(t,{code:e?I.too_big:I.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(L(t,{code:I.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(L(t,{code:I.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new _k(t,e,t.path,n)))).then(e=>uk.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new _k(t,e,t.path,n)));return uk.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:z.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:z.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:z.toString(n)}})}nonempty(e){return this.min(1,e)}};rA.create=(e,t)=>new rA({type:e,minLength:null,maxLength:null,exactLength:null,typeName:V.ZodArray,...B(t)});function iA(e){if(e instanceof aA){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=CA.create(iA(r))}return new aA({...e._def,shape:()=>t})}else if(e instanceof rA)return new rA({...e._def,type:iA(e.element)});else if(e instanceof CA)return CA.create(iA(e.unwrap()));else if(e instanceof wA)return wA.create(iA(e.unwrap()));else if(e instanceof dA)return dA.create(e.items.map(e=>iA(e)));else return e}var aA=class e extends yk{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=nk.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==F.object){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.object,received:t.parsedType}),R}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof tA&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new _k(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof tA){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(L(n,{code:I.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new _k(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>uk.mergeObjectSync(t,e)):uk.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return z.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:z.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:V.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of nk.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of nk.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return iA(this)}partial(t){let n={};for(let e of nk.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of nk.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof CA;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return vA(nk.objectKeys(this.shape))}};aA.create=(e,t)=>new aA({shape:()=>e,unknownKeys:`strip`,catchall:tA.create(),typeName:V.ZodObject,...B(t)}),aA.strictCreate=(e,t)=>new aA({shape:()=>e,unknownKeys:`strict`,catchall:tA.create(),typeName:V.ZodObject,...B(t)}),aA.lazycreate=(e,t)=>new aA({shape:e,unknownKeys:`strip`,catchall:tA.create(),typeName:V.ZodObject,...B(t)});var oA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new ak(e.ctx.common.issues));return L(t,{code:I.invalid_union,unionErrors:n}),R}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new ak(e));return L(t,{code:I.invalid_union,unionErrors:i}),R}}get options(){return this._def.options}};oA.create=(e,t)=>new oA({options:e,typeName:V.ZodUnion,...B(t)});var sA=e=>e instanceof gA?sA(e.schema):e instanceof SA?sA(e.innerType()):e instanceof _A?[e.value]:e instanceof yA?e.options:e instanceof bA?nk.objectValues(e.enum):e instanceof TA?sA(e._def.innerType):e instanceof Zk?[void 0]:e instanceof Qk?[null]:e instanceof CA?[void 0,...sA(e.unwrap())]:e instanceof wA?[null,...sA(e.unwrap())]:e instanceof OA||e instanceof AA?sA(e.unwrap()):e instanceof EA?sA(e._def.innerType):[],cA=class e extends yk{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==F.object)return L(t,{code:I.invalid_type,expected:F.object,received:t.parsedType}),R;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(L(t,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),R)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=sA(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:V.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...B(r)})}};function lA(e,t){let n=ik(e),r=ik(t);if(e===t)return{valid:!0,data:e};if(n===F.object&&r===F.object){let n=nk.objectKeys(t),r=nk.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=lA(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===F.array&&r===F.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=lA(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===F.date&&r===F.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var uA=class extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(pk(e)||pk(r))return R;let i=lA(e.value,r.value);return i.valid?((mk(e)||mk(r))&&t.dirty(),{status:t.value,value:i.data}):(L(n,{code:I.invalid_intersection_types}),R)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};uA.create=(e,t,n)=>new uA({left:e,right:t,typeName:V.ZodIntersection,...B(n)});var dA=class e extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.array)return L(n,{code:I.invalid_type,expected:F.array,received:n.parsedType}),R;if(n.data.length<this._def.items.length)return L(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),R;!this._def.rest&&n.data.length>this._def.items.length&&(L(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new _k(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>uk.mergeArray(t,e)):uk.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};dA.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new dA({items:e,typeName:V.ZodTuple,rest:null,...B(t)})};var fA=class e extends yk{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.object)return L(n,{code:I.invalid_type,expected:F.object,received:n.parsedType}),R;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new _k(n,e,n.path,e)),value:a._parse(new _k(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?uk.mergeObjectAsync(t,r):uk.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof yk?new e({keyType:t,valueType:n,typeName:V.ZodRecord,...B(r)}):new e({keyType:Wk.create(),valueType:t,typeName:V.ZodRecord,...B(n)})}},pA=class extends yk{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.map)return L(n,{code:I.invalid_type,expected:F.map,received:n.parsedType}),R;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new _k(n,e,n.path,[a,`key`])),value:i._parse(new _k(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return R;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return R;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};pA.create=(e,t,n)=>new pA({valueType:t,keyType:e,typeName:V.ZodMap,...B(n)});var mA=class e extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.set)return L(n,{code:I.invalid_type,expected:F.set,received:n.parsedType}),R;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(L(n,{code:I.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(L(n,{code:I.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return R;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new _k(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:z.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:z.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};mA.create=(e,t)=>new mA({valueType:e,minSize:null,maxSize:null,typeName:V.ZodSet,...B(t)});var hA=class e extends yk{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==F.function)return L(t,{code:I.invalid_type,expected:F.function,received:t.parsedType}),R;function n(e,n){return lk({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ck(),ok].filter(e=>!!e),issueData:{code:I.invalid_arguments,argumentsError:n}})}function r(e,n){return lk({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ck(),ok].filter(e=>!!e),issueData:{code:I.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof xA){let e=this;return fk(async function(...t){let o=new ak([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return fk(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new ak([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new ak([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:dA.create(t).rest(eA.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||dA.create([]).rest(eA.create()),returns:n||eA.create(),typeName:V.ZodFunction,...B(r)})}},gA=class extends yk{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};gA.create=(e,t)=>new gA({getter:e,typeName:V.ZodLazy,...B(t)});var _A=class extends yk{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return L(t,{received:t.data,code:I.invalid_literal,expected:this._def.value}),R}return{status:`valid`,value:e.data}}get value(){return this._def.value}};_A.create=(e,t)=>new _A({value:e,typeName:V.ZodLiteral,...B(t)});function vA(e,t){return new yA({values:e,typeName:V.ZodEnum,...B(t)})}var yA=class e extends yk{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return L(t,{expected:nk.joinValues(n),received:t.parsedType,code:I.invalid_type}),R}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return L(t,{received:t.data,code:I.invalid_enum_value,options:n}),R}return fk(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};yA.create=vA;var bA=class extends yk{_parse(e){let t=nk.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==F.string&&n.parsedType!==F.number){let e=nk.objectValues(t);return L(n,{expected:nk.joinValues(e),received:n.parsedType,code:I.invalid_type}),R}if(this._cache||=new Set(nk.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=nk.objectValues(t);return L(n,{received:n.data,code:I.invalid_enum_value,options:e}),R}return fk(e.data)}get enum(){return this._def.values}};bA.create=(e,t)=>new bA({values:e,typeName:V.ZodNativeEnum,...B(t)});var xA=class extends yk{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==F.promise&&t.common.async===!1?(L(t,{code:I.invalid_type,expected:F.promise,received:t.parsedType}),R):fk((t.parsedType===F.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};xA.create=(e,t)=>new xA({type:e,typeName:V.ZodPromise,...B(t)});var SA=class extends yk{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===V.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{L(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return R;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?R:r.status===`dirty`||t.value===`dirty`?dk(r.value):r});{if(t.value===`aborted`)return R;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?R:r.status===`dirty`||t.value===`dirty`?dk(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?R:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?R:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!hk(e))return R;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>hk(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):R);nk.assertNever(r)}};SA.create=(e,t,n)=>new SA({schema:e,typeName:V.ZodEffects,effect:t,...B(n)}),SA.createWithPreprocess=(e,t,n)=>new SA({schema:t,effect:{type:`preprocess`,transform:e},typeName:V.ZodEffects,...B(n)});var CA=class extends yk{_parse(e){return this._getType(e)===F.undefined?fk(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};CA.create=(e,t)=>new CA({innerType:e,typeName:V.ZodOptional,...B(t)});var wA=class extends yk{_parse(e){return this._getType(e)===F.null?fk(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};wA.create=(e,t)=>new wA({innerType:e,typeName:V.ZodNullable,...B(t)});var TA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===F.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};TA.create=(e,t)=>new TA({innerType:e,typeName:V.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...B(t)});var EA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return gk(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new ak(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new ak(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};EA.create=(e,t)=>new EA({innerType:e,typeName:V.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...B(t)});var DA=class extends yk{_parse(e){if(this._getType(e)!==F.nan){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.nan,received:t.parsedType}),R}return{status:`valid`,value:e.data}}};DA.create=e=>new DA({typeName:V.ZodNaN,...B(e)});var OA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},kA=class e extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?R:e.status===`dirty`?(t.dirty(),dk(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?R:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:V.ZodPipeline})}},AA=class extends yk{_parse(e){let t=this._def.innerType._parse(e),n=e=>(hk(e)&&(e.value=Object.freeze(e.value)),e);return gk(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};AA.create=(e,t)=>new AA({innerType:e,typeName:V.ZodReadonly,...B(t)});function jA(e,t){let n=typeof e==`function`?e(t):typeof e==`string`?{message:e}:e;return typeof n==`string`?{message:n}:n}function MA(e,t={},n){return e?$k.create().superRefine((r,i)=>{let a=e(r);if(a instanceof Promise)return a.then(e=>{if(!e){let e=jA(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}});if(!a){let e=jA(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}}):$k.create()}aA.lazycreate;var V;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(V||={});var H=Wk.create,U=Kk.create;DA.create,qk.create;var NA=Jk.create;Yk.create,Xk.create,Zk.create,Qk.create;var PA=$k.create;eA.create,tA.create,nA.create;var W=rA.create,G=aA.create;aA.strictCreate;var FA=oA.create,IA=cA.create;uA.create;var LA=dA.create,RA=fA.create;pA.create,mA.create,hA.create,gA.create;var zA=_A.create,BA=yA.create;bA.create,xA.create,SA.create,CA.create,wA.create,SA.createWithPreprocess,kA.create;var VA=G({freq:U(),interval:U(),weekdaysCsv:H(),monthlyMode:U(),endType:U(),endCount:U(),endDate:H(),exceptionsCsv:H(),differentTimes:NA().optional(),weekdayTimesJson:H().nullable().optional()}),HA=G({id:H(),ownerUserId:H(),title:H(),status:U(),start:H(),end:H(),allDay:NA(),notes:H(),recurrence:VA.nullable().optional()}).passthrough(),UA=W(HA),WA=G({from:H(),to:H()}),GA=G({active:NA(),slots:W(WA).default([])}),KA=G({mon:GA,tue:GA,wed:GA,thu:GA,fri:GA,sat:GA,sun:GA}),qA=G({weekly:KA,isOverride:NA(),source:H()}),JA=G({meetingDuration:U(),bufferMinutes:U(),workStart:H(),workEnd:H(),timezone:H(),branchId:H(),availabilityTimezone:H().optional()}),YA={0:`available`,1:`busy`,2:`meeting`,3:`focus`,4:`away`},XA={available:0,busy:1,meeting:2,focus:3,away:4},ZA={0:`daily`,1:`weekly`,2:`monthly`,3:`yearly`},QA={daily:0,weekly:1,monthly:2,yearly:3},$A={0:`dayOfMonth`,1:`nthWeekday`},ej={dayOfMonth:0,nthWeekday:1},tj={0:`never`,1:`after`,2:`on`},nj={never:0,after:1,on:2},rj=e=>e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0).map(Number).filter(e=>!Number.isNaN(e)),ij=e=>e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),aj=/[zZ]|[+-]\d{2}:?\d{2}$/,oj=e=>{let t=aj.test(e)?e:`${e}Z`,n=new Date(t);return Number.isNaN(n.getTime())?e:n.toISOString()},sj=e=>{let t;if(e.weekdayTimesJson)try{t=JSON.parse(e.weekdayTimesJson)}catch{}return{freq:ZA[e.freq]??`daily`,interval:e.interval,weekdays:rj(e.weekdaysCsv),monthlyMode:$A[e.monthlyMode]??`dayOfMonth`,endType:tj[e.endType]??`never`,endCount:e.endCount,endDate:e.endDate,exceptions:ij(e.exceptionsCsv),differentTimes:e.differentTimes??!1,...t?{weekdayTimes:t}:{}}},cj=e=>new SO({id:e.id,userId:e.ownerUserId,title:e.title,status:YA[e.status]??`busy`,start:oj(e.start),end:oj(e.end),allDay:e.allDay,notes:e.notes,recurrence:e.recurrence!==null&&e.recurrence!==void 0?sj(e.recurrence):null}),lj=e=>({active:e.active,slots:e.slots.map(e=>({id:crypto.randomUUID(),from:e.from,to:e.to}))}),uj=e=>WD({mon:lj(e.mon),tue:lj(e.tue),wed:lj(e.wed),thu:lj(e.thu),fri:lj(e.fri),sat:lj(e.sat),sun:lj(e.sun)}),dj=[`personal`,`branch`,`org`,`default`],fj=e=>dj.find(t=>t===e)??`default`,pj=e=>({weekly:uj(e.weekly),isOverride:e.isOverride,source:fj(e.source)}),mj=e=>({meetingDuration:e.meetingDuration,bufferMinutes:e.bufferMinutes,workStart:e.workStart,workEnd:e.workEnd,timezone:e.timezone,branchId:e.branchId,availabilityTimezone:e.availabilityTimezone??``}),hj=e=>({freq:QA[e.freq],interval:e.interval,weekdaysCsv:e.weekdays.join(`,`),monthlyMode:ej[e.monthlyMode],endType:nj[e.endType],endCount:e.endCount,endDate:e.endDate,exceptionsCsv:e.exceptions.join(`,`),differentTimes:e.differentTimes,weekdayTimesJson:e.weekdayTimes?JSON.stringify(e.weekdayTimes):null}),gj=e=>({title:e.title,status:XA[e.status],start:e.start,end:e.end,allDay:e.allDay,notes:e.notes,recurrence:e.recurrence===null?null:hj(e.recurrence)}),_j=e=>({active:e.active,slots:e.slots.map(e=>({from:e.from,to:e.to}))}),vj=e=>({mon:_j(e.mon),tue:_j(e.tue),wed:_j(e.wed),thu:_j(e.thu),fri:_j(e.fri),sat:_j(e.sat),sun:_j(e.sun)}),yj=e=>({meetingDuration:e.meetingDuration,bufferMinutes:e.bufferMinutes,workStart:e.workStart,workEnd:e.workEnd,timezone:e.timezone,branchId:e.branchId}),bj=(e,t,n)=>(e.error(`Schedule ${t} returned an unexpected shape`,n),N(new FD(n))),xj=(e,t)=>t instanceof WO&&t.status===404?new RD:(e.error(`Schedule request failed`,t),new FD(t)),Sj={blocks:`/api/app/schedule-block`,availability:`/api/app/schedule-availability/availability`,effectiveAvailability:`/api/app/schedule-availability/effective-availability`,saveAvailability:`/api/app/schedule-availability/save-availability`,clearAvailability:`/api/app/schedule-availability/clear-availability`,preferences:`/api/app/schedule-preferences/preferences`,savePreferences:`/api/app/schedule-preferences/save-preferences`},Cj=e=>`/api/app/schedule-block/${encodeURIComponent(e)}`,wj=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-schedule-gateway`)}async getAvailability(){try{let e=await this.httpClient.get(Sj.availability);if(e==null)return M(null);let t=KA.safeParse(e);return t.success?M(uj(t.data)):bj(this.logger,`availability`,t.error)}catch(e){return N(xj(this.logger,e))}}async getEffectiveAvailability(){try{let e=await this.httpClient.get(Sj.effectiveAvailability),t=qA.safeParse(e);return t.success?M(pj(t.data)):bj(this.logger,`effective-availability`,t.error)}catch(e){return N(xj(this.logger,e))}}async saveAvailability(e){if(e===null)try{return await this.httpClient.post(Sj.clearAvailability),M(null)}catch(e){return N(xj(this.logger,e))}try{let t=await this.httpClient.post(Sj.saveAvailability,vj(e)),n=KA.safeParse(t);return n.success?M(uj(n.data)):bj(this.logger,`save-availability`,n.error)}catch(e){return N(xj(this.logger,e))}}async listBlocks(){try{let e=await this.httpClient.get(Sj.blocks),t=UA.safeParse(e);return t.success?M(t.data.map(cj)):bj(this.logger,`blocks`,t.error)}catch(e){return N(xj(this.logger,e))}}createBlock(e){return this.saveBlock(this.httpClient.post(Sj.blocks,gj(e)),`create-block`)}updateBlock(e,t){return this.saveBlock(this.httpClient.put(Cj(e),gj(t)),`update-block`)}async saveBlock(e,t){try{let n=await e,r=HA.safeParse(n);return r.success?M(cj(r.data)):bj(this.logger,t,r.error)}catch(e){return N(xj(this.logger,e))}}async deleteBlock(e){try{return await this.httpClient.delete(Cj(e)),M(void 0)}catch(e){return N(xj(this.logger,e))}}async getPreferences(){try{let e=await this.httpClient.get(Sj.preferences),t=JA.safeParse(e);return t.success?M(mj(t.data)):bj(this.logger,`preferences`,t.error)}catch(e){return N(xj(this.logger,e))}}async savePreferences(e){try{let t=await this.httpClient.post(Sj.savePreferences,yj(e)),n=JA.safeParse(t);return n.success?M(mj(n.data)):bj(this.logger,`save-preferences`,n.error)}catch(e){return N(xj(this.logger,e))}}addMeetingBlocks(e){this.logger.debug(`addMeetingBlocks is a no-op (server owns meeting→calendar sync)`)}},Tj=e=>{let t=new wj({httpClient:e.httpClient,logger:e.logger}),n={scheduleGateway:t,logger:e.logger};return{getAvailability:new xD(n),getEffectiveAvailability:new SD(n),saveAvailability:new LO(n),listBlocks:new RO(n),createBlock:new zO(n),updateBlock:new BO(n),deleteBlock:new VO(n),getPreferences:new HO(n),savePreferences:new UO(n),calendarSink:t,clock:e.clock}},Ej=(0,n.createContext)(null),Dj=({module:e,children:t})=>(0,D.jsx)(Ej.Provider,{value:e,children:t}),Oj=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},kj=new class extends Oj{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Aj={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},jj=new class{#e=Aj;#t=!1;setTimeoutProvider(e){process.env.NODE_ENV!==`production`&&this.#t&&e!==this.#e&&console.error(`[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,{previous:this.#e,provider:e}),this.#e=e,process.env.NODE_ENV!==`production`&&(this.#t=!1)}setTimeout(e,t){return process.env.NODE_ENV!==`production`&&(this.#t=!0),this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return process.env.NODE_ENV!==`production`&&(this.#t=!0),this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Mj(e){setTimeout(e,0)}var Nj=typeof window>`u`||`Deno`in globalThis;function Pj(){}function Fj(e,t){return typeof e==`function`?e(t):e}function Ij(e){return typeof e==`number`&&e>=0&&e!==1/0}function Lj(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Rj(e,t){return typeof e==`function`?e(t):e}function zj(e,t){return typeof e==`function`?e(t):e}function Bj(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==Hj(o,t.options))return!1}else if(!Wj(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function Vj(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Uj(t.options.mutationKey)!==Uj(a))return!1}else if(!Wj(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Hj(e,t){return(t?.queryKeyHashFn||Uj)(e)}function Uj(e){return JSON.stringify(e,(e,t)=>Yj(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Wj(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>Wj(e[n],t[n])):!1}var Gj=Object.prototype.hasOwnProperty;function Kj(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=Jj(e)&&Jj(t);if(!r&&!(Yj(e)&&Yj(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:Gj.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Kj(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function qj(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function Jj(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Yj(e){if(!Xj(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Xj(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Xj(e){return Object.prototype.toString.call(e)===`[object Object]`}function Zj(e){return new Promise(t=>{jj.setTimeout(t,e)})}function Qj(e,t,n){if(typeof n.structuralSharing==`function`)return n.structuralSharing(e,t);if(n.structuralSharing!==!1){if(process.env.NODE_ENV!==`production`)try{return Kj(e,t)}catch(e){throw console.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${n.queryHash}]: ${e}`),e}return Kj(e,t)}return t}function $j(e){return e}function eM(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function tM(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var nM=Symbol();function rM(e,t){return process.env.NODE_ENV!==`production`&&e.queryFn===nM&&console.error(`Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${e.queryHash}'`),!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===nM?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function iM(e,t){return typeof e==`function`?e(...t):!!e}function aM(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var oM=(()=>{let e=()=>Nj;return{isServer(){return e()},setIsServer(t){e=t}}})();function sM(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var cM=Mj;function lM(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=cM,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var uM=lM(),dM=new class extends Oj{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function fM(e){return Math.min(1e3*2**e,3e4)}function pM(e){return(e??`online`)===`online`?dM.isOnline():!0}var mM=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function hM(e){let t=!1,n=0,r,i=sM(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new mM(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>kj.isFocused()&&(e.networkMode===`always`||dM.isOnline())&&e.canRun(),u=()=>pM(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(oM.isServer()?0:3),o=e.retryDelay??fM,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),Zj(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var gM=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ij(this.gcTime)&&(this.#e=jj.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(oM.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(jj.clearTimeout(this.#e),this.#e=void 0)}};function _M(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{aM(e,()=>t.signal,()=>n=!0)},u=rM(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?tM:eM;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?yM:vM,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:vM(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function vM(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function yM(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function bM(e,t){return t?vM(e,t)!=null:!1}function xM(e,t){return!t||!e.getPreviousPageParam?!1:yM(e,t)!=null}var SM=class extends gM{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=TM(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=TM(this.options);e.data!==void 0&&(this.setState(wM(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Qj(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(Pj).catch(Pj):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>zj(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===nM||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>Rj(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!Lj(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}process.env.NODE_ENV!==`production`&&(Array.isArray(this.options.queryKey)||console.error(`As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`));let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=rM(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?_M(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=hM({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof mM&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw process.env.NODE_ENV!==`production`&&console.error(`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`),Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof mM){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...CM(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...wM(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),uM.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function CM(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:pM(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function wM(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function TM(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var EM=class extends Oj{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=sM(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),OM(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return kM(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return kM(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof zj(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!qj(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&AM(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||zj(this.options.enabled,this.#t)!==zj(t.enabled,this.#t)||Rj(this.options.staleTime,this.#t)!==Rj(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||zj(this.options.enabled,this.#t)!==zj(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return MM(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(Pj)),t}#g(){this.#b();let e=Rj(this.options.staleTime,this.#t);if(oM.isServer()||this.#r.isStale||!Ij(e))return;let t=Lj(this.#r.dataUpdatedAt,e)+1;this.#d=jj.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(oM.isServer()||zj(this.options.enabled,this.#t)===!1||!Ij(this.#p)||this.#p===0)&&(this.#f=jj.setInterval(()=>{(this.options.refetchIntervalInBackground||kj.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(jj.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(jj.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&OM(e,t),o=i&&AM(e,n,t,r);(a||o)&&(l={...l,...CM(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=Qj(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=Qj(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:jM(e,t),refetch:this.refetch,promise:this.#o,isEnabled:zj(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=sM())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!qj(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){uM.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function DM(e,t){return zj(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&zj(t.retryOnMount,e)===!1)}function OM(e,t){return DM(e,t)||e.state.data!==void 0&&kM(e,t,t.refetchOnMount)}function kM(e,t,n){if(zj(t.enabled,e)!==!1&&Rj(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&jM(e,t)}return!1}function AM(e,t,n,r){return(e!==t||zj(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&jM(e,n)}function jM(e,t){return zj(t.enabled,e)!==!1&&e.isStaleByTime(Rj(t.staleTime,e))}function MM(e,t){return!qj(e.getCurrentResult(),t)}var NM=class extends EM{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:s}=r,c=n.fetchMeta?.fetchMore?.direction,l=o&&c===`forward`,u=i&&c===`forward`,d=o&&c===`backward`,f=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:bM(t,n.data),hasPreviousPage:xM(t,n.data),isFetchNextPageError:l,isFetchingNextPage:u,isFetchPreviousPageError:d,isFetchingPreviousPage:f,isRefetchError:s&&!l&&!d,isRefetching:a&&!u&&!f}}},PM=class extends gM{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||FM(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=hM({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),uM.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function FM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var IM=class extends Oj{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new PM({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=LM(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=LM(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=LM(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=LM(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){uM.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Vj(t,e))}findAll(e={}){return this.getAll().filter(t=>Vj(e,t))}notify(e){uM.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return uM.batch(()=>Promise.all(e.map(e=>e.continue().catch(Pj))))}};function LM(e){return e.options.scope?.id}var RM=class extends Oj{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),qj(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&Uj(t.mutationKey)!==Uj(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??FM();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){uM.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},zM=class extends Oj{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??Hj(r,t),a=this.get(i);return a||(a=new SM({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){uM.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Bj(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>Bj(e,t)):t}notify(e){uM.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){uM.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){uM.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},BM=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new zM,this.#t=e.mutationCache||new IM,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=kj.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=dM.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Rj(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Fj(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return uM.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;uM.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return uM.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=uM.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(Pj).catch(Pj)}invalidateQueries(e,t={}){return uM.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=uM.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(Pj)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(Pj)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(Rj(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Pj).catch(Pj)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Pj).catch(Pj)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return dM.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(Uj(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{Wj(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(Uj(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{Wj(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=Hj(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===nM&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},VM=n.createContext(void 0),HM=e=>{let t=n.useContext(VM);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},UM=({client:e,children:t})=>(n.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,D.jsx)(VM.Provider,{value:e,children:t})),WM=n.createContext(!1),GM=()=>n.useContext(WM);WM.Provider;function KM(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var qM=n.createContext(KM()),JM=()=>n.useContext(qM),YM=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?iM(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},XM=e=>{n.useEffect(()=>{e.clearReset()},[e])},ZM=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||iM(n,[e.error,r])),QM=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},$M=(e,t)=>e.isLoading&&e.isFetching&&!t,eN=(e,t)=>e?.suspense&&t.isPending,tN=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function nN(e,t,r){if(process.env.NODE_ENV!==`production`&&(typeof e!=`object`||Array.isArray(e)))throw Error(`Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object`);let i=GM(),a=JM(),o=HM(r),s=o.defaultQueryOptions(e);o.getDefaultOptions().queries?._experimental_beforeQuery?.(s);let c=o.getQueryCache().get(s.queryHash);process.env.NODE_ENV!==`production`&&(s.queryFn||console.error(`[${s.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`));let l=e.subscribed!==!1;s._optimisticResults=i?`isRestoring`:l?`optimistic`:void 0,QM(s),YM(s,a,c),XM(a);let u=!o.getQueryCache().get(s.queryHash),[d]=n.useState(()=>new t(o,s)),f=d.getOptimisticResult(s),p=!i&&l;if(n.useSyncExternalStore(n.useCallback(e=>{let t=p?d.subscribe(uM.batchCalls(e)):Pj;return d.updateResult(),t},[d,p]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),n.useEffect(()=>{d.setOptions(s)},[s,d]),eN(s,f))throw tN(s,d,a);if(ZM({result:f,errorResetBoundary:a,throwOnError:s.throwOnError,query:c,suspense:s.suspense}))throw f.error;return o.getDefaultOptions().queries?._experimental_afterQuery?.(s,f),s.experimental_prefetchInRender&&!oM.isServer()&&$M(f,i)&&(u?tN(s,d,a):c?.promise)?.catch(Pj).finally(()=>{d.updateResult()}),s.notifyOnChangeProps?f:d.trackResult(f)}function rN(e,t){return nN(e,EM,t)}function iN(e,t){let r=HM(t),[i]=n.useState(()=>new RM(r,e));n.useEffect(()=>{i.setOptions(e)},[i,e]);let a=n.useSyncExternalStore(n.useCallback(e=>i.subscribe(uM.batchCalls(e)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),o=n.useCallback((e,t)=>{i.mutate(e,t).catch(Pj)},[i]);if(a.error&&iM(i.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}function aN(e,t){return nN(e,NM,t)}var oN=()=>{let e=(0,n.useContext)(Ej);if(e===null)throw Error(`Schedule hooks must be used within <ScheduleModuleProvider>.`);return e},sN=[`schedule`,`availability`],cN=[`schedule`,`effective-availability`],lN=[`schedule`,`blocks`],uN=[`schedule`,`preferences`],dN=()=>{let{getAvailability:e}=oN();return rN({queryKey:sN,queryFn:()=>P(e.execute())})},fN=()=>{let{getEffectiveAvailability:e}=oN();return rN({queryKey:cN,queryFn:()=>P(e.execute())})},pN=()=>{let{saveAvailability:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:sN}),t.invalidateQueries({queryKey:cN})}})},mN=()=>{let{listBlocks:e}=oN();return rN({queryKey:lN,queryFn:()=>P(e.execute())})},hN=()=>{let{createBlock:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:lN})}})},gN=()=>{let{updateBlock:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:lN})}})},_N=()=>{let{deleteBlock:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:lN})}})},vN=()=>{let{getPreferences:e}=oN();return rN({queryKey:uN,queryFn:()=>P(e.execute())})},yN=()=>{let{savePreferences:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:uN})}})},bN=class{now(){return new Date}},xN=()=>Intl.DateTimeFormat().resolvedOptions().timeZone,SN=(e,t)=>{let n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,hour12:!1,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).formatToParts(e),r=e=>Number(n.find(t=>t.type===e)?.value??`0`);return{year:r(`year`),month:r(`month`),day:r(`day`),hour:r(`hour`)===24?0:r(`hour`),minute:r(`minute`),second:r(`second`)}},CN=(e,t)=>{let n=SN(t,e),r=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second);return Math.round((r-t.getTime())/6e4)},wN=/^(\d{1,2}):(\d{2})$/,TN=e=>String(e).padStart(2,`0`),EN=(e,t,n,r)=>{let i=wN.exec(e);if(i===null||t===n)return e;let a=((Number(i[1])*60+Number(i[2])+(CN(n,r)-CN(t,r)))%1440+1440)%1440;return`${TN(Math.floor(a/60))}:${TN(a%60)}`},DN=(e,t,n)=>{let r=Date.parse(`${e}T${t}:00Z`);if(Number.isNaN(r))throw Error(`Invalid date/time`);let i=CN(n,new Date(r)),a=CN(n,new Date(r-i*6e4));return new Date(r-a*6e4).toISOString()},ON=e=>{let t=e<0?`-`:`+`,n=Math.abs(e);return`GMT${t}${TN(Math.floor(n/60))}:${TN(n%60)}`},kN=e=>e.find(e=>e!==void 0&&e!==``),AN=class e{display;anchor;constructor(e,t){this.display=e,this.anchor=t}static from(t){let n=kN([t.anchor,t.personal])??`UTC`;return new e(kN([t.pick,t.personal])??(n===`UTC`?xN():n),n)}get displayMatchesAnchor(){return this.display===this.anchor}formatTime(e){return new Date(e).toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:this.display})}formatTimeRange(e,t){return!e||!t?``:`${this.formatTime(e)} – ${this.formatTime(t)}`}formatDate(e,t={weekday:`short`,day:`numeric`,month:`short`}){return new Date(e).toLocaleDateString(`en-US`,{...t,timeZone:this.display})}},jN=e=>{let t=vN().data;return AN.from({pick:e,personal:t?.timezone,anchor:t?.availabilityTimezone})},MN=5e3,NN={},PN={delivered:0,read:0},FN={status:`disconnected`,presence:{},typing:{},receipts:{},pending:{},activeConversationId:null,removedConversationIds:[]},IN=(e,t)=>({...e,status:t}),LN=(e,t,n,r)=>({...e,presence:{...e.presence,[t]:{online:n,lastSeenUtc:r}}}),RN=(e,t)=>{let{conversationId:n,userId:r,isTyping:i,nowMs:a}=t,o=e.typing[n]??{},s=i?{...o,[r]:a+MN}:Object.fromEntries(Object.entries(o).filter(([e])=>e!==r));return{...e,typing:{...e.typing,[n]:s}}},zN=(e,t,n)=>t===`delivered`?{...e,delivered:Math.max(e.delivered,n)}:{...e,read:Math.max(e.read,n)},BN=(e,t)=>{let{conversationId:n,userId:r,kind:i,uptoSequence:a}=t,o=e.receipts[n]??NN,s=o[r]??PN,c={...o,[r]:zN(s,i,a)};return{...e,receipts:{...e.receipts,[n]:c}}},VN=(e,t,n)=>{let r={...e.receipts[t]??NN};for(let e of n){let t=r[e.userId]??PN;r[e.userId]={delivered:Math.max(t.delivered,e.deliveredUpto),read:Math.max(t.read,e.readUpto)}}return{...e,receipts:{...e.receipts,[t]:r}}},HN=(e,t,n)=>{let r=e.typing[t];return r===void 0?[]:Object.entries(r).filter(([,e])=>e>n).map(([e])=>e)},UN=(e,t)=>e.receipts[t]??NN,WN=(e,t,n)=>({...e,pending:{...e.pending,[t]:n}}),GN=(e,t)=>WN(e,t,`sending`),KN=(e,t)=>WN(e,t,`failed`),qN=(e,t)=>{if(e.pending[t]===void 0)return e;let n=Object.fromEntries(Object.entries(e.pending).filter(([e])=>e!==t));return{...e,pending:n}},JN=(e,t)=>e.pending[t]??null,YN=(e,t)=>e.activeConversationId===t?e:{...e,activeConversationId:t},XN=(e,t)=>e.removedConversationIds.includes(t)?e:{...e,removedConversationIds:[...e.removedConversationIds,t]},ZN=(e,t)=>e.removedConversationIds.includes(t),QN=()=>xE((e,t)=>({...FN,setStatus:t=>{e(e=>IN(e,t))},applyPresence:(t,n,r)=>{e(e=>LN(e,t,n,r))},applyTyping:(t,n,r,i)=>{e(e=>RN(e,{conversationId:t,userId:n,isTyping:r,nowMs:i}))},applyReceipt:(t,n,r,i)=>{e(e=>BN(e,{conversationId:t,userId:n,kind:r,uptoSequence:i}))},seedReceipts:(t,n)=>{e(e=>VN(e,t,n))},markSending:t=>{e(e=>GN(e,t))},markFailed:t=>{e(e=>KN(e,t))},clearPending:t=>{e(e=>qN(e,t))},setActiveConversationId:t=>{e(e=>YN(e,t))},markRemovedFromConversation:t=>{e(e=>XN(e,t))},isRemovedFromConversation:e=>ZN(t(),e),clear:()=>{e(FN)},typingUserIds:(e,n)=>HN(t(),e,n),receiptsFor:e=>UN(t(),e),pendingStatus:e=>JN(t(),e)})),$N=(0,n.createContext)(null),eP=()=>{let e=(0,n.useContext)($N);if(e===null)throw Error(`Chat realtime hooks must be used within <ChatModuleProvider>.`);return e},tP=e=>CE(eP(),e),nP=class extends ci{},rP=class extends nP{code=`CHAT_UNAVAILABLE`;constructor(e,t){super(t??`Chat is currently unavailable. Please try again.`,{cause:e})}},iP=class extends nP{code=`CHAT_EMPTY_MESSAGE`;constructor(){super(`Write something before sending.`)}},aP=class extends nP{code=`CHAT_MESSAGE_TOO_LONG`;constructor(e){super(`Message must be ${String(e)} characters or less.`)}},oP=class extends nP{code=`CHAT_EMPTY_GROUP_TITLE`;constructor(){super(`Give the group a name before creating it.`)}},sP=class extends nP{code=`CHAT_EMPTY_GROUP_MEMBERS`;constructor(){super(`Add at least one member before creating the group.`)}},cP=class extends nP{code=`CHAT_MISSING_DIRECT_RECIPIENT`;constructor(){super(`Choose someone to start a conversation with.`)}},lP=3600*1e3,uP=900*1e3,dP=/([zZ]|[+-]\d{2}:?\d{2})$/,fP=e=>new Date(e.length>0&&!dP.test(e)?`${e}Z`:e),pP=class e{id;kind;authorName;authorInitials;authorColor;text;time;sentAt;fromViewer;reactions;sequence;senderId;clientMessageId;replyTo;mediaUrl;mediaContentType;mediaFileName;isEdited;deletedForEveryone;constructor(e){this.id=e.id,this.kind=e.kind,this.authorName=e.authorName,this.authorInitials=e.authorInitials,this.authorColor=e.authorColor,this.text=e.text,this.time=e.time,this.sentAt=e.sentAt??``,this.fromViewer=e.fromViewer,this.reactions=e.reactions,this.sequence=e.sequence,this.senderId=e.senderId,this.clientMessageId=e.clientMessageId,this.replyTo=e.replyTo??null,this.mediaUrl=e.mediaUrl??null,this.mediaContentType=e.mediaContentType??null,this.mediaFileName=e.mediaFileName??null,this.isEdited=e.isEdited??!1,this.deletedForEveryone=e.deletedForEveryone??!1}get isSystem(){return this.kind===`system`}canDeleteForEveryone(e){if(!this.fromViewer||this.isSystem||this.deletedForEveryone)return!1;let t=fP(this.sentAt).getTime();return Number.isNaN(t)?!0:Math.max(0,e-t)<=lP}get isSharedCard(){return this.text.startsWith(`__UAPP_SHARED_CARD__::`)}canEdit(e){if(!this.fromViewer||this.isSystem||this.deletedForEveryone||this.isSharedCard)return!1;let t=fP(this.sentAt).getTime();return Number.isNaN(t)?!0:Math.max(0,e-t)<=uP}with(t){return new e({id:this.id,kind:this.kind,authorName:this.authorName,authorInitials:this.authorInitials,authorColor:this.authorColor,text:this.text,time:this.time,sentAt:this.sentAt,fromViewer:this.fromViewer,reactions:this.reactions,sequence:this.sequence,senderId:this.senderId,clientMessageId:this.clientMessageId,replyTo:this.replyTo,mediaUrl:this.mediaUrl,mediaContentType:this.mediaContentType,mediaFileName:this.mediaFileName,isEdited:this.isEdited,deletedForEveryone:this.deletedForEveryone,...t})}withFallbackSentAt(e){return this.sentAt.length>0||e.length===0?this:this.with({sentAt:e})}asDeletedForEveryone(){return this.deletedForEveryone?this:this.with({text:``,reactions:[],replyTo:null,mediaUrl:null,mediaContentType:null,mediaFileName:null,isEdited:!1,deletedForEveryone:!0})}},mP=class e{id;kind;title;subtitle;initials;color;online;unread;pinned;favourite;archived;admin;lastMessage;lastTime;lastMessageAt;lastSynced;tenantId;categoryId;members;adminIds;data;peerUserId;memberReceipts;constructor(e){this.id=e.id,this.kind=e.kind,this.title=e.title,this.subtitle=e.subtitle,this.initials=e.initials,this.color=e.color,this.online=e.online,this.unread=e.unread,this.pinned=e.pinned,this.favourite=e.favourite,this.archived=e.archived,this.admin=e.admin,this.lastMessage=e.lastMessage,this.lastTime=e.lastTime,this.lastMessageAt=e.lastMessageAt??null,this.lastSynced=e.lastSynced,this.tenantId=e.tenantId,this.categoryId=e.categoryId,this.members=e.members,this.adminIds=e.adminIds,this.data=e.data,this.peerUserId=e.peerUserId,this.memberReceipts=e.memberReceipts}get isUnread(){return this.unread>0}get isGroup(){return this.kind===`group`}get isDm(){return this.kind===`dm`}get hasCategory(){return this.categoryId!==null}get memberCount(){return this.members.length}isAdmin(e){return this.adminIds.includes(e)}canManageMembers(e){return this.isAdmin(e)}with(t){return new e({id:this.id,kind:this.kind,title:this.title,subtitle:this.subtitle,initials:this.initials,color:this.color,online:this.online,unread:this.unread,pinned:this.pinned,favourite:this.favourite,archived:this.archived,admin:this.admin,lastMessage:this.lastMessage,lastTime:this.lastTime,lastMessageAt:this.lastMessageAt,lastSynced:this.lastSynced,tenantId:this.tenantId,categoryId:this.categoryId,members:this.members,adminIds:this.adminIds,data:this.data,peerUserId:this.peerUserId,memberReceipts:this.memberReceipts,...t})}},hP=(e,t)=>{if(e.length===0)return``;let n=fP(e);return Number.isNaN(n.getTime())?``:n.toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`,hour12:!0,timeZone:t&&t.length>0?t:void 0})},K={root:`_root_1wc1d_1`,fullCenter:`_fullCenter_1wc1d_7`,list:`_list_1wc1d_14`,listHead:`_listHead_1wc1d_24`,listTitle:`_listTitle_1wc1d_31`,composeBtn:`_composeBtn_1wc1d_38`,menuItemContent:`_menuItemContent_1wc1d_61`,chatIconTile:`_chatIconTile_1wc1d_68`,groupIconTile:`_groupIconTile_1wc1d_69`,menuItemText:`_menuItemText_1wc1d_89`,menuItemTitle:`_menuItemTitle_1wc1d_97`,menuItemSub:`_menuItemSub_1wc1d_104`,search:`_search_1wc1d_110`,searchInput:`_searchInput_1wc1d_122`,searchClearBtn:`_searchClearBtn_1wc1d_131`,tabsWrapper:`_tabsWrapper_1wc1d_148`,tabs:`_tabs_1wc1d_148`,arrowBtn:`_arrowBtn_1wc1d_168`,arrowLeft:`_arrowLeft_1wc1d_223`,arrowRight:`_arrowRight_1wc1d_227`,tab:`_tab_1wc1d_148`,tabActive:`_tabActive_1wc1d_259`,tabBg:`_tabBg_1wc1d_264`,tabLabel:`_tabLabel_1wc1d_273`,tabCount:`_tabCount_1wc1d_278`,tabDot:`_tabDot_1wc1d_292`,rows:`_rows_1wc1d_301`,empty:`_empty_1wc1d_338`,sentinel:`_sentinel_1wc1d_347`,loadMore:`_loadMore_1wc1d_352`,row:`_row_1wc1d_301`,rowActive:`_rowActive_1wc1d_370`,rowMain:`_rowMain_1wc1d_375`,rowMenuBtn:`_rowMenuBtn_1wc1d_388`,rowPin:`_rowPin_1wc1d_412`,rowStar:`_rowStar_1wc1d_419`,rowAvatar:`_rowAvatar_1wc1d_426`,onlineDot:`_onlineDot_1wc1d_441`,rowBody:`_rowBody_1wc1d_452`,rowTop:`_rowTop_1wc1d_460`,rowName:`_rowName_1wc1d_467`,rowTitle:`_rowTitle_1wc1d_478`,rowTime:`_rowTime_1wc1d_490`,rowBottom:`_rowBottom_1wc1d_496`,rowPreview:`_rowPreview_1wc1d_503`,rowRole:`_rowRole_1wc1d_511`,unread:`_unread_1wc1d_517`,view:`_view_1wc1d_530`,viewEmpty:`_viewEmpty_1wc1d_542`,emptyIconWrap:`_emptyIconWrap_1wc1d_553`,emptyTitle:`_emptyTitle_1wc1d_565`,emptyText:`_emptyText_1wc1d_572`,viewHead:`_viewHead_1wc1d_580`,viewAvatarWrap:`_viewAvatarWrap_1wc1d_590`,viewAvatar:`_viewAvatar_1wc1d_590`,viewPresenceDot:`_viewPresenceDot_1wc1d_609`,viewHeadText:`_viewHeadText_1wc1d_614`,viewIcon:`_viewIcon_1wc1d_622`,viewTitleRow:`_viewTitleRow_1wc1d_634`,viewTitle:`_viewTitle_1wc1d_634`,statusPill:`_statusPill_1wc1d_653`,adminBadge:`_adminBadge_1wc1d_666`,viewSub:`_viewSub_1wc1d_679`,headEnd:`_headEnd_1wc1d_687`,memberStack:`_memberStack_1wc1d_694`,memberAvatar:`_memberAvatar_1wc1d_699`,memberMore:`_memberMore_1wc1d_710`,headMenuBtn:`_headMenuBtn_1wc1d_725`,threadWrap:`_threadWrap_1wc1d_743`,messages:`_messages_1wc1d_535`,thread:`_thread_1wc1d_743`,center:`_center_1wc1d_776`,olderRow:`_olderRow_1wc1d_783`,newPill:`_newPill_1wc1d_791`,sendFailed:`_sendFailed_1wc1d_817`,sendFailedText:`_sendFailedText_1wc1d_823`,retryBtn:`_retryBtn_1wc1d_829`,systemRow:`_systemRow_1wc1d_844`,systemPill:`_systemPill_1wc1d_851`,msgRow:`_msgRow_1wc1d_768`,msgRowGroupStart:`_msgRowGroupStart_1wc1d_768`,msgRowMe:`_msgRowMe_1wc1d_875`,msgAvatarSpacer:`_msgAvatarSpacer_1wc1d_880`,dateSep:`_dateSep_1wc1d_886`,dateSepPill:`_dateSepPill_1wc1d_892`,msgBubbleWrap:`_msgBubbleWrap_1wc1d_904`,reactWrap:`_reactWrap_1wc1d_915`,reactBtn:`_reactBtn_1wc1d_920`,reactPop:`_reactPop_1wc1d_946`,reactPopRight:`_reactPopRight_1wc1d_961`,reactPopLeft:`_reactPopLeft_1wc1d_967`,reactPopBtn:`_reactPopBtn_1wc1d_972`,msgAvatar:`_msgAvatar_1wc1d_880`,msgCol:`_msgCol_1wc1d_1005`,msgColWithReactions:`_msgColWithReactions_1wc1d_1012`,bubble:`_bubble_1wc1d_1016`,bubbleThem:`_bubbleThem_1wc1d_1026`,bubbleMe:`_bubbleMe_1wc1d_1033`,msgAuthor:`_msgAuthor_1wc1d_1039`,msgText:`_msgText_1wc1d_1053`,msgTextDeleted:`_msgTextDeleted_1wc1d_1058`,msgMeta:`_msgMeta_1wc1d_1063`,msgTime:`_msgTime_1wc1d_1073`,tick:`_tick_1wc1d_1080`,tickRead:`_tickRead_1wc1d_1086`,reactionPill:`_reactionPill_1wc1d_1091`,reactionPillActive:`_reactionPillActive_1wc1d_1119`,reactionsMe:`_reactionsMe_1wc1d_1124`,reactionsThem:`_reactionsThem_1wc1d_1128`,reactionEmojis:`_reactionEmojis_1wc1d_1132`,reactionCount:`_reactionCount_1wc1d_1140`,reactionOn:`_reactionOn_1wc1d_1151`,composer:`_composer_1wc1d_1156`,removedComposer:`_removedComposer_1wc1d_1167`,attachTray:`_attachTray_1wc1d_1182`,attachItem:`_attachItem_1wc1d_1195`,attachThumb:`_attachThumb_1wc1d_1206`,attachFile:`_attachFile_1wc1d_1213`,attachFileName:`_attachFileName_1wc1d_1225`,attachRemove:`_attachRemove_1wc1d_1234`,attachAdd:`_attachAdd_1wc1d_1256`,composerIcon:`_composerIcon_1wc1d_1278`,composerInput:`_composerInput_1wc1d_1300`,emojiWrap:`_emojiWrap_1wc1d_1325`,emojiBackdrop:`_emojiBackdrop_1wc1d_1330`,emojiPop:`_emojiPop_1wc1d_1339`,emojiBtn:`_emojiBtn_1wc1d_1355`,sendBtn:`_sendBtn_1wc1d_1376`,memberStackBtn:`_memberStackBtn_1wc1d_1396`,membersBody:`_membersBody_1wc1d_1410`,unsavedBar:`_unsavedBar_1wc1d_1416`,addMemberCta:`_addMemberCta_1wc1d_1426`,membersSectionLabel:`_membersSectionLabel_1wc1d_1447`,membersList:`_membersList_1wc1d_1454`,memberRow:`_memberRow_1wc1d_1460`,memberRowNew:`_memberRowNew_1wc1d_1473`,memberRowAvatar:`_memberRowAvatar_1wc1d_1482`,memberRowBody:`_memberRowBody_1wc1d_1496`,memberRowName:`_memberRowName_1wc1d_1504`,memberRowYou:`_memberRowYou_1wc1d_1514`,memberRowRole:`_memberRowRole_1wc1d_1519`,memberBadgeAdmin:`_memberBadgeAdmin_1wc1d_1524`,memberBadge:`_memberBadge_1wc1d_1524`,memberPillNew:`_memberPillNew_1wc1d_1545`,memberPillUp:`_memberPillUp_1wc1d_1555`,memberPillDown:`_memberPillDown_1wc1d_1566`,memberRowMenuBtn:`_memberRowMenuBtn_1wc1d_1576`,removedLabel:`_removedLabel_1wc1d_1596`,removedRow:`_removedRow_1wc1d_1604`,removedName:`_removedName_1wc1d_1619`,undoBtn:`_undoBtn_1wc1d_1627`,addPanel:`_addPanel_1wc1d_1648`,addPanelHead:`_addPanelHead_1wc1d_1654`,addPanelTitle:`_addPanelTitle_1wc1d_1660`,addPanelSearch:`_addPanelSearch_1wc1d_1666`,addPanelList:`_addPanelList_1wc1d_1677`,addPanelEmpty:`_addPanelEmpty_1wc1d_1685`,addMemberBtn:`_addMemberBtn_1wc1d_1692`,newGroupBody:`_newGroupBody_1wc1d_1717`,staffPickRow:`_staffPickRow_1wc1d_1723`,staffPickRowOn:`_staffPickRowOn_1wc1d_1748`,pickCheck:`_pickCheck_1wc1d_1757`,pickCheckOn:`_pickCheckOn_1wc1d_1769`,pickerPending:`_pickerPending_1wc1d_1774`,connPill:`_connPill_1wc1d_1788`,typingRow:`_typingRow_1wc1d_1802`,typingText:`_typingText_1wc1d_1811`,typingDots:`_typingDots_1wc1d_1816`,typingBounce:`_typingBounce_1wc1d_1`,memberRowAvatarWrap:`_memberRowAvatarWrap_1wc1d_1858`,presenceDot:`_presenceDot_1wc1d_1864`,replyPreview:`_replyPreview_1wc1d_1875`,replyPreviewAuthor:`_replyPreviewAuthor_1wc1d_1895`,replyPreviewText:`_replyPreviewText_1wc1d_1908`,replyBar:`_replyBar_1wc1d_1924`,replyBarText:`_replyBarText_1wc1d_1935`,replyBarClose:`_replyBarClose_1wc1d_1944`,msgMedia:`_msgMedia_1wc1d_1952`,msgMediaLoading:`_msgMediaLoading_1wc1d_1976`,msgMediaFallback:`_msgMediaFallback_1wc1d_1977`,albumGrid:`_albumGrid_1wc1d_1993`,albumCell:`_albumCell_1wc1d_2002`,albumCellMedia:`_albumCellMedia_1wc1d_2002`,albumCellActions:`_albumCellActions_1wc1d_2041`,albumActionBtn:`_albumActionBtn_1wc1d_2067`,albumCellReactions:`_albumCellReactions_1wc1d_2086`,mediaButton:`_mediaButton_1wc1d_2095`,mediaButtonFill:`_mediaButtonFill_1wc1d_2104`,viewerBackdrop:`_viewerBackdrop_1wc1d_2111`,viewerScrim:`_viewerScrim_1wc1d_2121`,viewerFade:`_viewerFade_1wc1d_1`,viewerStage:`_viewerStage_1wc1d_2130`,viewerImg:`_viewerImg_1wc1d_2144`,viewerZoom:`_viewerZoom_1wc1d_1`,viewerFallback:`_viewerFallback_1wc1d_2154`,viewerClose:`_viewerClose_1wc1d_2163`,viewerNav:`_viewerNav_1wc1d_2164`,viewerNavPrev:`_viewerNavPrev_1wc1d_2208`,viewerNavNext:`_viewerNavNext_1wc1d_2212`,viewerCount:`_viewerCount_1wc1d_2216`,fileCard:`_fileCard_1wc1d_2253`,fileCardMe:`_fileCardMe_1wc1d_2271`,fileCardIcon:`_fileCardIcon_1wc1d_2284`,fileCardInfo:`_fileCardInfo_1wc1d_2296`,fileCardName:`_fileCardName_1wc1d_2304`,fileCardMetaLabel:`_fileCardMetaLabel_1wc1d_2313`,fileCardDownload:`_fileCardDownload_1wc1d_2318`,msgActions:`_msgActions_1wc1d_2326`,msgActionBtn:`_msgActionBtn_1wc1d_2338`,editedLabel:`_editedLabel_1wc1d_2351`,hiddenFileInput:`_hiddenFileInput_1wc1d_2358`,viewPaneWrapper:`_viewPaneWrapper_1wc1d_2362`,emptyFloating1:`_emptyFloating1_1wc1d_2370`,emptyFloating2:`_emptyFloating2_1wc1d_2379`,emptyFloating3:`_emptyFloating3_1wc1d_2388`,backBtn:`_backBtn_1wc1d_2397`,hasActiveChat:`_hasActiveChat_1wc1d_2438`,standardHeader:`_standardHeader_1wc1d_2569`,mobileSelectionHeader:`_mobileSelectionHeader_1wc1d_2576`,selectionLeft:`_selectionLeft_1wc1d_2585`,selectionTitle:`_selectionTitle_1wc1d_2593`,selectionActions:`_selectionActions_1wc1d_2602`,selectionActionBtn:`_selectionActionBtn_1wc1d_2609`,selectionActionDanger:`_selectionActionDanger_1wc1d_2631`,hasMobileSelection:`_hasMobileSelection_1wc1d_2642`,bubbleSelected:`_bubbleSelected_1wc1d_2650`},gP=({conversation:e,actions:t,onRequestDelete:n})=>{let r={label:e.isGroup?`Delete group`:`Delete chat`,icon:(0,D.jsx)(ei,{size:14}),danger:!0,onSelect:()=>{n(e)}};return e.archived?[{label:`Unarchive`,icon:(0,D.jsx)(kn,{size:14}),onSelect:()=>{t.toggleArchive(e)}},r]:[{label:e.favourite?`Remove from Favourites`:`Add to Favourites`,icon:(0,D.jsx)(Yr,{size:14}),onSelect:()=>{t.toggleFavourite(e)}},{label:e.pinned?`Unpin`:`Pin to top`,icon:(0,D.jsx)(jr,{size:14}),onSelect:()=>{t.togglePin(e)}},{label:`Archive`,icon:(0,D.jsx)(An,{size:14}),onSelect:()=>{t.toggleArchive(e)}},r]},_P=e=>(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.rowMenuBtn,"aria-label":`Chat options`,children:(0,D.jsx)(er,{size:15})}),items:gP(e)}),vP=({conversation:e,active:t,actions:n,onSelect:r,onRequestDelete:i})=>{let a=jN(),o=e.peerUserId,s=tP(e=>o===null?void 0:e.presence[o]?.online),c=o===null?e.online:s??e.online,l=hP(e.lastMessageAt??``,a.display)||e.lastTime;return(0,D.jsxs)(A.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:T(K.row,t&&K.rowActive),children:[(0,D.jsxs)(`button`,{type:`button`,className:K.rowMain,onClick:r,children:[(0,D.jsxs)(`span`,{className:K.rowAvatar,style:E({"--avatar-color":e.color}),children:[e.initials,c&&(0,D.jsx)(`span`,{className:K.onlineDot})]}),(0,D.jsxs)(`span`,{className:K.rowBody,children:[(0,D.jsxs)(`span`,{className:K.rowTop,children:[(0,D.jsxs)(`span`,{className:K.rowName,children:[e.pinned&&(0,D.jsx)(jr,{size:12,className:K.rowPin}),e.favourite&&(0,D.jsx)(Yr,{size:12,className:K.rowStar}),(0,D.jsx)(`span`,{className:K.rowTitle,children:e.title})]}),(0,D.jsx)(`span`,{className:K.rowTime,children:l})]}),(0,D.jsxs)(`span`,{className:K.rowBottom,children:[(0,D.jsxs)(`span`,{className:K.rowPreview,children:[(0,D.jsx)(`span`,{className:K.rowRole,children:e.subtitle}),` `,e.lastMessage]}),e.unread>0&&(0,D.jsx)(`span`,{className:K.unread,children:e.unread})]})]})]}),(0,D.jsx)(_P,{conversation:e,actions:n,onRequestDelete:i})]})},yP=(0,n.createContext)(null),bP=()=>{let e=(0,n.useContext)(yP);if(e===null)throw Error(`Chat hooks must be used within <ChatModuleProvider>.`);return e},xP=[`chat`,`conversations`],SP=[`chat`,`conversation-counts`],CP=e=>[`chat`,`conversation`,e],wP=20,TP=(e,t)=>{let{listConversations:n}=bP(),r=t.trim(),i=aN({queryKey:[...xP,e,r],initialPageParam:0,queryFn:({pageParam:t})=>P(n.execute({scope:e,filter:r,skipCount:t,maxResultCount:wP})),placeholderData:$j,getNextPageParam:(e,t)=>{let n=t.reduce((e,t)=>e+t.items.length,0);return n<e.totalCount?n:void 0}});return{data:i.data?.pages.flatMap(e=>e.items),isPending:i.isPending,isSuccess:i.isSuccess,error:i.error,hasNextPage:i.hasNextPage,isFetchingNextPage:i.isFetchingNextPage,fetchNextPage:()=>{i.fetchNextPage()}}},EP=()=>{let{getConversationCounts:e}=bP();return rN({queryKey:SP,queryFn:()=>P(e.execute())})},DP=(e,t)=>{let n=e.getQueryCache().findAll({queryKey:xP});for(let e of n){let n=e.state.data?.pages.flatMap(e=>e.items).find(e=>e.id===t);if(n!==void 0)return{conversation:n,updatedAt:e.state.dataUpdatedAt}}},OP=e=>{let{getConversation:t}=bP(),n=HM(),r=e===null?void 0:DP(n,e);return rN({queryKey:CP(e??``),enabled:e!==null,retry:!1,queryFn:()=>P(t.execute(e??``)),...r===void 0?{}:{initialData:r.conversation,initialDataUpdatedAt:r.updatedAt}})},kP=e=>{e.invalidateQueries({queryKey:xP,refetchType:`all`}),e.invalidateQueries({queryKey:SP})},AP=e=>{kP(e),e.invalidateQueries({queryKey:[`chat`,`conversation`]})},jP=e=>{e.invalidateQueries({queryKey:xP,refetchType:`all`}),e.invalidateQueries({queryKey:[`chat`,`conversation`]})},MP=(e,t,n)=>{e.setQueriesData({queryKey:xP},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t?n(e):e)}))}),e.setQueryData(CP(t),e=>e===void 0?e:n(e))},NP=(e,t)=>e.map(e=>{if(e.emoji===t||!e.reacted)return e;let n=e.count-1;return n>0?{...e,count:n,reacted:!1}:null}).filter(e=>e!==null),PP=(e,t,n)=>{let r=t.byUserId===n?NP(e,t.emoji):e;return r.find(e=>e.emoji===t.emoji)===void 0?[...r,{emoji:t.emoji,count:1,reacted:t.byUserId===n}]:r.map(e=>e.emoji===t.emoji?{...e,count:e.count+1,reacted:e.reacted||t.byUserId===n}:e)},FP=(e,t,n)=>e.map(e=>e.emoji===t.emoji?{...e,count:e.count-1,reacted:t.byUserId===n?!1:e.reacted}:e).filter(e=>e.count>0),IP=(e,t,n)=>{if(!t.added&&!e.reactions.some(e=>e.emoji===t.emoji))return e;let r=t.added?PP(e.reactions,t,n):FP(e.reactions,t,n);return e.with({reactions:r})},LP=(e,t)=>new mP({id:e.id,kind:e.kind,title:e.title,subtitle:e.subtitle,initials:e.initials,color:e.color,online:e.online,unread:t,pinned:e.pinned,favourite:e.favourite,archived:e.archived,admin:e.admin,lastMessage:e.lastMessage,lastTime:e.lastTime,lastMessageAt:e.lastMessageAt,lastSynced:e.lastSynced,tenantId:e.tenantId,categoryId:e.categoryId,members:e.members,adminIds:e.adminIds,data:e.data,peerUserId:e.peerUserId,memberReceipts:e.memberReceipts}),RP=(e,t,n)=>{e.setQueryData(SP,{...t,unread:Math.max(0,t.unread-1),favourites:n.favourite?Math.max(0,t.favourites-1):t.favourites,groups:n.group?Math.max(0,t.groups-1):t.groups,archived:n.archived?Math.max(0,t.archived-1):t.archived})},zP=async(e,t)=>{await e.cancelQueries({queryKey:SP}),await e.cancelQueries({queryKey:CP(t)});let n=e.getQueriesData({queryKey:xP}),r=e.getQueryData(SP),i=e.getQueryData(CP(t)),a=!1,o=!1,s=!1,c=!1;return i&&(a=i.unread>0,o=i.favourite,s=i.isGroup,c=i.archived,e.setQueryData(CP(t),LP(i,0))),e.setQueriesData({queryKey:xP},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t?(i||(a=e.unread>0,o=e.favourite,s=e.isGroup,c=e.archived),LP(e,0)):e)}))}),a&&r&&RP(e,r,{favourite:o,group:s,archived:c}),{previousConversations:n,previousCounts:r,previousSingleConversation:i,conversationId:t}},BP=(e,t)=>{t&&(t.previousSingleConversation&&e.setQueryData(CP(t.conversationId),t.previousSingleConversation),t.previousConversations.forEach(([t,n])=>{e.setQueryData(t,n)}),t.previousCounts&&e.setQueryData(SP,t.previousCounts))},VP=()=>{let{markRead:e}=bP(),t=HM();return iN({mutationFn:({conversationId:t,uptoSequence:n})=>P(e.execute(t,n)),onMutate:({conversationId:e})=>zP(t,e),onError:(e,n,r)=>{BP(t,r)},onSettled:()=>{t.invalidateQueries({queryKey:SP})}})},HP=(e,t=`directory`)=>[`chat`,`staff`,t,e?.trim().toLowerCase()??``],UP=[`chat`,`viewer`],WP=e=>[`chat`,`messages`,e],GP=(e,t=`directory`)=>{let{listStaff:n,getGroupMemberPool:r}=bP(),i=e?.trim()??``,a=t===`groupPool`?r:n;return rN({queryKey:HP(i,t),queryFn:()=>P(a.execute(i||void 0))})},KP=()=>{let{getViewer:e}=bP();return rN({queryKey:UP,queryFn:()=>P(e.execute())})},qP=e=>{let{getMessages:t}=bP();return rN({queryKey:WP(e??``),enabled:e!==null,queryFn:()=>P(t.execute(e??``))})},JP=e=>{let t=HM();return iN({mutationFn:e,onSuccess:()=>{AP(t)}})},YP=()=>{let{setFavourite:e}=bP(),t=HM();return iN({mutationFn:({id:t,value:n})=>P(e.execute(t,n)),onSuccess:(e,{id:n,value:r})=>{MP(t,n,e=>e.with({favourite:r})),AP(t)}})},XP=()=>{let{setArchived:e}=bP(),t=HM();return iN({mutationFn:({id:t,value:n})=>P(e.execute(t,n)),onSuccess:(e,{id:n,value:r})=>{MP(t,n,e=>e.with({archived:r})),AP(t)}})},ZP=()=>{let{setPinned:e}=bP(),t=HM();return iN({mutationFn:({id:t,value:n})=>P(e.execute(t,n)),onSuccess:(e,{id:n,value:r})=>{MP(t,n,e=>e.with({pinned:r})),AP(t)}})},QP=()=>{let{deleteConversation:e}=bP();return JP(t=>P(e.execute(t)))},$P=()=>{let{leaveConversation:e}=bP();return JP(t=>P(e.execute(t)))},eF=()=>{let{refreshPortal:e}=bP();return JP(t=>P(e.execute(t)))},tF=e=>{let{saveMembers:t}=bP(),n=HM(),{data:r}=KP();return iN({mutationFn:({members:n,adminIds:r})=>P(t.execute(e,n,r)),onSuccess:(t,{members:i,adminIds:a})=>{let o=r?.id??``;MP(n,e,e=>e.with({members:i,adminIds:a,admin:a.includes(o)})),jP(n),n.invalidateQueries({queryKey:WP(e)})}})},nF=()=>{let{startDirect:e}=bP(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{AP(t)}})},rF=()=>{let{createGroup:e}=bP(),t=HM();return iN({mutationFn:({title:t,memberIds:n})=>P(e.execute(t,n)),onSuccess:()=>{AP(t)}})},iF=e=>{let{reactToMessage:t}=bP(),n=HM(),r=KP().data?.id??``,i=WP(e);return iN({mutationFn:({messageId:n,emoji:r})=>P(t.execute(e,n,r)),onMutate:async({messageId:e,emoji:t})=>{await n.cancelQueries({queryKey:i});let a=n.getQueryData(i),o=!((a?.find(t=>t.id===e))?.reactions.some(e=>e.emoji===t&&e.reacted)??!1);return n.setQueryData(i,n=>n?.map(n=>n.id===e?IP(n,{emoji:t,byUserId:r,added:o},r):n)),{previous:a}},onError:(e,t,r)=>{r?.previous!==void 0&&n.setQueryData(i,r.previous)}})},aF=e=>{let{editMessage:t}=bP(),n=HM();return iN({mutationFn:({messageId:n,text:r})=>P(t.execute(e,n,r)),onSuccess:t=>{n.setQueryData(WP(e),e=>e?.map(e=>e.id===t.id?t:e)??[t])}})},oF=e=>{let{deleteMessage:t}=bP(),n=HM();return iN({mutationFn:n=>P(t.execute(e,n)),onSuccess:(t,r)=>{n.setQueryData(WP(e),e=>e?.map(e=>e.id===r?e.asDeletedForEveryone():e)??[])}})},sF=e=>{let{deleteMessageForMe:t}=bP();return iN({mutationFn:n=>P(t.execute(e,n))})},cF=(e,t)=>e.trim().length>0&&t.length>0,lF=(e,t)=>e.includes(t)?e.filter(e=>e!==t):[...e,t],uF=(e,t)=>{let[r,i]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let n=setTimeout(()=>{i(e)},t);return()=>{clearTimeout(n)}},[e,t]),r},dF=(e,t=`directory`)=>{let[r,i]=(0,n.useState)(``),a=uF(r,250),o=GP(a,t);return{search:r,setSearch:i,results:(o.data??[]).filter(t=>!e.includes(t.id)),loading:o.isFetching,hasQuery:a.trim().length>0}},fF=({excludeIds:e,selectedIds:t,onToggle:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=dF(e,`groupPool`);return(0,D.jsxs)(`div`,{className:K.addPanel,children:[(0,D.jsxs)(`div`,{className:K.addPanelSearch,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(mi,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:K.addPanelList,children:[a.map(e=>{let r=t.includes(e.id);return(0,D.jsxs)(`button`,{type:`button`,className:T(K.staffPickRow,r&&K.staffPickRowOn),"aria-pressed":r,onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]}),(0,D.jsx)(`span`,{className:T(K.pickCheck,r&&K.pickCheckOn),children:r&&(0,D.jsx)(Un,{size:13})})]},e.id)}),a.length===0&&!o&&(0,D.jsx)(`p`,{className:K.addPanelEmpty,children:s?`No staff match your search.`:`No teammates available to add yet.`})]})]})},pF=({valid:e,saving:t,onCancel:n,onSubmit:r})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(gi,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,D.jsx)(gi,{variant:`primary`,isLoading:t,disabled:!e,onClick:r,children:`Create group`})]}),mF=({open:e,excludeIds:t,onClose:r,onCreated:i})=>{let a=rF(),[o,s]=(0,n.useState)(``),[c,l]=(0,n.useState)([]),u=cF(o,c),d=()=>{s(``),l([]),r()};return(0,D.jsx)(Wy,{open:e,onOpenChange:e=>{e||d()},title:`New group`,description:`Name the group and pick the staff to add.`,footer:(0,D.jsx)(pF,{valid:u,saving:a.isPending,onCancel:d,onSubmit:()=>{u&&a.mutate({title:o,memberIds:c},{onSuccess:e=>{s(``),l([]),i(e)}})}}),children:(0,D.jsxs)(`div`,{className:K.newGroupBody,children:[(0,D.jsx)(bi,{label:`Group name`,placeholder:`e.g. Autumn Intake Counsellors`,value:o,onChange:e=>{s(e.target.value)}}),(0,D.jsxs)(`div`,{className:K.membersSectionLabel,children:[`MEMBERS · `,c.length]}),(0,D.jsx)(fF,{excludeIds:t,selectedIds:c,onToggle:e=>{l(t=>lF(t,e))}}),a.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not create group`,children:a.error.message})]})})},hF=({excludeIds:e,isPending:t,onPick:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=dF(e);return(0,D.jsxs)(`div`,{className:K.addPanel,children:[(0,D.jsxs)(`div`,{className:K.addPanelSearch,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(mi,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:K.addPanelList,children:[a.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:K.staffPickRow,disabled:t,onClick:()=>{n(e)},children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]})]},e.id)),a.length===0&&!o&&(0,D.jsx)(`p`,{className:K.addPanelEmpty,children:s?`No staff match your search.`:`No teammates available to message yet.`})]}),t&&(0,D.jsx)(`div`,{className:K.pickerPending,children:(0,D.jsx)(mi,{size:`sm`,label:`Starting chat`})})]})},gF=({onSelectDirect:e,onSelectGroup:t})=>[{id:`new-chat`,label:(0,D.jsxs)(`div`,{className:K.menuItemContent,children:[(0,D.jsx)(`div`,{className:K.chatIconTile,children:(0,D.jsx)(xr,{size:18})}),(0,D.jsxs)(`div`,{className:K.menuItemText,children:[(0,D.jsx)(`span`,{className:K.menuItemTitle,children:`New chat`}),(0,D.jsx)(`span`,{className:K.menuItemSub,children:`Direct message a contact`})]})]}),onSelect:e},{id:`new-group`,label:(0,D.jsxs)(`div`,{className:K.menuItemContent,children:[(0,D.jsx)(`div`,{className:K.groupIconTile,children:(0,D.jsx)(ri,{size:18})}),(0,D.jsxs)(`div`,{className:K.menuItemText,children:[(0,D.jsx)(`span`,{className:K.menuItemTitle,children:`New group`}),(0,D.jsx)(`span`,{className:K.menuItemSub,children:`Create a group chat`})]})]}),onSelect:t}],_F=({onOpenConversation:e})=>{let[t,r]=(0,n.useState)(`none`),i=KP(),a=nF(),o=i.data?[i.data.id]:[],s=()=>{r(`none`)},c=t=>{s(),e(t.id)},l=e=>{a.mutate(e.id,{onSuccess:c,onError:()=>{j.error(`Could not start that chat`)}})},u=gF({onSelectDirect:()=>{r(`direct`)},onSelectGroup:()=>{r(`group`)}});return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.composeBtn,"aria-label":`New conversation`,children:(0,D.jsx)(Dr,{size:16})}),items:u}),(0,D.jsx)(Wy,{open:t===`direct`,onOpenChange:e=>{e||s()},title:`New direct message`,description:`Pick a staff member to message.`,children:(0,D.jsx)(hF,{excludeIds:o,isPending:a.isPending,onPick:l})}),(0,D.jsx)(mF,{open:t===`group`,excludeIds:o,onClose:s,onCreated:c})]})},vF=[{id:`all`,label:`All`},{id:`unread`,label:`Unread`},{id:`favourites`,label:`Favourites`},{id:`groups`,label:`Groups`},{id:`archive`,label:`Archive`}],yF=(e,t)=>{if(e===void 0)return null;let n=t===`archive`?e.archived:t===`unread`?e.unread:t===`favourites`?e.favourites:t===`groups`?e.groups:0;return n>0?n:null},bF=e=>(e?.unread??0)>0,xF={type:`spring`,stiffness:420,damping:34},SF=({entry:e,active:t,counts:n,onSelect:r})=>{let i=e.id===t,a=yF(n,e.id),o=e.id===`all`&&bF(n);return(0,D.jsxs)(`button`,{type:`button`,className:T(K.tab,i&&K.tabActive),onClick:()=>{r(e.id)},children:[i&&(0,D.jsx)(A.span,{layoutId:`chatTabBg`,className:K.tabBg,transition:xF}),(0,D.jsx)(`span`,{className:K.tabLabel,children:e.label}),a!==null&&(0,D.jsx)(`span`,{className:K.tabCount,children:a}),o&&(0,D.jsx)(`span`,{className:K.tabDot})]})},CF=({active:e,counts:t,onSelect:r})=>{let i=(0,n.useRef)(null),[a,o]=(0,n.useState)(!1),[s,c]=(0,n.useState)(!1),l=()=>{let e=i.current;e&&(o(e.scrollLeft>1),c(e.scrollLeft<e.scrollWidth-e.clientWidth-1))};(0,n.useEffect)(()=>{let e=i.current;if(e)return l(),e.addEventListener(`scroll`,l),window.addEventListener(`resize`,l),()=>{e.removeEventListener(`scroll`,l),window.removeEventListener(`resize`,l)}},[t,e]);let u=e=>{i.current?.scrollBy({left:e===`left`?-80:80,behavior:`smooth`})};return(0,D.jsxs)(`div`,{className:K.tabsWrapper,children:[a&&(0,D.jsx)(`button`,{type:`button`,className:T(K.arrowBtn,K.arrowLeft),onClick:()=>{u(`left`)},"aria-label":`Scroll left`,children:(0,D.jsx)(Gn,{size:14})}),(0,D.jsx)(`div`,{className:K.tabs,ref:i,children:vF.map(n=>(0,D.jsx)(SF,{entry:n,active:e,counts:t,onSelect:r},n.id))}),s&&(0,D.jsx)(`button`,{type:`button`,className:T(K.arrowBtn,K.arrowRight),onClick:()=>{u(`right`)},"aria-label":`Scroll right`,children:(0,D.jsx)(Kn,{size:14})})]})},wF=({virtualRow:e,measureElement:t,isLoaderRow:n,conversation:r,activeId:i,actions:a,isFetchingNextPage:o,onRequestDelete:s,onSelect:c})=>n?(0,D.jsx)(`div`,{ref:t,"data-index":e.index,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${String(e.start)}px)`},children:o&&(0,D.jsx)(`div`,{className:K.loadMore,children:(0,D.jsx)(mi,{size:`sm`,label:`Loading more chats`})})}):r?(0,D.jsx)(`div`,{ref:t,"data-index":e.index,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${String(e.start)}px)`},children:(0,D.jsx)(vP,{conversation:r,active:r.id===i,actions:a,onSelect:()=>{c(r.id)},onRequestDelete:s})}):null,TF=({conversations:e,activeId:t,actions:r,hasNextPage:i,isFetchingNextPage:a,onLoadMore:o,onRequestDelete:s,onSelect:c})=>{let l=(0,n.useRef)(null),u=bD({count:i?e.length+1:e.length,getScrollElement:()=>l.current,estimateSize:()=>54,overscan:10}),d=u.getVirtualItems();return(0,n.useEffect)(()=>{let t=d[d.length-1];t!==void 0&&t.index>=e.length-1&&i&&!a&&o()},[d,i,a,e.length,o]),(0,D.jsxs)(`div`,{className:K.rows,ref:l,children:[(0,D.jsx)(`div`,{style:{height:`${String(u.getTotalSize())}px`,width:`100%`,position:`relative`},children:d.map(n=>(0,D.jsx)(wF,{virtualRow:n,measureElement:u.measureElement,isLoaderRow:n.index>e.length-1,conversation:e[n.index],activeId:t,actions:r,isFetchingNextPage:a,onRequestDelete:s,onSelect:c},n.index>e.length-1?`loader`:e[n.index]?.id??n.index))}),e.length===0&&!i&&!a&&(0,D.jsx)(`p`,{className:K.empty,children:`No conversations here.`})]})},EF=({conversations:e,activeId:t,actions:n,filter:r,hasNextPage:i,isFetchingNextPage:a,onLoadMore:o,onRequestDelete:s,onSelect:c})=>(0,D.jsxs)(`div`,{className:K.list,children:[(0,D.jsxs)(`div`,{className:K.listHead,children:[(0,D.jsx)(`h1`,{className:K.listTitle,children:`Chats`}),(0,D.jsx)(_F,{onOpenConversation:c})]}),(0,D.jsxs)(`div`,{className:K.search,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search conversations`,value:r.search,onChange:e=>{r.onSearchChange(e.target.value)}}),r.search.length>0&&(0,D.jsx)(`button`,{type:`button`,className:K.searchClearBtn,"aria-label":`Clear search`,onClick:()=>{r.onSearchChange(``)},children:(0,D.jsx)(oi,{size:14})})]}),(0,D.jsx)(CF,{active:r.tab,counts:r.counts,onSelect:r.onTabChange}),(0,D.jsx)(TF,{conversations:e,activeId:t,actions:n,hasNextPage:i,isFetchingNextPage:a,onLoadMore:o,onRequestDelete:s,onSelect:c})]}),DF={root:`_root_1tuup_1`,list:`_list_1tuup_7`,listHead:`_listHead_1tuup_17`,title:`_title_1tuup_21`,pulse:`_pulse_1tuup_1`,search:`_search_1tuup_30`,rows:`_rows_1tuup_38`,row:`_row_1tuup_38`,rowAvatar:`_rowAvatar_1tuup_53`,rowBody:`_rowBody_1tuup_62`,line:`_line_1tuup_69`,medium:`_medium_1tuup_76`,full:`_full_1tuup_80`,view:`_view_1tuup_84`,viewHead:`_viewHead_1tuup_91`,messages:`_messages_1tuup_100`,bubbleWrap:`_bubbleWrap_1tuup_108`,me:`_me_1tuup_76`,bubbleAvatar:`_bubbleAvatar_1tuup_118`,bubble:`_bubble_1tuup_108`,narrow:`_narrow_1tuup_139`,wide:`_wide_1tuup_143`},OF=()=>(0,D.jsxs)(`div`,{className:DF.root,children:[(0,D.jsxs)(`div`,{className:DF.list,children:[(0,D.jsx)(`div`,{className:DF.listHead,children:(0,D.jsx)(`div`,{className:DF.title})}),(0,D.jsx)(`div`,{className:DF.search}),(0,D.jsx)(`div`,{className:DF.rows,children:[1,2,3,4,5].map(e=>(0,D.jsxs)(`div`,{className:DF.row,children:[(0,D.jsx)(`div`,{className:DF.rowAvatar}),(0,D.jsxs)(`div`,{className:DF.rowBody,children:[(0,D.jsx)(`div`,{className:T(DF.line,DF.medium)}),(0,D.jsx)(`div`,{className:T(DF.line,DF.full)})]})]},e))})]}),(0,D.jsxs)(`div`,{className:DF.view,children:[(0,D.jsxs)(`div`,{className:DF.viewHead,children:[(0,D.jsx)(`div`,{className:DF.rowAvatar}),(0,D.jsxs)(`div`,{className:DF.rowBody,children:[(0,D.jsx)(`div`,{className:T(DF.line,DF.medium)}),(0,D.jsx)(`div`,{className:T(DF.line,DF.medium,DF.narrow)})]})]}),(0,D.jsxs)(`div`,{className:DF.messages,children:[(0,D.jsxs)(`div`,{className:DF.bubbleWrap,children:[(0,D.jsx)(`div`,{className:DF.bubbleAvatar}),(0,D.jsx)(`div`,{className:DF.bubble})]}),(0,D.jsx)(`div`,{className:T(DF.bubbleWrap,DF.me),children:(0,D.jsx)(`div`,{className:DF.bubble})}),(0,D.jsxs)(`div`,{className:DF.bubbleWrap,children:[(0,D.jsx)(`div`,{className:DF.bubbleAvatar}),(0,D.jsx)(`div`,{className:T(DF.bubble,DF.wide)})]})]})]})]}),kF=class{gateway;constructor(e){this.gateway=e.usageGateway}execute(e){return this.gateway.listUsage(e)}},AF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.rotateSecret(e)}},jF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.getWebhookData()}},MF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.retryWebhook(e)}},NF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.skipWebhook(e)}},PF=class{gateway;constructor(e){this.gateway=e.groupCategoriesGateway}execute(){return this.gateway.listGroupCategories()}},FF=class{gateway;constructor(e){this.gateway=e.groupCategoriesGateway}execute(e){return this.gateway.saveGroupCategory(e)}},IF=class{gateway;constructor(e){this.gateway=e.groupCategoriesGateway}execute(e){return this.gateway.deleteGroupCategory(e)}},LF=class{gateway;constructor(e){this.gateway=e.groupProvisioningGateway}execute(e){return this.gateway.provisionGroup(e)}},RF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listWebhookEndpoints()}},zF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.saveWebhookEndpoint(e)}},BF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.deleteWebhookEndpoint(e)}},VF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.sendTestEvent(e)}},HF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listPromoCategories()}},UF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.savePromoCategories(e)}},WF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listCommTemplates()}},GF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.saveCommTemplate(e)}},KF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.deleteCommTemplate(e)}},qF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listPromotions()}},JF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.savePromotion(e)}},YF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.deletePromotion(e)}},XF=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(){return this.gateway.getContentPrefs()}},ZF=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(e){return this.gateway.saveContentPrefs(e)}},QF=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(){return this.gateway.listFeedCategories()}},$F=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(e){return this.gateway.saveFeedCategories(e)}},eI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(){return this.gateway.listFeedTemplates()}},tI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.saveFeedTemplate(e)}},nI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.deleteFeedTemplate(e)}},rI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.listFeedCategoryItems(e)}},iI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e,t){return this.gateway.listExternalFeedCategoryItems(e,t)}},aI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.saveFeedCategoryItem(e)}},oI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.deleteFeedCategoryItem(e)}},sI=class extends ci{},q=class extends sI{code=`SETTINGS_UNAVAILABLE`;constructor(e){super(`This settings area is currently unavailable. Please try again.`,{cause:e})}},cI=class extends sI{code=`SETTINGS_INVALID_FIELD`;constructor(e){super(e)}},lI=[{id:`text`,label:`Text`},{id:`id`,label:`ID / Code`},{id:`pill`,label:`Status pill`},{id:`date`,label:`Date`},{id:`link`,label:`Link`},{id:`person`,label:`Person`}],uI=[`Hash`,`GraduationCap`,`Users`,`Building2`,`Briefcase`,`BookOpen`,`Globe`],dI=(e,t)=>e.branchHours[t]??e.defaultHours,fI=e=>Object.values(e).every(e=>e.active?ND.create(e.from,e.to).ok:!0),pI=e=>fI(e.defaultHours)&&Object.values(e.branchHours).every(e=>fI(e));({commission:[{token:`university`,label:`University`,description:`Partner university name`},{token:`commission_amount`,label:`Commission amount`,description:`Payout per enrolled student`,type:`currency`},{token:`commission_group`,label:`Commission group`,description:`Tier / group label (e.g. Gold)`,type:`badge`},{token:`minimum_student_requirement`,label:`Minimum students`,description:`Students needed to qualify`,type:`number`},{token:`account_intake`,label:`Intake`,description:`Eligible intake window`},{token:`start_from`,label:`Start date`,description:`When the deal becomes active`,type:`date`}],university:[{token:`university_name`,label:`University name`,description:`Name of the new university`},{token:`location`,label:`Location`,description:`City / country`},{token:`ranking`,label:`Ranking`,description:`League-table position or "New"`,type:`badge`},{token:`added_date`,label:`Added date`,description:`When it joined the catalog`,type:`date`}],course:[{token:`course_name`,label:`Course name`,description:`Name of the new course`},{token:`university`,label:`University`,description:`University offering the course`},{token:`level`,label:`Level`,description:`e.g. Undergraduate, Masters`},{token:`intake`,label:`Intake`,description:`Available intake window`},{token:`mode`,label:`Mode`,description:`On-campus, Online or Blended`}],event:[{token:`event_title`,label:`Event title`,description:`Name of the event`},{token:`event_location`,label:`Event location`,description:`Venue or "Online"`},{token:`event_date`,label:`Event date`,description:`When the event runs`,type:`date`},{token:`event_type`,label:`Event type`,description:`Webinar, Open day, Workshop…`,type:`badge`}],generic:[{token:`item_title`,label:`Item title`,description:`Title of each promo item you add`},{token:`item_description`,label:`Item description`,description:`Short line under the title`},{token:`category_name`,label:`Category name`,description:`The category's display name`},{token:`badge`,label:`Badge`,description:`Small label, e.g. "New" or "Hot"`,type:`badge`}]}).generic;var mI=e=>[...e.matchAll(/\{\{\s*([a-z0-9_]+)\s*\}\}/gi)].map(e=>e[1]??``).filter(e=>e!==``),hI=(e,t)=>{let n=mI(e);return n.length>0&&n.every(e=>(t[e]??``)===``)?``:e.replace(/\{\{\s*([a-z0-9_]+)\s*\}\}/gi,(e,n)=>t[n]??``)},gI=(e,t)=>({statusLabel:hI(e.statusLabel,t),mainHeader:hI(e.mainHeader,t),cardTitle:hI(e.cardTitle,t),cardSubtitle:hI(e.cardSubtitle,t),dateLine:hI(e.dateLine,t),badgeText:hI(e.badgeText,t),amountText:hI(e.amountText,t),ctaText:hI(e.ctaText,t)}),_I={2:3e3,3:2500,4:2e3,5:1500},vI=class{id;name;role;level;msgs;audioCalls;audioMins;videoCalls;videoMins;constructor(e){this.id=e.id,this.name=e.name,this.role=e.role,this.level=e.level,this.msgs=e.msgs,this.audioCalls=e.audioCalls,this.audioMins=e.audioMins,this.videoCalls=e.videoCalls,this.videoMins=e.videoMins}get creditLimit(){return _I[this.level]??1500}get usagePct(){return Math.round(this.msgs/this.creditLimit*100)}},yI=class{gateway;constructor(e){this.gateway=e.orgSettingsGateway}execute(){return this.gateway.getOrgSettings()}},bI=class{gateway;constructor(e){this.gateway=e.orgSettingsGateway}execute(e){return pI(e)?this.gateway.saveOrgSettings(e):Promise.resolve(N(new cI(`Work hours start and end times cannot be identical.`)))}},xI=W(G({id:H(),name:H(),role:H(),level:U().int(),msgs:U().int(),audioCalls:U().int(),audioMins:U().int(),videoCalls:U().int(),videoMins:U().int(),creditLimit:U().int(),usagePct:U().int()})),SI=G({id:H().uuid(),name:H(),direction:FA([H(),U()]),owner:H().nullable().optional(),url:H().nullable().optional(),eventKey:H(),secret:H(),status:FA([H(),U()]),health:G({lastDelivery:H().nullable().optional(),succeeded:U().int().nullable().optional(),failed:U().int().nullable().optional()}).nullable().optional(),extraProperties:RA(PA()).optional()}),CI=G({items:W(SI),totalCount:U().int()}),wI=G({key:H(),label:H(),type:H(),icon:H().nullable().optional(),source:H().nullable().optional(),visible:NA()});G({items:W(G({id:H().uuid(),tenantId:H().uuid().nullable().optional(),name:H(),description:H().nullable().optional(),accent:H(),icon:H(),locked:NA(),fields:W(wI),webhookId:H().uuid().nullable().optional()})),totalCount:U().int()});var TI=G({id:H(),name:H(),slug:H(),desc:H(),cat:H(),url:H(),color:H(),status:FA([H(),U()]),webhooks:U().int(),lastSync:H()}),EI=G({key:H(),app:H(),desc:H(),ver:H(),hooks:U().int(),schema:H()}),DI=G({id:H(),webhook:H(),event:H(),reqId:H(),status:H(),code:U().int(),duration:U().int(),attempts:U().int(),ts:H()}),OI=G({id:H(),webhook:H(),event:H(),attempt:U().int(),nextRetry:H(),error:H()}),kI=G({id:H(),name:H(),desc:H(),cat:H(),fields:W(H()),event:H(),method:H(),url:H(),payload:H()}),AI=G({apps:W(TI),events:W(EI),logs:W(DI),retryQueue:W(OI),templates:W(kI)}),jI=e=>new vI({id:e.id,name:e.name,role:e.role,level:e.level,msgs:e.msgs,audioCalls:e.audioCalls,audioMins:e.audioMins,videoCalls:e.videoCalls,videoMins:e.videoMins}),MI=e=>{if(typeof e==`number`)return e===1?`paused`:e===2?`error`:`active`;let t=e.toLowerCase();return t===`paused`?`paused`:t===`error`?`error`:`active`},NI=e=>typeof e==`number`?e===1?`outbound`:`inbound`:e.toLowerCase()===`outbound`?`outbound`:`inbound`,PI=e=>{let t=e.health,n=t?.succeeded??0,r=t?.failed??0,i=n+r,a=i===0?100:Math.round(n/i*100);return{id:e.id,name:e.name,direction:NI(e.direction),owner:e.owner??``,url:e.url??``,eventKey:e.eventKey,secret:e.secret,status:MI(e.status),health:{lastDelivery:t?.lastDelivery??null,successRate:a,failures:r},extraProperties:e.extraProperties??{}}},FI=e=>({apps:e.apps.map(e=>({id:e.id,name:e.name,slug:e.slug,desc:e.desc,cat:e.cat,url:e.url,color:e.color,status:MI(e.status),webhooks:e.webhooks,lastSync:e.lastSync})),events:e.events.map(e=>({key:e.key,app:e.app,desc:e.desc,ver:e.ver,hooks:e.hooks,schema:e.schema})),logs:e.logs.map(e=>({id:e.id,webhook:e.webhook,event:e.event,reqId:e.reqId,status:e.status,code:e.code,duration:e.duration,attempts:e.attempts,ts:e.ts})),retryQueue:e.retryQueue.map(e=>({id:e.id,webhook:e.webhook,event:e.event,attempt:e.attempt,nextRetry:e.nextRetry,error:e.error})),templates:e.templates.map(e=>({id:e.id,name:e.name,desc:e.desc,cat:e.cat,fields:e.fields,event:e.event,method:e.method,url:e.url,payload:e.payload}))}),II=`/api/app/usage`,LI={week:`Week`,month:`Month`,quarter:`Quarter`,all:`All`},RI=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-usage-gateway`)}async listUsage(e){try{let t=await this.httpClient.get(`${II}?period=${LI[e]}`),n=xI.safeParse(t);return n.success?M(n.data.map(jI)):(this.logger.error(`Usage returned an unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.logger.error(`List usage failed`,e),N(new q(e))}}},zI=W(G({key:H(),label:H(),color:H(),templateIds:W(H()).optional().default([]),webhookId:H().nullable().optional()})),BI=G({seeMore:W(H()),seeLess:W(H()),muted:W(H()),preferredDepts:W(H()),hiddenDepts:W(H()),priorityOn:NA()}),VI=G({id:H().uuid(),name:H(),priority:U().int(),color:H(),active:NA(),templateId:H(),webhookId:H().uuid().nullable().optional()}),HI=G({items:W(VI),totalCount:U().int()}),UI=W(VI),WI=G({token:H(),label:H(),description:H(),type:H()}),GI=G({id:H().uuid(),type:H(),name:H(),statusLabel:H(),mainHeader:H(),cardTitle:H(),cardSubtitle:H(),dateLine:H(),badgeText:H(),amountText:H(),ctaText:H(),custom:NA(),fields:W(WI)}),KI=G({items:W(GI),totalCount:U().int()}),qI=G({id:H().uuid(),categoryId:H(),values:RA(H())}),JI=G({items:W(qI),totalCount:U().int()}),YI=G({id:H().uuid(),type:H(),name:H(),postTitle:H().optional().default(``),postBody:H().optional().default(``),custom:NA().optional().default(!1),fields:W(WI).optional().default([])}),XI=G({items:W(YI),totalCount:U().int()}),ZI=G({id:H().uuid(),categoryKey:H(),values:RA(H())}),QI=W(ZI),$I=e=>({key:e.key,label:e.label,color:e.color,templateIds:e.templateIds,webhookId:e.webhookId??void 0}),eL=e=>({seeMore:e.seeMore,seeLess:e.seeLess,muted:e.muted,preferredDepts:e.preferredDepts,hiddenDepts:e.hiddenDepts,priorityOn:e.priorityOn}),tL=e=>({id:e.id,type:e.type,name:e.name,postTitle:e.postTitle,postBody:e.postBody,custom:e.custom,fields:e.fields.map(e=>({token:e.token,label:e.label,description:e.description,type:e.type}))}),nL=e=>({id:e.id,categoryKey:e.categoryKey,values:e.values}),rL=class{httpClient;settingsLogger;constructor(e){this.httpClient=e.httpClient,this.settingsLogger=e.logger.child(`http-feed-preferences-gateway`)}async getContentPrefs(){try{let e=await this.httpClient.get(`/api/app/feed/content-prefs`),t=BI.safeParse(e);return t.success?M(eL(t.data)):(this.settingsLogger.error(`Content preferences returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`Get content preferences failed`,e),N(new q(e))}}async saveContentPrefs(e){try{let t=await this.httpClient.post(`/api/app/feed/save-content-prefs`,e),n=BI.safeParse(t);return n.success?M(eL(n.data)):(this.settingsLogger.error(`Saved content preferences returned an unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.settingsLogger.error(`Save content preferences failed`,e),N(new q(e))}}async listFeedCategories(){try{let e=await this.httpClient.get(`/api/app/feed/feed-categories`),t=zI.safeParse(e);return t.success?M(t.data.map($I)):(this.settingsLogger.error(`Feed categories returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List feed categories failed`,e),N(new q(e))}}async saveFeedCategories(e){try{let t=await this.httpClient.post(`/api/app/feed/save-feed-categories`,{categories:[...e]}),n=zI.safeParse(t);return n.success?M(n.data.map($I)):(this.settingsLogger.error(`Saved feed categories returned an unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.settingsLogger.error(`Save feed categories failed`,e),N(new q(e))}}async listFeedTemplates(){try{let e=await this.httpClient.get(`/api/app/feed/feed-templates`),t=XI.safeParse(e);return t.success?M(t.data.items.map(tL)):(this.settingsLogger.error(`Feed templates returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List feed templates failed`,e),N(new q(e))}}async saveFeedTemplate(e){try{let t={id:e.id.startsWith(`tpl-`)?null:e.id,type:e.type,name:e.name,postTitle:e.postTitle,postBody:e.postBody,custom:e.custom??!1,fields:e.fields??[]},n=await this.httpClient.post(`/api/app/feed/save-feed-template`,t),r=YI.safeParse(n);return r.success?M(tL(r.data)):(this.settingsLogger.error(`Save feed template returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save feed template failed`,e),N(new q(e))}}async deleteFeedTemplate(e){try{return await this.httpClient.delete(`/api/app/feed/${e}/feed-template`),M(e)}catch(e){return this.settingsLogger.error(`Delete feed template failed`,e),N(new q(e))}}async listFeedCategoryItems(e){try{let t=e?`?categoryKey=${encodeURIComponent(e)}`:``,n=await this.httpClient.get(`/api/app/feed/feed-category-items${t}`),r=QI.safeParse(n);return r.success?M(r.data.map(nL)):(this.settingsLogger.error(`Feed category items returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`List feed category items failed`,e),N(new q(e))}}async listExternalFeedCategoryItems(e,t){try{let n=t?`&query=${encodeURIComponent(t)}`:``,r=await this.httpClient.get(`/api/app/feed/external-category-items?categoryKey=${encodeURIComponent(e)}${n}`),i=QI.safeParse(r);return i.success?M(i.data.map(nL)):(this.settingsLogger.error(`External feed category items returned an unexpected shape`,i.error),N(new q(i.error)))}catch(e){return this.settingsLogger.error(`List external feed category items failed`,e),N(new q(e))}}async saveFeedCategoryItem(e){try{let t={id:e.id.startsWith(`item-`)||e.id.startsWith(`promo-`)?null:e.id,categoryKey:e.categoryKey,values:e.values},n=await this.httpClient.post(`/api/app/feed/save-feed-category-item`,t),r=ZI.safeParse(n);return r.success?M(nL(r.data)):(this.settingsLogger.error(`Save feed category item returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save feed category item failed`,e),N(new q(e))}}async deleteFeedCategoryItem(e){try{return await this.httpClient.delete(`/api/app/feed/${e}/feed-category-item`),M(e)}catch(e){return this.settingsLogger.error(`Delete feed category item failed`,e),N(new q(e))}}},iL=G({active:NA(),from:H(),to:H()}),aL=G({mon:iL,tue:iL,wed:iL,thu:iL,fri:iL,sat:iL,sun:iL}),oL=G({id:H(),name:H(),address:H(),flag:H(),color:H(),timezone:H()}),sL=G({details:G({name:H(),headquarters:H()}),branches:W(oL),defaultHours:aL,branchHours:RA(H(),aL)}),cL=e=>({active:e.active,from:e.from,to:e.to}),lL=e=>({mon:cL(e.mon),tue:cL(e.tue),wed:cL(e.wed),thu:cL(e.thu),fri:cL(e.fri),sat:cL(e.sat),sun:cL(e.sun)}),uL=e=>({id:e.id,name:e.name,address:e.address,flag:e.flag,color:e.color,timezone:e.timezone}),dL=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]=lL(r);return t},fL=e=>({details:{name:e.details.name,headquarters:e.details.headquarters},branches:e.branches.map(uL),defaultHours:lL(e.defaultHours),branchHours:dL(e.branchHours)}),pL=e=>({name:e.details.name,headquarters:e.details.headquarters,branches:e.branches,defaultHours:e.defaultHours,branchHours:e.branchHours}),mL=`/api/app/org-settings`,hL=`/api/app/org-settings/save`,gL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-org-settings-gateway`)}async getOrgSettings(){try{let e=await this.httpClient.get(mL);return this.parse(e,`Org settings`)}catch(e){return this.logger.error(`Get org settings failed`,e),N(new q(e))}}async saveOrgSettings(e){try{let t=await this.httpClient.post(hL,pL(e));return this.parse(t,`Saved org settings`)}catch(e){return this.logger.error(`Save org settings failed`,e),N(new q(e))}}parse(e,t){let n=sL.safeParse(e);return n.success?M(fL(n.data)):(this.logger.error(`${t} returned an unexpected shape`,n.error),N(new q(n.error)))}},_L=e=>({id:e.id,name:e.name,priority:e.priority,color:e.color,active:e.active,templateId:e.templateId,webhookId:e.webhookId??null}),vL=e=>({id:e.id,type:e.type,name:e.name,statusLabel:e.statusLabel,mainHeader:e.mainHeader,cardTitle:e.cardTitle,cardSubtitle:e.cardSubtitle,dateLine:e.dateLine,badgeText:e.badgeText,amountText:e.amountText,ctaText:e.ctaText,custom:e.custom,fields:e.fields.map(e=>({token:e.token,label:e.label,description:e.description,type:e.type||`text`}))}),yL=e=>({id:e.id,categoryId:e.categoryId,values:{...e.values}}),bL=class{httpClient;settingsLogger;constructor(e){this.httpClient=e.httpClient,this.settingsLogger=e.logger.child(`http-promotions-gateway`)}async listPromoCategories(){try{let e=await this.httpClient.get(`/api/app/promo-category?maxResultCount=1000`),t=HI.safeParse(e);return t.success?M(t.data.items.map(_L)):(this.settingsLogger.error(`Promo categories returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List promo categories failed`,e),N(new q(e))}}async savePromoCategories(e){try{let t=e.map(e=>({id:e.id.startsWith(`pc-`)||e.id===`new`?null:e.id,name:e.name,color:e.color,active:e.active,templateId:e.templateId,webhookId:e.webhookId})),n=await this.httpClient.post(`/api/app/promo-category/save-list`,t),r=UI.safeParse(n);return r.success?M(r.data.map(_L)):(this.settingsLogger.error(`Save promo categories returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save promo categories failed`,e),N(new q(e))}}async listCommTemplates(){try{let e=await this.httpClient.get(`/api/app/comm-template?maxResultCount=1000`),t=KI.safeParse(e);return t.success?M(t.data.items.map(vL)):(this.settingsLogger.error(`Comm templates returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List comm templates failed`,e),N(new q(e))}}async saveCommTemplate(e){try{let t={id:e.id.startsWith(`tpl-`)?null:e.id,type:e.type,name:e.name,statusLabel:e.statusLabel,mainHeader:e.mainHeader,cardTitle:e.cardTitle,cardSubtitle:e.cardSubtitle,dateLine:e.dateLine,badgeText:e.badgeText,amountText:e.amountText,ctaText:e.ctaText,custom:e.custom??!1,fields:e.fields??[]},n=await this.httpClient.post(`/api/app/comm-template/save`,t),r=GI.safeParse(n);return r.success?M(vL(r.data)):(this.settingsLogger.error(`Save comm template returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save comm template failed`,e),N(new q(e))}}async deleteCommTemplate(e){try{return await this.httpClient.delete(`/api/app/comm-template/${e}`),M(e)}catch(e){return this.settingsLogger.error(`Delete comm template failed`,e),N(new q(e))}}async listPromotions(){try{let e=await this.httpClient.get(`/api/app/promotion?maxResultCount=1000`),t=JI.safeParse(e);return t.success?M(t.data.items.map(yL)):(this.settingsLogger.error(`Promotions returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List promotions failed`,e),N(new q(e))}}async savePromotion(e){try{let t={id:e.id,categoryId:e.categoryId,values:e.values},n=await this.httpClient.post(`/api/app/promotion/save`,t),r=qI.safeParse(n);return r.success?M(yL(r.data)):(this.settingsLogger.error(`Save promotion returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save promotion failed`,e),N(new q(e))}}async deletePromotion(e){try{return await this.httpClient.delete(`/api/app/promotion/${e}`),M(e)}catch(e){return this.settingsLogger.error(`Delete promotion failed`,e),N(new q(e))}}},xL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-webhook-gateway`)}async listWebhookEndpoints(){try{let e=await this.httpClient.get(`/api/app/webhook-endpoint?maxResultCount=1000`),t=CI.safeParse(e);return t.success?M(t.data.items.map(PI)):(this.logger.error(`Webhook endpoints returned unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.logger.error(`List webhook endpoints failed`,e),N(new q(e))}}async saveWebhookEndpoint(e){try{let t={id:e.id,name:e.name,direction:e.direction===`inbound`?0:1,owner:e.owner,url:e.url,eventKey:e.eventKey,secret:e.secret,status:e.status===`active`?0:e.status===`paused`?1:2,extraProperties:e.extraProperties},n=await this.httpClient.post(`/api/app/webhook-endpoint/save`,t),r=SI.safeParse(n);return r.success?M(PI(r.data)):(this.logger.error(`Saved webhook endpoint returned unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.logger.error(`Save webhook endpoint failed`,e),N(new q(e))}}async deleteWebhookEndpoint(e){try{return await this.httpClient.delete(`/api/app/webhook-endpoint/${e}`),M(e)}catch(e){return this.logger.error(`Delete webhook endpoint failed`,e),N(new q(e))}}async rotateSecret(e){try{let t=await this.httpClient.post(`/api/app/webhook-endpoint/${e}/rotate-secret`),n=SI.safeParse(t);return n.success?M(PI(n.data)):(this.logger.error(`Rotated secret returned unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.logger.error(`Rotate signing secret failed`,e),N(new q(e))}}async getWebhookData(){try{let e=await this.httpClient.get(`/api/app/webhook-endpoint/webhook-data`),t=AI.safeParse(e);return t.success?M(FI(t.data)):(this.logger.error(`Webhook overview data returned unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.logger.error(`Get webhook overview data failed`,e),N(new q(e))}}async sendTestEvent(e){try{return await this.httpClient.post(`/api/app/webhook-endpoint/${e}/send-test-event`),M(void 0)}catch(e){return this.logger.error(`Send test event failed`,e),N(new q(e))}}async retryWebhook(e){try{return await this.httpClient.post(`/api/app/webhook-delivery/${e}/retry`),M(void 0)}catch(e){return this.logger.error(`Retry webhook delivery failed`,e),N(new q(e))}}async skipWebhook(e){try{return await this.httpClient.post(`/api/app/webhook-delivery/${e}/skip`),M(void 0)}catch(e){return this.logger.error(`Skip webhook delivery failed`,e),N(new q(e))}}},SL=G({key:H(),label:H(),type:U(),icon:H(),source:H(),visible:NA()}),CL=G({id:H(),name:H(),locked:NA(),description:H(),accent:H(),icon:U(),webhookId:H().nullable().optional(),fields:W(SL)}).passthrough(),wL=G({items:W(CL),totalCount:U()}),TL=e=>uI[e]??`Hash`,EL=e=>{let t=uI.indexOf(e);return t<0?0:t},DL=e=>lI[e]?.id??`text`,OL=e=>{let t=lI.findIndex(t=>t.id===e);return t<0?0:t},kL=e=>({id:e.id,tenantId:``,name:e.name,locked:e.locked,description:e.description,accent:e.accent,icon:TL(e.icon),webhookId:e.webhookId??null,fields:e.fields.map(t=>({id:`${e.id}:${t.key}`,key:t.key,label:t.label,type:DL(t.type),icon:t.icon,source:t.source,visible:t.visible}))}),AL=e=>({id:e.id,name:e.name,description:e.description,accent:e.accent,icon:EL(e.icon),webhookId:e.webhookId,fields:e.fields.map(e=>({key:e.key,label:e.label,type:OL(e.type),icon:e.icon,source:e.source,visible:e.visible}))}),jL=(e,t)=>{let n=t instanceof WO?ML(t.body):null;return n===null?(e.error(`Settings request failed`,t),new q(t)):(e.warn(`Settings request failed with server message`,{message:n}),new cI(n))},ML=e=>{if(typeof e!=`object`||!e||!(`error`in e))return null;let t=e.error;if(typeof t!=`object`||!t||!(`message`in t))return null;let n=t.message;return typeof n==`string`&&n.length>0?n:null},NL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-group-categories-gateway`)}async listGroupCategories(){try{let e=await this.httpClient.get(`/api/app/group-category?maxResultCount=1000`),t=wL.safeParse(e);return t.success?M(t.data.items.map(kL)):(this.logger.error(`Group categories returned unexpected shape`,t.error),N(new q(t.error)))}catch(e){return N(jL(this.logger,e))}}async saveGroupCategory(e){try{let t=await this.httpClient.post(`/api/app/group-category/save`,AL(e)),n=CL.safeParse(t);return n.success?M(kL(n.data)):(this.logger.error(`Saved group category returned unexpected shape`,n.error),N(new q(n.error)))}catch(e){return N(jL(this.logger,e))}}async deleteGroupCategory(e){try{return await this.httpClient.delete(`/api/app/group-category/${e}`),M(e)}catch(e){return N(jL(this.logger,e))}}},PL=G({conversationId:H(),isNew:NA(),skipped:NA()}),FL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-group-provisioning-gateway`)}async provisionGroup(e){try{let t=await this.httpClient.post(`/api/app/group-provisioning/provision`,e),n=PL.safeParse(t);return n.success?M(n.data):(this.logger.error(`Provision group returned unexpected shape`,n.error),N(new q(n.error)))}catch(e){return N(jL(this.logger,e))}}},IL=e=>{let t=new RI({httpClient:e.httpClient,logger:e.logger}),n=new xL({httpClient:e.httpClient,logger:e.logger}),r=new rL({httpClient:e.httpClient,logger:e.logger}),i=new gL({httpClient:e.httpClient,logger:e.logger}),a=new bL({httpClient:e.httpClient,logger:e.logger}),o=new FL({httpClient:e.httpClient,logger:e.logger}),s=new NL({httpClient:e.httpClient,logger:e.logger}),c={usageGateway:t,logger:e.logger},l={groupCategoriesGateway:s,logger:e.logger},u={feedPrefsGateway:r,logger:e.logger},d={orgSettingsGateway:i,logger:e.logger},f={settingsGateway:a,logger:e.logger},p={settingsGateway:n,logger:e.logger};return{listUsage:new kF(c),getWebhookData:new jF(p),listGroupCategories:new PF(l),saveGroupCategory:new FF(l),deleteGroupCategory:new IF(l),listWebhookEndpoints:new RF(p),saveWebhookEndpoint:new zF(p),deleteWebhookEndpoint:new BF(p),rotateSecret:new AF(p),sendTestEvent:new VF(p),retryWebhook:new MF(p),skipWebhook:new NF(p),listPromoCategories:new HF(f),savePromoCategories:new UF(f),listCommTemplates:new WF(f),saveCommTemplate:new GF(f),deleteCommTemplate:new KF(f),listPromotions:new qF(f),savePromotion:new JF(f),deletePromotion:new YF(f),getOrgSettings:new yI(d),saveOrgSettings:new bI(d),getContentPrefs:new XF(u),saveContentPrefs:new ZF(u),listFeedCategories:new QF(u),saveFeedCategories:new $F(u),listFeedTemplates:new eI(u),saveFeedTemplate:new tI(u),deleteFeedTemplate:new nI(u),listFeedCategoryItems:new rI(u),listExternalFeedCategoryItems:new iI(u),saveFeedCategoryItem:new aI(u),deleteFeedCategoryItem:new oI(u),provisionGroup:new LF({groupProvisioningGateway:o,logger:e.logger})}},LL=(0,n.createContext)(null),RL=({module:e,children:t})=>(0,D.jsx)(LL.Provider,{value:e,children:t}),zL=()=>{let e=(0,n.useContext)(LL);if(e===null)throw Error(`Settings hooks must be used within <SettingsModuleProvider>.`);return e},BL={promoCategories:[`settings`,`promo-categories`],commTemplates:[`settings`,`comm-templates`],promotions:[`settings`,`promotions`]},VL=()=>{let{listPromoCategories:e}=zL();return rN({queryKey:BL.promoCategories,queryFn:()=>P(e.execute())})},HL=()=>{let{listCommTemplates:e}=zL();return rN({queryKey:BL.commTemplates,queryFn:()=>P(e.execute())})},UL=()=>{let{listPromotions:e}=zL();return rN({queryKey:BL.promotions,queryFn:()=>P(e.execute())})},WL={usage:[`settings`,`usage`],groupCategories:[`settings`,`group-categories`],orgSettings:[`settings`,`org-settings`],contentPrefs:[`settings`,`content-prefs`],feedCategories:[`settings`,`feed-categories`],feedTemplates:[`settings`,`feed-templates`],feedCategoryItems:[`settings`,`feed-category-items`]},GL=()=>{let{listGroupCategories:e}=zL();return rN({queryKey:WL.groupCategories,queryFn:()=>P(e.execute())})},KL=()=>{let{getOrgSettings:e}=zL();return rN({queryKey:WL.orgSettings,queryFn:()=>P(e.execute())})},qL=()=>{let{listFeedTemplates:e}=zL();return rN({queryKey:WL.feedTemplates,queryFn:()=>P(e.execute())})},JL=e=>{let{listFeedCategoryItems:t}=zL();return rN({queryKey:[...WL.feedCategoryItems,e??`all`],queryFn:()=>P(t.execute(e))})},YL=(e,t,n=!0)=>{let{listExternalFeedCategoryItems:r}=zL();return rN({queryKey:[...WL.feedCategoryItems,`external`,e,t??``],queryFn:()=>P(r.execute(e,t)),enabled:n&&e!==``})},XL={screen:`_screen_15ft6_1`,center:`_center_15ft6_9`,head:`_head_15ft6_15`,crumb:`_crumb_15ft6_23`,title:`_title_15ft6_28`,subtitle:`_subtitle_15ft6_38`,muted:`_muted_15ft6_44`,strong:`_strong_15ft6_49`,code:`_code_15ft6_54`,tabs:`_tabs_15ft6_61`,tab:`_tab_15ft6_61`,tabActive:`_tabActive_15ft6_87`,filterBar:`_filterBar_15ft6_93`,pillsContainer:`_pillsContainer_15ft6_101`,pills:`_pills_15ft6_101`,pill:`_pill_15ft6_101`,pillAdd:`_pillAdd_15ft6_136`,pillBg:`_pillBg_15ft6_160`,pillLabel:`_pillLabel_15ft6_168`,pillActive:`_pillActive_15ft6_173`,pillChipActive:`_pillChipActive_15ft6_177`,select:`_select_15ft6_183`,input:`_input_15ft6_184`,inputInvalid:`_inputInvalid_15ft6_203`,fieldError:`_fieldError_15ft6_209`,kpiRow:`_kpiRow_15ft6_221`,kpiCard:`_kpiCard_15ft6_227`,kpiIcon:`_kpiIcon_15ft6_238`,kpiValue:`_kpiValue_15ft6_249`,kpiLabel:`_kpiLabel_15ft6_255`,tableWrap:`_tableWrap_15ft6_262`,table:`_table_15ft6_262`,th:`_th_15ft6_277`,row:`_row_15ft6_289`,barTrack:`_barTrack_15ft6_300`,barFill:`_barFill_15ft6_308`,barLabel:`_barLabel_15ft6_315`,pillBadge:`_pillBadge_15ft6_320`,pillOk:`_pillOk_15ft6_327`,pillBad:`_pillBad_15ft6_320`,field:`_field_15ft6_209`,label:`_label_15ft6_345`,req:`_req_15ft6_351`,formGrid:`_formGrid_15ft6_356`,swatches:`_swatches_15ft6_362`,swatch:`_swatch_15ft6_362`,swatchActive:`_swatchActive_15ft6_377`,checkbox:`_checkbox_15ft6_381`,formFooter:`_formFooter_15ft6_395`,editBtn:`_editBtn_15ft6_402`,deleteBtn:`_deleteBtn_15ft6_403`,prefsWrap:`_prefsWrap_15ft6_427`,catWrap:`_catWrap_15ft6_428`,promoWrap:`_promoWrap_15ft6_429`,tplWrap:`_tplWrap_15ft6_430`,guide:`_guide_15ft6_431`,retryList:`_retryList_15ft6_432`,prefBlock:`_prefBlock_15ft6_443`,prefHeading:`_prefHeading_15ft6_449`,prefRow:`_prefRow_15ft6_456`,catRow:`_catRow_15ft6_457`,promoRow:`_promoRow_15ft6_458`,dragHandle:`_dragHandle_15ft6_482`,priorityBadge:`_priorityBadge_15ft6_486`,prefDot:`_prefDot_15ft6_490`,promoNameBtn:`_promoNameBtn_15ft6_495`,activeCheck:`_activeCheck_15ft6_500`,promoRowDragging:`_promoRowDragging_15ft6_525`,promoRowDragOver:`_promoRowDragOver_15ft6_529`,dragHandleOff:`_dragHandleOff_15ft6_553`,prefName:`_prefName_15ft6_558`,catLabel:`_catLabel_15ft6_559`,prefBtns:`_prefBtns_15ft6_566`,prefBtn:`_prefBtn_15ft6_566`,prefBtnActive:`_prefBtnActive_15ft6_582`,catActions:`_catActions_15ft6_589`,catHead:`_catHead_15ft6_594`,webhookFilterBar:`_webhookFilterBar_15ft6_610`,catHeadDesc:`_catHeadDesc_15ft6_630`,catList:`_catList_15ft6_638`,catKey:`_catKey_15ft6_643`,promoList:`_promoList_15ft6_653`,promoRowOff:`_promoRowOff_15ft6_666`,reorder:`_reorder_15ft6_670`,reorderBtn:`_reorderBtn_15ft6_675`,priorityBadgeOff:`_priorityBadgeOff_15ft6_698`,tplHint:`_tplHint_15ft6_720`,tplEditLayout:`_tplEditLayout_15ft6_726`,tplEditForm:`_tplEditForm_15ft6_733`,tplEditPreview:`_tplEditPreview_15ft6_738`,tplLiveHead:`_tplLiveHead_15ft6_746`,tplMirrorHead:`_tplMirrorHead_15ft6_758`,tplLiveDot:`_tplLiveDot_15ft6_772`,tplPulse:`_tplPulse_15ft6_1`,promoNameTop:`_promoNameTop_15ft6_820`,promoName:`_promoName_15ft6_495`,promoNameOff:`_promoNameOff_15ft6_833`,promoNameMeta:`_promoNameMeta_15ft6_838`,tplBadge:`_tplBadge_15ft6_852`,catCount:`_catCount_15ft6_861`,campaignBox:`_campaignBox_15ft6_866`,campaignHead:`_campaignHead_15ft6_879`,campaignHeadTitle:`_campaignHeadTitle_15ft6_886`,campaignCount:`_campaignCount_15ft6_897`,campaignList:`_campaignList_15ft6_912`,seeAll:`_seeAll_15ft6_918`,cpTop:`_cpTop_15ft6_934`,cpHead:`_cpHead_15ft6_946`,cpTitle:`_cpTitle_15ft6_953`,cpCount:`_cpCount_15ft6_960`,cpSearch:`_cpSearch_15ft6_967`,cpSearchIcon:`_cpSearchIcon_15ft6_973`,cpSearchInput:`_cpSearchInput_15ft6_979`,cpList:`_cpList_15ft6_989`,cpFooter:`_cpFooter_15ft6_996`,campaignEmpty:`_campaignEmpty_15ft6_1007`,campaignRow:`_campaignRow_15ft6_1017`,campaignText:`_campaignText_15ft6_1028`,campaignTitle:`_campaignTitle_15ft6_1036`,campaignSub:`_campaignSub_15ft6_1042`,campaignMeta:`_campaignMeta_15ft6_1047`,campaignChip:`_campaignChip_15ft6_1054`,campaignChipLabel:`_campaignChipLabel_15ft6_1066`,campaignAmount:`_campaignAmount_15ft6_1071`,campaignBadge:`_campaignBadge_15ft6_1077`,promoPreview:`_promoPreview_15ft6_1086`,promoCard:`_promoCard_15ft6_1104`,promoCardHeader:`_promoCardHeader_15ft6_1113`,promoCardStatus:`_promoCardStatus_15ft6_1122`,promoCardHeading:`_promoCardHeading_15ft6_1133`,promoCardBody:`_promoCardBody_15ft6_1141`,promoItem:`_promoItem_15ft6_1148`,promoItemText:`_promoItemText_15ft6_1159`,promoItemTitle:`_promoItemTitle_15ft6_1168`,promoItemSub:`_promoItemSub_15ft6_1178`,promoItemDate:`_promoItemDate_15ft6_1185`,promoItemBadge:`_promoItemBadge_15ft6_1194`,promoItemAmount:`_promoItemAmount_15ft6_1203`,promoViewAll:`_promoViewAll_15ft6_1213`,promoStatus:`_promoStatus_15ft6_1239`,promoHeader:`_promoHeader_15ft6_1246`,promoCardInner:`_promoCardInner_15ft6_1253`,promoCardTitle:`_promoCardTitle_15ft6_1263`,promoCardSub:`_promoCardSub_15ft6_1268`,promoDate:`_promoDate_15ft6_1269`,promoCardFoot:`_promoCardFoot_15ft6_1274`,promoBadge:`_promoBadge_15ft6_1281`,promoAmount:`_promoAmount_15ft6_1290`,promoCta:`_promoCta_15ft6_1295`,tplLayout:`_tplLayout_15ft6_1302`,tplList:`_tplList_15ft6_1309`,tplItem:`_tplItem_15ft6_1315`,tplItemActive:`_tplItemActive_15ft6_1327`,tplDot:`_tplDot_15ft6_1332`,tplItemText:`_tplItemText_15ft6_1340`,tplItemName:`_tplItemName_15ft6_1346`,tplItemMeta:`_tplItemMeta_15ft6_1352`,editorPane:`_editorPane_15ft6_1357`,editorName:`_editorName_15ft6_1368`,editorMeta:`_editorMeta_15ft6_1379`,editorMetaCard:`_editorMetaCard_15ft6_1386`,iconPicker:`_iconPicker_15ft6_1393`,iconChoice:`_iconChoice_15ft6_1399`,iconChoiceActive:`_iconChoiceActive_15ft6_1417`,intGuide:`_intGuide_15ft6_1424`,intToggle:`_intToggle_15ft6_1430`,intChevron:`_intChevron_15ft6_1443`,intChevronOpen:`_intChevronOpen_15ft6_1447`,intSteps:`_intSteps_15ft6_1451`,intStep:`_intStep_15ft6_1451`,intNum:`_intNum_15ft6_1465`,intStepBody:`_intStepBody_15ft6_1479`,intStepTitle:`_intStepTitle_15ft6_1487`,intText:`_intText_15ft6_1493`,intIntro:`_intIntro_15ft6_1509`,intList:`_intList_15ft6_1516`,intOl:`_intOl_15ft6_1529`,registry:`_registry_15ft6_1552`,regStats:`_regStats_15ft6_1558`,regList:`_regList_15ft6_1564`,regRow:`_regRow_15ft6_1570`,regRowMain:`_regRowMain_15ft6_1589`,regRowName:`_regRowName_15ft6_1596`,regRowMeta:`_regRowMeta_15ft6_1602`,regRowEnd:`_regRowEnd_15ft6_1607`,regRate:`_regRate_15ft6_1614`,regDetail:`_regDetail_15ft6_1620`,regDetailHead:`_regDetailHead_15ft6_1628`,regDetailTitle:`_regDetailTitle_15ft6_1634`,feedEmpty:`_feedEmpty_15ft6_1641`,feedEmptyText:`_feedEmptyText_15ft6_1651`,feedEmptyTitle:`_feedEmptyTitle_15ft6_1656`,feedHead:`_feedHead_15ft6_1663`,feedTitle:`_feedTitle_15ft6_1670`,feedMeta:`_feedMeta_15ft6_1679`,feedActions:`_feedActions_15ft6_1685`,tplPreview:`_tplPreview_15ft6_1692`,tplPreviewLabel:`_tplPreviewLabel_15ft6_1702`,tplPreviewCard:`_tplPreviewCard_15ft6_1710`,tplPreviewAvatar:`_tplPreviewAvatar_15ft6_1721`,tplPreviewText:`_tplPreviewText_15ft6_1733`,tplPreviewTitleRow:`_tplPreviewTitleRow_15ft6_1740`,tplPreviewTitle:`_tplPreviewTitle_15ft6_1740`,tplPreviewPill:`_tplPreviewPill_15ft6_1753`,tplPreviewSub:`_tplPreviewSub_15ft6_1762`,fieldsHead:`_fieldsHead_15ft6_1770`,fieldList:`_fieldList_15ft6_1777`,fieldCard:`_fieldCard_15ft6_1783`,fieldCardMain:`_fieldCardMain_15ft6_1793`,fieldLabelInput:`_fieldLabelInput_15ft6_1800`,fieldTypeSelect:`_fieldTypeSelect_15ft6_1813`,fieldKeyRow:`_fieldKeyRow_15ft6_1825`,fieldKeyLabel:`_fieldKeyLabel_15ft6_1832`,fieldKeyInput:`_fieldKeyInput_15ft6_1839`,iconToggle:`_iconToggle_15ft6_1851`,iconToggleOn:`_iconToggleOn_15ft6_1864`,webhookBox:`_webhookBox_15ft6_1870`,schema:`_schema_15ft6_1883`,retryItem:`_retryItem_15ft6_1895`,retryInfo:`_retryInfo_15ft6_1905`,retryError:`_retryError_15ft6_1911`,retryActions:`_retryActions_15ft6_1916`,tplGrid:`_tplGrid_15ft6_1922`,tplCard:`_tplCard_15ft6_1928`,tplCardHead:`_tplCardHead_15ft6_1940`,tplCat:`_tplCat_15ft6_1947`,fieldRow:`_fieldRow_15ft6_1965`,tplSidebar:`_tplSidebar_15ft6_1990`,tplLock:`_tplLock_15ft6_1996`,lockBadge:`_lockBadge_15ft6_2002`,footerBtns:`_footerBtns_15ft6_2016`,copyRow:`_copyRow_15ft6_2023`,copyBtn:`_copyBtn_15ft6_2034`,webhookFoot:`_webhookFoot_15ft6_2056`,testBtn:`_testBtn_15ft6_2064`,fieldRef:`_fieldRef_15ft6_2083`,fieldRefHead:`_fieldRefHead_15ft6_2091`,fieldRefHint:`_fieldRefHint_15ft6_2108`,fieldRefList:`_fieldRefList_15ft6_2117`,fieldRefItem:`_fieldRefItem_15ft6_2122`,fieldRefToken:`_fieldRefToken_15ft6_2143`,fieldRefDesc:`_fieldRefDesc_15ft6_2155`,tokenWarn:`_tokenWarn_15ft6_2161`,tplEditMain:`_tplEditMain_15ft6_2181`,tplEditSide:`_tplEditSide_15ft6_2187`,tplEditWrap:`_tplEditWrap_15ft6_2194`,tplEditBar:`_tplEditBar_15ft6_2200`,tplBarSpacer:`_tplBarSpacer_15ft6_2209`,tcFieldsHead:`_tcFieldsHead_15ft6_2254`,tcRows:`_tcRows_15ft6_2263`,tcCard:`_tcCard_15ft6_2270`,tcCardTop:`_tcCardTop_15ft6_2280`,tcGrow:`_tcGrow_15ft6_2286`,tcType:`_tcType_15ft6_2300`,tcToken:`_tcToken_15ft6_2313`,currencyWrap:`_currencyWrap_15ft6_2328`,currencyPrefix:`_currencyPrefix_15ft6_2335`,currencyInput:`_currencyInput_15ft6_2341`,tokenRead:`_tokenRead_15ft6_2357`,tokenReadOver:`_tokenReadOver_15ft6_2379`,tokenReadStatic:`_tokenReadStatic_15ft6_2385`,tokenInput:`_tokenInput_15ft6_2393`,tokenPlaceholder:`_tokenPlaceholder_15ft6_2404`,tokenChip:`_tokenChip_15ft6_2409`,tokenChipBad:`_tokenChipBad_15ft6_2425`,tokenChipX:`_tokenChipX_15ft6_2431`,palette:`_palette_15ft6_2451`,paletteGroup:`_paletteGroup_15ft6_2461`,paletteGroupLabel:`_paletteGroupLabel_15ft6_2467`,paletteChips:`_paletteChips_15ft6_2475`,paletteChipWrap:`_paletteChipWrap_15ft6_2481`,paletteChip:`_paletteChip_15ft6_2475`,paletteGrip:`_paletteGrip_15ft6_2513`,paletteToken:`_paletteToken_15ft6_2518`,paletteDesc:`_paletteDesc_15ft6_2529`,paletteHint:`_paletteHint_15ft6_2535`,simMemberRow:`_simMemberRow_15ft6_2542`,simMemberRemove:`_simMemberRemove_15ft6_2549`,signatureContainer:`_signatureContainer_15ft6_2564`,signatureLabel:`_signatureLabel_15ft6_2570`,signatureCheckbox:`_signatureCheckbox_15ft6_2578`,signatureText:`_signatureText_15ft6_2587`,signatureTitle:`_signatureTitle_15ft6_2593`,signatureDesc:`_signatureDesc_15ft6_2600`},ZL=(e,t)=>{let n=new Date;return{item_count:String(t),current_year:String(n.getFullYear()),current_date:n.toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}),...e}},QL=({card:e})=>(0,D.jsxs)(`div`,{className:XL.promoItem,children:[(0,D.jsxs)(`span`,{className:XL.promoItemText,children:[e.cardTitle!==``&&(0,D.jsx)(`span`,{className:XL.promoItemTitle,children:e.cardTitle}),e.cardSubtitle!==``&&(0,D.jsx)(`span`,{className:XL.promoItemSub,children:e.cardSubtitle}),e.dateLine!==``&&(0,D.jsx)(`span`,{className:XL.promoItemDate,children:e.dateLine})]}),e.amountText!==``&&(0,D.jsx)(`span`,{className:XL.promoItemAmount,children:e.amountText}),e.badgeText!==``&&e.amountText===``&&(0,D.jsx)(`span`,{className:XL.promoItemBadge,children:e.badgeText})]}),$L=({template:e,color:t,name:n,count:r,items:i,onViewAll:a})=>{let o=i[0];if(o===void 0)return null;let s=gI(e,ZL(o.values,r));return(0,D.jsxs)(A.div,{className:XL.promoCard,style:E({"--cat":t}),initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.22,ease:`easeOut`},children:[(0,D.jsxs)(`div`,{className:XL.promoCardHeader,children:[s.statusLabel!==``&&(0,D.jsx)(`span`,{className:XL.promoCardStatus,children:s.statusLabel}),(0,D.jsx)(In,{size:11,color:t})]}),(0,D.jsxs)(`div`,{className:XL.promoCardBody,children:[i.map(t=>(0,D.jsx)(QL,{card:gI(e,ZL(t.values,r))},t.id)),a!==void 0&&(0,D.jsxs)(`button`,{type:`button`,className:XL.promoViewAll,onClick:a,children:[`View all `,r,` `,n.toLowerCase()]})]})]})},eR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`start-call`)}async execute(e,t=`audio`){let n=await this.callGateway.start(e,t);return n.ok||this.logger.warn(`Start call failed`,{code:n.error.code}),n}},tR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`accept-call`)}async execute(e){let t=await this.callGateway.accept(e);return t.ok||this.logger.warn(`Accept call failed`,{code:t.error.code}),t}},nR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`decline-call`)}async execute(e){let t=await this.callGateway.decline(e);return t.ok||this.logger.warn(`Decline call failed`,{code:t.error.code}),t}},rR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`cancel-call`)}async execute(e){let t=await this.callGateway.cancel(e);return t.ok||this.logger.warn(`Cancel call failed`,{code:t.error.code}),t}},iR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`end-call`)}async execute(e){let t=await this.callGateway.end(e);return t.ok||this.logger.warn(`End call failed`,{code:t.error.code}),t}},aR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`get-call-history`)}async execute(e=0,t=20){let n=await this.callGateway.history(e,t);return n.ok||this.logger.warn(`Get call history failed`,{code:n.error.code}),n}},oR=`ringing`,sR=`callee_unavailable`,cR=class extends ci{},lR=class extends cR{code=`CALL_FAILED`;constructor(e=`The call could not be completed. Please try again.`,t){super(e,{cause:t})}},uR=G({token:H(),providerType:H(),roomId:H(),participantName:H()}).passthrough(),dR=G({callId:H(),status:H(),joinTicket:uR.nullish()}).passthrough(),fR=G({id:H(),callerUserId:H(),callerName:H(),calleeUserId:H(),calleeName:H(),type:H(),status:H(),endReason:H(),inbound:NA(),ringingAtUtc:H(),answeredAtUtc:H().nullish(),endedAtUtc:H().nullish(),durationSeconds:U()}).passthrough(),pR=G({totalCount:U(),items:W(fR)}).passthrough(),mR=e=>e===`video`?`video`:`audio`,hR=e=>({token:e.token,providerType:e.providerType,roomId:e.roomId,participantName:e.participantName}),gR=e=>({callId:e.callId,status:e.status===`callee_unavailable`?sR:oR,joinTicket:e.joinTicket?hR(e.joinTicket):null}),_R=e=>({id:e.id,callerUserId:e.callerUserId,callerName:e.callerName,calleeUserId:e.calleeUserId,calleeName:e.calleeName,type:mR(e.type),status:e.status,endReason:e.endReason,inbound:e.inbound,ringingAtUtc:e.ringingAtUtc,answeredAtUtc:e.answeredAtUtc??null,endedAtUtc:e.endedAtUtc??null,durationSeconds:e.durationSeconds}),vR=e=>({items:e.items.map(_R),total:e.totalCount}),yR=encodeURIComponent,bR=`/api/app/call`,xR={start:`${bR}/start`,accept:e=>`${bR}/${yR(e)}/accept`,decline:e=>`${bR}/${yR(e)}/decline`,cancel:e=>`${bR}/${yR(e)}/cancel`,end:e=>`${bR}/${yR(e)}/end`,history:(e,t)=>`${bR}/history?SkipCount=${String(e)}&MaxResultCount=${String(t)}`},SR=class{http;logger;constructor(e){this.http=e.httpClient,this.logger=e.logger.child(`http-call-gateway`)}async start(e,t){try{let n=await this.http.post(xR.start,{calleeUserId:e,type:t}),r=dR.safeParse(n);return r.success?M(gR(r.data)):this.fail(`Start returned an unexpected shape`,r.error)}catch(e){return this.fail(`Placing the call failed`,e)}}async accept(e){try{let t=await this.http.post(xR.accept(e)),n=uR.safeParse(t);return n.success?M(hR(n.data)):this.fail(`Accept returned an unexpected shape`,n.error)}catch(e){return this.fail(`Answering the call failed`,e)}}decline(e){return this.signal(xR.decline(e),`Declining the call failed`)}cancel(e){return this.signal(xR.cancel(e),`Canceling the call failed`)}end(e){return this.signal(xR.end(e),`Ending the call failed`)}async history(e,t){try{let n=await this.http.get(xR.history(e,t)),r=pR.safeParse(n);return r.success?M(vR(r.data)):this.fail(`History returned an unexpected shape`,r.error)}catch(e){return this.fail(`Loading call history failed`,e)}}async signal(e,t){try{return await this.http.post(e),M(void 0)}catch(e){return this.fail(t,e)}}fail(e,t){return this.logger.error(e,t),N(new lR(e,t))}},CR={IncomingCall:`IncomingCall`,CallAccepted:`CallAccepted`,CallDeclined:`CallDeclined`,CallCanceled:`CallCanceled`,CallEnded:`CallEnded`},wR=G({callId:H(),callerUserId:H(),callerName:H(),callerInitials:H().optional().default(``),callerColor:H().optional().default(``),type:H()}).passthrough(),TR=G({callId:H()}).passthrough(),ER=G({callId:H(),reason:H()}).passthrough(),DR=(e,t,n)=>{let r=wR.safeParse(e);return r.success?r.data:(n.warn(`Ignoring malformed call realtime payload`,{event:t}),null)},OR=(e,t,n)=>{let r=TR.safeParse(e);return r.success?r.data:(n.warn(`Ignoring malformed call realtime payload`,{event:t}),null)},kR=(e,t,n)=>{let r=ER.safeParse(e);return r.success?r.data:(n.warn(`Ignoring malformed call realtime payload`,{event:t}),null)},AR={phase:`idle`,callId:null,direction:null,peerUserId:null,peerName:``,peerInitials:``,peerColor:``,mediaType:`audio`,dialId:null,ticket:null,muted:!1,connected:!1,activeSinceMs:null,endReason:null},jR=()=>xE(e=>({...AR,incoming:({callId:t,peer:n,mediaType:r})=>{e({...AR,phase:`incoming`,callId:t,direction:`incoming`,peerUserId:n.userId,peerName:n.name,peerInitials:n.initials,peerColor:n.color,mediaType:r})},dialing:({peer:t,mediaType:n,dialId:r})=>{e({...AR,phase:`outgoing`,direction:`outgoing`,peerUserId:t.userId,peerName:t.name,peerInitials:t.initials,peerColor:t.color,mediaType:n,dialId:r})},attachOutgoing:({callId:t,ticket:n})=>{e(e=>e.direction!==`outgoing`||e.phase!==`outgoing`&&e.phase!==`active`?e:{callId:t,ticket:n})},activate:(t,n)=>{e(e=>({phase:`active`,ticket:t??e.ticket,activeSinceMs:e.activeSinceMs??n}))},markConnected:()=>{e({connected:!0})},ended:t=>{e({phase:`ended`,endReason:t,ticket:null,connected:!1})},reset:()=>{e({...AR})},setMuted:t=>{e({muted:t})}})),MR=e=>{let t={callGateway:new SR({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{startCall:new eR(t),acceptCall:new tR(t),declineCall:new nR(t),cancelCall:new rR(t),endCall:new iR(t),getCallHistory:new aR(t),realtime:e.realtime,store:jR(),logger:e.logger.child(`calls-realtime`)}},NR=(0,n.createContext)(null),PR=({module:e,children:t})=>(0,D.jsx)(NR.Provider,{value:e,children:t}),FR=class extends ci{},IR=class extends FR{code=`AUTH_INVALID_CREDENTIALS`;constructor(){super(`Your sign-in could not be completed. The link may have expired — please try again.`)}},LR=class extends FR{code=`AUTH_SERVICE_UNAVAILABLE`;constructor(e){super(`The authentication service is currently unavailable. Please try again.`,{cause:e})}},RR=class{id;email;fullName;userType;roles;constructor(e){if(e.id.trim().length===0)throw Error(`AuthenticatedUser requires a non-empty id.`);this.id=e.id,this.email=e.email,this.fullName=e.fullName.trim().length>0?e.fullName:e.email.value,this.userType=e.userType,this.roles=new Set(e.roles.map(e=>e.toLowerCase()))}hasRole(e){return this.roles.has(e.toLowerCase())}hasAnyRole(e){return e.some(e=>this.hasRole(e))}get roleNames(){return[...this.roles]}},zR=30,BR=class e{user;accessToken;refreshToken;tokenType;expiresAt;constructor(e){this.user=e.user,this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.tokenType=e.tokenType,this.expiresAt=e.expiresAt}isExpired(e){return this.expiresAt.getTime()-zR*1e3<=e.getTime()}isValid(e){return this.accessToken.length>0&&!this.isExpired(e)}get canRefresh(){return this.refreshToken!==null&&this.refreshToken.length>0}authorizationHeader(){return`${this.tokenType} ${this.accessToken}`}snapshot(){return{user:{id:this.user.id,email:this.user.email.value,fullName:this.user.fullName,roles:this.user.roleNames,userType:this.user.userType},accessToken:this.accessToken,refreshToken:this.refreshToken,tokenType:this.tokenType,expiresAtIso:this.expiresAt.toISOString()}}static restore(t){let n=DD.create(t.user.email);return CD(n)?n:M(new e({user:new RR({id:t.user.id,email:n.value,fullName:t.user.fullName,roles:t.user.roles,userType:t.user.userType}),accessToken:t.accessToken,refreshToken:t.refreshToken,tokenType:t.tokenType,expiresAt:new Date(t.expiresAtIso)}))}},VR=class{authGateway;sessionStore;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.logger=e.logger.child(`complete-sso-login`)}async execute(e){if(e.trim().length===0)return this.logger.warn(`SSO callback carried no secret`),N(new IR);let t=await this.authGateway.exchangeSsoSecret(e);return CD(t)?(this.logger.warn(`SSO secret exchange failed`,{code:t.error.code}),t):(this.sessionStore.save(t.value),this.logger.info(`User authenticated via UAPP SSO`,{userId:t.value.user.id}),t)}},HR=class{authGateway;sessionStore;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.logger=e.logger.child(`logout`)}async execute(e){e!==null&&await this.authGateway.signOut(e),this.sessionStore.clear(),this.logger.info(`Session cleared`)}},UR=class{authGateway;sessionStore;clock;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.clock=e.clock,this.logger=e.logger.child(`restore-session`)}async execute(){let e=this.sessionStore.load();if(e===null)return M(null);if(e.isValid(this.clock.now()))return M(e);let t=e.refreshToken;if(t===null||t.length===0)return this.sessionStore.clear(),M(null);let n=await this.authGateway.refresh(t);return CD(n)?(this.logger.info(`Could not refresh session; signing out`,{code:n.error.code}),this.sessionStore.clear(),M(null)):(this.sessionStore.save(n.value),M(n.value))}},WR=class{authGateway;sessionStore;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.logger=e.logger.child(`refresh-session`)}async execute(e){let t=e.refreshToken;if(t===null||t.length===0)return this.logger.info(`No refresh token available; signing out`),this.sessionStore.clear(),N(new IR);let n=await this.authGateway.refresh(t);return CD(n)?(this.logger.info(`Could not refresh session; signing out`,{code:n.error.code}),this.sessionStore.clear(),n):(this.sessionStore.save(n.value),n)}},GR=G({access_token:H().min(1),token_type:H().min(1).optional().default(`Bearer`),expires_in:U().int().positive(),refresh_token:H().min(1).nullable().optional()}),KR=G({error:H().optional(),error_description:H().optional()}),qR=G({sub:H().min(1),email:H().optional(),name:H().optional(),role:FA([H(),W(H())]).optional()}).passthrough(),JR=e=>e.role===void 0?[]:typeof e.role==`string`?[e.role]:e.role,YR=e=>{let t=e.split(`.`)[1];if(t===void 0||t.length===0)return N(new LR(`Access token is not a JWT.`));let n=XR(t);if(n===null)return N(new LR(`Access token payload is not valid base64url.`));let r;try{r=JSON.parse(n)}catch(e){return N(new LR(e))}let i=qR.safeParse(r);return i.success?M(i.data):N(new LR(i.error))},XR=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.padEnd(Math.ceil(t.length/4)*4,`=`);try{let e=atob(n),t=new Uint8Array(e.length);for(let n=0;n<e.length;n+=1)t[n]=e.charCodeAt(n);return new TextDecoder().decode(t)}catch{return null}},ZR=(e,t)=>{let n=YR(e.access_token);if(CD(n))return n;let r=n.value.email??n.value.name;if(r===void 0||r.length===0)return N(new LR(`Access token carries no email/name claim.`));let i=DD.create(r);return CD(i)?N(new LR(i.error)):M(new BR({user:new RR({id:n.value.sub,email:i.value,fullName:n.value.name??i.value.value,roles:JR(n.value),userType:null}),accessToken:e.access_token,refreshToken:e.refresh_token??null,tokenType:e.token_type,expiresAt:new Date(t.getTime()+e.expires_in*1e3)}))},QR=`/connect/token`,$R=`CommunicationHub_App`,ez=`CommunicationHub offline_access`,tz=`uapp_sso`,nz=`refresh_token`,rz=`secret`,iz=class{httpClient;clock;logger;constructor(e){this.httpClient=e.httpClient,this.clock=e.clock,this.logger=e.logger.child(`uapp-sso-gateway`)}exchangeSsoSecret(e){return e.trim().length===0?Promise.resolve(N(new IR)):this.requestToken({grant_type:tz,[rz]:e,client_id:$R,scope:ez})}refresh(e){return this.requestToken({grant_type:nz,refresh_token:e,client_id:$R,scope:ez})}signOut(e){return this.logger.debug(`Sign-out is local-only for the SSO client; no server call made.`),Promise.resolve()}async requestToken(e){try{let t=await this.httpClient.postForm(QR,e,{anonymous:!0}),n=GR.safeParse(t);return n.success?ZR(n.data,this.clock.now()):(this.logger.error(`Token endpoint returned an unexpected shape`,n.error),N(new LR(n.error)))}catch(e){return N(this.mapError(e))}}mapError(e){return e instanceof WO?e.status===400||e.status===401?(this.logger.warn(`Token request was rejected`,{reason:az(e.body)}),new IR):(this.logger.error(`Token request failed with an unexpected status`,e),new LR(e)):(this.logger.error(`Token request failed`,e),new LR(e))}},az=e=>{let t=KR.safeParse(e);return t.success?t.data.error_description??t.data.error??`unknown`:`unknown`},oz=`auth.session`,sz=e=>`${e}.${oz}`,cz=G({user:G({id:H(),email:H(),fullName:H(),roles:W(H()),userType:H().nullable()}),accessToken:H(),refreshToken:H().nullable(),tokenType:H(),expiresAtIso:H()}),lz=class{storage;logger;key;constructor(e){this.storage=e.storage,this.logger=e.logger.child(`session-store`),this.key=sz(e.namespace)}load(){let e=this.storage.getItem(this.key);if(e===null)return null;let t=cz.safeParse(this.tryParseJson(e));if(!t.success)return this.logger.warn(`Discarding corrupt persisted session`),this.clear(),null;let n=BR.restore(t.data);return CD(n)?(this.logger.warn(`Discarding unrestorable persisted session`),this.clear(),null):n.value}save(e){this.storage.setItem(this.key,JSON.stringify(e.snapshot()))}clear(){this.storage.removeItem(this.key)}tryParseJson(e){try{return JSON.parse(e)}catch{return null}}},uz=e=>xE((t,n)=>({status:`initializing`,session:null,error:null,loginUrl:e.loginUrl,initialize:async()=>{t({status:`initializing`,error:null});let n=await e.restoreSessionUseCase.execute(),r=CD(n)?null:n.value;e.setAccessToken(r?.accessToken??null),t({status:r?`authenticated`:`unauthenticated`,session:r})},completeLogin:async n=>{t({status:`authenticating`,error:null});let r=await e.completeSsoLoginUseCase.execute(n);return CD(r)?(t({status:`unauthenticated`,session:null,error:r.error.message}),!1):(e.setAccessToken(r.value.accessToken),t({status:`authenticated`,session:r.value,error:null}),!0)},logout:async()=>{await e.logoutUseCase.execute(n().session),e.setAccessToken(null),t({status:`unauthenticated`,session:null,error:null})},refreshSession:async()=>{let r=n().session;if(r===null)return!1;let i=await e.refreshSessionUseCase.execute(r);return CD(i)?(e.setAccessToken(null),t({status:`unauthenticated`,session:null}),!1):(e.setAccessToken(i.value.accessToken),t({status:`authenticated`,session:i.value,error:null}),!0)},clearError:()=>{t({error:null})}})),dz=(0,n.createContext)(null),fz=({store:e,children:t})=>((0,n.useEffect)(()=>{e.getState().initialize()},[e]),(0,D.jsx)(dz.Provider,{value:e,children:t})),pz=e=>{let t=(0,n.useContext)(dz);if(t===null)throw Error(`Auth hooks must be used within <AuthStoreProvider>.`);return CE(t,e)},mz=()=>{let e=HM(),t=pz(e=>e.status),n=pz(e=>e.session?.user??null),r=pz(e=>e.error),i=pz(e=>e.loginUrl),a=pz(e=>e.completeLogin),o=pz(e=>e.logout),s=pz(e=>e.clearError);return{status:t,user:n,error:r,isAuthenticated:t===`authenticated`,isInitializing:t===`initializing`,isBusy:t===`authenticating`,loginUrl:i,completeLogin:a,logout:async()=>{e.clear(),await o()},clearError:s}},hz=(e,t)=>{let n=e.status===`connected`;return e.onStatusChange(e=>{e===`connected`&&(n&&t.getState().phase===`outgoing`&&t.getState().reset(),n=!0)})},gz=e=>{let{connection:t,store:n,declineCall:r,logger:i}=e,a=[hz(t,n),t.on(CR.IncomingCall,e=>{let t=DR(e,CR.IncomingCall,i);if(t===null)return;let a=n.getState().phase;if(a!==`idle`&&a!==`ended`){r.execute(t.callId);return}n.getState().incoming({callId:t.callId,peer:{userId:t.callerUserId,name:t.callerName,initials:t.callerInitials,color:t.callerColor},mediaType:t.type===`video`?`video`:`audio`})}),t.on(CR.CallAccepted,e=>{let t=OR(e,CR.CallAccepted,i);if(t===null)return;let r=n.getState();r.callId===t.callId&&(r.direction===`outgoing`?r.activate(null,Date.now()):r.phase===`incoming`&&r.reset())}),t.on(CR.CallDeclined,e=>{let t=OR(e,CR.CallDeclined,i);t!==null&&n.getState().callId===t.callId&&n.getState().ended(`declined`)}),t.on(CR.CallCanceled,e=>{let t=OR(e,CR.CallCanceled,i);t!==null&&n.getState().callId===t.callId&&n.getState().reset()}),t.on(CR.CallEnded,e=>{let t=kR(e,CR.CallEnded,i);t!==null&&n.getState().callId===t.callId&&n.getState().ended(t.reason)})];return()=>{for(let e of a)e()}},_z=()=>{let e=(0,n.useContext)(NR);if(e===null)throw Error(`Calls hooks must be used within <CallsModuleProvider>.`);return e},vz=e=>CE(_z().store,e),yz=()=>{let{isAuthenticated:e}=mz(),{realtime:t,store:r,declineCall:i,logger:a}=_z();(0,n.useEffect)(()=>gz({connection:t,store:r,declineCall:i,logger:a}),[t,r,i,a]),(0,n.useEffect)(()=>{if(!e){t.stop(),r.getState().reset();return}return t.start().catch(()=>void 0),()=>{t.stop()}},[e,t,r])},bz=({children:e})=>(yz(),(0,D.jsx)(D.Fragment,{children:e})),xz=(e,t)=>{let n=e.currentTime+t.atMs/1e3,r=t.durMs/1e3,i=e.createGain();i.connect(e.destination),i.gain.setValueAtTime(1e-4,n),i.gain.linearRampToValueAtTime(t.volume,n+.02),i.gain.exponentialRampToValueAtTime(Math.max(1e-4,t.volume*.5),n+r*.6),i.gain.linearRampToValueAtTime(1e-4,n+r);let a=e.createOscillator();a.type=t.type??`triangle`,a.frequency.value=t.freq,a.connect(i),a.start(n),a.stop(n+r+.03)},Sz=()=>{let e=globalThis,t=e.AudioContext??e.webkitAudioContext;return typeof t==`function`?t:null},Cz=()=>{let e=null,t=null,n=()=>{if(e!==null)return e;let t=Sz();return t===null?null:(e=new t,e)},r=()=>{t!==null&&(window.clearInterval(t),t=null)},i=e=>{let t=n();t!==null&&xz(t,e)},a=(e,i)=>{r();let a=n();a!==null&&(a.resume().catch(()=>void 0),e(),t=window.setInterval(e,i))};return{unlock:()=>{let e=n();e!==null&&e.resume().catch(()=>void 0)},playRing:()=>{let e=e=>{i({freq:440,atMs:e+0,durMs:230,volume:.38}),i({freq:554,atMs:e+190,durMs:230,volume:.38}),i({freq:659,atMs:e+380,durMs:230,volume:.38}),i({freq:880,atMs:e+570,durMs:340,volume:.4})};a(()=>{e(0),e(900)},3e3)},playRingback:()=>{a(()=>{i({freq:440,atMs:0,durMs:1200,volume:.13,type:`sine`}),i({freq:480,atMs:0,durMs:1200,volume:.11,type:`sine`})},3e3)},stop:r,dispose:()=>{r(),e!==null&&(e.close().catch(()=>void 0),e=null)}}},wz=(0,n.lazy)(()=>Promise.resolve().then(()=>require("./realtimekit-call-media-Bw4ob8QT.cjs")).then(e=>({default:e.RealtimeKitCallMedia}))),Tz=e=>{let t=e.ticket.providerType;return(0,D.jsx)(n.Suspense,{fallback:null,children:t===`cloudflare`?(0,D.jsx)(wz,{...e}):null})},Ez={overlay:`_overlay_4ifrb_5`,card:`_card_4ifrb_12`,draggable:`_draggable_4ifrb_30`,head:`_head_4ifrb_40`,info:`_info_4ifrb_46`,avatarRing:`_avatarRing_4ifrb_53`,avatarRingPulse:`_avatarRingPulse_4ifrb_65`,callPulse:`_callPulse_4ifrb_1`,avatar:`_avatar_4ifrb_53`,name:`_name_4ifrb_107`,status:`_status_4ifrb_117`,timer:`_timer_4ifrb_123`,actions:`_actions_4ifrb_130`,btn:`_btn_4ifrb_137`,accept:`_accept_4ifrb_163`,acceptBob:`_acceptBob_4ifrb_1`,decline:`_decline_4ifrb_178`,mute:`_mute_4ifrb_182`,muteOn:`_muteOn_4ifrb_191`},Dz=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()},Oz=e=>e===`unavailable`?`Unavailable`:e===`failed`?`Call failed`:`Call ended`,kz=(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 Oz(r);case`idle`:return``}},Az=({sinceMs:e})=>{let[t,r]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{let e=window.setInterval(()=>{r(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]);let i=Math.max(0,Math.floor((t-e)/1e3)),a=String(Math.floor(i/60)).padStart(2,`0`),o=String(i%60).padStart(2,`0`);return(0,D.jsxs)(`span`,{className:Ez.timer,children:[a,`:`,o]})},jz=({phase:e,muted:t,actions:n})=>e===`ended`?null:e===`incoming`?(0,D.jsxs)(`div`,{className:Ez.actions,children:[(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.decline),onClick:()=>{n.decline()},"aria-label":`Decline call`,children:(0,D.jsx)(kr,{size:24})}),(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.accept),onClick:()=>{n.accept()},"aria-label":`Accept call`,children:(0,D.jsx)(Ar,{size:24})})]}):(0,D.jsxs)(`div`,{className:Ez.actions,children:[e===`active`&&(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.mute,t&&Ez.muteOn),onClick:()=>{n.toggleMute()},"aria-label":t?`Unmute`:`Mute`,children:t?(0,D.jsx)(Sr,{size:20}):(0,D.jsx)(Cr,{size:20})}),(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.decline),onClick:()=>{n.hangup()},"aria-label":`Hang up`,children:(0,D.jsx)(kr,{size:24})})]}),Mz=({actions:e})=>{let t=vz(e=>e.phase),r=vz(e=>e.callId),i=vz(e=>e.peerName),a=vz(e=>e.peerInitials),o=vz(e=>e.peerColor),s=vz(e=>e.mediaType),c=vz(e=>e.muted),l=vz(e=>e.connected),u=vz(e=>e.activeSinceMs),d=vz(e=>e.endReason),f=(0,n.useRef)(null);if(t===`idle`)return null;let p=t===`active`,m=t===`incoming`||t===`outgoing`,h=t===`outgoing`&&r!==null,g=a===``?Dz(i):a,_=t===`active`&&l&&u!==null?(0,D.jsx)(Az,{sinceMs:u}):kz(t,s,h,d);return(0,D.jsx)(`div`,{className:Ez.overlay,ref:f,role:`dialog`,"aria-label":`Call`,children:(0,D.jsxs)(A.div,{className:T(Ez.card,p&&Ez.draggable),variants:By,initial:`hidden`,animate:`visible`,drag:p,dragConstraints:f,dragElastic:.12,dragMomentum:!1,children:[(0,D.jsxs)(`div`,{className:Ez.head,children:[(0,D.jsx)(`div`,{className:T(Ez.avatarRing,m&&Ez.avatarRingPulse),children:(0,D.jsx)(`div`,{className:Ez.avatar,style:o===``?void 0:E({"--avatar-color":o}),"aria-hidden":`true`,children:g})}),(0,D.jsxs)(`div`,{className:Ez.info,children:[(0,D.jsx)(`div`,{className:Ez.name,children:i===``?`Unknown caller`:i}),(0,D.jsx)(`div`,{className:Ez.status,children:_})]})]}),(0,D.jsx)(jz,{phase:t,muted:c,actions:e})]})})},Nz=0,Pz=(e,t)=>{let n=e.getState();return n.direction===`outgoing`&&n.phase===`outgoing`&&n.callId===null&&n.dialId===t},Fz=async({store:e,cancelCall:t,dialId:n,result:r})=>{let i=Pz(e,n);if(!r.ok){i&&e.getState().ended(`failed`);return}let a=r.value;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})},Iz=()=>{let{store:e,startCall:t,acceptCall:r,declineCall:i,cancelCall:a,endCall:o}=_z();return{startCall:(0,n.useCallback)(async n=>{if(n.userId===``)return;let r=e.getState().phase;if(r!==`idle`&&r!==`ended`)return;let i=String(Nz+=1);e.getState().dialing({peer:n,mediaType:`audio`,dialId:i}),await Fz({store:e,cancelCall:a,dialId:i,result:await t.execute(n.userId,`audio`)})},[e,t,a]),accept:(0,n.useCallback)(async()=>{let{callId:t,direction:n}=e.getState();if(t===null||n!==`incoming`)return;e.getState().activate(null,Date.now());let i=await r.execute(t);if(!i.ok){e.getState().ended(`failed`);return}e.getState().activate(i.value,Date.now())},[e,r]),decline:(0,n.useCallback)(async()=>{let{callId:t}=e.getState();e.getState().reset(),t!==null&&await i.execute(t)},[e,i]),hangup:(0,n.useCallback)(async()=>{let{callId:t,phase:n}=e.getState();e.getState().ended(`hung_up`),t!==null&&(n===`active`?await o.execute(t):await a.execute(t))},[e,o,a]),toggleMute:(0,n.useCallback)(()=>{let t=e.getState();t.setMuted(!t.muted)},[e])}},Lz=()=>{let e=vz(e=>e.phase),t=vz(e=>e.ticket),r=vz(e=>e.muted),i=_z().store,a=Iz(),o=(0,n.useRef)(null);o.current??=Cz();let s=o.current;return(0,n.useEffect)(()=>{let e=()=>{s.unlock()};return window.addEventListener(`pointerdown`,e,{once:!0}),()=>{window.removeEventListener(`pointerdown`,e)}},[s]),(0,n.useEffect)(()=>{e===`incoming`?s.playRing():e===`outgoing`?s.playRingback():s.stop()},[e,s]),(0,n.useEffect)(()=>()=>{s.dispose()},[s]),(0,n.useEffect)(()=>{if(e!==`ended`)return;let t=window.setTimeout(()=>{i.getState().reset()},2500);return()=>{window.clearTimeout(t)}},[e,i]),e===`idle`?null:(0,D.jsxs)(D.Fragment,{children:[t!==null&&(e===`outgoing`||e===`active`)&&(0,D.jsx)(Tz,{ticket:t,muted:r,onConnected:()=>{i.getState().markConnected()},onEnded:()=>{i.getState().ended(`ended`)}}),(0,D.jsx)(Mz,{actions:a})]})},Rz=()=>{let{startCall:e}=Iz(),t=vz(e=>e.phase);return{start:t=>{e(t)},busy:t!==`idle`&&t!==`ended`}},zz={callBtn:`_callBtn_1q44j_1`},Bz=({calleeUserId:e,calleeName:t,calleeInitials:n=``,calleeColor:r=``,className:i})=>{let{start:a,busy:o}=Rz();return e===``?null:(0,D.jsx)(`button`,{type:`button`,className:T(zz.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)(Ar,{size:18})})},Vz=({conversation:e})=>e.isGroup||e.peerUserId===null?null:(0,D.jsx)(`div`,{className:K.headEnd,children:(0,D.jsx)(Bz,{calleeUserId:e.peerUserId,calleeName:e.title,calleeInitials:e.initials,calleeColor:e.color})}),Hz=`This message was deleted`,Uz=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`))try{let t=e.substring(22);return JSON.parse(t)}catch{return null}return null},Wz=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`)){let t=Uz(e);if(t!==null){let e=t.card.title;return e.length>0?`Shared Post: ${e}`:`Shared Post`}return`Shared Post`}return e},Gz=(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},Kz=(e,t)=>{if(e.replyTo===null)return null;let n=t.get(e.replyTo.messageId),r=n?.deletedForEveryone?Hz:n?.text??e.replyTo.text,i=n?.authorName??e.replyTo.authorName;return r.startsWith(`__UAPP_SHARED_CARD__::`)?{author:i,text:r}:null},qz=(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?Hz:n.text,a=Kz(n,t);return a!==null&&(r=a.author,i=a.text),{messageId:e.messageId,authorName:r,text:i}},Jz=(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),Yz=`pending:`,Xz=e=>`${Yz}${e}`,Zz=e=>e.id.startsWith(Yz),Qz=e=>e.reduce((e,t)=>Math.max(e,t.sequence),0),$z=e=>e.filter(e=>!Zz(e)).reduce((e,t)=>Math.max(e,t.sequence),0),eB=e=>new pP({id:Xz(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}),tB=e=>new pP({id:Xz(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}),nB=(e,t)=>Jz(e??[],t),rB=(e,t)=>Jz(e??[],t),iB=({selectedMessage:e,onClearSelection:t,onReply:n,onStartEdit:r,onDelete:i})=>{let a=Zz(e),o=e.fromViewer&&!e.deletedForEveryone&&e.canEdit(Date.now());return(0,D.jsxs)(`div`,{className:K.mobileSelectionHeader,children:[(0,D.jsxs)(`div`,{className:K.selectionLeft,children:[(0,D.jsx)(`button`,{type:`button`,className:K.selectionActionBtn,"aria-label":`Clear selection`,onClick:t,children:(0,D.jsx)(oi,{size:18})}),(0,D.jsx)(`span`,{className:K.selectionTitle,children:`1 Selected`})]}),(0,D.jsxs)(`div`,{className:K.selectionActions,children:[!a&&n!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:K.selectionActionBtn,title:`Reply`,"aria-label":`Reply`,onClick:()=>{n(Gz(e)),t!==void 0&&t()},children:(0,D.jsx)(Rr,{size:17})}),!a&&o&&r!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:K.selectionActionBtn,title:`Edit message`,"aria-label":`Edit message`,onClick:()=>{r(e),t!==void 0&&t()},children:(0,D.jsx)(Or,{size:17})}),!a&&e.fromViewer&&i!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:T(K.selectionActionBtn,K.selectionActionDanger),title:`Delete message`,"aria-label":`Delete message`,onClick:()=>{i(e.id),t!==void 0&&t()},children:(0,D.jsx)(ei,{size:17})})]})]})},aB=(e,t,n)=>[...e.lastSynced===null?[]:[{label:`Last synced ${e.lastSynced}`,icon:(0,D.jsx)(Pr,{size:14}),onSelect:()=>{t.refresh(e)}}],{label:`Manage members`,icon:(0,D.jsx)(ri,{size:14}),onSelect:n.onManageMembers},{label:e.favourite?`Remove from Favourites`:`Add to Favourites`,icon:(0,D.jsx)(Yr,{size:14}),onSelect:()=>{t.toggleFavourite(e)}},{label:e.pinned?`Unpin`:`Pin to top`,icon:(0,D.jsx)(jr,{size:14}),onSelect:()=>{t.togglePin(e)}},{label:e.archived?`Unarchive`:`Archive`,icon:e.archived?(0,D.jsx)(kn,{size:14}):(0,D.jsx)(An,{size:14}),onSelect:()=>{t.toggleArchive(e)}},{label:`Leave group`,icon:(0,D.jsx)(_r,{size:14}),onSelect:()=>{n.onRequestLeave(e)}},{label:`Delete group`,icon:(0,D.jsx)(ei,{size:14}),danger:!0,onSelect:()=>{n.onRequestDelete(e)}}],oB=(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},sB=e=>{let t=Object.entries(e.data).filter(([e,t])=>e!==`statusColor`&&t!==``).map(([,e])=>e).slice(0,4);return t.length>0?t.join(` · `):e.subtitle},cB=(e,t)=>{let n=oB(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:sB(e)};let a=i.find(e=>e.type===`pill`),o=i.filter(e=>e.type!==`pill`).slice(0,4).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}},lB=6e4,uB=36e5,dB=864e5,fB=(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<lB?`Last seen just now`:r<uB?`Last seen ${String(Math.floor(r/lB))}m ago`:r<dB?`Last seen ${String(Math.floor(r/uB))}h ago`:`Last seen ${String(Math.floor(r/dB))}d ago`},pB=4,mB={Hash:ur,GraduationCap:lr,Users:ri,Building2:Ln,Briefcase:In,BookOpen:Pn,Globe:cr},hB=(e,t,n,r)=>t?.online??e.online?{online:!0,subtitle:`Online`}:{online:!1,subtitle:(t===void 0?null:fB(t.lastSeenUtc,r))??n},gB=({conversation:e,header:t,dmOnline:n})=>{let r=t?.icon??null,i=r===null?void 0:mB[r];return i===void 0?(0,D.jsxs)(`span`,{className:K.viewAvatarWrap,children:[(0,D.jsx)(`span`,{className:K.viewAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),n===!0&&(0,D.jsx)(`span`,{className:T(K.presenceDot,K.viewPresenceDot),"aria-label":`Online`})]}):(0,D.jsx)(`span`,{className:K.viewIcon,style:E({"--avatar-color":t?.accent??e.color}),children:(0,D.jsx)(i,{size:18})})},_B=({members:e})=>{if(e.length===0)return null;let t=e.length-pB;return(0,D.jsxs)(`div`,{className:K.memberStack,children:[e.slice(0,pB).map(e=>(0,D.jsx)(`span`,{className:K.memberAvatar,title:e.name,children:(0,D.jsx)(IE,{initials:e.initials,color:e.color,size:`xs`})},e.id)),t>0&&(0,D.jsxs)(`span`,{className:K.memberMore,children:[`+`,t]})]})},vB=(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}`},yB=({conversation:e,pill:t,statusPill:n,subtitle:r})=>(0,D.jsxs)(`span`,{className:K.viewHeadText,children:[(0,D.jsxs)(`span`,{className:K.viewTitleRow,children:[(0,D.jsx)(`span`,{className:K.viewTitle,children:e.title}),e.admin&&(0,D.jsx)(`span`,{className:K.adminBadge,children:`You're admin`}),t?(0,D.jsx)(`span`,{className:K.statusPill,style:E({"--pill":t.color}),children:t.value}):null,n]}),(0,D.jsx)(`span`,{className:K.viewSub,children:r})]}),bB=({conversation:e,header:t,dmOnline:n,pill:r,statusPill:i,subtitle:a,actions:o,onManageMembers:s,onRequestDelete:c,onRequestLeave:l})=>{let u=Be();return(0,D.jsxs)(`div`,{className:K.standardHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:K.backBtn,"aria-label":`Back to conversations`,onClick:()=>{u(`/comms/chats`)},children:(0,D.jsx)(jn,{size:18})}),(0,D.jsx)(gB,{conversation:e,header:t,dmOnline:n}),(0,D.jsx)(yB,{conversation:e,pill:r,statusPill:i,subtitle:a}),e.isGroup&&(0,D.jsxs)(`div`,{className:K.headEnd,children:[(0,D.jsx)(`button`,{type:`button`,className:K.memberStackBtn,"aria-label":`Manage members`,onClick:s,children:(0,D.jsx)(_B,{members:e.members})}),(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.headMenuBtn,"aria-label":`Group options`,children:(0,D.jsx)(er,{size:16})}),items:aB(e,o,{onManageMembers:s,onRequestDelete:c,onRequestLeave:l})})]}),(0,D.jsx)(Vz,{conversation:e})]})},xB=({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?cB(e,t):null,p=f?.pill??null,m=e.peerUserId,h=hB(e,tP(e=>m===null?void 0:e.presence[m]),f?.subtitle??e.subtitle,Date.now()),g=e.isGroup?vB(e,f):h.subtitle,_=s!==null;return(0,D.jsxs)(`header`,{className:T(K.viewHead,_&&K.hasMobileSelection),children:[s!==null&&(0,D.jsx)(iB,{selectedMessage:s,onClearSelection:c,onReply:l,onStartEdit:u,onDelete:d}),(0,D.jsx)(bB,{conversation:e,header:f,dmOnline:e.isGroup?null:h.online,pill:p,statusPill:r,subtitle:g,actions:n,onManageMembers:i,onRequestDelete:a,onRequestLeave:o})]})},SB=({excludeIds:e,onAdd:t,onBack:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=dF(e,`groupPool`);return(0,D.jsxs)(`div`,{className:K.addPanel,children:[(0,D.jsxs)(`div`,{className:K.addPanelHead,children:[(0,D.jsx)(`button`,{type:`button`,className:K.memberRowMenuBtn,"aria-label":`Back to members`,onClick:n,children:(0,D.jsx)(jn,{size:15})}),(0,D.jsx)(`span`,{className:K.addPanelTitle,children:`Add member`})]}),(0,D.jsxs)(`div`,{className:K.addPanelSearch,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(mi,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:K.addPanelList,children:[(0,D.jsx)(Wg,{initial:!1,children:a.map(e=>(0,D.jsxs)(A.div,{layout:!0,variants:zy,initial:`hidden`,animate:`visible`,exit:`exit`,className:K.memberRow,children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:K.addMemberBtn,onClick:()=>{t(e)},children:[(0,D.jsx)(Mr,{size:13}),` Add`]})]},e.id))}),a.length===0&&!o&&(0,D.jsx)(`p`,{className:K.addPanelEmpty,children:s?`No staff match your search.`:`Everyone is already in this group.`})]})]})},CB=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)(Wr,{size:14}),onSelect:()=>{i(t.id)}}),n&&r>1&&s.push({label:`Remove admin`,icon:(0,D.jsx)(Ur,{size:14}),onSelect:()=>{a(t.id)}}),s.push({label:`Remove from group`,icon:(0,D.jsx)(ei,{size:14}),danger:!0,onSelect:()=>{o(t.id)}}),s},wB=e=>{let{member:t,isAdmin:n,isSelf:r,isNew:i,isPromoted:a,isDemoted:o,canManage:s}=e,c=tP(e=>e.presence[t.id]?.online??!1);return(0,D.jsxs)(A.div,{layout:!0,variants:zy,initial:`hidden`,animate:`visible`,className:T(K.memberRow,i&&K.memberRowNew),children:[(0,D.jsxs)(`span`,{className:K.memberRowAvatarWrap,children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":t.color}),children:t.initials}),c&&(0,D.jsx)(`span`,{className:K.presenceDot,"aria-label":`Online`})]}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsxs)(`span`,{className:K.memberRowName,children:[t.name,r&&(0,D.jsx)(`span`,{className:K.memberRowYou,children:` (You)`}),n?(0,D.jsx)(`span`,{className:K.memberBadgeAdmin,children:`ADMIN`}):(0,D.jsx)(`span`,{className:K.memberBadge,children:`MEMBER`}),i&&(0,D.jsx)(`span`,{className:K.memberPillNew,children:`+ NEW`}),a&&!i&&(0,D.jsx)(`span`,{className:K.memberPillUp,children:`↑ PROMOTED`}),o&&(0,D.jsx)(`span`,{className:K.memberPillDown,children:`↓ DEMOTED`})]}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:t.role})]}),s&&!r&&(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.memberRowMenuBtn,"aria-label":`Actions for ${t.name}`,children:(0,D.jsx)(er,{size:14})}),items:CB(e)})]})},TB=(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}},EB=(e,t)=>t.some(t=>e.some(e=>e.id===t)),DB=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)})`},OB=(e,t)=>{let[r,i]=(0,n.useState)(e.members),[a,o]=(0,n.useState)(e.adminIds),[s,c]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{t&&(i(e.members),o(e.adminIds),c(!1))},[t,e.id,e.members,e.adminIds]),{members:r,adminIds:a,adding:s,diff:TB(e.members,e.adminIds,r,a),adminCount:a.filter(e=>r.some(t=>t.id===e)).length,setAdding:c,addMember:e=>{i(t=>[...t,e]),c(!1)},removeMember:e=>{i(t=>t.filter(t=>t.id!==e)),o(t=>t.filter(t=>t!==e))},makeAdmin:e=>{o(t=>t.includes(e)?t:[...t,e])},removeAdmin:e=>{o(t=>t.filter(t=>t!==e))},undoRemove:e=>{i(t=>[...t,e])}}},kB=({member:e,onUndo:t})=>(0,D.jsxs)(`div`,{className:K.removedRow,children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.removedName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:K.undoBtn,onClick:t,children:[(0,D.jsx)(zr,{size:12}),` Undo`]})]}),AB=e=>{let{conversation:t,draftMembers:n,draftAdminIds:r,diff:i,adminCount:a,iAmAdmin:o}=e,{viewerId:s}=e;return(0,D.jsxs)(`div`,{className:K.membersBody,children:[i.total>0&&(0,D.jsxs)(`div`,{className:K.unsavedBar,children:[i.total,` unsaved `,i.total===1?`change`:`changes`]}),o&&(0,D.jsxs)(`button`,{type:`button`,className:K.addMemberCta,onClick:e.onAddClick,children:[(0,D.jsx)(ni,{size:14}),` Add member`]}),(0,D.jsxs)(`div`,{className:K.membersSectionLabel,children:[`MEMBERS · `,n.length]}),(0,D.jsxs)(`div`,{className:K.membersList,children:[(0,D.jsx)(Wg,{initial:!1,children:n.map(t=>(0,D.jsx)(wB,{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)(A.div,{variants:zy,initial:`hidden`,animate:`visible`,children:[(0,D.jsxs)(`div`,{className:K.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)(kB,{member:r,onUndo:()=>{e.onUndoRemove(r)}},n)})]})]})]})},jB=({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)(gi,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,D.jsx)(gi,{variant:i?`danger`:`primary`,isLoading:t,disabled:e.total===0,onClick:r,children:DB(e)})]})},MB=({conversation:e,open:t,onClose:n})=>{let r=tF(e.id),i=OB(e,t),{data:a}=KP(),o=a?.id??``,s=()=>{if(i.diff.total===0){n();return}if(!EB(i.members,i.adminIds)){j.error(`A group must keep at least one admin`);return}r.mutate({members:i.members,adminIds:i.adminIds},{onSuccess:()=>{j.success(`Members updated`),n()}})},c=i.members.length===1?`member`:`members`,l=i.adminCount===1?`admin`:`admins`;return(0,D.jsx)(Wy,{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)(jB,{diff:i.diff,saving:r.isPending,onCancel:n,onSave:s}),children:i.adding?(0,D.jsx)(SB,{excludeIds:i.members.map(e=>e.id),onAdd:i.addMember,onBack:()=>{i.setAdding(!1)}}):(0,D.jsx)(AB,{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})})},NB=({open:e,canDeleteForEveryone:t,onDeleteForMe:n,onDeleteForEveryone:r,onCancel:i})=>(0,D.jsx)(Wy,{open:e,onOpenChange:e=>{e||i()},title:`Delete message?`,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(gi,{variant:`ghost`,onClick:i,children:`Cancel`}),(0,D.jsx)(gi,{variant:`secondary`,onClick:n,children:`Delete for me`}),t&&(0,D.jsx)(gi,{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.`}),PB=e=>e===1?`typing…`:`${String(e)} people typing…`,FB=({conversationId:e})=>{let t=tP(t=>t.typingUserIds(e,Date.now()).length);return(0,D.jsx)(Wg,{children:t>0&&(0,D.jsxs)(A.div,{className:K.typingRow,variants:Vy,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`span`,{className:K.typingDots,"aria-hidden":!0,children:[(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{})]}),(0,D.jsx)(`span`,{className:K.typingText,children:PB(t)})]})})},IB=()=>{let e=tP(e=>e.status);if(e===`connected`||e===`connecting`)return null;let t=e===`reconnecting`?`Reconnecting…`:`Offline`;return(0,D.jsxs)(`span`,{className:K.connPill,children:[(0,D.jsx)(ai,{size:12}),` `,t]})},LB=20*1024*1024,RB=(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}},zB=()=>{let[e,t]=(0,n.useState)([]),r=(0,n.useRef)([]);return r.current=e,(0,n.useEffect)(()=>()=>{for(let e of r.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl)},[]),{items:e,add:e=>{let n=10-r.current.length;if(n<=0){j.error(`You can attach up to 10 files at once.`);return}let{accepted:i,skippedOversize:a,overflowed:o}=RB(Array.from(e),n,LB);if(a&&j.error(`That file is over the 20 MB limit — please send a smaller file.`),o&&j.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 n=r.current.find(t=>t.id===e);n!==void 0&&n.previewUrl!==null&&URL.revokeObjectURL(n.previewUrl),t(t=>t.filter(t=>t.id!==e))},clear:()=>{for(let e of r.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl);t([])}}},BB=(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=``)}}},VB=[`👍`,`🎉`,`❤️`,`😂`,`🙌`,`👏`],HB=[`😀`,`😄`,`😁`,`😂`,`😍`,`😎`,`🤝`,`🙏`,`👍`,`👏`,`🙌`,`🔥`,`🎉`,`⭐`,`✅`,`❤️`,`💡`,`📌`,`🚀`,`😢`],UB=({onPick:e})=>{let[t,r]=(0,n.useState)(!1);return(0,D.jsxs)(`div`,{className:K.emojiWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:K.composerIcon,"aria-label":`Insert emoji`,"aria-expanded":t,onClick:()=>{r(e=>!e)},children:(0,D.jsx)(qr,{size:18})}),(0,D.jsx)(Wg,{children:t&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:K.emojiBackdrop,"aria-label":`Close emoji picker`,onClick:()=>{r(!1)}}),(0,D.jsx)(A.div,{className:K.emojiPop,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:HB.map(t=>(0,D.jsx)(`button`,{type:`button`,className:K.emojiBtn,onClick:()=>{e(t),r(!1)},children:t},t))})]})})]})},WB=({replyTo:e,onClear:t})=>(0,D.jsxs)(`div`,{className:K.replyBar,children:[(0,D.jsxs)(`span`,{className:K.replyBarText,children:[`Replying to `,e.authorName,`: `,Wz(e.text)]}),(0,D.jsx)(`button`,{type:`button`,className:K.replyBarClose,"aria-label":`Cancel reply`,onClick:t,children:(0,D.jsx)(oi,{size:16})})]}),GB=({attachments:e,onRemove:t,onAddMore:n})=>(0,D.jsxs)(A.div,{className:K.attachTray,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.16},children:[e.map(e=>(0,D.jsxs)(`div`,{className:K.attachItem,children:[e.previewUrl===null?(0,D.jsxs)(`div`,{className:K.attachFile,children:[(0,D.jsx)(or,{size:20}),(0,D.jsx)(`span`,{className:K.attachFileName,children:e.file.name})]}):(0,D.jsx)(`img`,{className:K.attachThumb,src:e.previewUrl,alt:e.file.name}),(0,D.jsx)(`button`,{type:`button`,className:K.attachRemove,"aria-label":`Remove ${e.file.name}`,onClick:()=>{t(e.id)},children:(0,D.jsx)(oi,{size:13})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:K.attachAdd,"aria-label":`Add more files`,onClick:n,children:(0,D.jsx)(Mr,{size:20})})]}),KB=({fileRef:e,onAttach:t,onFileChange:n})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:e,type:`file`,multiple:!0,className:K.hiddenFileInput,accept:`image/*,video/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv,.zip`,onChange:n}),(0,D.jsx)(`button`,{type:`button`,className:K.composerIcon,"aria-label":`Attach files`,onClick:t,children:(0,D.jsx)(Tr,{size:18})})]}),qB=({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=fi(`(max-width: 1024px)`),m=di(e,4e3);return(0,D.jsxs)(`div`,{className:K.composer,children:[(0,D.jsx)(UB,{onPick:t=>{o(e+t)}}),(0,D.jsx)(KB,{fileRef:a,onAttach:u,onFileChange:d}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`},children:[(0,D.jsx)(`textarea`,{className:T(K.composerInput,m.isOverLimit&&K.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:K.sendBtn,"aria-label":n?`Send attachments`:`Send message`,disabled:r||!i||m.isOverLimit,onClick:f,children:(0,D.jsx)(Vr,{size:16})})]})},JB=({editingText:e,onClear:t})=>(0,D.jsxs)(`div`,{className:K.replyBar,children:[(0,D.jsx)(Or,{size:15,style:{marginRight:6}}),(0,D.jsxs)(`span`,{className:K.replyBarText,children:[`Editing message: `,Wz(e)]}),(0,D.jsx)(`button`,{type:`button`,className:K.replyBarClose,"aria-label":`Cancel edit`,onClick:t,children:(0,D.jsx)(oi,{size:16})})]}),YB=({value:e,isSending:t,title:r,replyTo:i,editingMessage:a=null,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})=>{let f=(0,n.useRef)(null),p=zB(),m=p.items.length>0,h=m||e.trim().length>0,{openPicker:g,send:_,handleKeyDown:v,handlePaste:y,onFileChange:b}=BB(p,e,f,{onSubmit:s,onSendMedia:u});return(0,D.jsxs)(D.Fragment,{children:[a!==null&&l!==void 0&&(0,D.jsx)(JB,{editingText:a.text,onClear:l}),i!==null&&(0,D.jsx)(WB,{replyTo:i,onClear:c}),m&&(0,D.jsx)(GB,{attachments:p.items,onRemove:p.remove,onAddMore:g}),(0,D.jsx)(qB,{value:e,title:r,hasAttachments:m,isSending:t,canSend:h,fileRef:f,onChange:o,onTyping:d,onKeyDown:v,onPaste:y,onAttach:g,onFileChange:b,onSend:_})]})},XB=({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)(FB,{conversationId:t}),(0,D.jsx)(YB,{value:n,isSending:a,title:e.title,replyTo:r,editingMessage:i,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})]}),ZB=(e,t,n,r)=>(e[t]?.[n]??0)>=r,QB=(e,t,n)=>ZB(t,e,`read`,n)?`read`:ZB(t,e,`delivered`,n)?`delivered`:`sent`,$B=(e,t,n)=>e.length===0?`sent`:e.every(e=>ZB(t,e,`read`,n))?`read`:e.every(e=>ZB(t,e,`delivered`,n))?`delivered`:`sent`,eV=(e,t)=>t.peerUserId===null?$B(t.otherMemberIds,t.receipts,e.sequence):QB(t.peerUserId,t.receipts,e.sequence),tV=(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)},nV=e=>{let t=e[0];return t===void 0?null:e.reduce((e,t)=>Math.min(e,t.sequence),t.sequence)},rV=e=>{let{getMessagesBefore:t}=bP(),r=HM(),[i,a]=(0,n.useState)(!0),[o,s]=(0,n.useState)(!1),c=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{a(!0),s(!1),c.current=!1},[e]),{loadOlder:(0,n.useCallback)(()=>{if(e===null||c.current||!i)return;let n=WP(e),o=nV(r.getQueryData(n)??[]);o!==null&&(c.current=!0,s(!0),P(t.execute(e,o,50)).then(e=>{r.setQueryData(n,t=>tV(t??[],e)),e.length<50&&a(!1)}).catch(()=>{}).finally(()=>{c.current=!1,s(!1)}))},[e,t,i,r]),hasMore:i,isLoadingOlder:o}},iV=80,aV=60,oV={tailKey:``,headKey:``,count:0,lastFromViewer:!1},sV=e=>{let t=e.at(-1);return{tailKey:t?.id??``,headKey:e[0]?.id??``,count:e.length,lastFromViewer:t?.fromViewer??!1}},cV=(e,t)=>{e!==null&&e.scrollTo({top:e.scrollHeight,behavior:t?`smooth`:`auto`})},lV=(e,t,r)=>{let i=(0,n.useRef)(null),[a,o]=(0,n.useState)(!0),[s,c]=(0,n.useState)(!1),l=(0,n.useRef)(oV),u=(0,n.useRef)(!0),d=(0,n.useRef)(null),f=(0,n.useRef)(r);f.current=r;let p=(0,n.useCallback)(e=>{cV(i.current,e),c(!1)},[]),m=(0,n.useCallback)(()=>{let e=i.current;if(e===null)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<iV;u.current=t,o(t),t&&c(!1),e.scrollTop<aV&&(d.current=e.scrollHeight,f.current())},[]);return(0,n.useLayoutEffect)(()=>{l.current=oV,u.current=!0,d.current=null,o(!0),c(!1)},[e]),(0,n.useLayoutEffect)(()=>{let e=sV(t),n=l.current;l.current=e;let r=i.current;if(e.tailKey===``||r===null)return;if(n.tailKey===``){cV(r,!1);return}let a=e.count>n.count,o=a&&e.tailKey!==n.tailKey;a&&e.headKey!==n.headKey&&d.current!==null&&(r.scrollTop+=r.scrollHeight-d.current,d.current=null),o&&(u.current||e.lastFromViewer)?(cV(r,!0),c(!1)):o&&c(!0)},[t]),(0,n.useEffect)(()=>{m()},[m]),{scrollRef:i,isAtBottom:a,hasNewBelow:s,scrollToBottom:p,onScroll:m}},uV={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`},dV=/\/feed\/posts\/([a-zA-Z0-9-]+)$/,fV=({title:e,body:t,authorName:n,authorInitials:r,authorColor:i,categoryLabel:a,categoryColor:o,link:s})=>{let c=Be();return(0,D.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault();let t=dV.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:uV.card,style:{textAlign:`left`},children:[(0,D.jsxs)(`div`,{className:uV.header,children:[(0,D.jsx)(wr,{size:10}),`Shared from News Feed`]}),(0,D.jsxs)(`div`,{className:uV.body,children:[(0,D.jsxs)(`div`,{className:uV.authorRow,children:[(0,D.jsx)(`span`,{className:uV.avatar,style:E({"--avatar-color":i}),children:r}),(0,D.jsxs)(`div`,{className:uV.authorInfo,children:[(0,D.jsx)(`div`,{className:uV.authorName,children:n}),a!==null&&o!==null&&(0,D.jsxs)(`div`,{className:uV.category,style:E({"--cat-color":o}),children:[(0,D.jsx)(`span`,{className:uV.catDot}),a]})]})]}),(0,D.jsx)(`div`,{className:uV.title,children:e}),(0,D.jsx)(`div`,{className:uV.snippet,children:t}),(0,D.jsx)(`div`,{className:uV.footer,children:`Open in News Feed >`})]})]})},pV=e=>e.startsWith(`blob:`),mV=e=>e.type.length>0?URL.createObjectURL(e):URL.createObjectURL(new Blob([e],{type:`image/jpeg`})),hV=e=>{let{downloadChatMedia:t}=bP(),[r,i]=(0,n.useState)(!1),a=e!==null&&pV(e),o=e!==null&&!a?e:null,s=rN({queryKey:[`chat-media`,o],queryFn:()=>P(t.execute(o??``)),enabled:o!==null&&o.length>0,staleTime:1/0,gcTime:12e4,retry:1}),[c,l]=(0,n.useState)(null);(0,n.useEffect)(()=>{i(!1),l(null)},[e]),(0,n.useEffect)(()=>{let e=s.data;if(e===void 0)return;let t=mV(e);return l(t),()=>{URL.revokeObjectURL(t)}},[s.data]);let u=(0,n.useCallback)(()=>{i(!0)},[]);if(a)return{src:r?null:e,isLoading:!1,isError:r,onImageError:u};let d=s.isPending||s.isFetching;return{src:r?null:c,isLoading:d,isError:s.isError||r,onImageError:u}},gV=TE(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)}))}})),_V=({mediaUrl:e,album:t,index:n=0})=>{let{src:r,isLoading:i,isError:a,onImageError:o}=hV(e),s=gV(e=>e.openViewer);return a?(0,D.jsxs)(`div`,{className:K.msgMediaFallback,children:[(0,D.jsx)(dr,{size:18}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):r===null||i?(0,D.jsx)(`div`,{className:K.msgMediaLoading,children:(0,D.jsx)(mi,{size:`sm`})}):(0,D.jsx)(`button`,{type:`button`,className:T(K.mediaButton,t!==void 0&&K.mediaButtonFill),"aria-label":`Open image preview`,onClick:()=>{s(t??[e],n)},children:(0,D.jsx)(`img`,{className:K.msgMedia,src:r,alt:``,onError:o})})},vV=e=>(e??``).toLowerCase().split(`.`).pop()??``,yV=[`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`,`avif`,`heic`],bV=(e,t)=>e!==null&&e.length>0?e.startsWith(`image/`):yV.includes(vV(t)),xV={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`},SV=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`},CV=(e,t)=>bV(e,t)?`image`:SV(e??``)??xV[vV(t)]??`generic`,wV={image:`Image`,pdf:`PDF Document`,archive:`Archive`,document:`Document`,spreadsheet:`Spreadsheet`,presentation:`Presentation`,audio:`Audio`,video:`Video`,generic:`File`},TV=e=>wV[e],EV={image:rr,pdf:or,archive:tr,document:or,spreadsheet:ar,presentation:Nr,audio:nr,video:ir,generic:sr},DV=(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)},OV=({mediaUrl:e,contentType:t,fileName:r,fromViewer:i})=>{let{downloadChatMedia:a}=bP(),[o,s]=(0,n.useState)(!1),c=CV(t,r),l=EV[c],u=r!==null&&r.length>0?r:`Attachment`,d=(0,n.useCallback)(()=>{s(!0),a.execute(e).then(e=>{s(!1),e.ok?DV(e.value,u):j.error(`Could not download the file.`)})},[a,e,u]);return(0,D.jsxs)(`button`,{type:`button`,className:T(K.fileCard,i?K.fileCardMe:K.fileCardThem),onClick:d,disabled:o,"aria-label":`Download ${u}`,children:[(0,D.jsx)(`span`,{className:K.fileCardIcon,children:(0,D.jsx)(l,{size:22})}),(0,D.jsxs)(`span`,{className:K.fileCardInfo,children:[(0,D.jsx)(`span`,{className:K.fileCardName,children:u}),(0,D.jsx)(`span`,{className:K.fileCardMetaLabel,children:TV(c)})]}),(0,D.jsx)(`span`,{className:K.fileCardDownload,children:o?(0,D.jsx)(mi,{size:`sm`}):(0,D.jsx)($n,{size:16})})]})},kV=({tick:e})=>e===`read`?(0,D.jsx)(`span`,{className:T(K.tick,K.tickRead),"aria-label":`Read`,children:(0,D.jsx)(Hn,{size:13})}):e===`delivered`?(0,D.jsx)(`span`,{className:K.tick,"aria-label":`Delivered`,children:(0,D.jsx)(Hn,{size:13})}):(0,D.jsx)(`span`,{className:K.tick,"aria-label":`Sent`,children:(0,D.jsx)(Un,{size:13})}),AV=({message:e,pending:t,tick:n,onRetry:r})=>t===`sending`?(0,D.jsx)(`span`,{className:K.tick,"aria-label":`Sending`,children:(0,D.jsx)(Zn,{size:13})}):t===`failed`?(0,D.jsxs)(`span`,{className:K.sendFailed,children:[(0,D.jsx)(`span`,{className:K.sendFailedText,children:`Not delivered`}),(0,D.jsx)(`button`,{type:`button`,className:K.retryBtn,onClick:()=>{e.clientMessageId!==null&&r(e.clientMessageId,e.text)},children:`Retry`})]}):n===null?null:(0,D.jsx)(kV,{tick:n}),jV=({initial:e,onSave:t})=>{let[r,i]=(0,n.useState)(e);return(0,D.jsxs)(`span`,{className:K.msgActions,children:[(0,D.jsx)(`input`,{className:K.composerInput,value:r,onChange:e=>{i(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{r.trim().length>0&&t(r.trim())},children:`Save`})]})},MV=({message:e,fromViewer:t,onReply:r,onEdit:i,onDelete:a,resolvedReplyTo:o=null})=>{let[s,c]=(0,n.useState)(!1),l=Gz(e,o);return Zz(e)?(0,D.jsx)(`span`,{className:K.msgActions}):t?s?(0,D.jsx)(jV,{initial:e.text,onSave:t=>{i(e.id,t),c(!1)}}):(0,D.jsxs)(`span`,{className:K.msgActions,children:[(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{r(l)},children:`Reply`}),e.canEdit(Date.now())&&(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{c(!0)},children:`Edit`}),(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{a(e.id)},children:`Delete`})]}):(0,D.jsx)(`span`,{className:K.msgActions,children:(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{r(l)},children:`Reply`})})},NV=`This message was deleted`,PV=({message:e})=>{let t=e.mediaUrl;return t===null||t.length===0?null:bV(e.mediaContentType,e.mediaFileName)?(0,D.jsx)(_V,{mediaUrl:t}):(0,D.jsx)(OV,{mediaUrl:t,contentType:e.mediaContentType,fileName:e.mediaFileName,fromViewer:e.fromViewer})},FV=({replyTo:e})=>{let t=Uz(e.text);if(t!==null)return(0,D.jsx)(`div`,{style:{marginBottom:6,display:`block`,width:`100%`},children:(0,D.jsx)(fV,{...t.card})});let n=e.text.trim().length>0;return(0,D.jsxs)(`span`,{className:K.replyPreview,children:[e.authorName.length>0&&(0,D.jsx)(`span`,{className:K.replyPreviewAuthor,children:e.authorName}),(0,D.jsx)(`span`,{className:K.replyPreviewText,children:n?Wz(e.text):`Message`})]})},IV=({message:e,fromViewer:t,deletedForEveryone:n,pending:r,tick:i,onRetry:a})=>{let o=jN();return(0,D.jsxs)(`span`,{className:K.msgMeta,children:[(0,D.jsx)(`span`,{className:K.msgTime,children:hP(e.sentAt,o.display)||e.time}),!n&&e.isEdited&&(0,D.jsx)(`span`,{className:K.editedLabel,children:`edited`}),t&&(e.kind===`text`||e.kind===`media`)&&(0,D.jsx)(AV,{message:e,pending:r,tick:i,onRetry:a})]})},LV=/(https?:\/\/[^\s]+)/g,RV=({text:e})=>e?(0,D.jsx)(D.Fragment,{children:e.split(LV).map((e,t)=>e.match(LV)?(0,D.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:K.msgLink,children:e},t):(0,D.jsx)(n.Fragment,{children:e},t))}):(0,D.jsx)(D.Fragment,{children:e}),zV=({sharedComment:e,sharedCardProps:t})=>(0,D.jsxs)(D.Fragment,{children:[e.length>0&&(0,D.jsx)(`span`,{className:T(K.msgText,K.msgTextWithCard),children:(0,D.jsx)(RV,{text:e})}),(0,D.jsx)(fV,{...t})]}),BV=({messageText:e,deletedForEveryone:t})=>(0,D.jsx)(`span`,{className:T(K.msgText,t&&K.msgTextDeleted),children:t?NV:(0,D.jsx)(RV,{text:e})}),VV=({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:Uz(e.text);return(0,D.jsxs)(`div`,{className:T(K.bubble,i?K.bubbleMe:K.bubbleThem,l&&K.bubbleSelected),onClick:()=>{u!==void 0&&u(e)},children:[n&&(0,D.jsx)(`span`,{className:K.msgAuthor,children:t}),!a&&r!==null&&(0,D.jsx)(FV,{replyTo:r}),!a&&(0,D.jsx)(PV,{message:e}),d===null?(0,D.jsx)(BV,{messageText:e.text,deletedForEveryone:a}):(0,D.jsx)(zV,{sharedComment:d.comment,sharedCardProps:d.card}),(0,D.jsx)(IV,{message:e,fromViewer:i,deletedForEveryone:a,pending:o,tick:s,onRetry:c})]})},HV=({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,_=!Zz(e)&&!g,v=m!==null;return(0,D.jsxs)(D.Fragment,{children:[!h&&(a?(0,D.jsx)(`span`,{className:K.msgAvatar,style:E({"--avatar-color":t.color}),children:t.initials}):(0,D.jsx)(`span`,{className:K.msgAvatarSpacer,"aria-hidden":`true`})),(0,D.jsx)(`div`,{className:T(K.msgCol,v&&K.msgColWithReactions),children:(0,D.jsxs)(`div`,{className:K.msgBubbleWrap,children:[(0,D.jsx)(VV,{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)(MV,{message:e,fromViewer:h,onReply:u,onEdit:d,onDelete:f,resolvedReplyTo:n})]})})]})},UV=e=>e.trim().toLowerCase(),WV=(e,t)=>UV(e)===UV(t),GV=(e,t)=>{if(e.fromViewer)return{name:e.authorName,initials:e.authorInitials,color:e.authorColor};let n=t.members.find(t=>WV(t.id,e.senderId));return n===void 0?t.kind===`dm`&&t.peerUserId!==null&&WV(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}},KV=({align:e,onPick:t})=>{let[r,i]=(0,n.useState)(!1);return(0,D.jsxs)(`div`,{className:K.reactWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:K.reactBtn,"aria-label":`Add reaction`,onClick:()=>{i(e=>!e)},children:(0,D.jsx)(Kr,{size:14})}),(0,D.jsx)(Wg,{children:r&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:K.emojiBackdrop,"aria-label":`Close reaction picker`,onClick:()=>{i(!1)}}),(0,D.jsx)(A.div,{className:T(K.reactPop,e===`right`?K.reactPopRight:K.reactPopLeft),variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:VB.map(e=>(0,D.jsx)(`button`,{type:`button`,className:K.reactPopBtn,onClick:()=>{t(e),i(!1)},children:e},e))})]})})]})},qV=({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:T(K.reactionPill,n?K.reactionsMe:K.reactionsThem,i!==void 0&&K.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:K.reactionEmojis,children:e.reactions.map(e=>e.emoji).join(``)}),r>1&&(0,D.jsx)(`span`,{className:K.reactionCount,children:r})]})},JV=({text:e})=>(0,D.jsx)(A.div,{className:K.systemRow,variants:zy,initial:`hidden`,animate:`visible`,children:(0,D.jsx)(`span`,{className:K.systemPill,children:e})}),YV=(e,t,n)=>!e.deletedForEveryone&&e.reactions.length>0?(0,D.jsx)(qV,{message:e,onReact:n,fromViewer:t}):null,XV=({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)(JV,{text:t.text});let{fromViewer:h}=t,g=GV(t,e),_=T(K.msgRow,h&&K.msgRowMe,r&&K.msgRowGroupStart),v=(0,D.jsx)(HV,{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)(KV,{align:h?`right`:`left`,onPick:e=>{c(t.id,e)}}),reactions:YV(t,h,c)});return n?(0,D.jsx)(`div`,{id:`msg-${t.id}`,className:_,children:v}):(0,D.jsx)(A.div,{id:`msg-${t.id}`,className:_,variants:zy,initial:`hidden`,animate:`visible`,whileHover:{y:-1,scale:1.005},transition:{type:`spring`,stiffness:500,damping:30},children:v})},ZV=()=>void 0,QV=e=>e.find(e=>e.text.trim().length>0)?.text??``,$V=({fromViewer:e,lastOfGroup:t,identity:n})=>e?null:t?(0,D.jsx)(`span`,{className:K.msgAvatar,style:E({"--avatar-color":n.color}),children:n.initials}):(0,D.jsx)(`span`,{className:K.msgAvatarSpacer,"aria-hidden":`true`}),eH=({message:e,onReact:t,onReply:n,onDelete:r})=>(0,D.jsxs)(`div`,{className:K.albumCellActions,children:[(0,D.jsx)(KV,{align:e.fromViewer?`right`:`left`,onPick:n=>{t(e.id,n)}}),(0,D.jsx)(`button`,{type:`button`,className:K.albumActionBtn,"aria-label":`Reply`,onClick:()=>{n(Gz(e))},children:(0,D.jsx)(Rr,{size:13})}),e.fromViewer&&(0,D.jsx)(`button`,{type:`button`,className:K.albumActionBtn,"aria-label":`Delete`,onClick:()=>{r(e.id)},children:(0,D.jsx)(ei,{size:13})})]}),tH=e=>{let{message:t,album:n,index:r}=e,i=!Zz(t)&&!t.deletedForEveryone,a=!t.deletedForEveryone&&t.reactions.length>0;return(0,D.jsxs)(`div`,{id:`msg-${t.id}`,className:K.albumCell,children:[(0,D.jsx)(`div`,{className:K.albumCellMedia,children:t.mediaUrl!==null&&t.mediaUrl.length>0&&(0,D.jsx)(_V,{mediaUrl:t.mediaUrl,album:n,index:r})}),i&&(0,D.jsx)(eH,{...e}),a&&(0,D.jsx)(`div`,{className:K.albumCellReactions,children:(0,D.jsx)(qV,{message:t,onReact:e.onReact,fromViewer:t.fromViewer})})]})},nH=({last:e,fromViewer:t,tick:n,pending:r})=>{let i=jN();return(0,D.jsxs)(`span`,{className:K.msgMeta,children:[(0,D.jsx)(`span`,{className:K.msgTime,children:hP(e.sentAt,i.display)||e.time}),t&&(0,D.jsx)(AV,{message:e,pending:r,tick:n,onRetry:ZV})]})},rH=({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=GV(l,e),p=QV(t),m=n&&e.isGroup,h=t.map(e=>e.mediaUrl??``);return(0,D.jsxs)(`div`,{id:`msg-${u.id}`,className:T(K.msgRow,d&&K.msgRowMe,n&&K.msgRowGroupStart),children:[(0,D.jsx)($V,{fromViewer:d,lastOfGroup:r,identity:f}),(0,D.jsx)(`div`,{className:K.msgCol,children:(0,D.jsx)(`div`,{className:K.msgBubbleWrap,children:(0,D.jsxs)(`div`,{className:T(K.bubble,d?K.bubbleMe:K.bubbleThem),children:[m&&(0,D.jsx)(`span`,{className:K.msgAuthor,children:f.name}),(0,D.jsx)(`div`,{className:K.albumGrid,children:t.map((e,t)=>(0,D.jsx)(tH,{message:e,album:h,index:t,onReact:o,onReply:s,onDelete:c},e.id))}),p.length>0&&(0,D.jsx)(`span`,{className:K.msgText,children:p}),(0,D.jsx)(nH,{last:u,fromViewer:d,tick:i,pending:a})]})})})]})},iH=(e,t)=>{if(e.length===0)return null;let n=fP(e);if(Number.isNaN(n.getTime()))return null;if(t&&t.length>0){let e=SN(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}`},aH=(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`})},oH=(e,t)=>!e.isSystem&&!t.isSystem&&e.senderId===t.senderId,sH=(e,t)=>{let n=[],r=null;return e.forEach((i,a)=>{let o=iH(i.sentAt,t),s=o!==null&&o!==r;s&&n.push({kind:`date`,key:`date:${o}`,label:aH(o,t)}),r=o??r;let c=e[a-1],l=e[a+1],u=s||c===void 0||!oH(c,i),d=l===void 0||!oH(i,l)||iH(l.sentAt,t)!==o;n.push({kind:`message`,key:i.id,row:{message:i,firstOfGroup:u,lastOfGroup:d}})}),n},cH=2,lH=e=>e.kind===`message`&&e.row.message.kind===`media`&&!e.row.message.isSystem&&(e.row.message.mediaUrl??``).length>0&&bV(e.row.message.mediaContentType,e.row.message.mediaFileName),uH=(e,t)=>{let n=e.at(0),r=e.at(e.length-1);if(e.length>=cH&&n!==void 0&&r!==void 0){t.push({kind:`album`,key:`album:${n.row.message.id}`,messages:e.map(e=>e.row.message),firstOfGroup:n.row.firstOfGroup,lastOfGroup:r.row.lastOfGroup});return}t.push(...e)},dH=e=>{let t=[],n=[];for(let r of e){if(lH(r)){let e=n.at(-1);e!==void 0&&e.row.message.senderId!==r.row.message.senderId&&(uH(n,t),n=[]),n.push(r);continue}uH(n,t),n=[],t.push(r)}return uH(n,t),t},fH=(e,t)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||e.clientMessageId===null?null:t[e.clientMessageId]??null,pH=({label:e})=>(0,D.jsx)(`div`,{className:K.dateSep,children:(0,D.jsx)(`span`,{className:K.dateSepPill,children:e})}),mH=({conversation:e,messages:t,pending:r,selectedMessageId:i,onSelectMessage:a,onReact:o,onRetry:s,onReply:c,onEdit:l,onDelete:u,tickFor:d})=>{let f=jN(),p=(0,n.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]);return(0,D.jsx)(D.Fragment,{children:dH(sH(t,f.display)).map(t=>{if(t.kind===`date`)return(0,D.jsx)(pH,{label:t.label},t.key);if(t.kind===`album`){let n=t.messages.at(-1);return(0,D.jsx)(rH,{conversation:e,messages:t.messages,firstOfGroup:t.firstOfGroup,lastOfGroup:t.lastOfGroup,tick:n===void 0?null:d(n),pending:n===void 0?null:fH(n,r),onReact:o,onReply:c,onDelete:u},t.key)}return(0,D.jsx)(XV,{layoutStatic:!0,firstOfGroup:t.row.firstOfGroup,lastOfGroup:t.row.lastOfGroup,conversation:e,message:t.row.message,isSelected:i===t.row.message.id,onSelect:a,replyTo:qz(t.row.message.replyTo,p),onReact:o,pending:fH(t.row.message,r),tick:d(t.row.message),onRetry:s,onReply:c,onEdit:l,onDelete:u},t.key)})})},hH={id:`u-shamim`,name:`Shamim Rahman`,initials:`SR`,color:`#e9445a`},gH=`t-uapp`,_H={id:`u-andreea`,name:`Andreea Cinpoi`,initials:`AN`,color:`#7c3aed`,role:`Sales Manager`},vH={id:`u-laura`,name:`Laura Tomova`,initials:`LA`,color:`#3a7bd5`,role:`Compliance Officer`},yH={id:`s-mahmud`,name:`Mahmud Hasan`,initials:`MH`,color:`#16a34a`,role:`Student`},bH={id:`u-mihadul`,name:`Mihadul Islam`,initials:`MI`,color:`#65a30d`,role:`Admission Officer`},xH={id:`u-nur`,name:`Nur Mohammad`,initials:`NM`,color:`#8b5cf6`,role:`Team Leader`},SH={id:`u-md-shamim`,name:`Md Shamim`,initials:`MS`,color:`#0a6e6f`,role:`Sales Lead`};hH.id,hH.name,hH.initials,hH.color;var CH=(e,t)=>({...t,admin:!1,lastSynced:null,tenantId:gH,categoryId:null,members:[],adminIds:[],data:{},peerUserId:e,memberReceipts:[]});hH.id,yH.id,hH.id,bH.id,xH.id,yH.id,hH.id,SH.id,_H.id,hH.id,_H.id,vH.id,{...CH(`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`})},hH.id,CH(`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`}),CH(`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`}),CH(`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`}),CH(`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 wH=G({id:H(),name:H(),initials:H(),color:H(),role:H()}),TH=G({userId:H(),deliveredUpto:U(),readUpto:U()}),EH=G({id:H(),type:U(),title:H(),subtitle:H(),initials:H(),color:H(),online:NA(),unread:U(),pinned:NA(),favourite:NA(),archived:NA(),unreadCount:U(),admin:NA(),lastMessage:H(),lastTime:H(),lastMessageAt:H().nullable().optional(),lastSyncedAt:H().nullable(),categoryId:H().nullable(),headerFields:RA(H(),H()).optional(),members:W(wH),adminIds:W(H()),peerUserId:H().nullable().optional().default(null),memberReceipts:W(TH).optional().default([])}).passthrough(),DH=G({emoji:H(),count:U(),reacted:NA()}),OH=G({id:H(),conversationId:H(),kind:U(),senderId:H(),authorName:H(),authorInitials:H(),authorColor:H(),text:H(),sentAt:H(),time:H(),sequence:U(),clientMessageId:H().nullable(),fromViewer:NA(),reactions:W(DH),replyToMessageId:H().nullable().optional().default(null),replyToAuthorName:H().optional().default(``),replyToText:H().optional().default(``),mediaUrl:H().nullable().optional().default(null),mediaContentType:H().nullable().optional().default(null),mediaFileName:H().nullable().optional().default(null),editedAt:H().nullable().optional().default(null),isEdited:NA().optional().default(!1),deletedForEveryone:NA().optional().default(!1)}),kH=G({id:H(),name:H(),initials:H(),color:H()}),AH=W(EH),jH=W(wH),MH=G({totalCount:U(),items:AH}),NH=G({unread:U(),favourites:U(),groups:U(),archived:U()}),PH=G({blobName:H(),url:H(),contentType:H().optional().default(`application/octet-stream`),fileName:H().nullable().optional().default(null)}),FH=W(OH),IH=6e4,LH=60*IH,RH=24*LH,zH=(e,t)=>{let n=t.getTime()-e.getTime();return n<IH?`just now`:n<LH?`${String(Math.floor(n/IH))}m`:n<RH?`${String(Math.floor(n/LH))}h`:`${String(Math.floor(n/RH))}d`},BH=e=>e===0?`dm`:`group`,VH=e=>e===1?`system`:e===2?`media`:`text`,HH=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role}),UH=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color}),WH=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},GH=(e,t)=>new mP({id:e.id,kind:BH(e.type),title:e.title,subtitle:e.subtitle,initials:e.initials,color:e.color,online:e.online,unread:e.unreadCount,pinned:e.pinned,favourite:e.favourite,archived:e.archived,admin:e.admin,lastMessage:WH(e.lastMessage),lastTime:e.lastTime,lastMessageAt:e.lastMessageAt??null,lastSynced:e.lastSyncedAt===null?null:zH(new Date(e.lastSyncedAt),t),tenantId:``,categoryId:e.categoryId,members:e.members.map(HH),adminIds:e.adminIds,data:e.headerFields??{},peerUserId:e.peerUserId,memberReceipts:e.memberReceipts.map(e=>({userId:e.userId,deliveredUpto:e.deliveredUpto,readUpto:e.readUpto}))}),KH=e=>{let t=e.replyToMessageId!==null&&e.replyToMessageId.length>0?{messageId:e.replyToMessageId,authorName:e.replyToAuthorName,text:e.replyToText}:null;return new pP({id:e.id,kind:VH(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})},qH=(e,t,n)=>(e.error(`Chat ${t} returned an unexpected shape`,n),N(new rP(n))),JH=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}},YH=e=>{if(Array.isArray(e.validationErrors)){let t=JH(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},XH=e=>{if(!e||typeof e!=`object`||!(`body`in e))return;let t=e.body;if(!t||typeof t!=`object`)return;let n=t;return YH(`error`in n&&n.error&&typeof n.error==`object`?n.error:n)},ZH=(e,t)=>(e.error(`Chat request failed`,t),new rP(t,XH(t))),QH=(e,t,n)=>{let r=FH.safeParse(n);return r.success?M(r.data.map(KH)):qH(e,t,r.error)},$H=(e,t,n,r)=>{let i=EH.safeParse(r);return i.success?M(GH(i.data,t.now())):qH(e,n,i.error)},eU=`/api/app/chat-media/download?blobName=`,tU=e=>`${eU}${encodeURIComponent(decodeURIComponent(e))}`,nU=e=>{if(!e.startsWith(`http://`)&&!e.startsWith(`https://`))return e;try{let t=new URL(e);return`${t.pathname}${t.search}`}catch{return e}},rU=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},iU=e=>{let t=e.trim();if(t.length===0)return t;let n=nU(t),r=rU(n);return r===void 0?n.startsWith(`/`)?n:`/${n}`:tU(r)},aU={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`},oU={afterSequence:`afterSequence`,beforeSequence:`beforeSequence`,skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,scope:`scope`,uptoSequence:`uptoSequence`,favourite:`favourite`,archived:`archived`,pinned:`pinned`},sU=e=>encodeURIComponent(e),cU={conversation:e=>`/api/app/chat/conversation/${sU(e)}`,messages:e=>`/api/app/chat/messages/${sU(e)}`,messagesBefore:e=>`/api/app/chat/messages-before/${sU(e)}`,messagesSince:e=>`/api/app/chat/messages-since/${sU(e)}`,sendMessage:e=>`/api/app/chat/send-message/${sU(e)}`,sendMediaMessage:e=>`/api/app/chat/send-media-message/${sU(e)}`,markDelivered:e=>`/api/app/chat/mark-delivered/${sU(e)}`,markRead:e=>`/api/app/chat/mark-read/${sU(e)}`,reactToMessage:e=>`/api/app/chat/react-to-message/${sU(e)}`,saveMembers:e=>`/api/app/chat/save-members/${sU(e)}`,leaveConversation:e=>`/api/app/chat/leave-conversation/${sU(e)}`,setFavourite:e=>`/api/app/chat/set-favourite/${sU(e)}`,setArchived:e=>`/api/app/chat/set-archived/${sU(e)}`,setPinned:e=>`/api/app/chat/set-pinned/${sU(e)}`,deleteConversation:e=>`/api/app/chat/conversation/${sU(e)}`,refreshPortal:e=>`/api/app/chat/refresh-portal/${sU(e)}`,startDirect:e=>`/api/app/chat/start-direct/${sU(e)}`,editMessage:e=>`/api/app/chat/edit-message/${sU(e)}`,deleteMessage:e=>`/api/app/chat/message/${sU(e)}`,deleteMessageForMe:e=>`/api/app/chat/message-for-me/${sU(e)}`},lU=async(e,t,n,r)=>{try{let i=new FormData;i.append(`file`,n,r);let a=await e.httpClient.post(aU.uploadChatMedia,i,{query:{conversationId:t}}),o=PH.safeParse(a);return o.success?M({mediaId:o.data.blobName,url:o.data.url}):qH(e.logger,`upload-media`,o.error)}catch(t){return N(ZH(e.logger,t))}},uU=async(e,t)=>{try{let n=await lU(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(cU.sendMediaMessage(t.conversationId),r),a=OH.safeParse(i);return a.success?M(KH(a.data)):qH(e.logger,`send-media-message`,a.error)}catch(t){return N(ZH(e.logger,t))}},dU=async(e,t)=>{try{let n=iU(t),r=await e.httpClient.getBlob(n,{headers:{Accept:`image/*,*/*`}});return r.size===0?N(new rP(`Chat media response was empty`)):M(r)}catch(t){return N(ZH(e.logger,t))}},fU=async(e,t,n,r)=>{try{let t=await e.httpClient.post(cU.editMessage(n),{text:r}),i=OH.safeParse(t);return i.success?M(KH(i.data)):qH(e.logger,`edit-message`,i.error)}catch(t){return N(ZH(e.logger,t))}},pU=async(e,t,n)=>{try{return await e.httpClient.delete(cU.deleteMessage(n)),M(void 0)}catch(t){return N(ZH(e.logger,t))}},mU=async(e,t,n)=>{try{return await e.httpClient.delete(cU.deleteMessageForMe(n)),M(void 0)}catch(t){return N(ZH(e.logger,t))}},hU=async(e,t)=>{try{return await e.httpClient.post(aU.subscribePush,{endpoint:t.endpoint,p256dh:t.p256dh,auth:t.auth}),M(void 0)}catch(t){return N(ZH(e.logger,t))}},gU=async(e,t,n,r)=>{try{return await e.post(n,void 0,{query:r}),M(void 0)}catch(e){return N(ZH(t,e))}},_U=async e=>{try{return await e.httpClient.post(e.path,e.body,{query:e.query}),M(void 0)}catch(t){return N(ZH(e.logger,t))}},vU=async(e,t,n)=>{try{return await e.delete(n),M(void 0)}catch(e){return N(ZH(t,e))}},yU=(e,t,n)=>gU(e.httpClient,e.logger,cU.markDelivered(t),{[oU.uptoSequence]:n}),bU=(e,t,n)=>gU(e.httpClient,e.logger,cU.markRead(t),{[oU.uptoSequence]:n}),xU=(e,t,n)=>gU(e.httpClient,e.logger,cU.setFavourite(t),{[oU.favourite]:n}),SU=(e,t,n)=>gU(e.httpClient,e.logger,cU.setArchived(t),{[oU.archived]:n}),CU=(e,t,n)=>gU(e.httpClient,e.logger,cU.setPinned(t),{[oU.pinned]:n}),wU=(e,t)=>gU(e.httpClient,e.logger,cU.leaveConversation(t),{}),TU=(e,t)=>gU(e.httpClient,e.logger,cU.refreshPortal(t),{}),EU=(e,t,n)=>_U({httpClient:e.httpClient,logger:e.logger,path:cU.reactToMessage(t),query:{},body:{emoji:n}}),DU=(e,t,n,r)=>_U({httpClient:e.httpClient,logger:e.logger,path:cU.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]}}),OU=(e,t)=>vU(e.httpClient,e.logger,cU.deleteConversation(t)),kU={all:`All`,unread:`Unread`,favourites:`Favourites`,groups:`Groups`,archive:`Archive`},AU=async(e,t)=>{let n=t.filter?.trim();try{let r=await e.httpClient.get(aU.conversations,{query:{[oU.scope]:kU[t.scope],[oU.filter]:n===void 0||n===``?void 0:n,[oU.skipCount]:t.skipCount,[oU.maxResultCount]:t.maxResultCount}}),i=MH.safeParse(r);if(!i.success)return qH(e.logger,`conversations`,i.error);let a=e.clock.now();return M({items:i.data.items.map(e=>GH(e,a)),totalCount:i.data.totalCount})}catch(t){return N(ZH(e.logger,t))}},jU=async e=>{try{let t=await e.httpClient.get(aU.conversationCounts),n=NH.safeParse(t);return n.success?M(n.data):qH(e.logger,`conversation-counts`,n.error)}catch(t){return N(ZH(e.logger,t))}},MU=async(e,t)=>{try{let n=await e.httpClient.get(cU.conversation(t));return $H(e.logger,e.clock,`conversation`,n)}catch(t){return N(ZH(e.logger,t))}},NU=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.post(aU.listStaff,void 0,{query:{[oU.filter]:n===void 0||n===``?void 0:n}}),r=jH.safeParse(t);return r.success?M(r.data.map(HH)):qH(e.logger,`list-staff`,r.error)}catch(t){return N(ZH(e.logger,t))}},PU=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.get(aU.groupMemberPool,{query:{[oU.filter]:n===void 0||n===``?void 0:n}}),r=jH.safeParse(t);return r.success?M(r.data.map(HH)):qH(e.logger,`group-member-pool`,r.error)}catch(t){return N(ZH(e.logger,t))}},FU=async e=>{try{let t=await e.httpClient.get(aU.viewer),n=kH.safeParse(t);return n.success?M(UH(n.data)):qH(e.logger,`viewer`,n.error)}catch(t){return N(ZH(e.logger,t))}},IU=async(e,t,n)=>{try{let r=n===void 0?void 0:{query:{[oU.maxResultCount]:n}},i=await e.httpClient.get(cU.messages(t),r);return QH(e.logger,`messages`,i)}catch(t){return N(ZH(e.logger,t))}},LU=async(e,t,n,r)=>{try{let i=await e.httpClient.get(cU.messagesSince(t),{query:{[oU.afterSequence]:n,[oU.maxResultCount]:r}});return QH(e.logger,`messages-since`,i)}catch(t){return N(ZH(e.logger,t))}},RU=async(e,t,n,r)=>{try{let i=await e.httpClient.get(cU.messagesBefore(t),{query:{[oU.beforeSequence]:n,[oU.maxResultCount]:r}});return QH(e.logger,`messages-before`,i)}catch(t){return N(ZH(e.logger,t))}},zU=async(e,t)=>{try{let n=await e.httpClient.post(cU.startDirect(t),void 0);return $H(e.logger,e.clock,`start-direct`,n)}catch(t){return N(ZH(e.logger,t))}},BU=async(e,t,n)=>{try{let r={title:t,memberIds:[...n]},i=await e.httpClient.post(aU.createGroup,r);return $H(e.logger,e.clock,`group`,i)}catch(t){return N(ZH(e.logger,t))}},VU=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(cU.sendMessage(n),e),s=OH.safeParse(o);return s.success?M(KH(s.data)):qH(t.logger,`send-message`,s.error)}catch(e){return N(ZH(t.logger,e))}},HU=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 AU(this.queryDeps(),e)}getConversationCounts(){return jU(this.deps())}getConversation(e){return MU(this.queryDeps(),e)}listStaff(e){return NU(this.deps(),e)}getGroupMemberPool(e){return PU(this.deps(),e)}getViewer(){return FU(this.deps())}getMessages(e,t){return IU(this.deps(),e,t)}getMessagesSince(e,t,n){return LU(this.deps(),e,t,n)}getMessagesBefore(e,t,n){return RU(this.deps(),e,t,n)}startDirect(e){return zU(this.queryDeps(),e)}createGroup(e,t){return BU(this.queryDeps(),e,t)}sendMessage(e,t,n,r){return VU({deps:this.deps(),conversationId:e,text:t,clientMessageId:n,replyToMessageId:r})}uploadChatMedia(e,t,n){return lU(this.deps(),e,t,n)}sendMediaMessage(e){return uU(this.deps(),e)}downloadMedia(e){return dU(this.deps(),e)}editMessage(e,t,n){return fU(this.deps(),e,t,n)}deleteMessage(e,t){return pU(this.deps(),e,t)}deleteMessageForMe(e,t){return mU(this.deps(),e,t)}subscribePush(e){return hU(this.deps(),e)}markDelivered(e,t){return yU(this.deps(),e,t)}markRead(e,t){return bU(this.deps(),e,t)}setFavourite(e,t){return xU(this.deps(),e,t)}setArchived(e,t){return SU(this.deps(),e,t)}setPinned(e,t){return CU(this.deps(),e,t)}deleteConversation(e){return OU(this.deps(),e)}leaveConversation(e){return wU(this.deps(),e)}refreshPortal(e){return TU(this.deps(),e)}reactToMessage(e,t,n){return EU(this.deps(),t,n)}saveMembers(e,t,n){return DU(this.deps(),e,t,n)}};function UU(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function WU(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=UU(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var GU;function KU(){return GU||=WU(`keyval-store`,`keyval`),GU}function qU(e,t=KU()){return t(`readonly`,t=>UU(t.get(e)))}function JU(e,t,n=KU()){return n(`readwrite`,n=>(n.put(t,e),UU(n.transaction)))}function YU(e,t=KU()){return t(`readwrite`,t=>(t.delete(e),UU(t.transaction)))}function XU(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},UU(e.transaction)}function ZU(e=KU()){return e(`readonly`,e=>{if(e.getAllKeys)return UU(e.getAllKeys());let t=[];return XU(e,e=>t.push(e.key)).then(()=>t)})}var QU=WU(`chat-outbox`,`pending-sends`),$U=e=>`send:${e}`,eW=()=>({put:async e=>{await JU($U(e.clientMessageId),e,QU)},remove:async e=>{await YU($U(e),QU)},listAll:async()=>{let e=await ZU(QU);return(await Promise.all(e.map(async e=>qU(e,QU)))).filter(e=>e!==void 0)},listByConversation:async e=>{let t=await ZU(QU);return(await Promise.all(t.map(async e=>qU(e,QU)))).filter(t=>t?.conversationId===e)}}),tW={MessageReceived:`MessageReceived`,MessageEdited:`MessageEdited`,MessageDeleted:`MessageDeleted`,MessageDelivered:`MessageDelivered`,MessageRead:`MessageRead`,Typing:`Typing`,PresenceChanged:`PresenceChanged`,ReactionToggled:`ReactionToggled`,RemovedFromConversation:`RemovedFromConversation`},nW={MarkRead:`MarkRead`,MarkDelivered:`MarkDelivered`,Typing:`Typing`},rW=G({conversationId:H(),byUserId:H(),uptoSequence:U()}),iW=G({conversationId:H(),userId:H(),isTyping:NA()}),aW=G({userId:H(),online:NA(),lastSeenUtc:H().nullable()}),oW=G({conversationId:H(),messageId:H(),byUserId:H(),emoji:H(),added:NA()}),sW=G({conversationId:H(),messageId:H()}),cW=G({conversationId:H()}),lW=(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},uW=(e,t,n)=>lW(OH,e,t,n),dW=(e,t,n)=>lW(rW,e,t,n),fW=(e,t,n)=>lW(iW,e,t,n),pW=(e,t,n)=>lW(aW,e,t,n),mW=(e,t,n)=>lW(oW,e,t,n),hW=(e,t,n)=>lW(sW,e,t,n),gW=(e,t,n)=>lW(cW,e,t,n),_W=`chat.hidden-messages`,vW=W(H()),yW=()=>{try{let e=window.localStorage.getItem(_W);if(e===null)return[];let t=vW.safeParse(JSON.parse(e));return t.success?t.data:[]}catch{return[]}},bW=e=>{try{window.localStorage.setItem(_W,JSON.stringify(e))}catch{}},xW=TE((e,t)=>({hidden:new Set(yW()),hideForMe:n=>{if(t().hidden.has(n))return;let r=new Set(t().hidden);r.add(n),bW([...r]),e({hidden:r})}})),SW=(e,t)=>t.length>0&&WV(e,t),CW=(e,t)=>{let n=SW(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})},wW=(e,t)=>t.length===0?e:e.map(e=>CW(e,t)),TW=[],EW=({isLoadingOlder:e,hasMessages:t})=>!t||!e?null:(0,D.jsx)(`div`,{className:K.olderRow,children:(0,D.jsx)(mi,{size:`sm`,label:`Loading older messages`})}),DW=(e,t,n,r)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||Zz(e)?null:eV(e,{peerUserId:t,otherMemberIds:n,receipts:r}),OW=({conversation:e,viewerId:t,messages:r,selectedMessageId:i,onSelectMessage:a,onReact:o,onRetry:s,onReply:c,onEdit:l,onDelete:u})=>{let d=e.id,f=xW(e=>e.hidden),p=(0,n.useMemo)(()=>wW(r.data??TW,t).filter(e=>!f.has(e.id)),[r.data,t,f]),m=tP(e=>e.receipts[d]),h=tP(e=>e.pending),g=e.members.map(e=>e.id).filter(e=>e!==t),_=rV(d),v=lV(d,p,_.loadOlder);return(0,D.jsxs)(`div`,{className:K.threadWrap,children:[(0,D.jsx)(`div`,{className:K.messages,ref:v.scrollRef,onScroll:v.onScroll,children:(0,D.jsxs)(`div`,{className:K.thread,children:[(0,D.jsx)(EW,{isLoadingOlder:_.isLoadingOlder,hasMessages:p.length>0}),r.isPending&&(0,D.jsx)(`div`,{className:K.center,children:(0,D.jsx)(mi,{label:`Loading messages`})}),r.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load messages`,children:r.error.message}),p.length>0&&(0,D.jsx)(mH,{conversation:e,messages:p,pending:h,selectedMessageId:i,onSelectMessage:a,tickFor:t=>DW(t,e.peerUserId,g,m??{}),onReact:o,onRetry:s,onReply:c,onEdit:l,onDelete:u})]})}),v.hasNewBelow&&(0,D.jsxs)(`button`,{type:`button`,className:T(K.newPill),onClick:()=>{v.scrollToBottom(!0)},children:[(0,D.jsx)(Wn,{size:14}),`New messages`]})]})},kW=e=>(0,D.jsx)(OW,{...e}),AW=(e,t,r,i)=>{let[a,o]=(0,n.useState)(null),s=()=>{o(null)};return{requestDelete:t=>{o(e.find(e=>e.id===t)??null)},dialogProps:{open:a!==null,canDeleteForEveryone:a?.canDeleteForEveryone(i.now().getTime())??!1,onDeleteForMe:()=>{a!==null&&r(a.id),s()},onDeleteForEveryone:()=>{a!==null&&t(a.id),s()},onCancel:s}}},jW=`now`,MW=(e,t,n)=>{e.outbox.put({clientMessageId:t.clientMessageId,conversationId:e.conversationId,text:t.text,failedAt:n})},NW=(e,t,n)=>{e.queryClient.setQueryData(WP(e.conversationId),r=>nB(r,eB({viewer:t,text:n.text,clientMessageId:n.clientMessageId,sequence:Qz(r??[])+1,timeLabel:jW,sentAt:e.clock.now().toISOString(),replyTo:n.replyTo??null}))),e.store.getState().markSending(n.clientMessageId),MW(e,n,null)},PW=(e,t,n)=>{e.queryClient.setQueryData(WP(e.conversationId),e=>rB(e,t)),e.store.getState().clearPending(n),e.outbox.remove(n),kP(e.queryClient)},FW=(e,t,n)=>P(t.execute(e.conversationId,n.text,n.clientMessageId,n.replyToMessageId)),IW=e=>{let{sendMessage:t,outbox:r,clock:i}=bP(),a=HM(),o=eP(),s=KP().data??null,c={queryClient:a,store:o,outbox:r,conversationId:e,clock:i},l=iN({mutationFn:e=>FW(c,t,e),onMutate:e=>{s!==null&&NW(c,s,e)},onSuccess:(e,t)=>{PW(c,e,t.clientMessageId)},onError:(e,t)=>{j.error(e instanceof Error?e.message:`Failed to send message`),o.getState().markFailed(t.clientMessageId),MW(c,t,c.clock.now().toISOString()),j.error(e.message)}}),u=(0,n.useCallback)(()=>{r.listByConversation(e).then(e=>{for(let t of e)t.failedAt!==null&&(o.getState().markSending(t.clientMessageId),l.mutate({text:t.text,clientMessageId:t.clientMessageId}))})},[e,l,r,o]);return(0,n.useEffect)(()=>{let e=()=>{u()};return window.addEventListener(`online`,e),()=>{window.removeEventListener(`online`,e)}},[u]),{send:(0,n.useCallback)((e,t=null)=>{l.mutate({text:e,clientMessageId:crypto.randomUUID(),replyToMessageId:t?.messageId??null,replyTo:t})},[l]),retry:(0,n.useCallback)((e,t)=>{o.getState().markSending(e),l.mutate({text:t,clientMessageId:e})},[l,o]),isSending:l.isPending}},LW=(e,t)=>{let n=e.then(t,t);return{run:n,next:n.then(()=>void 0,()=>void 0)}},RW=(e,t)=>{let n=e.get(t);n!==void 0&&(e.delete(t),globalThis.setTimeout(()=>{URL.revokeObjectURL(n)},250))},zW=(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(WP(e.conversationId),e=>nB(e,tB({viewer:n,fileUrl:r,caption:t.caption??``,clientMessageId:t.clientMessageId,sequence:Qz(e??[])+1,sentAt:i,contentType:t.file.type,fileName:t.fileName}))),e.store.getState().markSending(t.clientMessageId)},BW=(e,t,n)=>{e.queryClient.setQueryData(WP(e.conversationId),e=>rB(e,t)),e.store.getState().clearPending(n),RW(e.urls,n),kP(e.queryClient)},VW=(e,t)=>{let n=Xz(t.clientMessageId);e.queryClient.setQueryData(WP(e.conversationId),e=>e?.filter(e=>e.id!==n)??[]),e.store.getState().clearPending(t.clientMessageId),RW(e.urls,t.clientMessageId),j.error(`Couldn't send ${t.fileName}.`)},HW=e=>{let{sendMediaMessage:t,clock:r}=bP(),i=HM(),a=eP(),o=KP().data??null,s=(0,n.useRef)(new Map),c=(0,n.useRef)(Promise.resolve()),l={queryClient:i,store:a,viewer:o,conversationId:e,nowIso:()=>r.now().toISOString(),urls:s.current},u=iN({mutationFn:e=>{let{run:n,next:r}=LW(c.current,()=>P(t.execute(e)));return c.current=r,n},onMutate:e=>{zW(l,e)},onSuccess:(e,t)=>{BW(l,e,t.clientMessageId)},onError:(e,t)=>{VW(l,t)}});return{sendMedia:(0,n.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}};u.mutate(i)},[e,u]),isSending:u.isPending}},UW=(e,t)=>{let r=VP(),i=(0,n.useRef)({conversationId:null,upto:0,acknowledge:(e,t)=>{}});i.current.acknowledge=(e,t)=>{r.mutate({conversationId:e,uptoSequence:t})},(0,n.useEffect)(()=>{if(e===null||t===void 0||t.length===0)return;let n=$z(t),r=i.current;r.conversationId===e&&n<=r.upto||(r.conversationId=e,r.upto=n,r.acknowledge(e,n))},[e,t])},WW=2e3,GW=3e3,KW=e=>{let{realtime:t,logger:r}=bP(),i=tP(e=>e.status===`connected`),a=(0,n.useRef)(0),o=(0,n.useRef)(!1),s=(0,n.useRef)(null),c=(0,n.useCallback)(n=>{e===null||!i||t.invoke(nW.Typing,e,n).catch(()=>{r.debug(`Typing signal dropped (best-effort)`)})},[e,i,t,r]),l=(0,n.useCallback)(()=>{s.current!==null&&(clearTimeout(s.current),s.current=null)},[]),u=(0,n.useCallback)(()=>{l(),o.current&&(o.current=!1,a.current=0,c(!1))},[l,c]),d=(0,n.useCallback)(()=>{let e=Date.now();(!o.current||e-a.current>WW)&&(o.current=!0,a.current=e,c(!0)),l(),s.current=setTimeout(u,GW)},[l,c,u]);return(0,n.useEffect)(()=>u,[e,u]),{onInput:d,stop:u}},qW=e=>{let{subscribePush:t}=bP();(0,n.useEffect)(()=>{!e||!(`serviceWorker`in navigator)||`PushManager`in window},[e,t])},JW=()=>{let[e,t]=(0,n.useState)(``),[r,i]=(0,n.useState)(null),[a,o]=(0,n.useState)(null);return{text:e,setText:t,replyTo:r,setReplyTo:i,editingMessage:a,setEditingMessage:o}},YW=({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}),XW=e=>{let t=qP(e),n=IW(e),r=HW(e),i=iF(e),a=aF(e),o=oF(e),s=sF(e),c=xW(e=>e.hideForMe),l=KW(e),u=JW();return qW(!0),UW(e,t.data),YW({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}})},ZW=()=>(0,D.jsxs)(`div`,{className:K.removedComposer,children:[(0,D.jsx)(Nn,{size:15}),(0,D.jsx)(`span`,{children:`You can no longer send messages here — you’re no longer a member of this group.`})]}),QW=({conversation:e,conversationId:t,active:n,removed:r})=>r?(0,D.jsx)(ZW,{}):(0,D.jsx)(XB,{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}),$W=({conversation:e,conversationId:t,actions:r,onRequestDelete:i,onRequestLeave:a})=>{let o=GL(),s=KP(),{clock:c}=bP(),l=XW(t),u=AW(l.messages.data??[],l.onDelete,l.onDeleteForMe,c),d=tP(e=>e.isRemovedFromConversation(t)),[f,p]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null);return(0,n.useEffect)(()=>{h(null)},[t]),(0,D.jsxs)(`div`,{className:K.view,children:[(0,D.jsx)(xB,{conversation:e,categories:o.data??[],actions:r,statusPill:(0,D.jsx)(IB,{}),onManageMembers:()=>{p(!0)},onRequestDelete:i,onRequestLeave:a,selectedMessage:m,onClearSelection:()=>{h(null)},onReply:l.setReplyTo,onStartEdit:l.startEdit,onDelete:u.requestDelete}),(0,D.jsx)(kW,{conversation:e,viewerId:s.data?.id??``,messages:l.messages,selectedMessageId:m?.id??null,onSelectMessage:e=>{h(t=>t?.id===e.id?null:e)},onReact:l.onReact,onRetry:l.send.retry,onReply:l.setReplyTo,onEdit:l.onEdit,onDelete:u.requestDelete}),(0,D.jsx)(QW,{conversation:e,conversationId:t,active:l,removed:d}),e.isGroup&&(0,D.jsx)(MB,{conversation:e,open:f,onClose:()=>{p(!1)}}),(0,D.jsx)(NB,{...u.dialogProps})]})},eG=()=>(0,D.jsxs)(`div`,{className:K.viewEmpty,children:[(0,D.jsx)(`div`,{className:K.emptyIconWrap,children:(0,D.jsx)(Nn,{size:32})}),(0,D.jsx)(`h3`,{className:K.emptyTitle,children:`No longer available`}),(0,D.jsx)(`p`,{className:K.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.`})]}),tG=()=>{let e=jy(0),t=jy(0),n=Ry(e,{stiffness:60,damping:20}),r=Ry(t,{stiffness:60,damping:20}),i=Py(n,[-1,1],[-25,25]),a=Py(r,[-1,1],[-25,25]),o=Py(n,[-1,1],[20,-20]),s=Py(r,[-1,1],[-15,15]),c=Py(n,[-1,1],[-15,15]),l=Py(r,[-1,1],[20,-20]);return(0,D.jsxs)(`div`,{className:K.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)(A.div,{className:K.emptyFloating1,style:{x:i,y:a},children:(0,D.jsx)(xr,{size:24})}),(0,D.jsx)(A.div,{className:K.emptyFloating2,style:{x:o,y:s},children:(0,D.jsx)(Jr,{size:20})}),(0,D.jsx)(A.div,{className:K.emptyFloating3,style:{x:c,y:l},children:(0,D.jsx)(Vr,{size:16})}),(0,D.jsx)(`div`,{className:K.emptyIconWrap,children:(0,D.jsx)(br,{size:32})}),(0,D.jsx)(`h3`,{className:K.emptyTitle,children:`Your Messages`}),(0,D.jsx)(`p`,{className:K.emptyText,children:`Select a conversation from the sidebar or start a new chat.`})]})},nG=({conversation:e,conversationId:t,lostAccess:r,actions:i,onRequestDelete:a,onRequestLeave:o})=>{let s=eP();return(0,n.useEffect)(()=>(s.getState().setActiveConversationId(t),()=>{s.getState().setActiveConversationId(null)}),[t,s]),e===void 0||t===null?r?(0,D.jsx)(eG,{}):(0,D.jsx)(tG,{}):(0,D.jsx)(A.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},transition:{type:`spring`,stiffness:350,damping:28},className:K.viewPaneWrapper,children:(0,D.jsx)($W,{conversation:e,conversationId:t,actions:i,onRequestDelete:a,onRequestLeave:o})},t)},rG=({mediaUrl:e})=>{let{src:t,isLoading:n,isError:r,onImageError:i}=hV(e);return r?(0,D.jsxs)(`div`,{className:K.viewerFallback,children:[(0,D.jsx)(dr,{size:30}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):t===null||n?(0,D.jsx)(mi,{label:`Loading image`}):(0,D.jsx)(`img`,{className:K.viewerImg,src:t,alt:``,onError:i})},iG=(e,t,r,i)=>{(0,n.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`?t():e.key===`ArrowRight`?r():e.key===`ArrowLeft`&&i()};return window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,n)}},[e,t,r,i])},aG=()=>{let e=gV(e=>e.open),t=gV(e=>e.urls),n=gV(e=>e.index),r=gV(e=>e.close),a=gV(e=>e.next),o=gV(e=>e.prev);iG(e,r,a,o);let s=t[n];if(!e||s===void 0)return null;let c=t.length>1;return(0,i.createPortal)((0,D.jsxs)(`div`,{className:K.viewerBackdrop,role:`dialog`,"aria-modal":`true`,"aria-label":`Image preview`,children:[(0,D.jsx)(`button`,{type:`button`,className:K.viewerScrim,"aria-label":`Close preview`,onClick:r}),(0,D.jsx)(`button`,{type:`button`,className:K.viewerClose,"aria-label":`Close preview`,onClick:r,children:(0,D.jsx)(oi,{size:22})}),c&&(0,D.jsx)(`button`,{type:`button`,className:T(K.viewerNav,K.viewerNavPrev),"aria-label":`Previous image`,disabled:n===0,onClick:o,children:(0,D.jsx)(Gn,{size:26})}),(0,D.jsx)(`div`,{className:K.viewerStage,children:(0,D.jsx)(rG,{mediaUrl:s})}),c&&(0,D.jsx)(`button`,{type:`button`,className:T(K.viewerNav,K.viewerNavNext),"aria-label":`Next image`,disabled:n===t.length-1,onClick:a,children:(0,D.jsx)(Kn,{size:26})}),c&&(0,D.jsxs)(`span`,{className:K.viewerCount,children:[n+1,` / `,t.length]})]}),document.body)},oG=()=>{let e=YP(),t=ZP(),n=XP(),r=QP(),i=$P(),a=eF();return{toggleFavourite:t=>{e.mutate({id:t.id,value:!t.favourite},{onSuccess:()=>{j.success(t.favourite?`Removed from Favourites`:`Added to Favourites`)}})},togglePin:e=>{t.mutate({id:e.id,value:!e.pinned},{onSuccess:()=>{j.success(e.pinned?`Unpinned`:`Pinned to top`)}})},toggleArchive:e=>{n.mutate({id:e.id,value:!e.archived},{onSuccess:()=>{j.success(e.archived?`Chat unarchived`:`Chat archived`)}})},remove:e=>{r.mutate(e,{onSuccess:()=>{j.success(`Chat deleted`)}})},leave:e=>{i.mutate(e.id,{onSuccess:()=>{j.success(`You left "${e.title}"`)}})},refresh:e=>{a.mutate(e.id,{onSuccess:()=>{j.success(`Portal data refreshed`)}})}}},sG=e=>{let t=eP();(0,n.useEffect)(()=>{let{seedReceipts:n}=t.getState();for(let t of e)n(t.id,t.memberReceipts)},[t,e])},cG=[],lG=(e,t,n)=>{let r=TP(e,t),i=TP(e,``),a=EP(),o=r.data??cG,s=i.data??cG,c=n??s[0]?.id??o[0]?.id??null,l=OP(c);return sG(o),{conversations:r,counts:a.data,list:o,activeId:c,active:l.data??o.find(e=>e.id===c),lostAccess:n!==null&&l.isError}},uG=`/comms/chats`,dG=(e,t,r)=>{let[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)(null);return{pendingDelete:i,pendingLeave:o,requestDelete:a,requestLeave:s,confirmDelete:()=>{i!==null&&(e.remove(i.id),i.id===t&&r(uG)),a(null)},confirmLeave:()=>{o!==null&&(e.leave(o),o.id===t&&r(uG)),s(null)},cancelDelete:()=>{a(null)},cancelLeave:()=>{s(null)}}},fG=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,pG=`--`,mG=e=>e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``),hG=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return t+`=`.repeat((4-t.length%4)%4)},gG=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 mG(btoa(n))},_G=e=>{let t;try{t=atob(hG(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)}`},vG=e=>fG.test(e)?gG(e):`~${mG(btoa(e))}`,yG=e=>{if(e.startsWith(`~`))try{return atob(hG(e.slice(1)))}catch{return null}return _G(e)},bG=e=>{let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,40);return t.length>0?t:`chat`},xG=(e,t)=>`/comms/chats/${bG(t)}${pG}${vG(e)}`,SG=e=>{let t=e.indexOf(pG),n=t>=0?e.slice(t+2):e;return fG.test(n)?n:yG(n)},CG=()=>{let e=Ue(),[t,r]=(0,n.useState)(`all`),[i,a]=(0,n.useState)(``),o=uF(i,250),{conversationId:s}=We(),c=s===void 0?null:SG(s),{conversations:l,counts:u,list:d,activeId:f,active:p,lostAccess:m}=lG(t,o,c),h=oG(),g=Be(),_=dG(h,c,g);return l.isPending?(0,D.jsx)(OF,{}):l.isSuccess?(0,D.jsxs)(`div`,{className:T(K.root,c!==null&&K.hasActiveChat),children:[(0,D.jsx)(EF,{conversations:d,activeId:f,actions:h,filter:{tab:t,onTabChange:r,search:i,onSearchChange:a,counts:u},hasNextPage:l.hasNextPage,isFetchingNextPage:l.isFetchingNextPage,onLoadMore:l.fetchNextPage,onRequestDelete:_.requestDelete,onSelect:e=>{g(xG(e,d.find(t=>t.id===e)?.title??``))}}),(0,D.jsx)(nG,{conversation:p,conversationId:f,lostAccess:m,actions:h,onRequestDelete:_.requestDelete,onRequestLeave:_.requestLeave}),(0,D.jsx)(ZE,{pendingDelete:_.pendingDelete,pendingLeave:_.pendingLeave,onConfirmDelete:_.confirmDelete,onConfirmLeave:_.confirmLeave,onCancelDelete:_.cancelDelete,onCancelLeave:_.cancelLeave}),(0,D.jsx)(aG,{}),e]}):(0,D.jsx)(`div`,{className:K.fullCenter,children:(0,D.jsx)(vi,{tone:`error`,title:`Could not load chats`,children:l.error?.message??`Please try again.`})})},wG=`/comms/chats`,TG=()=>(0,D.jsxs)(St,{children:[(0,D.jsxs)(bt,{path:wG,element:(0,D.jsx)(CG,{}),children:[(0,D.jsx)(bt,{index:!0,element:null}),(0,D.jsx)(bt,{path:`:conversationId`,element:null})]}),(0,D.jsx)(bt,{path:`*`,element:(0,D.jsx)(yt,{to:wG,replace:!0})})]}),EG=e.n((e=>{var t=require("react-dom");if(process.env.NODE_ENV===`production`)e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot;else{var n=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;e.createRoot=function(e,r){n.usingClientEntryPoint=!0;try{return t.createRoot(e,r)}finally{n.usingClientEntryPoint=!1}},e.hydrateRoot=function(e,r,i){n.usingClientEntryPoint=!0;try{return t.hydrateRoot(e,r,i)}finally{n.usingClientEntryPoint=!1}}}}))(),DG=`__COMMHUB_SDK_CSS__`,OG,kG=()=>{let e=globalThis[DG];return typeof e==`string`?e:``},AG=()=>typeof CSSStyleSheet==`function`&&typeof CSSStyleSheet.prototype.replaceSync==`function`,jG=()=>{let e=kG();if(e===``||!AG())return[];if(OG===void 0)try{let t=new CSSStyleSheet;t.replaceSync(e),OG=t}catch{OG=null}return OG===null?[]:[OG]},MG=()=>{let e=kG();if(e===``)return null;let t=document.createElement(`style`);return t.textContent=e,t},NG=`commhub-widget-root`;function PG(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=jG();if(t.length>0)e.adoptedStyleSheets=[...t];else{let t=MG();t!==null&&e.appendChild(t)}this.mountPoint=document.createElement(`div`),this.mountPoint.className=NG,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,EG.createRoot)(this.mountPoint),this.reactRoot.render(t(this)))}}customElements.define(e,r)}var FG={notice:`_notice_184jj_6`,title:`_title_184jj_23`,detail:`_detail_184jj_29`},IG=({tagName:e,detail:t})=>(0,D.jsxs)(`div`,{className:FG.notice,role:`alert`,children:[(0,D.jsxs)(`strong`,{className:FG.title,children:[`<`,e,`> could not start: invalid configuration`]}),(0,D.jsx)(`span`,{className:FG.detail,children:t})]}),LG=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)}},RG=e=>{let t=new lz({storage:new LG,logger:e.logger,namespace:e.storageNamespace});return uz({completeSsoLoginUseCase:new VR({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),logoutUseCase:new HR({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),restoreSessionUseCase:new UR({authGateway:e.authGateway,sessionStore:t,clock:e.clock,logger:e.logger}),refreshSessionUseCase:new WR({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),setAccessToken:e.setAccessToken,loginUrl:``})},zG=`sdk_signed`,BG=`assertion`,VG=`CommunicationHub`,HG=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=[VG,...e.modules].join(` `)}exchangeSsoSecret(e){return e.trim().length===0||this.clientKey.trim().length===0?Promise.resolve(N(new IR)):this.requestToken({grant_type:zG,client_id:this.clientKey,[BG]:e,scope:this.scope})}refresh(e){return Promise.resolve(N(new LR(`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(QR,e,{anonymous:!0}),n=GR.safeParse(t);return n.success?ZR(n.data,this.clock.now()):(this.logger.error(`Token endpoint returned an unexpected shape`,n.error),N(new LR(n.error)))}catch(e){return e instanceof WO&&e.isClientError()?(this.logger.warn(`Signed assertion was rejected`,{status:e.status}),N(new IR)):(this.logger.error(`Failed to exchange signed assertion`,{error:e}),N(new LR(e)))}}},UG=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(N(new IR));try{let t=YR(e);if(CD(t))return this.logger.error(`Invalid JWT token provided by host`,t.error),Promise.resolve(N(new LR(`Invalid host token provided.`)));let n=t.value.exp;if(typeof n!=`number`)return Promise.resolve(N(new LR(`Host token missing or invalid exp claim.`)));let r=n-Math.floor(this.clock.now().getTime()/1e3);return r<=0?Promise.resolve(N(new LR(`Host token is already expired.`))):Promise.resolve(ZR({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(N(new LR(e)))}}refresh(e){return Promise.resolve(N(new LR(`host-token does not support traditional refresh tokens.`)))}signOut(e){return Promise.resolve()}},WG={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`},GG=class extends ci{},KG=class extends GG{code=`MODULE_ACCESS_UNAVAILABLE`;constructor(e){super(`Your menu access could not be loaded. Please try again.`,{cause:e})}},qG=[`commhub.chat`,`commhub.bookings`,`commhub.schedule`,`commhub.feed`],JG={"commhub.chat":WG.chat,"commhub.feed":WG.feed,"commhub.schedule":WG.schedule,"commhub.bookings":WG.meetings},YG=e=>Object.hasOwn(JG,e),XG=e=>qG.filter(t=>e.has(JG[t])),ZG=(e,t)=>e.filter(e=>!t.has(JG[e])),QG=1e4,$G=1e3,eK=6e4,tK=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:XG(t)}});let n=ZG(this.deps.requestedModules,t);n.length>0&&this.deps.emit({type:`scope-denied`,payload:{required:[...n],granted:XG(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(eK,$G*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-QG))}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())})}},nK=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()}}},rK=class extends Error{constructor(e,t){let n=new.target.prototype;super(`${e}: Status code '${t}'`),this.statusCode=t,this.__proto__=n}},iK=class extends Error{constructor(e=`A timeout occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},aK=class extends Error{constructor(e=`An abort occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},oK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`UnsupportedTransportError`,this.__proto__=n}},sK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`DisabledTransportError`,this.__proto__=n}},cK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`FailedToStartTransportError`,this.__proto__=n}},lK=class extends Error{constructor(e){let t=new.target.prototype;super(e),this.errorType=`FailedToNegotiateWithServerError`,this.__proto__=t}},uK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.innerErrors=t,this.__proto__=n}},dK=class{constructor(e,t,n){this.statusCode=e,this.statusText=t,this.content=n}},fK=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``}},J;(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`})(J||={});var pK=class{constructor(){}log(e,t){}};pK.instance=new pK;var mK=`10.0.0`,hK=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}.`)}},gK=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 _K(e,t){let n=``;return yK(e)?(n=`Binary data of length ${e.byteLength}`,t&&(n+=`. Content: '${vK(e)}'`)):typeof e==`string`&&(n=`String data of length ${e.length}`,t&&(n+=`. Content: '${e}'`)),n}function vK(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 yK(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor&&e.constructor.name===`ArrayBuffer`)}async function bK(e,t,n,r,i,a){let o={},[s,c]=wK();o[s]=c,e.log(J.Trace,`(${t} transport) sending data. ${_K(i,a.logMessageContent)}.`);let l=yK(i)?`arraybuffer`:`text`,u=await n.post(r,{content:i,headers:{...o,...a.headers},responseType:l,timeout:a.timeout,withCredentials:a.withCredentials});e.log(J.Trace,`(${t} transport) request complete. Response status: ${u.statusCode}.`)}function xK(e){return e===void 0?new CK(J.Information):e===null?pK.instance:e.log===void 0?new CK(e):e}var SK=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=>{})}},CK=class{constructor(e){this._minLevel=e,this.out=console}log(e,t){if(e>=this._minLevel){let n=`[${new Date().toISOString()}] ${J[e]}: ${t}`;switch(e){case J.Critical:case J.Error:this.out.error(n);break;case J.Warning:this.out.warn(n);break;case J.Information:this.out.info(n);break;default:this.out.log(n);break}}}};function wK(){let e=`X-SignalR-User-Agent`;return gK.isNode&&(e=`User-Agent`),[e,TK(mK,EK(),OK(),DK())]}function TK(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 EK(){if(gK.isNode)switch(process.platform){case`win32`:return`Windows NT`;case`darwin`:return`macOS`;case`linux`:return`Linux`;default:return process.platform}else return``}function DK(){if(gK.isNode)return process.versions.node}function OK(){return gK.isNode?`NodeJS`:`Browser`}function kK(e){return e.stack?e.stack:e.message?e.message:`${e}`}function AK(){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 jK=class extends fK{constructor(e){if(super(),this._logger=e,typeof fetch>`u`||gK.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(AK());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 aK;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 aK});let r=null;if(e.timeout){let i=e.timeout;r=setTimeout(()=>{t.abort(),this._logger.log(J.Warning,`Timeout from HTTP request.`),n=new iK},i)}e.content===``&&(e.content=void 0),e.content&&(e.headers=e.headers||{},yK(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(J.Warning,`Error from HTTP request. ${e}.`),e)}finally{r&&clearTimeout(r),e.abortSignal&&(e.abortSignal.onabort=null)}if(!i.ok)throw new rK(await MK(i,`text`)||i.statusText,i.status);let a=await MK(i,e.responseType);return new dK(i.status,i.statusText,a)}getCookieString(e){let t=``;return gK.isNode&&this._jar&&this._jar.getCookies(e,(e,n)=>t=n.join(`; `)),t}};function MK(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 NK=class extends fK{constructor(e){super(),this._logger=e}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new aK):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&&(yK(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 aK)}),e.timeout&&(r.timeout=e.timeout),r.onload=()=>{e.abortSignal&&(e.abortSignal.onabort=null),r.status>=200&&r.status<300?t(new dK(r.status,r.statusText,r.response||r.responseText)):n(new rK(r.response||r.responseText||r.statusText,r.status))},r.onerror=()=>{this._logger.log(J.Warning,`Error from HTTP request. ${r.status}: ${r.statusText}.`),n(new rK(r.statusText,r.status))},r.ontimeout=()=>{this._logger.log(J.Warning,`Timeout from HTTP request.`),n(new iK)},r.send(e.content)}):Promise.reject(Error(`No url defined.`)):Promise.reject(Error(`No method defined.`))}},PK=class extends fK{constructor(e){if(super(),typeof fetch<`u`||gK.isNode)this._httpClient=new jK(e);else if(typeof XMLHttpRequest<`u`)this._httpClient=new NK(e);else throw Error(`No usable HttpClient found.`)}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new aK):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)}},FK=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}};FK.RecordSeparatorCode=30,FK.RecordSeparator=String.fromCharCode(FK.RecordSeparatorCode);var IK=class{writeHandshakeRequest(e){return FK.write(JSON.stringify(e))}parseHandshakeResponse(e){let t,n;if(yK(e)){let r=new Uint8Array(e),i=r.indexOf(FK.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(FK.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=FK.parse(t),i=JSON.parse(r[0]);if(i.type)throw Error(`Expected a handshake response from the server.`);return[n,i]}},LK;(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`})(LK||={});var RK=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 SK(this,e)}},zK=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=()=>{};yK(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 BK(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,yK(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===LK.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:LK.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 LK.Invocation:case LK.StreamItem:case LK.Completion:case LK.StreamInvocation:case LK.CancelInvocation:return!0;case LK.Close:case LK.Sequence:case LK.Ping:case LK.Ack:return!1}}_ackTimer(){this._ackTimerHandle===void 0&&(this._ackTimerHandle=setTimeout(async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:LK.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0},1e3))}},BK=class{constructor(e,t,n,r){this._message=e,this._id=t,this._resolver=n,this._rejector=r}},VK=30*1e3,HK=15*1e3,UK=1e5,WK;(function(e){e.Disconnected=`Disconnected`,e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Reconnecting=`Reconnecting`})(WK||={});var GK=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(J.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`)},hK.isRequired(e,`connection`),hK.isRequired(t,`logger`),hK.isRequired(n,`protocol`),this.serverTimeoutInMilliseconds=i??VK,this.keepAliveIntervalInMilliseconds=a??HK,this._statefulReconnectBufferSize=o??UK,this._logger=t,this._protocol=n,this.connection=e,this._reconnectPolicy=r,this._handshakeProtocol=new IK,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=WK.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:LK.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!==WK.Disconnected&&this._connectionState!==WK.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!==WK.Disconnected)return Promise.reject(Error(`Cannot start a HubConnection that is not in the 'Disconnected' state.`));this._connectionState=WK.Connecting,this._logger.log(J.Debug,`Starting HubConnection.`);try{await this._startInternal(),gK.isBrowser&&window.document.addEventListener(`freeze`,this._freezeEventListener),this._connectionState=WK.Connected,this._connectionStarted=!0,this._logger.log(J.Debug,`HubConnection connected successfully.`)}catch(e){return this._connectionState=WK.Disconnected,this._logger.log(J.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(J.Debug,`Sending handshake request.`),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(n)),this._logger.log(J.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 zK(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(J.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===WK.Disconnected)return this._logger.log(J.Debug,`Call to HubConnection.stop(${e}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===WK.Disconnecting)return this._logger.log(J.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=WK.Disconnecting,this._logger.log(J.Debug,`Stopping HubConnection.`),this._reconnectDelayHandle?(this._logger.log(J.Debug,`Connection stopped during reconnect delay. Done reconnecting.`),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(t===WK.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=e||new aK(`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 RK;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===LK.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===LK.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 LK.Invocation:this._invokeClientMethod(e).catch(e=>{this._logger.log(J.Error,`Invoke client method threw error: ${kK(e)}`)});break;case LK.StreamItem:case LK.Completion:{let t=this._callbacks[e.invocationId];if(t){e.type===LK.Completion&&delete this._callbacks[e.invocationId];try{t(e)}catch(e){this._logger.log(J.Error,`Stream callback threw error: ${kK(e)}`)}}break}case LK.Ping:break;case LK.Close:{this._logger.log(J.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 LK.Ack:this._messageBuffer&&this._messageBuffer._ack(e);break;case LK.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(e);break;default:this._logger.log(J.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(J.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(J.Error,e);let n=Error(e);throw this._handshakeRejecter(n),n}else this._logger.log(J.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===WK.Connected&&this._trySendPingMessage();return}this._pingServerHandle===void 0&&(e<0&&(e=0),this._pingServerHandle=setTimeout(async()=>{this._connectionState===WK.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(J.Warning,`No client method with the name '${t}' found.`),e.invocationId&&(this._logger.log(J.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(J.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(J.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(J.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(J.Error,`Result given for '${t}' method but server is not expecting a result.`)}_connectionClosed(e){this._logger.log(J.Debug,`HubConnection.connectionClosed(${e}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||e||new aK(`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===WK.Disconnecting?this._completeClose(e):this._connectionState===WK.Connected&&this._reconnectPolicy?this._reconnect(e):this._connectionState===WK.Connected&&this._completeClose(e)}_completeClose(e){if(this._connectionStarted){this._connectionState=WK.Disconnected,this._connectionStarted=!1,this._messageBuffer&&=(this._messageBuffer._dispose(e??Error(`Connection closed.`)),void 0),gK.isBrowser&&window.document.removeEventListener(`freeze`,this._freezeEventListener);try{this._closedCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(J.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(J.Debug,`Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.`),this._completeClose(e);return}if(this._connectionState=WK.Reconnecting,e?this._logger.log(J.Information,`Connection reconnecting because of error '${e}'.`):this._logger.log(J.Information,`Connection reconnecting.`),this._reconnectingCallbacks.length!==0){try{this._reconnectingCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(J.Error,`An onreconnecting callback called with error '${e}' threw error '${t}'.`)}if(this._connectionState!==WK.Reconnecting){this._logger.log(J.Debug,`Connection left the reconnecting state in onreconnecting callback. Done reconnecting.`);return}}for(;i!==null;){if(this._logger.log(J.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!==WK.Reconnecting){this._logger.log(J.Debug,`Connection left the reconnecting state during reconnect delay. Done reconnecting.`);return}try{if(await this._startInternal(),this._connectionState=WK.Connected,this._logger.log(J.Information,`HubConnection reconnected successfully.`),this._reconnectedCallbacks.length!==0)try{this._reconnectedCallbacks.forEach(e=>e.apply(this,[this.connection.connectionId]))}catch(e){this._logger.log(J.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`)}return}catch(e){if(this._logger.log(J.Information,`Reconnect attempt failed because of error '${e}'.`),this._connectionState!==WK.Reconnecting){this._logger.log(J.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),this._connectionState===WK.Disconnecting&&this._completeClose();return}n++,r=e instanceof Error?e:Error(e.toString()),i=this._getNextRetryDelay(n,Date.now()-t,r)}}this._logger.log(J.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(J.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(J.Error,`Stream 'error' callback called with '${e}' threw error: ${kK(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:LK.Invocation}:{target:e,arguments:t,streamIds:r,type:LK.Invocation};{let n=this._invocationId;return this._invocationId++,r.length===0?{target:e,arguments:t,invocationId:n.toString(),type:LK.Invocation}:{target:e,arguments:t,invocationId:n.toString(),streamIds:r,type:LK.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:LK.StreamInvocation}:{target:e,arguments:t,invocationId:r.toString(),streamIds:n,type:LK.StreamInvocation}}_createCancelInvocation(e){return{invocationId:e,type:LK.CancelInvocation}}_createStreamItemMessage(e,t){return{invocationId:e,item:t,type:LK.StreamItem}}_createCompletionMessage(e,t,n){return t?{error:t,invocationId:e,type:LK.Completion}:{invocationId:e,result:n,type:LK.Completion}}_createCloseMessage(){return{type:LK.Close}}async _trySendPingMessage(){try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}}},KK=[0,2e3,1e4,3e4,null],qK=class{constructor(e){this._retryDelays=e===void 0?KK:[...e,null]}nextRetryDelayInMilliseconds(e){return this._retryDelays[e.previousRetryCount]}},JK=class{};JK.Authorization=`Authorization`,JK.Cookie=`Cookie`;var YK=class extends fK{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[JK.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&e.headers[JK.Authorization]&&delete e.headers[JK.Authorization]}getCookieString(e){return this._innerClient.getCookieString(e)}},XK;(function(e){e[e.None=0]=`None`,e[e.WebSockets=1]=`WebSockets`,e[e.ServerSentEvents=2]=`ServerSentEvents`,e[e.LongPolling=4]=`LongPolling`})(XK||={});var ZK;(function(e){e[e.Text=1]=`Text`,e[e.Binary=2]=`Binary`})(ZK||={});var QK=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}},$K=class{get pollAborted(){return this._pollAbort.aborted}constructor(e,t,n){this._httpClient=e,this._logger=t,this._pollAbort=new QK,this._options=n,this._running=!1,this.onreceive=null,this.onclose=null}async connect(e,t){if(hK.isRequired(e,`url`),hK.isRequired(t,`transferFormat`),hK.isIn(t,ZK,`transferFormat`),this._url=e,this._logger.log(J.Trace,`(LongPolling transport) Connecting.`),t===ZK.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]=wK(),i={[n]:r,...this._options.headers},a={abortSignal:this._pollAbort.signal,headers:i,timeout:1e5,withCredentials:this._options.withCredentials};t===ZK.Binary&&(a.responseType=`arraybuffer`);let o=`${e}&_=${Date.now()}`;this._logger.log(J.Trace,`(LongPolling transport) polling: ${o}.`);let s=await this._httpClient.get(o,a);s.statusCode===200?this._running=!0:(this._logger.log(J.Error,`(LongPolling transport) Unexpected response code: ${s.statusCode}.`),this._closeError=new rK(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(J.Trace,`(LongPolling transport) polling: ${n}.`);let r=await this._httpClient.get(n,t);r.statusCode===204?(this._logger.log(J.Information,`(LongPolling transport) Poll terminated by server.`),this._running=!1):r.statusCode===200?r.content?(this._logger.log(J.Trace,`(LongPolling transport) data received. ${_K(r.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(r.content)):this._logger.log(J.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._logger.log(J.Error,`(LongPolling transport) Unexpected response code: ${r.statusCode}.`),this._closeError=new rK(r.statusText||``,r.statusCode),this._running=!1)}catch(e){this._running?e instanceof iK?this._logger.log(J.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._closeError=e,this._running=!1):this._logger.log(J.Trace,`(LongPolling transport) Poll errored after shutdown: ${e.message}`)}}finally{this._logger.log(J.Trace,`(LongPolling transport) Polling complete.`),this.pollAborted||this._raiseOnClose()}}async send(e){return this._running?bK(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(J.Trace,`(LongPolling transport) Stopping polling.`),this._running=!1,this._pollAbort.abort();try{await this._receiving,this._logger.log(J.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);let e={},[t,n]=wK();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 rK&&(i.statusCode===404?this._logger.log(J.Trace,`(LongPolling transport) A 404 response was returned from sending a DELETE request.`):this._logger.log(J.Trace,`(LongPolling transport) Error sending a DELETE request: ${i}`)):this._logger.log(J.Trace,`(LongPolling transport) DELETE request accepted.`)}finally{this._logger.log(J.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(J.Trace,e),this.onclose(this._closeError)}}},eq=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 hK.isRequired(e,`url`),hK.isRequired(t,`transferFormat`),hK.isIn(t,ZK,`transferFormat`),this._logger.log(J.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!==ZK.Text){r(Error(`The Server-Sent Events transport only supports the 'Text' transfer format`));return}let a;if(gK.isBrowser||gK.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]=wK();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(J.Trace,`(SSE transport) data received. ${_K(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(J.Information,`SSE connected to ${this._url}`),this._eventSource=a,i=!0,n()}}catch(e){r(e);return}})}async send(e){return this._eventSource?bK(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))}},tq=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){hK.isRequired(e,`url`),hK.isRequired(t,`transferFormat`),hK.isIn(t,ZK,`transferFormat`),this._logger.log(J.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(gK.isNode||gK.isReactNative){let t={},[r,i]=wK();t[r]=i,n&&(t[JK.Authorization]=`Bearer ${n}`),o&&(t[JK.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===ZK.Binary&&(a.binaryType=`arraybuffer`),a.onopen=t=>{this._logger.log(J.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(J.Information,`(WebSockets transport) ${t}.`)},a.onmessage=e=>{if(this._logger.log(J.Trace,`(WebSockets transport) data received. ${_K(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(J.Trace,`(WebSockets transport) sending data. ${_K(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(J.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`}},nq=100,rq=class{constructor(e,t={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,hK.isRequired(e,`url`),this._logger=xK(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(gK.isNode&&typeof require<`u`){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;n=e(`ws`),r=e(`eventsource`)}!gK.isNode&&typeof WebSocket<`u`&&!t.WebSocket?t.WebSocket=WebSocket:gK.isNode&&!t.WebSocket&&n&&(t.WebSocket=n),!gK.isNode&&typeof EventSource<`u`&&!t.EventSource?t.EventSource=EventSource:gK.isNode&&!t.EventSource&&r!==void 0&&(t.EventSource=r),this._httpClient=new YK(t.httpClient||new PK(this._logger),t.accessTokenFactory),this._connectionState=`Disconnected`,this._connectionStarted=!1,this._options=t,this.onreceive=null,this.onclose=null}async start(e){if(e||=ZK.Binary,hK.isIn(e,ZK,`transferFormat`),this._logger.log(J.Debug,`Starting connection with transfer format '${ZK[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(J.Error,e),await this._stopPromise,Promise.reject(new aK(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(J.Error,e),Promise.reject(new aK(e))}this._connectionStarted=!0}send(e){return this._connectionState===`Connected`?(this._sendQueue||=new aq(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(J.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(J.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(J.Error,`HttpConnection.transport.stop() threw error '${e}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(J.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===XK.WebSockets)this.transport=this._constructTransport(XK.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 aK(`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<nq);if(r===nq&&n.url)throw Error(`Negotiate redirection limit exceeded.`);await this._createTransport(t,this._options.transport,n,e)}this.transport instanceof $K&&(this.features.inherentKeepAlive=!0),this._connectionState===`Connecting`&&(this._logger.log(J.Debug,`The HttpConnection connected successfully.`),this._connectionState=`Connected`)}catch(e){return this._logger.log(J.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]=wK();t[n]=r;let i=this._resolveNegotiateUrl(e);this._logger.log(J.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 lK(`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 rK&&e.statusCode===404&&(t+=` Either this is not a SignalR endpoint or there is a proxy blocking the connection.`),this._logger.log(J.Error,t),Promise.reject(new lK(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(J.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(J.Error,`Failed to start the transport '${n.transport}': ${e}`),s=void 0,a.push(new cK(`${n.transport} failed: ${e}`,XK[n.transport])),this._connectionState!==`Connecting`){let e=`Failed to select transport before stop() was called.`;return this._logger.log(J.Debug,e),Promise.reject(new aK(e))}}}}return a.length>0?Promise.reject(new uK(`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 XK.WebSockets:if(!this._options.WebSocket)throw Error(`'WebSocket' is not supported in your environment.`);return new tq(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case XK.ServerSentEvents:if(!this._options.EventSource)throw Error(`'EventSource' is not supported in your environment.`);return new eq(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case XK.LongPolling:return new $K(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=XK[e.transport];if(i==null)return this._logger.log(J.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(iq(t,i))if(e.transferFormats.map(e=>ZK[e]).indexOf(n)>=0){if(i===XK.WebSockets&&!this._options.WebSocket||i===XK.ServerSentEvents&&!this._options.EventSource)return this._logger.log(J.Debug,`Skipping transport '${XK[i]}' because it is not supported in your environment.'`),new oK(`'${XK[i]}' is not supported in your environment.`,i);this._logger.log(J.Debug,`Selecting transport '${XK[i]}'.`);try{return this.features.reconnect=i===XK.WebSockets?r:void 0,this._constructTransport(i)}catch(e){return e}}else return this._logger.log(J.Debug,`Skipping transport '${XK[i]}' because it does not support the requested transfer format '${ZK[n]}'.`),Error(`'${XK[i]}' does not support ${ZK[n]}.`);else return this._logger.log(J.Debug,`Skipping transport '${XK[i]}' because it was disabled by the client.`),new sK(`'${XK[i]}' is disabled by the client.`,i)}_isITransport(e){return e&&typeof e==`object`&&`connect`in e}_stopConnection(e){if(this._logger.log(J.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(J.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(J.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(J.Error,`Connection disconnected with error '${e}'.`):this._logger.log(J.Information,`Connection disconnected.`),this._sendQueue&&=(this._sendQueue.stop().catch(e=>{this._logger.log(J.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(J.Error,`HttpConnection.onclose(${e}) threw error '${t}'.`)}}}_resolveUrl(e){if(e.lastIndexOf(`https://`,0)===0||e.lastIndexOf(`http://`,0)===0)return e;if(!gK.isBrowser)throw Error(`Cannot resolve '${e}'.`);let t=window.document.createElement(`a`);return t.href=e,this._logger.log(J.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 iq(e,t){return!e||(t&e)!==0}var aq=class e{constructor(e){this._transport=e,this._buffer=[],this._executing=!0,this._sendBufferedData=new oq,this._transportResult=new oq,this._sendLoopPromise=this._sendLoop()}send(e){return this._bufferData(e),this._transportResult||=new oq,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 oq;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}},oq=class{constructor(){this.promise=new Promise((e,t)=>[this._resolver,this._rejecter]=[e,t])}resolve(){this._resolver()}reject(e){this._rejecter(e)}},sq=`json`,cq=class{constructor(){this.name=sq,this.version=2,this.transferFormat=ZK.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=pK.instance);let n=FK.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 LK.Invocation:this._isInvocationMessage(n);break;case LK.StreamItem:this._isStreamItemMessage(n);break;case LK.Completion:this._isCompletionMessage(n);break;case LK.Ping:break;case LK.Close:break;case LK.Ack:this._isAckMessage(n);break;case LK.Sequence:this._isSequenceMessage(n);break;default:t.log(J.Information,`Unknown message type '`+n.type+`' ignored.`);continue}r.push(n)}return r}writeMessage(e){return FK.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)}},lq={trace:J.Trace,debug:J.Debug,info:J.Information,information:J.Information,warn:J.Warning,warning:J.Warning,error:J.Error,critical:J.Critical,none:J.None};function uq(e){let t=lq[e.toLowerCase()];if(t!==void 0)return t;throw Error(`Unknown log level: ${e}`)}var dq=class{configureLogging(e){if(hK.isRequired(e,`logging`),fq(e))this.logger=e;else if(typeof e==`string`){let t=uq(e);this.logger=new CK(t)}else this.logger=new CK(e);return this}withUrl(e,t){return hK.isRequired(e,`url`),hK.isNotEmpty(e,`url`),this.url=e,typeof t==`object`?this.httpConnectionOptions={...this.httpConnectionOptions,...t}:this.httpConnectionOptions={...this.httpConnectionOptions,transport:t},this}withHubProtocol(e){return hK.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 qK(e):this.reconnectPolicy=e:this.reconnectPolicy=new qK,this}withServerTimeout(e){return hK.isRequired(e,`milliseconds`),this._serverTimeoutInMilliseconds=e,this}withKeepAliveInterval(e){return hK.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 rq(this.url,e);return GK.create(t,this.logger||pK.instance,this.protocol||new cq,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}};function fq(e){return e.log!==void 0}var pq=15e3,mq=5,hq=(e,t=Math.random)=>{let n=Math.min(pq,1e3*2**Math.min(Math.max(e,0),mq));return Math.round(t()*n)},gq=class{nextRetryDelayInMilliseconds(e){return hq(e.previousRetryCount)}},_q=e=>({log(t,n){t>=J.Error?e.error(n):t>=J.Warning?e.warn(n):e.debug(n)}}),vq=e=>{switch(e){case WK.Connected:return`connected`;case WK.Connecting:return`connecting`;case WK.Reconnecting:return`reconnecting`;case WK.Disconnected:case WK.Disconnecting:return`disconnected`;default:return`disconnected`}},yq=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 dq().withUrl(e.url,{accessTokenFactory:()=>e.accessTokenProvider()??``}).withAutomaticReconnect(new gq).configureLogging(_q(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 vq(this.connection.state)}async start(){if(this.intentionallyStopped=!1,this.clearReconnectTimer(),this.connection.state===WK.Disconnecting)for(;this.connection.state===WK.Disconnecting;)await new Promise(e=>setTimeout(e,50));if(this.connection.state===WK.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=hq(this.reconnectAttempt);this.reconnectAttempt+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectNow()},e)}async reconnectNow(){if(this.reconnectTimer=null,!(this.intentionallyStopped||this.connection.state!==WK.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)}},bq=class{logger;constructor(e){this.logger=e.logger}create(e){return new yq(e,this.logger)}},xq=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()=>{}}},Sq=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}},Cq=`/api/app/sdk-capabilities`,wq=G({apiVersion:H(),modules:W(H())}),Tq=e=>{let t=new Set;for(let n of e.modules)YG(n)&&t.add(JG[n]);return{grantedModules:t,grantedPolicies:new Set,canManageUserAccess:!1}},Eq=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(Cq)}catch(e){return this.logger.error(`Failed to fetch SDK capabilities`,{error:e}),N(new KG(e))}let t=wq.safeParse(e);return t.success?M(Tq(t.data)):(this.logger.error(`Malformed capabilities response`,{error:t.error}),N(new KG(t.error)))}},Dq=e=>({getModuleAccess:new Sq({moduleAccessGateway:new Eq({httpClient:e.httpClient,logger:e.logger}),logger:e.logger}),gateMode:`fail-closed`}),Oq=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}},kq=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}},Aq=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}},jq=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}},Mq=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}},Nq=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}},Pq=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}},Fq=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}},Iq=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}},Lq=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`),N(new cP)):this.chatGateway.startDirect(t)}},Rq=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`),N(new oP)):t.length===0?(this.logger.warn(`Rejected group with no members`),N(new sP)):this.chatGateway.createGroup(n,t)}},zq=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}),N(new iP)):i.length>4e3?(this.logger.warn(`Rejected oversized message`,{conversationId:e}),N(new aP(4e3))):this.chatGateway.sendMessage(e,i,n,r)}},Bq=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)}},Vq=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)}},Hq=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)}},Uq=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)}},Wq=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)}},Gq=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)}},Kq=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)}},qq=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)}},Jq=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}),N(new rP)):this.chatGateway.reactToMessage(e,t,n)}},Yq=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)}},Xq=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}},Zq=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}},Qq=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}},$q=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}},eJ=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}},tJ=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}},nJ=e=>{let t={chatGateway:new HU({httpClient:e.httpClient,clock:e.clock,logger:e.logger}),logger:e.logger},n=eW();return{listConversations:new Oq(t),getConversation:new kq(t),getConversationCounts:new Aq(t),listStaff:new jq(t),getGroupMemberPool:new Mq(t),getViewer:new Nq(t),getMessages:new Pq(t),getMessagesSince:new Fq(t),getMessagesBefore:new Iq(t),startDirect:new Lq(t),createGroup:new Rq(t),sendMessage:new zq(t),sendMediaMessage:new $q(t),downloadChatMedia:new eJ(t),editMessage:new Xq(t),deleteMessage:new Zq(t),deleteMessageForMe:new Qq(t),subscribePush:new tJ(t),markDelivered:new Bq(t),markRead:new Vq(t),setFavourite:new Hq(t),setArchived:new Uq(t),setPinned:new Wq(t),deleteConversation:new Gq(t),leaveConversation:new Kq(t),refreshPortal:new qq(t),reactToMessage:new Jq(t),saveMembers:new Yq(t),clock:e.clock,realtime:e.realtime,realtimeStore:QN(),logger:e.logger.child(`chat-realtime`),outbox:n}},rJ=({module:e,children:t})=>(0,D.jsx)(yP.Provider,{value:e,children:(0,D.jsx)($N.Provider,{value:e.realtimeStore,children:t})}),iJ=e=>e.connection.on(tW.MessageReceived,t=>{let n=uW(t,tW.MessageReceived,e.logger);if(n===null)return;let r=e.viewerId()??``,i=CW(KH(n),r);e.queryClient.setQueryData(WP(n.conversationId),e=>Jz(e??[],i)),kP(e.queryClient)}),aJ=(e,t,n)=>e.connection.on(t,r=>{let i=dW(r,t,e.logger);i===null||i.byUserId===e.viewerId()||e.store.getState().applyReceipt(i.conversationId,i.byUserId,n,i.uptoSequence)}),oJ=e=>e.connection.on(tW.Typing,t=>{let n=fW(t,tW.Typing,e.logger);n===null||n.userId===e.viewerId()||e.store.getState().applyTyping(n.conversationId,n.userId,n.isTyping,Date.now())}),sJ=e=>e.connection.on(tW.ReactionToggled,t=>{let n=mW(t,tW.ReactionToggled,e.logger),r=e.viewerId();n===null||n.byUserId===r||e.queryClient.setQueryData(WP(n.conversationId),e=>e?.map(e=>e.id===n.messageId?IP(e,n,r??``):e))}),cJ=e=>e.connection.on(tW.MessageEdited,t=>{let n=uW(t,tW.MessageEdited,e.logger);if(n===null)return;let r=e.viewerId()??``,i=CW(KH(n),r);e.queryClient.setQueryData(WP(n.conversationId),e=>e?.map(e=>e.id===i.id?i:e)??[i])}),lJ=e=>e.connection.on(tW.MessageDeleted,t=>{let n=hW(t,tW.MessageDeleted,e.logger);n!==null&&(e.queryClient.setQueryData(WP(n.conversationId),e=>e?.map(e=>e.id===n.messageId?e.asDeletedForEveryone():e)??[]),kP(e.queryClient))}),uJ=e=>e.connection.on(tW.RemovedFromConversation,t=>{let n=gW(t,tW.RemovedFromConversation,e.logger);n!==null&&e.store.getState().markRemovedFromConversation(n.conversationId)}),dJ=e=>e.connection.on(tW.PresenceChanged,t=>{let n=pW(t,tW.PresenceChanged,e.logger);n!==null&&e.store.getState().applyPresence(n.userId,n.online,n.lastSeenUtc)}),fJ=e=>{let t=[iJ(e),cJ(e),lJ(e),aJ(e,tW.MessageDelivered,`delivered`),aJ(e,tW.MessageRead,`read`),oJ(e),dJ(e),sJ(e),uJ(e)];return()=>{for(let e of t)e()}},pJ=(e,t,n)=>{n.length!==0&&e.setQueryData(WP(t),e=>n.reduce((e,t)=>Jz(e,t),e??[]))},mJ=async(e,t,n,r)=>{let i=e.getState().activeConversationId;if(i===null){AP(t);return}let a=$z(t.getQueryData(WP(i))??[]);try{pJ(t,i,await P(n.execute(i,a,50)))}catch{r.warn(`Reconnect sync failed; conversation list will still refresh`)}AP(t)},hJ=()=>{let{realtime:e,getMessagesSince:t,logger:r}=bP(),i=eP(),a=HM();(0,n.useEffect)(()=>{let n=e.status;return e.onStatusChange(e=>{e===`connected`&&n!==`connected`&&mJ(i,a,t,r),n=e})},[e,i,a,t,r])},gJ=()=>{let{isAuthenticated:e}=mz(),{realtime:t,logger:r}=bP(),i=eP(),a=HM(),o=KP();hJ();let s=(0,n.useRef)(null);s.current=o.data?.id??null,(0,n.useEffect)(()=>t.onStatusChange(e=>{i.getState().setStatus(e)}),[t,i]),(0,n.useEffect)(()=>fJ({connection:t,store:i,queryClient:a,viewerId:()=>s.current,logger:r}),[t,i,a,r]),(0,n.useEffect)(()=>{if(!e){t.stop(),i.getState().clear();return}return t.start().catch(()=>{}),()=>{t.stop()}},[e,t,i])},_J=({children:e})=>(gJ(),(0,D.jsx)(D.Fragment,{children:e})),vJ=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}},yJ=class extends ci{},bJ=class extends yJ{code=`FEED_UNAVAILABLE`;constructor(e){super(`The news feed is currently unavailable. Please try again.`,{cause:e})}},xJ=class extends yJ{code=`FEED_EMPTY_POST`;constructor(){super(`Write something before posting.`)}},SJ=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;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}get totalReactions(){return this.reactions.like+this.reactions.insightful+this.reactions.celebrate}get needsAcknowledgement(){return this.mustAcknowledge&&!this.acknowledged}},CJ=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`),N(new xJ)):this.feedGateway.createPost({...e,body:e.body.trim()})}},wJ=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`),N(new xJ)):this.feedGateway.updatePost(e,{...t,body:t.body.trim()})}},TJ=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}},EJ=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}},DJ=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}},OJ=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}),N(new bJ);let n=await this.feedGateway.addComment(e,t.trim());return n.ok||this.logger.warn(`Adding comment failed`,{code:n.error.code}),n}},kJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listCategories()}},AJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listAudiences()}},jJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listFeelings()}},MJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.searchUsers(e)}},NJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.detectLocation()}},PJ=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)}},FJ=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}},IJ=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}},LJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.getNotifications()}},RJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.markNotificationAsRead(e)}};function zJ(e){return e.replace(/\s+(division|province|district|state|region)$/i,``).trim()}function BJ(e){let t=zJ(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 VJ(){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 HJ(e){try{let t=await fetch(`/ip-geolocation`);if(t.ok){let e=BJ(await t.json());if(e!==null)return M(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 M(VJ())}var UJ=G({type:U(),count:U(),reacted:NA()}),WJ=G({id:H(),authorUserId:H(),authorName:H(),authorInitials:H(),authorColor:H(),text:H(),createdAt:H(),time:H()}),GJ=G({id:H(),authorUserId:H(),authorName:H(),authorInitials:H(),authorColor:H(),authorRole:H(),department:H().nullable().optional(),categoryLabel:H(),categoryColor:H(),audienceLabel:H(),createdAt:H(),timestamp:H(),pinned:NA(),mustAcknowledge:NA(),acknowledged:NA(),title:H().nullable(),body:H(),reactions:W(UJ),myReaction:U().nullable().optional(),commentCount:U(),comments:W(WJ),seenCount:U(),bookmarked:NA(),audienceId:H(),taggedUserIds:W(H()).optional(),scheduledAt:H().nullable().optional(),isRecurring:NA().optional(),recurrenceFrequency:H().nullable().optional(),nextOccurrenceTime:H().nullable().optional(),feelingId:H().nullable().optional(),feelingLabel:H().nullable().optional(),feelingEmoji:H().nullable().optional(),locationLabel:H().nullable().optional(),imageUrls:W(H()).optional()}).passthrough();W(GJ);var KJ=G({totalCount:U(),items:W(GJ)}),qJ=W(G({id:H(),name:H(),email:H(),userName:H(),role:H(),initials:H(),color:H()})),JJ=W(G({id:H(),key:H().optional(),label:H(),color:H(),templateIds:W(H()).optional(),webhookId:H().nullable().optional()})),YJ=W(G({key:H(),label:H()})),XJ=W(G({id:H(),label:H(),emoji:H()})),ZJ=e=>e===1?`insightful`:e===2?`celebrate`:`like`,QJ=e=>{let t={like:0,insightful:0,celebrate:0};for(let n of e){let e=ZJ(n.type);t[e]=n.count}return t},$J=e=>({id:e.id,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,text:e.text,time:e.time,createdAt:e.createdAt}),eY=e=>new SJ({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:QJ(e.reactions),myReaction:e.myReaction!==null&&e.myReaction!==void 0?ZJ(e.myReaction):null,commentCount:e.commentCount,comments:e.comments.map($J),seenCount:e.seenCount,bookmarked:e.bookmarked,taggedUserIds:e.taggedUserIds??[],locationLabel:e.locationLabel??null,imageUrls:e.imageUrls??[],department:e.department??null,audienceId:e.audienceId,feelingId:e.feelingId??null,feelingLabel:e.feelingLabel??null,feelingEmoji:e.feelingEmoji??null}),tY=e=>({id:e.key??e.id,label:e.label,color:e.color,categoryKey:e.key??e.id,templateIds:e.templateIds??[],webhookId:e.webhookId??void 0}),nY=e=>({id:e.key,label:e.label}),rY=e=>({id:e.id,label:e.label,emoji:e.emoji}),iY=(e,t,n)=>(e.error(`Feed ${t} returned an unexpected shape`,n),N(new bJ(n))),aY=(e,t)=>(e.error(`Feed request failed`,t),new bJ(t)),oY=(e,t,n)=>{let r=KJ.safeParse(n);return r.success?M({totalCount:r.data.totalCount,items:r.data.items.map(eY)}):iY(e,t,r.error)},sY=(e,t,n)=>{let r=GJ.safeParse(n);return r.success?M(eY(r.data)):iY(e,t,r.error)},cY=(e,t,n)=>{let r=JJ.safeParse(n);return r.success?M(r.data.map(tY)):iY(e,t,r.error)},lY=(e,t,n)=>{let r=YJ.safeParse(n);return r.success?M(r.data.map(nY)):iY(e,t,r.error)},uY=(e,t,n)=>{let r=XJ.safeParse(n);return r.success?M(r.data.map(rY)):iY(e,t,r.error)},dY=(e,t,n)=>{let r=qJ.safeParse(n);return r.success?M(r.data):iY(e,t,r.error)},fY=W(G({id:H(),userId:H(),kind:BA([`meeting`,`group`,`feed`,`member`]),actorName:H(),initials:H(),color:H(),message:H(),detail:H().nullable().optional(),postId:H().nullable().optional(),isRead:NA(),creationTime:H()})),pY={for_you:0,team:1,company:2,saved:3},mY={like:0,insightful:1,celebrate:2},hY=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=pY[e],i=await this.httpClient.get(`/api/app/feed/posts`,{query:{scope:r,...t!==void 0&&{skipCount:t},...n!==void 0&&{maxResultCount:n}}});return oY(this.logger,`listPosts`,i)}catch(e){return N(aY(this.logger,e))}}async createPost(e){try{let t=await this.httpClient.post(`/api/app/feed/post`,e);return sY(this.logger,`createPost`,t)}catch(e){return N(aY(this.logger,e))}}async updatePost(e,t){try{let n=await this.httpClient.put(`/api/app/feed/post/${e}`,t);return sY(this.logger,`updatePost`,n)}catch(e){return N(aY(this.logger,e))}}async react(e,t){try{let n=await this.httpClient.post(`/api/app/feed/react-to-post/${e}`,{type:mY[t]});return sY(this.logger,`react`,n)}catch(e){return N(aY(this.logger,e))}}async toggleBookmark(e){try{let t=await this.httpClient.post(`/api/app/feed/toggle-bookmark/${e}`,void 0);return sY(this.logger,`toggleBookmark`,t)}catch(e){return N(aY(this.logger,e))}}async setPinned(e,t){try{let n=await this.httpClient.post(`/api/app/feed/set-pinned/${e}`,{pinned:t});return sY(this.logger,`setPinned`,n)}catch(e){return N(aY(this.logger,e))}}async acknowledge(e){try{let t=await this.httpClient.post(`/api/app/feed/acknowledge/${e}`,void 0);return sY(this.logger,`acknowledge`,t)}catch(e){return N(aY(this.logger,e))}}async markSeen(e){try{let t=await this.httpClient.post(`/api/app/feed/mark-seen/${e}`,void 0);return sY(this.logger,`markSeen`,t)}catch(e){return N(aY(this.logger,e))}}async addComment(e,t){try{let n=await this.httpClient.post(`/api/app/feed/comment/${e}`,{text:t});return sY(this.logger,`addComment`,n)}catch(e){return N(aY(this.logger,e))}}async listCategories(){try{let e=await this.httpClient.get(`/api/app/feed/feed-categories`);return cY(this.logger,`listCategories`,e)}catch(e){return N(aY(this.logger,e))}}async listAudiences(){try{let e=await this.httpClient.get(`/api/app/feed/feed-audiences`);return lY(this.logger,`listAudiences`,e)}catch(e){return N(aY(this.logger,e))}}async listFeelings(){try{let e=await this.httpClient.get(`/api/app/feed/feed-feelings`);return uY(this.logger,`listFeelings`,e)}catch(e){return N(aY(this.logger,e))}}async searchUsers(e){try{let t=await this.httpClient.get(`/api/app/feed/search-users`,{query:{filter:e}});return dY(this.logger,`searchUsers`,t)}catch(e){return N(aY(this.logger,e))}}async detectLocation(){return HJ(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`?M(n.id):N(new bJ(`Invalid response shape`))}catch(e){return N(aY(this.logger,e))}}async getNotifications(){try{let e=await this.httpClient.get(`/api/app/notification`);return M(fY.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 N(aY(this.logger,e))}}async markNotificationAsRead(e){try{return await this.httpClient.post(`/api/app/notification/${e}/mark-as-read`,void 0),M(void 0)}catch(e){return N(aY(this.logger,e))}}async deleteNotification(e){try{return await this.httpClient.delete(`/api/app/notification/${e}`),M(void 0)}catch(e){return N(aY(this.logger,e))}}},gY=e=>{let t={feedGateway:new hY({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listFeed:new vJ(t),createPost:new CJ(t),updatePost:new wJ(t),reactToPost:new TJ(t),toggleBookmark:new EJ(t),acknowledgePost:new DJ(t),addComment:new OJ(t),listFeedCategories:new kJ(t),listFeedAudiences:new AJ(t),listFeedFeelings:new jJ(t),searchFeedUsers:new MJ(t),detectLocation:new NJ(t),uploadFeedImage:new PJ(t),setPostPinned:new IJ(t),markSeen:new FJ(t),getNotifications:new LJ(t),markNotificationRead:new RJ(t),notificationRealtime:e.notificationRealtime,logger:e.logger}},_Y=(0,n.createContext)(null),vY=({module:e,children:t})=>(0,D.jsx)(_Y.Provider,{value:e,children:t}),yY=()=>{let e=(0,n.useContext)(_Y);if(e===null)throw Error(`Feed hooks must be used within <FeedModuleProvider>.`);return e},bY=e=>[`feed`,e],xY=e=>{e.invalidateQueries({queryKey:[`feed`]})},SY=(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)}))})},CY=e=>{let{listFeed:t}=yY();return aN({queryKey:bY(e),queryFn:({pageParam:n})=>P(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}})},wY=()=>{let{createPost:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{xY(t)}})},TY=()=>{let{updatePost:e}=yY(),t=HM();return iN({mutationFn:({postId:t,input:n})=>P(e.execute(t,n)),onSuccess:e=>{SY(t,e)}})},EY=()=>{let{reactToPost:e}=yY(),t=HM();return iN({mutationFn:({postId:t,type:n})=>P(e.execute(t,n)),onSuccess:e=>{SY(t,e)}})},DY=()=>{let{toggleBookmark:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},OY=()=>{let{acknowledgePost:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},kY=()=>{let{markSeen:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},AY=()=>{let{addComment:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},jY=()=>{let{setPostPinned:e}=yY(),t=HM();return iN({mutationFn:({postId:t,pinned:n})=>P(e.execute(t,n)),onSuccess:e=>{SY(t,e)}})},MY=()=>{let{listFeedCategories:e}=yY();return rN({queryKey:[`feed-categories`],queryFn:()=>P(e.execute())})},NY=()=>{let{listFeedAudiences:e}=yY();return rN({queryKey:[`feed-audiences`],queryFn:()=>P(e.execute())})},PY=()=>{let{listFeedFeelings:e}=yY();return rN({queryKey:[`feed-feelings`],queryFn:()=>P(e.execute())})},FY=e=>{let{searchFeedUsers:t}=yY();return rN({queryKey:[`feed-search-users`,e],queryFn:()=>P(t.execute(e)),enabled:e.trim().length>0})},IY=()=>{let{uploadFeedImage:e}=yY();return iN({mutationFn:t=>P(e.execute(t))})},LY=e=>{let{data:t=[]}=MY(),n=t.find(t=>t.id===e.department);return{categoryLabel:n?.label??e.categoryLabel,categoryColor:n?.color??e.categoryColor}},RY=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}]},zY=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)},BY=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}`},VY=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],HY=(e,t)=>e.year===t.year&&e.month===t.month&&e.day===t.day,UY=(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},WY=(e,t,n=new Date)=>{let r=zY(e);if(Number.isNaN(r.getTime()))return`now`;let i=UY(e,r,n),a=60*1e3,o=60*a,s=24*o;if(i<a)return`now`;if(i<o){let e=Math.floor(i/a);return`${String(e)}m ago`}if(i<s){let e=Math.floor(i/o);return`${String(e)} ${e===1?`hour`:`hours`} ago`}let c=SN(r,t);return HY(c,SN(new Date(n.getTime()-s),t))?`Yesterday at ${BY(c)}`:`${VY[c.month-1]??``} ${String(c.day)} at ${BY(c)}`},GY=(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`})}},KY=(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)}});G({id:H(),kind:BA([`meeting`,`group`,`feed`,`member`]),initials:H(),color:H(),actor:H(),time:H(),message:H().nullable().optional(),detail:H().nullable().optional(),postId:H().nullable().optional()});var qY=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}},JY=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}},YY=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}},XY=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}},ZY=class extends ci{},QY=class extends ZY{code=`MEETINGS_UNAVAILABLE`;constructor(e){super(`Meetings are currently unavailable. Please try again.`,{cause:e})}},$Y=class extends ZY{code=`MEETINGS_INCOMPLETE_BOOKING`;constructor(){super(`Pick a person, a date, and a time slot to book a meeting.`)}},eX=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}},tX=[{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`}],nX={id:`Europe/London`,city:`London`,offset:`GMT+1`};nX.id;var rX=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`},iX=e=>{let t=tX.find(t=>t.id===e);if(t)return t;try{let t=rX(e),n=e.split(`/`);return{id:e,city:(n[n.length-1]??``).replace(/_/g,` `),offset:t}}catch{return nX}},aX=e=>iX(e),oX=(e,t,n)=>{let r=new Date(n.start).getTime(),i=new Date(n.end).getTime();return e.getTime()<i&&t.getTime()>r},sX=(e,t,n)=>e.userId===t||t===n&&n!==``&&e.userId===void 0,cX=(e,t)=>e.allBlocks.filter(t=>sX(t,e.userId,e.selfUserId)&&t.status!==`available`).flatMap(e=>gO(e,t.start,t.end)),lX=(e,t)=>e.allBlocks.filter(t=>sX(t,e.userId,e.selfUserId)&&t.status===`available`).flatMap(e=>gO(e,t.start,t.end)).map(e=>({start:new Date(e.start),end:new Date(e.end)})),uX=(e,t,n)=>t.getTime()>=e.start.getTime()&&n.getTime()<=e.end.getTime(),dX=e=>{let t={start:e.rangeStart,end:e.rangeEnd},n={userId:e.userId,selfUserId:e.selfUserId,allBlocks:e.allBlocks},r=e.workWindows.some(t=>uX(t,e.slotStart,e.slotEnd)),i=lX(n,t).some(t=>uX(t,e.slotStart,e.slotEnd));return!r&&!i?`ooh`:cX(n,t).some(t=>oX(e.slotStart,e.slotEnd,t))?`busy`:`available`},fX=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`),N(new $Y)):this.meetingGateway.book(e)}},pX=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}},mX=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}},hX=`Online — link generated automatically`,gX=null;gX??=[{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:hX,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:hX,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:hX,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:hX,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:hX,isOrganizer:!0,myStatus:`accepted`,bucket:`canceled`}];var _X=encodeURIComponent,vX={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/${_X(e)}/respond`,cancel:e=>`/api/app/meeting/${_X(e)}/cancel`},yX=G({id:H(),organizerUserId:H(),title:H(),withName:H(),withInitials:H(),withColor:H(),dateLabel:H(),start:H(),end:H(),location:H(),isOrganizer:NA(),myStatus:U(),bucket:U(),awaitingResponse:NA().optional(),isGroup:NA(),attendeeIds:W(H()),description:H()}).passthrough(),bX=W(yX),xX=W(G({id:H(),name:H(),initials:H(),color:H(),role:H()}).passthrough()),SX=W(G({label:H(),startUtc:H(),endUtc:H(),conflicts:W(H())}).passthrough()),CX=W(G({userId:H(),busy:W(G({startUtc:H(),endUtc:H()}))}).passthrough()),wX={0:`pending`,1:`accepted`,2:`rejected`},TX={0:`upcoming`,1:`passed`,2:`canceled`},EX=/[zZ]|[+-]\d{2}:?\d{2}$/,DX=e=>EX.test(e)?e:`${e}Z`,OX=e=>new eX({id:e.id,title:e.title,withName:e.withName,withInitials:e.withInitials,withColor:e.withColor,dateLabel:e.dateLabel,startUtc:DX(e.start),endUtc:DX(e.end),location:e.location,isOrganizer:e.isOrganizer,myStatus:wX[e.myStatus]??`pending`,bucket:TX[e.bucket]??`upcoming`,isGroup:e.isGroup,attendeeIds:e.attendeeIds,description:e.description,awaitingResponse:e.awaitingResponse??!1}),kX=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role}),AX=e=>({label:e.label,startUtc:e.startUtc,endUtc:e.endUtc,conflicts:e.conflicts}),jX=e=>({userId:e.userId,busy:e.busy.map(e=>({startUtc:e.startUtc,endUtc:e.endUtc}))}),MX=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}),NX=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(vX.contacts,void 0,{query:{search:t===void 0||t===``?void 0:t}}),r=xX.safeParse(n);return r.success?M(r.data.map(kX)):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(vX.availableSlots,{isoDate:e.isoDate,timeZone:e.timeZone??void 0,isGroup:e.isGroup,contactId:e.contactId??void 0,attendeeIds:e.attendeeIds}),n=SX.safeParse(t);return n.success?M(n.data.map(AX)):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(vX.attendeeAvailability,{isoDate:e.isoDate,attendeeIds:e.attendeeIds}),n=CX.safeParse(t);return n.success?M(n.data.map(jX)):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(vX.list),t=bX.safeParse(e);return t.success?M(t.data.map(OX)):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(vX.book,MX(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(vX.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(vX.cancel(e));return this.parseMeeting(t,`Cancel meeting`)}catch(e){return this.fail(`Cancel meeting failed`,e)}}parseMeeting(e,t){let n=yX.safeParse(e);return n.success?M(OX(n.data)):this.fail(`${t} returned an unexpected shape`,n.error)}fail(e,t){return this.logger.error(e,t),N(new QY(t))}},PX=e=>{let t={meetingGateway:new NX({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listContacts:new qY(t),listAvailableSlots:new JY(t),listAttendeeAvailability:new YY(t),listMeetings:new XY(t),bookMeeting:new fX(t),respondToMeeting:new pX(t),cancelMeeting:new mX(t)}},FX=(0,n.createContext)(null),IX=({module:e,children:t})=>(0,D.jsx)(FX.Provider,{value:e,children:t}),LX=()=>{let e=(0,n.useContext)(FX);if(e===null)throw Error(`Meetings hooks must be used within <MeetingsModuleProvider>.`);return e},RX=[`meetings`,`list`],zX=[`meetings`,`contacts`],BX=[`meetings`,`available-slots`],VX=[`meetings`,`attendee-availability`],HX=(e,t)=>{e.setQueryData(RX,e=>e===void 0?[t]:e.map(e=>e.id===t.id?t:e))},UX=e=>{let{listContacts:t}=LX(),n=e?.trim()??``;return rN({queryKey:[...zX,n],queryFn:()=>P(t.execute(n||void 0)),placeholderData:$j})},WX=()=>{let{listMeetings:e}=LX();return rN({queryKey:RX,queryFn:()=>P(e.execute())})},GX=e=>{let{listAvailableSlots:t}=LX();return rN({queryKey:[...BX,e],queryFn:()=>e===null?Promise.resolve([]):P(t.execute(e)),enabled:e!==null,staleTime:0,refetchOnWindowFocus:!0})},KX=(e,t)=>{let{listAttendeeAvailability:n}=LX(),r=t!==null&&e.length>0;return rN({queryKey:[...VX,t,[...e].sort()],queryFn:()=>r?P(n.execute({isoDate:t,attendeeIds:e})):Promise.resolve([]),enabled:r,staleTime:0,refetchOnWindowFocus:!0})},qX=()=>{let{bookMeeting:e}=LX(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:RX})}})},JX=()=>{let{respondToMeeting:e}=LX(),t=HM();return iN({mutationFn:({meetingId:t,accept:n})=>P(e.execute(t,n)),onSuccess:e=>{HX(t,e)}})},YX=()=>{let{cancelMeeting:e}=LX(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{HX(t,e)}})},XX=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}},ZX=class extends ci{},QX=class extends ZX{code=`MEETING_VIDEO_UNAVAILABLE`;constructor(e){super(`This meeting could not be joined right now. Please try again.`,{cause:e})}},$X=G({token:H(),providerType:H(),roomId:H(),participantName:H(),title:H().nullish()}).passthrough(),eZ=encodeURIComponent,tZ={join:e=>`/api/app/meeting-video/${eZ(e)}/join`},nZ=e=>({token:e.token,providerType:e.providerType,roomId:e.roomId,participantName:e.participantName,title:e.title??``}),rZ=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(tZ.join(e)),n=$X.safeParse(t);return n.success?M(nZ(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),N(new QX(t))}},iZ=e=>({joinMeetingVideo:new XX({meetingVideoGateway:new rZ({httpClient:e.httpClient,logger:e.logger}),logger:e.logger})}),aZ=(0,n.createContext)(null),oZ=({module:e,children:t})=>(0,D.jsx)(aZ.Provider,{value:e,children:t}),sZ=TE(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})}})),cZ=15e3,lZ=5*6e4,uZ=(e,t,n)=>{let r=new bq({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 xq,calls:i(`commhub.chat`)?r.create({url:`${e.apiBaseUrl}/signalr/calls`,accessTokenProvider:n}):new xq,notifications:i(`commhub.feed`)?r.create({url:`${e.apiBaseUrl}/signalr/notifications`,accessTokenProvider:n}):new xq}},dZ=e=>{let t=e.logger??new tk(`info`),n=new bN,r=e.authStore,i=r.getState().session?.accessToken??null,a=r.subscribe(e=>{i=e.session?.accessToken??null}),o=()=>i??void 0,s=new $O(new QO(new JO(new KO({logger:t,baseUrl:e.apiBaseUrl,getAuthToken:o}),{timeoutMs:cZ,logger:t}),{logger:t}),{logger:t,refresh:()=>r.getState().refreshSession()}),c=new BM({defaultOptions:{queries:{staleTime:lZ,retry:1,refetchOnWindowFocus:!0}}}),l=uZ(e,t,o);return{logger:t,authStore:r,moduleAccessModule:Dq({httpClient:s,logger:t}),chatModule:nJ({logger:t,httpClient:s,realtime:l.chat,clock:n}),feedModule:gY({logger:t,httpClient:s,notificationRealtime:l.notifications}),meetingsModule:PX({logger:t,httpClient:s}),meetingVideoModule:iZ({logger:t,httpClient:s}),scheduleModule:Tj({logger:t,httpClient:s,clock:n}),settingsModule:IL({logger:t,httpClient:s}),callsModule:MR({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()])}}},fZ=new Map,pZ=e=>`${e.apiBaseUrl}|${e.clientKey}|${e.authKind}`,mZ=(e,t,n)=>{let r=fZ.get(e);if(r===void 0){let n=t();r={composition:n.composition,handshake:n.handshake,refCount:0},fZ.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)&&(fZ.get(e)===a&&fZ.delete(e),a.handshake.dispose(),a.composition.dispose().catch(e=>{n?.warn(`Disposing the shared SDK runtime failed`,{error:e})})))}}},hZ=`*`,gZ=e=>{switch(e.kind){case`sso`:return e.getSecret();case`signed`:return e.getAssertion();case`host-token`:return e.getToken()}},_Z=e=>{let t=new bN,n=new KO({logger:e.logger,baseUrl:e.apiBaseUrl,getAuthToken:()=>void 0});switch(e.kind){case`sso`:return new iz({httpClient:n,clock:t,logger:e.logger});case`signed`:return new HG({httpClient:n,clock:t,logger:e.logger,clientKey:e.clientKey,modules:e.modules});case`host-token`:return new UG({clock:t,logger:e.logger})}},vZ=e=>{let{apiBaseUrl:t,clientKey:r,authKind:i}=e,a=e.modules===void 0?hZ:e.modules.join(`,`),o=(0,n.useRef)(e.logger);o.current=e.logger;let s=(0,n.useMemo)(()=>a===hZ?void 0:yZ(a),[a]),c=(0,n.useRef)(e.requestCredential);c.current=e.requestCredential;let l=pZ({apiBaseUrl:t,clientKey:r,authKind:i}),[u]=(0,n.useState)(()=>mZ(l,()=>{let e=o.current??new tk(`info`,`commhub-sdk`),n=_Z({kind:i,clientKey:r,apiBaseUrl:t,logger:e,modules:s??[]}),a=dZ({apiBaseUrl:t,authStore:RG({clock:new bN,logger:e,storageNamespace:`sdk:${r}`,authGateway:n,setAccessToken:()=>{}}),modules:s,logger:e});return{composition:a,handshake:new nK(t=>new tK({authStore:a.authStore,moduleAccessModule:a.moduleAccessModule,requestCredential:()=>c.current(),requestedModules:s??[],emit:t,logger:e,renewable:i!==`sso`}))}},o.current));return(0,n.useEffect)(()=>()=>{u.release()},[u]),{composition:u.composition,handshake:u.handshake}},yZ=e=>e===``?[]:e.split(`,`),bZ=({handshake:e,auth:t,onEvent:r})=>{let i=(0,n.useRef)(r);i.current=r;let a=(0,n.useRef)(t);return a.current=t,(0,n.useEffect)(()=>e.attach(e=>{i.current?.(e)}),[e]),(0,n.useSyncExternalStore)(t=>e.subscribeStatus(t),()=>e.status,()=>e.status)},xZ=e=>Math.min(100,Math.max(0,e)),SZ=([e,t,n],r=0)=>`hsl(${String(e)} ${String(xZ(t))}% ${String(xZ(n+r))}%)`,CZ=([e,t,n],r)=>`hsl(${String(e)} ${String(xZ(t))}% ${String(xZ(n))}% / ${String(r)})`,wZ=60,TZ=e=>e[2]>wZ?`#0f172a`:`#ffffff`,EZ={a30:.18,a20:.12,a10:.06,a05:.035,border:.22},DZ=e=>`${String(Math.max(0,Math.round(e)))}px`,OZ=e=>({"--color-primary":SZ(e),"--color-primary-strong":SZ(e,-12),"--color-primary-light":SZ(e,12),"--color-primary-30":CZ(e,EZ.a30),"--color-primary-20":CZ(e,EZ.a20),"--color-primary-10":CZ(e,EZ.a10),"--color-primary-05":CZ(e,EZ.a05),"--color-primary-border":CZ(e,EZ.border),"--color-on-primary":TZ(e)}),kZ=e=>({"--color-secondary":SZ(e),"--color-secondary-strong":SZ(e,-12),"--color-secondary-30":CZ(e,.3),"--color-secondary-20":CZ(e,EZ.a20),"--color-secondary-10":CZ(e,.07),"--color-secondary-border":CZ(e,.3)}),AZ=e=>({"--radius-sm":DZ(e-4),"--radius-md":DZ(e),"--radius-lg":DZ(e+4),"--radius-xl":DZ(e+6)}),jZ=[4,6,9,12,15,18,24],MZ=()=>{let e={"--height-btn":DZ(32),"--height-input":DZ(34),"--height-row":DZ(44),"--height-nav":DZ(36)};return jZ.forEach((t,n)=>{e[`--space-${String(n+1)}`]=DZ(t)}),e},NZ=e=>e?{...e.brand?OZ(e.brand):{},...e.accent?kZ(e.accent):{},...e.radius===void 0?{}:AZ(e.radius),...e.font===void 0?{}:{"--font-sans":e.font},...e.density===`compact`?MZ():{}}:{},PZ=e=>{let t=e?.mode??`system`;return t===`system`?null:t},FZ=`data-theme`,IZ=e=>{let t=e.getRootNode();return t instanceof ShadowRoot?t.host:e},LZ=e=>{let t=(0,n.useRef)(null),r=JSON.stringify(e??null),i=(0,n.useMemo)(()=>JSON.parse(r),[r]);return(0,n.useEffect)(()=>{let e=t.current;if(e===null)return;let n=IZ(e),r=NZ(i??void 0),a=PZ(i??void 0);for(let[e,t]of Object.entries(r))n.style.setProperty(e,t);return a===null?n.removeAttribute(FZ):n.setAttribute(FZ,a),()=>{for(let e of Object.keys(r))n.style.removeProperty(e);n.removeAttribute(FZ)}},[i]),t},RZ=e=>{if(e)return e;try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e)return e}catch{}return`UTC`},zZ=class extends n.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)(vi,{tone:`error`,title:`This widget could not be displayed`,children:`Something went wrong inside the Communication Hub widget. Reloading the page usually fixes it.`})}};G({grantedModules:W(H()).nullish(),grantedPolicies:W(H()).nullish(),canManageUserAccess:NA().nullish()});var BZ=(0,n.createContext)(null),VZ=({module:e,children:t})=>(0,D.jsx)(BZ.Provider,{value:e,children:t}),HZ=({composition:e,children:t})=>(0,D.jsx)(UM,{client:e.queryClient,children:(0,D.jsx)(a_,{reducedMotion:`user`,children:(0,D.jsx)(yE,{children:(0,D.jsx)(fz,{store:e.authStore,children:(0,D.jsx)(VZ,{module:e.moduleAccessModule,children:(0,D.jsx)(rJ,{module:e.chatModule,children:(0,D.jsx)(_J,{children:(0,D.jsx)(vY,{module:e.feedModule,children:(0,D.jsx)(IX,{module:e.meetingsModule,children:(0,D.jsx)(oZ,{module:e.meetingVideoModule,children:(0,D.jsx)(Dj,{module:e.scheduleModule,children:(0,D.jsx)(RL,{module:e.settingsModule,children:(0,D.jsx)(PR,{module:e.callsModule,children:(0,D.jsxs)(bz,{children:[t,(0,D.jsx)(Lz,{}),(0,D.jsx)(AE,{})]})})})})})})})})})})})})})}),UZ={scope:`_scope_p8b6f_6`},WZ=e=>{let{auth:t,apiBaseUrl:r,clientKey:i,modules:a,theme:o,timezone:s,logger:c,onEvent:l}=e,{composition:u,handshake:d}=vZ({apiBaseUrl:r,clientKey:i,authKind:t.kind,modules:a,logger:c,requestCredential:()=>gZ(t)}),f=bZ({handshake:d,auth:t,onEvent:l}),p=LZ(o),[m,h]=(0,n.useState)(null);return(0,D.jsx)(`div`,{ref:e=>{p.current=e,h(e)},className:UZ.scope,"data-timezone":RZ(s),"data-handshake":f,children:(0,D.jsx)(XE,{container:m,children:(0,D.jsx)(zZ,{logger:u.logger,onEvent:l,children:f===`ready`?(0,D.jsx)(HZ,{composition:u,children:e.children}):null})})})},GZ=({children:e,initialRoute:t,...n})=>(0,D.jsx)(WZ,{...n,children:(0,D.jsx)(vt,{initialEntries:[t??`/`],children:e})}),KZ=class extends si{code=`SDK_WIDGET_CONFIG_INVALID`},qZ=()=>MA(e=>typeof e==`function`,{message:`Expected a function`}),JZ=IA(`kind`,[G({kind:zA(`signed`),getAssertion:qZ()})]),YZ=LA([U(),U(),U()]),XZ=G({brand:YZ.optional(),accent:YZ.optional(),radius:U().optional(),font:H().optional(),density:BA([`comfortable`,`compact`]).optional(),mode:BA([`light`,`dark`,`system`]).optional()}),ZZ=G({apiBaseUrl:H().url(),clientKey:H().min(1),auth:JZ,modules:W(BA(qG)).optional(),theme:XZ.optional(),timezone:H().optional(),locale:H().optional(),logger:MA().optional(),onEvent:qZ().optional()}),QZ=e=>{let t=ZZ.safeParse(e);return t.success?M(t.data):N(new KZ(t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)))},$Z=`route`,eQ=(e,t,n=[])=>{PG(e,n=>{let r=QZ(n.config);if(!r.ok)return(0,D.jsx)(IG,{tagName:e,detail:r.error.message});let i=n.getAttribute($Z);return(0,D.jsx)(GZ,{...r.value,...i===null?{}:{initialRoute:i},children:t()})},[$Z,...n])},tQ=()=>{eQ(`uapp-chat`,()=>(0,D.jsx)(TG,{}))},nQ={date:``,time:``,recurring:!1,frequency:`weekly`},rQ=[{value:`now`,label:`Post now`},{value:`schedule`,label:`Schedule`}],iQ=[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],Y={screen:`_screen_1htxc_1`,toolbar:`_toolbar_1htxc_8`,toolbarContainer:`_toolbarContainer_1htxc_14`,search:`_search_1htxc_23`,toolbarRailSpacer:`_toolbarRailSpacer_1htxc_31`,searchIcon:`_searchIcon_1htxc_36`,searchInput:`_searchInput_1htxc_44`,textareaError:`_textareaError_1htxc_59`,commentComposerError:`_commentComposerError_1htxc_60`,shareCommentError:`_shareCommentError_1htxc_61`,wrapper:`_wrapper_1htxc_70`,column:`_column_1htxc_80`,rail:`_rail_1htxc_91`,railHead:`_railHead_1htxc_102`,railHeadTitle:`_railHeadTitle_1htxc_109`,railSeeAll:`_railSeeAll_1htxc_123`,railList:`_railList_1htxc_132`,cardBody:`_cardBody_1htxc_142`,seeMoreBtn:`_seeMoreBtn_1htxc_151`,railFoot:`_railFoot_1htxc_166`,missed:`_missed_1htxc_177`,missedHead:`_missedHead_1htxc_184`,missedSpark:`_missedSpark_1htxc_192`,missedTitle:`_missedTitle_1htxc_196`,missedBadge:`_missedBadge_1htxc_203`,missedScroller:`_missedScroller_1htxc_212`,missedScrollerFade:`_missedScrollerFade_1htxc_217`,missedTrack:`_missedTrack_1htxc_217`,missedNav:`_missedNav_1htxc_229`,missedNavLeft:`_missedNavLeft_1htxc_264`,missedNavRight:`_missedNavRight_1htxc_268`,missedCard:`_missedCard_1htxc_272`,missedCardTop:`_missedCardTop_1htxc_282`,missedDot:`_missedDot_1htxc_289`,missedCat:`_missedCat_1htxc_297`,missedTime:`_missedTime_1htxc_304`,missedSummary:`_missedSummary_1htxc_311`,missedFoot:`_missedFoot_1htxc_323`,missedCta:`_missedCta_1htxc_329`,missedPriority:`_missedPriority_1htxc_338`,compChips:`_compChips_1htxc_354`,compChip:`_compChip_1htxc_354`,actionBar:`_actionBar_1htxc_374`,actionBarLabel:`_actionBarLabel_1htxc_386`,actionBarBtns:`_actionBarBtns_1htxc_392`,actionIcon:`_actionIcon_1htxc_397`,actionIconActive:`_actionIconActive_1htxc_414`,sheet:`_sheet_1htxc_419`,sheetHead:`_sheetHead_1htxc_427`,sheetLabel:`_sheetLabel_1htxc_435`,sheetClose:`_sheetClose_1htxc_443`,sheetChips:`_sheetChips_1htxc_465`,catChip:`_catChip_1htxc_471`,catChipOn:`_catChipOn_1htxc_483`,feelGrid:`_feelGrid_1htxc_488`,feelBtn:`_feelBtn_1htxc_494`,feelBtnOn:`_feelBtnOn_1htxc_509`,feelEmoji:`_feelEmoji_1htxc_515`,photoInput:`_photoInput_1htxc_519`,photoZone:`_photoZone_1htxc_523`,photoZoneDrag:`_photoZoneDrag_1htxc_528`,dropzone:`_dropzone_1htxc_533`,dropIcon:`_dropIcon_1htxc_554`,dropTitle:`_dropTitle_1htxc_566`,dropHint:`_dropHint_1htxc_572`,photoGrid:`_photoGrid_1htxc_577`,photoThumb:`_photoThumb_1htxc_584`,photoImg:`_photoImg_1htxc_592`,photoRemove:`_photoRemove_1htxc_599`,photoAddMore:`_photoAddMore_1htxc_619`,mobilePromoTrigger:`_mobilePromoTrigger_1htxc_642`,promoPulseGlow:`_promoPulseGlow_1htxc_1`,mobilePromoTriggerBarHidden:`_mobilePromoTriggerBarHidden_1htxc_732`,mobilePromoExpanded:`_mobilePromoExpanded_1htxc_738`,promoShimmerSweep:`_promoShimmerSweep_1htxc_751`,promoShimmer:`_promoShimmer_1htxc_751`,promoIconWrap:`_promoIconWrap_1htxc_767`,sparkleIcon:`_sparkleIcon_1htxc_780`,sparkleTwinkle:`_sparkleTwinkle_1htxc_1`,promoBtnText:`_promoBtnText_1htxc_784`,mobilePromoBadge:`_mobilePromoBadge_1htxc_803`,promoPopoverOverlay:`_promoPopoverOverlay_1htxc_820`,promoPopoverCard:`_promoPopoverCard_1htxc_832`,popoverHeader:`_popoverHeader_1htxc_846`,popoverCloseX:`_popoverCloseX_1htxc_855`,popoverBadgeIcon:`_popoverBadgeIcon_1htxc_876`,popoverTitleRow:`_popoverTitleRow_1htxc_888`,popoverTitle:`_popoverTitle_1htxc_888`,popoverSeeAllBtn:`_popoverSeeAllBtn_1htxc_904`,popoverSub:`_popoverSub_1htxc_920`,popoverContent:`_popoverContent_1htxc_927`,popoverEmpty:`_popoverEmpty_1htxc_936`,missedClose:`_missedClose_1htxc_985`,missedRead:`_missedRead_1htxc_1022`,comments:`_comments_1htxc_1048`,commentRow:`_commentRow_1htxc_1057`,commentAvatar:`_commentAvatar_1htxc_1062`,commentBubble:`_commentBubble_1htxc_1076`,commentAuthor:`_commentAuthor_1htxc_1084`,commentTime:`_commentTime_1htxc_1090`,commentText:`_commentText_1htxc_1095`,commentComposer:`_commentComposer_1htxc_60`,commentInput:`_commentInput_1htxc_1116`,commentSend:`_commentSend_1htxc_1126`,sharePreviewWrap:`_sharePreviewWrap_1htxc_1147`,sharePreview:`_sharePreview_1htxc_1147`,sharePreviewAvatar:`_sharePreviewAvatar_1htxc_1163`,sharePreviewBody:`_sharePreviewBody_1htxc_1177`,sharePreviewMeta:`_sharePreviewMeta_1htxc_1182`,sharePreviewCat:`_sharePreviewCat_1htxc_1188`,sharePreviewTitle:`_sharePreviewTitle_1htxc_1193`,shareField:`_shareField_1htxc_1203`,shareComment:`_shareComment_1htxc_61`,shareSearchWrap:`_shareSearchWrap_1htxc_1227`,shareSearch:`_shareSearch_1htxc_1227`,shareSearchInput:`_shareSearchInput_1htxc_1243`,shareList:`_shareList_1htxc_1260`,shareSectionLabel:`_shareSectionLabel_1htxc_1267`,shareRow:`_shareRow_1htxc_1276`,shareRowOn:`_shareRowOn_1htxc_1294`,shareAvatar:`_shareAvatar_1htxc_1300`,shareAvatarSquare:`_shareAvatarSquare_1htxc_1314`,shareRowBody:`_shareRowBody_1htxc_1318`,shareRowName:`_shareRowName_1htxc_1325`,shareRowSub:`_shareRowSub_1htxc_1331`,shareCheck:`_shareCheck_1htxc_1336`,shareCheckOn:`_shareCheckOn_1htxc_1349`,shareEmpty:`_shareEmpty_1htxc_1354`,shareFootText:`_shareFootText_1htxc_1362`,shareFootBtns:`_shareFootBtns_1htxc_1367`,shareCancelBtn:`_shareCancelBtn_1htxc_1372`,shareSendBtn:`_shareSendBtn_1htxc_1387`,shareRoot:`_shareRoot_1htxc_1408`,shareBackdrop:`_shareBackdrop_1htxc_1418`,shareFade:`_shareFade_1htxc_1`,shareModal:`_shareModal_1htxc_1428`,shareIn:`_shareIn_1htxc_1`,shareHead:`_shareHead_1htxc_1462`,shareHeadIcon:`_shareHeadIcon_1htxc_1470`,shareHeadText:`_shareHeadText_1htxc_1482`,shareTitle:`_shareTitle_1htxc_1487`,shareDesc:`_shareDesc_1htxc_1494`,shareCloseBtn:`_shareCloseBtn_1htxc_1500`,shareFooter:`_shareFooter_1htxc_1519`,ppRoot:`_ppRoot_1htxc_1530`,ppOverlay:`_ppOverlay_1htxc_1538`,ppFade:`_ppFade_1htxc_1`,ppPanel:`_ppPanel_1htxc_1548`,ppSlide:`_ppSlide_1htxc_1`,ppHead:`_ppHead_1htxc_1580`,ppHeadIcon:`_ppHeadIcon_1htxc_1589`,ppHeadText:`_ppHeadText_1htxc_1600`,ppTitle:`_ppTitle_1htxc_1605`,ppSubtitle:`_ppSubtitle_1htxc_1622`,ppManaged:`_ppManaged_1htxc_1628`,ppClose:`_ppClose_1htxc_1633`,ppTabs:`_ppTabs_1htxc_1653`,ppTab:`_ppTab_1htxc_1653`,ppTabActive:`_ppTabActive_1htxc_1678`,ppTabBg:`_ppTabBg_1htxc_1682`,ppTabLabel:`_ppTabLabel_1htxc_1690`,ppSearch:`_ppSearch_1htxc_1695`,ppSearchIcon:`_ppSearchIcon_1htxc_1700`,ppSearchInput:`_ppSearchInput_1htxc_1708`,ppList:`_ppList_1htxc_1727`,ppListInner:`_ppListInner_1htxc_1735`,ppEmpty:`_ppEmpty_1htxc_1750`,emptyState:`_emptyState_1htxc_1764`,emptyIconWrap:`_emptyIconWrap_1htxc_1776`,emptyTitle:`_emptyTitle_1htxc_1788`,emptyText:`_emptyText_1htxc_1795`,tabs:`_tabs_1htxc_1804`,tab:`_tab_1htxc_1804`,tabActive:`_tabActive_1htxc_1826`,tabBadge:`_tabBadge_1htxc_1832`,composerCollapsed:`_composerCollapsed_1htxc_1840`,ccAvatar:`_ccAvatar_1htxc_1850`,compAvatar:`_compAvatar_1htxc_1851`,avatar:`_avatar_1htxc_1852`,ccInput:`_ccInput_1htxc_1869`,composer:`_composer_1htxc_1840`,compHead:`_compHead_1htxc_1895`,compAvatarWrapper:`_compAvatarWrapper_1htxc_1902`,statusDot:`_statusDot_1htxc_1907`,compHeaderTagline:`_compHeaderTagline_1htxc_1924`,compMutedText:`_compMutedText_1htxc_1930`,taggedTagline:`_taggedTagline_1htxc_1935`,audiencePill:`_audiencePill_1htxc_1947`,audienceSection:`_audienceSection_1htxc_1966`,audienceLabel:`_audienceLabel_1htxc_1977`,audienceRow:`_audienceRow_1htxc_1985`,audienceBtn:`_audienceBtn_1htxc_1991`,audienceBtnActive:`_audienceBtnActive_1htxc_2009`,compClose:`_compClose_1htxc_2015`,titleInput:`_titleInput_1htxc_2034`,textarea:`_textarea_1htxc_59`,compOption:`_compOption_1htxc_2067`,compOptionLabel:`_compOptionLabel_1htxc_2079`,compFooter:`_compFooter_1htxc_2092`,submitRight:`_submitRight_1htxc_2101`,modeToggle:`_modeToggle_1htxc_2107`,cancelBtn:`_cancelBtn_1htxc_2111`,postBtn:`_postBtn_1htxc_2126`,card:`_card_1htxc_142`,urgentStripe:`_urgentStripe_1htxc_2160`,pinnedRow:`_pinnedRow_1htxc_2171`,pin:`_pin_1htxc_2171`,cardHead:`_cardHead_1htxc_2186`,cardAuthor:`_cardAuthor_1htxc_2198`,authorName:`_authorName_1htxc_2203`,metaRow:`_metaRow_1htxc_2213`,cardRight:`_cardRight_1htxc_2223`,badge:`_badge_1htxc_2231`,badgeDot:`_badgeDot_1htxc_2244`,bookmarkBtn:`_bookmarkBtn_1htxc_2251`,bookmarkActive:`_bookmarkActive_1htxc_2269`,pinBtn:`_pinBtn_1htxc_2274`,pinActive:`_pinActive_1htxc_2292`,editBtn:`_editBtn_1htxc_2297`,cardActions:`_cardActions_1htxc_2315`,cardTitle:`_cardTitle_1htxc_2321`,ackBanner:`_ackBanner_1htxc_2341`,ackBtn:`_ackBtn_1htxc_2356`,ackDone:`_ackDone_1htxc_2368`,summary:`_summary_1htxc_2382`,summaryLeft:`_summaryLeft_1htxc_2392`,summaryIcons:`_summaryIcons_1htxc_2398`,summaryDot:`_summaryDot_1htxc_2403`,summaryCount:`_summaryCount_1htxc_2419`,summaryComments:`_summaryComments_1htxc_2424`,summaryCommentsClickable:`_summaryCommentsClickable_1htxc_2428`,postBar:`_postBar_1htxc_2438`,reactWrap:`_reactWrap_1htxc_2446`,actionBtn:`_actionBtn_1htxc_2452`,actionActive:`_actionActive_1htxc_2476`,picker:`_picker_1htxc_2493`,pickerVisible:`_pickerVisible_1htxc_2525`,pickerBtn:`_pickerBtn_1htxc_2531`,pickerActive:`_pickerActive_1htxc_2553`,schedule:`_schedule_1htxc_2596`,scheduleHead:`_scheduleHead_1htxc_2607`,scheduleGrid:`_scheduleGrid_1htxc_2621`,scheduleField:`_scheduleField_1htxc_2627`,scheduleLabel:`_scheduleLabel_1htxc_2633`,scheduleInput:`_scheduleInput_1htxc_2639`,scheduleRow:`_scheduleRow_1htxc_2656`,scheduleRowLabel:`_scheduleRowLabel_1htxc_2666`,switch:`_switch_1htxc_2679`,switchOn:`_switchOn_1htxc_2691`,switchKnob:`_switchKnob_1htxc_2695`,scheduleFreq:`_scheduleFreq_1htxc_2710`,scheduleTz:`_scheduleTz_1htxc_2714`,tagSearch:`_tagSearch_1htxc_2728`,tagSearchInput:`_tagSearchInput_1htxc_2739`,tagList:`_tagList_1htxc_2748`,tagRow:`_tagRow_1htxc_2756`,tagRowActive:`_tagRowActive_1htxc_2773`,tagRowContent:`_tagRowContent_1htxc_2778`,tagAvatar:`_tagAvatar_1htxc_2784`,tagInfo:`_tagInfo_1htxc_2797`,tagName:`_tagName_1htxc_2802`,tagRole:`_tagRole_1htxc_2808`,tagCheckbox:`_tagCheckbox_1htxc_2813`,tagCheckboxActive:`_tagCheckboxActive_1htxc_2824`,postImagesGrid:`_postImagesGrid_1htxc_2831`,grid1:`_grid1_1htxc_2850`,grid2:`_grid2_1htxc_2853`,grid3:`_grid3_1htxc_2856`,grid4:`_grid4_1htxc_2860`,gridImageWrap:`_gridImageWrap_1htxc_2865`,gridImage:`_gridImage_1htxc_2865`,moreImagesOverlay:`_moreImagesOverlay_1htxc_2891`,lightboxOverlay:`_lightboxOverlay_1htxc_2914`,lightboxContainer:`_lightboxContainer_1htxc_2929`,lightboxLeft:`_lightboxLeft_1htxc_2942`,lightboxRight:`_lightboxRight_1htxc_2952`,lightboxScrollableContent:`_lightboxScrollableContent_1htxc_2962`,lightboxDivider:`_lightboxDivider_1htxc_2973`,lightboxClose:`_lightboxClose_1htxc_2997`,lightboxImage:`_lightboxImage_1htxc_3010`,lightboxArrow:`_lightboxArrow_1htxc_3045`,lightboxArrowLeft:`_lightboxArrowLeft_1htxc_3067`,lightboxArrowRight:`_lightboxArrowRight_1htxc_3075`,lightboxCounter:`_lightboxCounter_1htxc_3083`,templateSheet:`_templateSheet_1htxc_3101`,templateSheetHeader:`_templateSheetHeader_1htxc_3107`,templateBackBtn:`_templateBackBtn_1htxc_3115`,templateSheetTitle:`_templateSheetTitle_1htxc_3138`,templateSheetMeta:`_templateSheetMeta_1htxc_3147`,templateSearch:`_templateSearch_1htxc_3159`,templateSearchIcon:`_templateSearchIcon_1htxc_3165`,templateSearchInput:`_templateSearchInput_1htxc_3174`,templateList:`_templateList_1htxc_3191`,templateItem:`_templateItem_1htxc_3198`,templateItemBody:`_templateItemBody_1htxc_3222`,templateItemTitle:`_templateItemTitle_1htxc_3230`,templateItemSub:`_templateItemSub_1htxc_3239`,templateUseBtn:`_templateUseBtn_1htxc_3247`,templateEmpty:`_templateEmpty_1htxc_3268`,itemIconContainer:`_itemIconContainer_1htxc_3275`,itemBadge:`_itemBadge_1htxc_3287`,itemMetaRow:`_itemMetaRow_1htxc_3297`},aQ=({on:e,label:t,onToggle:n})=>(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":t,className:T(Y.switch,e&&Y.switchOn),onClick:n,children:(0,D.jsx)(`span`,{className:Y.switchKnob})}),oQ=({value:e,onChange:t,timezone:n})=>{let r=new Date,i=r.toLocaleDateString(`en-CA`),a=e.date===i,o=`${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`;return(0,D.jsxs)(`div`,{className:Y.schedule,children:[(0,D.jsxs)(`div`,{className:Y.scheduleHead,children:[(0,D.jsx)(Rn,{size:13}),` SCHEDULE THIS POST`]}),(0,D.jsxs)(`div`,{className:Y.scheduleGrid,children:[(0,D.jsxs)(`label`,{className:Y.scheduleField,children:[(0,D.jsx)(`span`,{className:Y.scheduleLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:Y.scheduleInput,value:e.date,min:new Date().toLocaleDateString(`en-CA`),onChange:n=>{t({...e,date:n.target.value})}})]}),(0,D.jsxs)(`label`,{className:Y.scheduleField,children:[(0,D.jsx)(`span`,{className:Y.scheduleLabel,children:`Time`}),(0,D.jsx)(`input`,{type:`time`,className:Y.scheduleInput,value:e.time,min:a?o:void 0,onChange:n=>{t({...e,time:n.target.value})}})]})]}),(0,D.jsxs)(`div`,{className:Y.scheduleRow,children:[(0,D.jsxs)(`span`,{className:Y.scheduleRowLabel,children:[(0,D.jsx)(zr,{size:13}),` Recurring`]}),(0,D.jsx)(aQ,{on:e.recurring,label:`Repeat this post`,onToggle:()=>{t({...e,recurring:!e.recurring})}})]}),e.recurring&&(0,D.jsx)(zE,{ariaLabel:`Repeat frequency`,className:Y.scheduleFreq??``,options:iQ,value:e.frequency,onChange:n=>{t({...e,frequency:n})}}),(0,D.jsxs)(`div`,{className:Y.scheduleTz,children:[(0,D.jsx)(cr,{size:12}),` Timezone: `,(0,D.jsx)(`strong`,{children:n})]})]})},sQ=({mode:e,disabled:t,onMode:n,onCancel:r,onSubmit:i})=>(0,D.jsxs)(`div`,{className:Y.compFooter,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.cancelBtn,onClick:r,children:`Cancel`}),(0,D.jsxs)(`div`,{className:Y.submitRight,children:[(0,D.jsx)(zE,{ariaLabel:`Publish timing`,className:Y.modeToggle??``,options:rQ,value:e,onChange:n}),(0,D.jsx)(`button`,{type:`button`,className:Y.postBtn,disabled:t,onClick:i,children:e===`schedule`?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Zn,{size:12}),` Schedule post`]}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Vr,{size:12}),` Post now`]})})]})]});function cQ(e,t,n){if(e===`schedule`)return DN(t.date,t.time,n)}function lQ(){let[e,t]=(0,n.useState)(``),[r,i]=(0,n.useState)(``),[a,o]=(0,n.useState)(!1),[s,c]=(0,n.useState)(`general`),[l,u]=(0,n.useState)(`all`),[d,f]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),[_,v]=(0,n.useState)(`now`),[y,b]=(0,n.useState)(nQ),[x,S]=(0,n.useState)([]),[C,ee]=(0,n.useState)([]),[te,ne]=(0,n.useState)(null);return{body:e,setBody:t,title:r,setTitle:i,mustRead:a,setMustRead:o,categoryId:s,setCategoryId:c,audienceId:l,setAudienceId:u,feeling:d,setFeeling:f,location:p,setLocation:m,sheet:h,setSheet:g,mode:_,setMode:v,schedule:y,setSchedule:b,taggedUsers:x,setTaggedUsers:S,photos:C,setPhotos:ee,selectedItem:te,setSelectedItem:ne}}function uQ(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 dQ(e,t,n){let r=wY(),i=IY(),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=cQ(e.mode,e.schedule,n),s=uQ(e,o);if(s){j.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`&&j.success(`Post scheduled for ${e.schedule.date} at ${e.schedule.time}`),t()},onError:()=>{j.error(`Failed to publish post. Please try again.`)}})}catch{j.error(`Invalid schedule date or time, or image upload failed.`)}}}}function fQ(e,t){let n=lQ(),r=jN().display,{submitDisabled:i,submit:a}=dQ(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)};return{...n,category:t.find(e=>e.id===n.categoryId),timezone:r,submitDisabled:i,toggleTag:o,applyTemplate:s,submit:a}}var pQ={all:ri,sales:In,admission:lr,leadership:Yr},mQ=e=>pQ[e]??ri,hQ=({audienceId:e,onChange:t})=>{let{data:n=[]}=NY(),r=n.find(t=>t.id===e)??n[0],i=mQ(r?.id??`all`);return(0,D.jsx)(ET,{align:`start`,trigger:(0,D.jsxs)(`button`,{type:`button`,className:Y.audiencePill,"aria-label":`Audience`,children:[(0,D.jsx)(i,{size:12}),` `,r?.label??`Everyone`,(0,D.jsx)(Wn,{size:12})]}),items:n.map(e=>{let n=mQ(e.id);return{label:e.label,icon:(0,D.jsx)(n,{size:14}),onSelect:()=>{t(e.id)}}})})},gQ=({audienceId:e,onChange:t})=>{let{data:n=[]}=NY();return(0,D.jsxs)(`div`,{className:Y.audienceSection,children:[(0,D.jsx)(`span`,{className:Y.audienceLabel,children:`Who can see this post?`}),(0,D.jsx)(`div`,{className:Y.audienceRow,children:n.map(n=>{let r=mQ(n.id),i=n.id===e;return(0,D.jsxs)(`button`,{type:`button`,className:T(Y.audienceBtn,i&&Y.audienceBtnActive),"aria-pressed":i,onClick:()=>{t(n.id)},children:[(0,D.jsx)(r,{size:14}),` `,n.label,i&&(0,D.jsx)(Un,{size:13})]},n.id)})})]})},_Q=({user:e,isSelected:t,onToggleTag:n})=>(0,D.jsxs)(`button`,{type:`button`,className:T(Y.tagRow,t&&Y.tagRowActive),onClick:()=>{n(e)},children:[(0,D.jsxs)(`div`,{className:Y.tagRowContent,children:[(0,D.jsx)(`span`,{className:Y.tagAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`div`,{className:Y.tagInfo,children:[(0,D.jsx)(`span`,{className:Y.tagName,children:e.name}),(0,D.jsx)(`span`,{className:Y.tagRole,children:e.role})]})]}),(0,D.jsx)(`div`,{className:T(Y.tagCheckbox,t&&Y.tagCheckboxActive),children:(0,D.jsx)(Un,{size:12})})]}),vQ=({isSearching:e,isPending:t,search:n,activeList:r,taggedUserIds:i,onToggleTag:a})=>e?t?(0,D.jsx)(`span`,{className:Y.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Searching...`}):r.length===0?(0,D.jsxs)(`span`,{className:Y.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)(_Q,{user:e,isSelected:i.includes(e.id),onToggleTag:a},e.id))}):(0,D.jsx)(`span`,{className:Y.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Type a name or email to search teammates.`}),yQ=({taggedUserIds:e,onToggleTag:t})=>{let[r,i]=(0,n.useState)(``),a=FY(r),o=r.trim().length>0,s=a.data??[];return(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:Y.tagSearch,children:[(0,D.jsx)(Br,{size:14,className:Y.actionBarLabel}),(0,D.jsx)(`input`,{type:`text`,className:Y.tagSearchInput,placeholder:`Search teammates`,value:r,onChange:e=>{i(e.target.value)}}),r&&(0,D.jsx)(`button`,{type:`button`,onClick:()=>{i(``)},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)(oi,{size:14})})]}),(0,D.jsx)(`div`,{className:Y.tagList,children:(0,D.jsx)(vQ,{isSearching:o,isPending:a.isPending,search:r,activeList:s,taggedUserIds:e,onToggleTag:t})})]})},bQ=(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()]??``)},xQ=e=>e.length>120?`${e.slice(0,120)}…`:e,SQ=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},CQ=({item:e,templates:t,onSelect:n})=>{let r=SQ(t),i=Object.entries(e.values).filter(([e,t])=>(r.size===0||r.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(0,D.jsxs)(`button`,{type:`button`,className:Y.templateItem,onClick:()=>{n(e)},children:[(0,D.jsx)(`div`,{className:Y.itemIconContainer,children:(0,D.jsx)(or,{size:16})}),(0,D.jsxs)(`div`,{className:Y.templateItemBody,children:[(0,D.jsx)(`span`,{className:Y.templateItemTitle,children:e.label}),e.sublabel!==``&&(0,D.jsx)(`span`,{className:Y.templateItemSub,children:e.sublabel}),i.length>0&&(0,D.jsx)(`div`,{className:Y.itemMetaRow,children:i.map(([e,t])=>(0,D.jsxs)(`span`,{className:Y.itemBadge,children:[e.replace(/_/g,` `),`: `,t]},e))})]}),(0,D.jsx)(`span`,{className:Y.templateUseBtn,children:`SELECT`})]})},wQ=({category:e,items:t,templates:r,searchQuery:i,onSearchQuery:a,isLoading:o,onBack:s,onSelectItem:c})=>{let[l,u]=(0,n.useState)(``),d=a!==void 0,f=d?i??``:l,p=d?a:u,m=d||f.trim()===``?t:t.filter(e=>[e.label,e.sublabel,e.id].join(` `).toLowerCase().includes(f.toLowerCase()));return(0,D.jsxs)(`div`,{className:Y.templateSheet,children:[(0,D.jsxs)(`div`,{className:Y.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.templateBackBtn,onClick:s,children:(0,D.jsx)(jn,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:Y.templateSheetTitle,children:`Select Item`}),(0,D.jsxs)(`span`,{className:Y.templateSheetMeta,children:[`Showing items for `,(0,D.jsx)(`strong`,{children:e.label})]})]})]}),(0,D.jsxs)(`div`,{className:Y.templateSearch,children:[(0,D.jsx)(Br,{size:13,className:Y.templateSearchIcon}),(0,D.jsx)(`input`,{type:`text`,className:Y.templateSearchInput,placeholder:`Search items…`,value:f,onChange:e=>{p(e.target.value)}}),o&&m.length>0&&(0,D.jsx)(`div`,{style:{marginLeft:`8px`,display:`flex`,alignItems:`center`},children:(0,D.jsx)(mi,{size:`sm`})})]}),(0,D.jsx)(`div`,{className:Y.templateList,children:o&&m.length===0?(0,D.jsx)(`div`,{style:{padding:`2rem`,display:`flex`,justifyContent:`center`},children:(0,D.jsx)(mi,{})}):m.length===0?(0,D.jsx)(`p`,{className:Y.templateEmpty,children:`No items found.`}):m.map(e=>(0,D.jsx)(CQ,{item:e,templates:r,onSelect:c},e.id))})]})},TQ=({selectedItem:e,templates:t,onBack:n,onUse:r})=>(0,D.jsxs)(`div`,{className:Y.templateSheet,children:[(0,D.jsxs)(`div`,{className:Y.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.templateBackBtn,onClick:n,children:(0,D.jsx)(jn,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:Y.templateSheetTitle,children:`Choose Template`}),(0,D.jsxs)(`span`,{className:Y.templateSheetMeta,children:[e.label,` · `,(0,D.jsx)(`strong`,{children:e.sublabel})]})]})]}),(0,D.jsx)(`div`,{className:Y.templateList,children:t.length===0?(0,D.jsx)(`p`,{className:Y.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=bQ(t.postBody,i),o=bQ(t.postTitle,i);return(0,D.jsxs)(`button`,{type:`button`,className:Y.templateItem,onClick:()=>{r(o,a)},children:[(0,D.jsxs)(`div`,{className:Y.templateItemBody,children:[(0,D.jsx)(`span`,{className:Y.templateItemTitle,children:t.name}),(0,D.jsx)(`span`,{className:Y.templateItemSub,children:xQ(a)})]}),(0,D.jsxs)(`span`,{className:Y.templateUseBtn,children:[(0,D.jsx)(Un,{size:11}),`USE`]})]},t.id)})})]}),EQ=({category:e})=>e===void 0?null:(0,D.jsx)(`div`,{className:Y.compChips,children:(0,D.jsxs)(`span`,{className:Y.compChip,children:[`🏷️ `,e.label]})}),DQ=({sheet:e,location:t,onSheet:n,onToggleLocation:r,showPhoto:i=!0})=>(0,D.jsxs)(`div`,{className:Y.actionBar,children:[(0,D.jsx)(`span`,{className:Y.actionBarLabel,children:`Add to your post`}),(0,D.jsxs)(`div`,{className:Y.actionBarBtns,children:[i&&(0,D.jsx)(`button`,{type:`button`,title:`Photo/video`,className:T(Y.actionIcon,e===`photo`&&Y.actionIconActive),onClick:()=>{n(`photo`)},children:(0,D.jsx)(pr,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Tag people`,className:T(Y.actionIcon,e===`tag`&&Y.actionIconActive),onClick:()=>{n(`tag`)},children:(0,D.jsx)(ni,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Feeling/activity`,className:T(Y.actionIcon,e===`feeling`&&Y.actionIconActive),onClick:()=>{n(`feeling`)},children:(0,D.jsx)(qr,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Location`,className:T(Y.actionIcon,t!==null&&Y.actionIconActive),onClick:r,children:(0,D.jsx)(vr,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Category`,className:T(Y.actionIcon,(e===`category`||e===`item`||e===`template`)&&Y.actionIconActive),onClick:()=>{n(`category`)},children:(0,D.jsx)(Xr,{size:15})})]})]}),OQ=({categoryId:e,onCategory:t})=>{let{data:n=[]}=MY();return(0,D.jsx)(`div`,{className:Y.sheetChips,children:n.map(n=>(0,D.jsx)(`button`,{type:`button`,className:T(Y.catChip,e===n.id&&Y.catChipOn),style:E({"--chip":n.color}),onClick:()=>{t(n)},children:n.label},n.id))})},kQ=({feeling:e,onFeeling:t})=>{let{data:n=[]}=PY();return(0,D.jsx)(`div`,{className:Y.feelGrid,children:n.map(n=>(0,D.jsxs)(`button`,{type:`button`,className:T(Y.feelBtn,e===n.id&&Y.feelBtnOn),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:Y.feelEmoji,children:n.emoji}),n.label]},n.id))})},AQ={photo:`Add photos`,tag:`Tag people`,feeling:`How are you feeling?`,category:`POST CATEGORY`,item:`Select Item`,template:`Choose Template`},jQ=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)(OQ,{categoryId:n,onCategory:e=>{l(e),e.templateIds.length>0?h(`item`):m()}});case`feeling`:return(0,D.jsx)(kQ,{feeling:r,onFeeling:u});case`tag`:return(0,D.jsx)(yQ,{taggedUserIds:i,onToggleTag:d});case`item`:return c===void 0?null:(0,D.jsx)(wQ,{category:c,items:o,templates:s,searchQuery:g,onSearchQuery:_,isLoading:v,onBack:()=>{h(`category`)},onSelectItem:e=>{f(e),h(`template`)}});case`template`:return a===null?null:(0,D.jsx)(TQ,{selectedItem:a,templates:s,onBack:()=>{h(`item`)},onUse:p});case null:case`photo`:return null;default:return null}},MQ=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:Y.sheet,children:[r&&(0,D.jsxs)(`div`,{className:Y.sheetHead,children:[(0,D.jsx)(`span`,{className:Y.sheetLabel,children:AQ[t]}),(0,D.jsx)(`button`,{type:`button`,className:Y.sheetClose,"aria-label":`Close`,onClick:n,children:(0,D.jsx)(oi,{size:14})})]}),(0,D.jsx)(jQ,{...e})]})},NQ=e=>e.map(e=>({url:URL.createObjectURL(e),name:e.name,size:e.size,file:e})),PQ=({onOpen:e})=>(0,D.jsxs)(`button`,{type:`button`,className:Y.dropzone,onClick:e,children:[(0,D.jsx)(`span`,{className:Y.dropIcon,children:(0,D.jsx)(Qn,{size:20})}),(0,D.jsx)(`span`,{className:Y.dropTitle,children:`Click to upload or drag & drop`}),(0,D.jsx)(`span`,{className:Y.dropHint,children:`Supported image formats: PNG, JPG, JPEG, GIF, WEBP, HEIC (Max 10MB)`})]}),FQ=({photos:e,onOpen:t,onRemove:n})=>(0,D.jsxs)(`div`,{className:Y.photoGrid,children:[e.map(e=>(0,D.jsxs)(`div`,{className:Y.photoThumb,children:[(0,D.jsx)(`img`,{src:e.url,alt:e.name,className:Y.photoImg}),(0,D.jsx)(`button`,{type:`button`,className:Y.photoRemove,"aria-label":`Remove ${e.name}`,onClick:()=>{n(e.id)},children:(0,D.jsx)(oi,{size:12})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:Y.photoAddMore,"aria-label":`Add more photos`,onClick:t,children:(0,D.jsx)(fr,{size:18})})]}),IQ=(e,t)=>NQ(e).map((e,n)=>({id:`${e.name}-${String(e.size)}-${String(t+n)}`,url:e.url,name:e.name,file:e.file})),LQ=async e=>{if(e.files===null)return;let t=5-e.currentCount;if(t<=0){j.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))&&j.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&&j.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&&j.error(`Only the first ${String(t)} images were added. Maximum limit is 5.`);let c=IQ(await Promise.all(s.map(e=>KY(e))),e.existingPicked.length);if(c.length===0)return;let l=[...e.existingPicked,...c];e.onResult(l,l.map(e=>e.file))},RQ=({photos:e,setPhotos:t})=>{let[r,i]=(0,n.useState)([]),[a,o]=(0,n.useState)(!1),s=(0,n.useRef)(null),c=(0,n.useRef)([]);c.current=r,(0,n.useEffect)(()=>()=>{for(let e of c.current)URL.revokeObjectURL(e.url)},[]);let l=n=>{LQ({files:n,currentCount:e.length,existingPicked:r,onResult:(e,n)=>{i(e),t(n)}})};return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,multiple:!0,className:Y.photoInput,onChange:e=>{l(e.target.files),s.current!==null&&(s.current.value=``)}}),(0,D.jsx)(`div`,{className:T(Y.photoZone,a&&Y.photoZoneDrag),onDragOver:e=>{e.preventDefault(),o(!0)},onDragLeave:()=>{o(!1)},onDrop:e=>{e.preventDefault(),o(!1),l(e.dataTransfer.files)},children:r.length===0?(0,D.jsx)(PQ,{onOpen:()=>s.current?.click()}):(0,D.jsx)(FQ,{photos:r,onOpen:()=>s.current?.click(),onRemove:e=>{i(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})}})})]})},zQ=({value:e,onChange:t,className:n})=>(0,D.jsx)(`input`,{className:T(Y.titleInput,n),placeholder:`Add a headline (optional)`,value:e,onChange:e=>{t(e.target.value)}}),BQ=({on:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:Y.compOption,children:[(0,D.jsxs)(`span`,{className:Y.compOptionLabel,children:[(0,D.jsx)(Yn,{size:14}),` Must-read — require acknowledgement`]}),(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":`Require acknowledgement`,className:T(Y.switch,e&&Y.switchOn),onClick:t,children:(0,D.jsx)(`span`,{className:Y.switchKnob})})]}),VQ=(e,t)=>{let{detectLocation:n}=yY();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)})}},HQ=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:ee}=e,te=VQ(r,p);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(EQ,{category:t}),C?ee:(i===`photo`||x.length>0)&&(0,D.jsx)(RQ,{photos:x,setPhotos:S}),(0,D.jsx)(DQ,{sheet:i,location:r,onSheet:e=>{f(t=>t===e?null:e)},onToggleLocation:te,showPhoto:!C||ee===void 0||i===`photo`}),(0,D.jsx)(MQ,{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)(gQ,{audienceId:o,onChange:g}),(0,D.jsx)(BQ,{on:s,onToggle:()=>{_(e=>!e)}})]})},UQ=({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]}),WQ=e=>{let{title:t,setTitle:n,body:r,setBody:i,bodyPlaceholder:a,isEditMode:o=!1,editImagesNode:s}=e,c=di(t,300,250),l=di(r,8e3,7e3);return(0,D.jsxs)(D.Fragment,{children:[o?(0,D.jsx)(`input`,{type:`text`,className:T(Y.titleInput,c.isOverLimit&&Y.textareaError),value:t,placeholder:`Add a headline (optional)...`,onChange:e=>{n(e.target.value)},style:{width:`100%`}}):(0,D.jsx)(zQ,{value:t,onChange:n,className:c.isOverLimit?Y.textareaError:void 0}),c.showCounter&&(0,D.jsx)(UQ,{length:c.length,limit:300,color:c.counterColor,fontSize:`11px`,padding:`2px 16px 4px`}),(0,D.jsx)(`textarea`,{className:T(Y.textarea,l.isOverLimit&&Y.textareaError),placeholder:a,value:r,onChange:e=>{i(e.target.value)},style:o?{width:`100%`,minHeight:`100px`}:void 0}),l.showCounter&&(0,D.jsx)(UQ,{length:l.length,limit:8e3,color:l.counterColor,fontSize:`12px`,padding:`2px 16px 6px`}),(0,D.jsx)(HQ,{...e,isEditMode:o,...s===void 0?{}:{editImagesNode:s}})]})},GQ=({authorInfo:e,audienceId:t,taggedUsers:n,feeling:r,location:i,onAudience:a,onClose:o})=>{let{data:s=[]}=PY(),c=s.find(e=>e.id===r);return(0,D.jsxs)(`div`,{className:Y.compHead,style:o?void 0:{borderBottom:`none`,padding:`0 0 10px`},children:[(0,D.jsxs)(`div`,{className:Y.compAvatarWrapper,children:[(0,D.jsx)(`span`,{className:Y.compAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),o&&(0,D.jsx)(`span`,{className:Y.statusDot})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:Y.compHeaderTagline,children:[(0,D.jsx)(`strong`,{children:e.name}),c&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:Y.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:Y.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:Y.taggedTagline,children:RY(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)(hQ,{audienceId:t,onChange:a})]}),o&&(0,D.jsx)(`button`,{type:`button`,className:Y.compClose,"aria-label":`Close`,onClick:o,children:(0,D.jsx)(oi,{size:16})})]})},KQ=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}},qQ=(e,t)=>e===void 0?[]:t.filter(t=>e.templateIds.includes(t.id)),JQ=(e,t)=>{let n=!!e?.webhookId,r=JL(n?void 0:e?.categoryKey),i=YL(e?.categoryKey??``,t,n),a=n?i:r;return{rawItems:a.data??[],isLoadingItems:a.isPending,hasWebhook:n}};function YQ({profile:e,onClose:t}){let{data:r=[]}=MY(),i=fQ(t,r),a=i.category,[o,s]=(0,n.useState)(``),{rawItems:c,isLoadingItems:l,hasWebhook:u}=JQ(a,o),{data:d=[]}=qL(),f=qQ(a,d),p=c.map(KQ);return(0,D.jsxs)(`div`,{className:Y.composer,children:[(0,D.jsx)(GQ,{authorInfo:e,audienceId:i.audienceId,taggedUsers:i.taggedUsers,feeling:i.feeling,location:i.location,onAudience:i.setAudienceId,onClose:t}),(0,D.jsx)(WQ,{title:i.title,setTitle:i.setTitle,body:i.body,setBody:i.setBody,bodyPlaceholder:`What's on your mind, ${e.name.split(` `)[0]??``}?`,category:i.category,feeling:i.feeling,location:i.location,sheet:i.sheet,categoryId:i.categoryId,audienceId:i.audienceId,mustRead:i.mustRead,taggedUserIds:i.taggedUsers.map(e=>e.id),selectedItem:i.selectedItem,categoryItems:p,categoryTemplates:f,setSheet:i.setSheet,setLocation:i.setLocation,setCategoryId:e=>{s(``),i.setCategoryId(e.id)},setFeeling:i.setFeeling,setAudienceId:i.setAudienceId,setMustRead:i.setMustRead,onToggleTag:i.toggleTag,onSelectItem:i.setSelectedItem,onApplyTemplate:i.applyTemplate,photos:i.photos,setPhotos:i.setPhotos,isEditMode:!1,searchQuery:o,onSearchQuery:u?s:void 0,isLoadingItems:l}),i.mode===`schedule`&&(0,D.jsx)(oQ,{value:i.schedule,onChange:i.setSchedule,timezone:i.timezone}),(0,D.jsx)(sQ,{mode:i.mode,disabled:i.submitDisabled,onMode:i.setMode,onCancel:t,onSubmit:()=>{i.submit()}})]})}var XQ=e=>e.split(/[\s_-]+/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `),ZQ=e=>XQ((e.split(`@`)[0]??e).replace(/[._-]+/g,` `)),QQ=(e,t)=>{let n=e.length>0?e:t;return n.includes(`@`)?ZQ(n):n},$Q=(e,t,n)=>{let r=e.length>0?e:t;return r.length===0||r.includes(`@`)?QQ(t,n):r},e$=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?li(n):`?`,t$=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?ui(n):`#6b7280`,n$=(e,t)=>{if(!t)return{name:``,initials:`?`,color:`#6b7280`};let n=$Q(e?e.name:``,t.fullName,t.email.value);return{name:n,initials:e$(e?e.initials:void 0,!0,n),color:t$(e?e.color:void 0,!0,t.id)}},r$=()=>{let[e,t]=(0,n.useState)(!1),{user:r}=mz(),i=n$(KP().data,r);if(!e){let e=i.name.split(` `)[0]??``;return(0,D.jsxs)(`div`,{className:Y.composerCollapsed,children:[(0,D.jsx)(`span`,{className:Y.ccAvatar,style:E({"--avatar-color":i.color}),children:i.initials}),(0,D.jsxs)(`button`,{type:`button`,className:Y.ccInput,onClick:()=>{t(!0)},children:[`What's on your mind, `,e,`?`]})]})}return(0,D.jsx)(YQ,{profile:i,onClose:()=>{t(!1)}})},i$=()=>(0,D.jsxs)(`div`,{className:Y.emptyState,children:[(0,D.jsx)(`div`,{className:Y.emptyIconWrap,children:(0,D.jsx)(mr,{size:32})}),(0,D.jsx)(`h3`,{className:Y.emptyTitle,children:`It's quiet in here`}),(0,D.jsx)(`p`,{className:Y.emptyText,children:`There are no posts in this feed yet. Be the first to share an update!`})]}),a$=G({id:H(),fullName:H(),email:H(),roleName:H(),department:H(),branchKey:H().nullish(),branchName:H().nullish(),level:U(),online:NA(),hasAccount:NA().nullish(),initials:H(),color:H(),permissionSetName:H().nullish(),permissionSetColor:H().nullish()});G({totalCount:U(),items:W(a$)}),W(H()),W(G({key:H(),name:H()}));var o$=(0,n.createContext)(null),s$=()=>{let e=(0,n.useContext)(o$);if(e===null)throw Error(`Users hooks must be used within <UsersModuleProvider>.`);return e},c$=[`users`],l$=e=>{let{listUsers:t}=s$();return rN({queryKey:[...c$,e],queryFn:()=>P(t.execute(e)),placeholderData:$j,staleTime:3e4})},u$=({post:e,taggedUsers:t})=>(0,D.jsxs)(`div`,{className:Y.compHeaderTagline,style:{display:`block`,fontSize:`14px`,lineHeight:`1.4`},children:[(0,D.jsx)(`span`,{className:Y.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:` `}),RY(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})]})]}),d$=({post:e,taggedUsers:t})=>{let n=jN().display;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:Y.avatar,style:E({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:Y.cardAuthor,children:[(0,D.jsx)(u$,{post:e,taggedUsers:t}),(0,D.jsxs)(`div`,{className:Y.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:WY(e.createdAt,n)}),(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`]})]})]})]})},f$=e=>{let t=l$({page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`}).data;return t?t.users.filter(t=>e.includes(t.id)):[]},p$=({post:e,onBookmark:t,onPin:n,showPinButton:r,onEdit:i,showEditButton:a})=>{let o=f$(e.taggedUserIds),{categoryLabel:s,categoryColor:c}=LY(e);return(0,D.jsxs)(`header`,{className:Y.cardHead,children:[(0,D.jsx)(d$,{post:e,taggedUsers:o}),(0,D.jsxs)(`div`,{className:Y.cardRight,children:[(0,D.jsxs)(`span`,{className:Y.badge,style:E({"--badge-color":c}),children:[(0,D.jsx)(`span`,{className:Y.badgeDot}),s]}),(0,D.jsxs)(`div`,{className:Y.cardActions,children:[(0,D.jsx)(`button`,{type:`button`,className:T(Y.bookmarkBtn,e.bookmarked&&Y.bookmarkActive),"aria-label":e.bookmarked?`Remove bookmark`:`Save post`,onClick:t,children:(0,D.jsx)(Fn,{size:15,fill:e.bookmarked?`currentColor`:`none`})}),r&&n&&(0,D.jsx)(`button`,{type:`button`,className:T(Y.pinBtn,e.pinned&&Y.pinActive),"aria-label":e.pinned?`Unpin post`:`Pin post`,onClick:n,children:(0,D.jsx)(jr,{size:15,fill:e.pinned?`currentColor`:`none`})}),a&&i&&(0,D.jsx)(`button`,{type:`button`,className:Y.editBtn,"aria-label":`Edit post`,onClick:i,children:(0,D.jsx)(Or,{size:15})})]})]})]})},m$=({url:e,onRemove:t})=>(0,D.jsxs)(`div`,{className:Y.photoThumb,children:[(0,D.jsx)(`img`,{src:e,alt:`thumbnail`,className:Y.photoImg}),(0,D.jsx)(`button`,{type:`button`,onClick:t,className:Y.photoRemove,children:(0,D.jsx)(oi,{size:12})})]}),h$=({file:e,onRemove:t})=>{let[r,i]=(0,n.useState)(``);return(0,n.useEffect)(()=>{let t=URL.createObjectURL(e);return i(t),()=>{URL.revokeObjectURL(t)}},[e]),r?(0,D.jsx)(m$,{url:r,onRemove:t}):null},g$=({existingImages:e,newPhotos:t,onAddPhotos:r,onRemoveExisting:i,onRemoveNew:a})=>{let o=(0,n.useRef)(null);return e.length===0&&t.length===0?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:o,type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&r(e.target.files)},style:{display:`none`}}),(0,D.jsx)(PQ,{onOpen:()=>o.current?.click()})]}):(0,D.jsxs)(`div`,{className:Y.photoGrid,children:[e.map(e=>(0,D.jsx)(m$,{url:e,onRemove:()=>{i(e)}},e)),t.map((e,t)=>(0,D.jsx)(h$,{file:e,onRemove:()=>{a(t)}},t)),(0,D.jsxs)(`label`,{className:Y.photoAddMore,children:[(0,D.jsx)(fr,{size:18}),(0,D.jsx)(`input`,{type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&r(e.target.files)},style:{display:`none`}})]})]})},_$=e=>({id:e.id,name:e.fullName,email:e.email,userName:e.fullName,role:e.roleName,initials:e.initials,color:e.color}),v$=e=>{let[t,r]=(0,n.useState)(e),[i,a]=(0,n.useState)([]);return{existingImages:t,setExistingImages:r,newPhotos:i,setNewPhotos:a,handleAddPhotos:async e=>{let n=5-(t.length+i.length);if(n<=0){j.error(`You can only have a maximum of 5 images.`);return}let r=Array.from(e).filter(e=>e.type.startsWith(`image/`)||e.name.toLowerCase().endsWith(`.heic`)||e.name.toLowerCase().endsWith(`.heif`)),o=10*1024*1024;r.filter(e=>e.size>o).length>0&&j.error(`Some images exceed the 10MB limit and were skipped.`);let s=r.filter(e=>e.size<=o),c=s.slice(0,n);s.length>n&&j.error(`Only the first ${String(n)} images were added. Maximum limit is 5.`);let l=await Promise.all(c.map(e=>KY(e)));a(e=>[...e,...l])},handleRemoveExisting:e=>{r(t=>t.filter(t=>t!==e))},handleRemoveNew:e=>{a(t=>t.filter((t,n)=>n!==e))}}},y$=(e,t,r)=>{let[i,a]=(0,n.useState)(e.department??`general`),[o,s]=(0,n.useState)(e.audienceId),[c,l]=(0,n.useState)(e.feelingId),[u,d]=(0,n.useState)(e.locationLabel),[f,p]=(0,n.useState)(e.mustAcknowledge),[m,h]=(0,n.useState)(null),[g,_]=(0,n.useState)(t.filter(t=>e.taggedUserIds.includes(t.id)).map(_$));return{categoryId:i,setCategoryId:a,audienceId:o,setAudienceId:s,feeling:c,setFeeling:l,location:u,setLocation:d,mustRead:f,setMustRead:p,taggedUsers:g,setTaggedUsers:_,sheet:m,setSheet:h,toggleTag:e=>{_(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...`),r.execute().then(e=>{d(t=>t===`Detecting location...`?e.ok?e.value:`London Office`:t)})}}},b$=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},x$=e=>e.map(e=>b$(e)).filter(e=>e!==null),S$=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&&j.error(`${String(i)} image${i>1?`s`:``} failed to upload.`),r},C$=async({post:e,editTitle:t,editBody:n,photosState:r,composerState:i,updatePostMutation:a,uploadImageMutation:o,setIsEditing:s})=>{if(t.trim().length>300){j.error(`Post title cannot exceed 300 characters.`);return}if(n.trim().length>8e3){j.error(`Post body cannot exceed 8000 characters.`);return}try{let c=await S$(r.newPhotos,e=>o.mutateAsync(e)),l=x$(r.existingImages);a.mutate({postId:e.id,input:{title:t.trim()||null,body:n,imageIds:[...l,...c],categoryId:i.categoryId,audienceId:i.audienceId,mustAcknowledge:i.mustRead,taggedUserIds:i.taggedUsers.map(e=>e.id),feelingId:i.feeling,locationLabel:i.location}},{onSuccess:()=>{s(!1),r.setNewPhotos([])},onError:()=>{j.error(`Failed to update the post. Please try again.`)}})}catch{j.error(`Failed to process post images. Please try again.`)}},w$=({post:e,setTitle:t,setBody:n,photos:r,composer:i,allUsers:a})=>{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.setTaggedUsers(a.filter(t=>e.taggedUserIds.includes(t.id)).map(_$))},T$=()=>{let[e,t]=(0,n.useState)(!1),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(null),[s,c]=(0,n.useState)(!1);return{commentsOpen:e,setCommentsOpen:t,shareOpen:r,setShareOpen:i,lightboxIndex:a,setLightboxIndex:o,isEditing:s,setIsEditing:c}},E$={page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`},D$=e=>{let t=T$(),[r,i]=(0,n.useState)(e.title??``),[a,o]=(0,n.useState)(e.body),s=l$(E$).data?.users??[],{detectLocation:c}=yY(),l=v$(e.imageUrls),u=y$(e,s,c),d=TY(),f=IY();return(0,n.useEffect)(()=>{t.isEditing||w$({post:e,setTitle:i,setBody:o,photos:l,composer:u,allUsers:s})},[t.isEditing,e,s]),{...t,editTitle:r,setEditTitle:i,editBody:a,setEditBody:o,existingImages:l.existingImages,newPhotos:l.newPhotos,isPending:d.isPending||f.isPending,handleAddPhotos:e=>{l.handleAddPhotos(e)},handleRemoveExisting:l.handleRemoveExisting,handleRemoveNew:l.handleRemoveNew,handleSave:()=>{C$({post:e,editTitle:r,editBody:a,photosState:l,composerState:u,updatePostMutation:d,uploadImageMutation:f,setIsEditing:t.setIsEditing})},handleCancel:()=>{w$({post:e,setTitle:i,setBody:o,photos:l,composer:u,allUsers:s}),t.setIsEditing(!1)},categoryId:u.categoryId,setCategoryId:u.setCategoryId,audienceId:u.audienceId,setAudienceId:u.setAudienceId,feeling:u.feeling,setFeeling:u.setFeeling,location:u.location,setLocation:u.setLocation,mustRead:u.mustRead,setMustRead:u.setMustRead,taggedUsers:u.taggedUsers,sheet:u.sheet,setSheet:u.setSheet,toggleTag:u.toggleTag,handleToggleLocation:u.handleToggleLocation}},O$=()=>{},k$=({isPending:e,body:t,onSave:n,onCancel:r})=>(0,D.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:`8px`},children:[(0,D.jsx)(`button`,{type:`button`,onClick:r,style:{padding:`6px 12px`,borderRadius:`6px`,border:`1px solid var(--color-border)`,background:`transparent`,color:`var(--color-text-soft)`,cursor:`pointer`},children:`Cancel`}),(0,D.jsx)(`button`,{type:`button`,disabled:e||!t.trim(),onClick:n,style:{padding:`6px 12px`,borderRadius:`6px`,border:`none`,background:`var(--color-primary)`,color:`white`,cursor:`pointer`,opacity:e||!t.trim()?.6:1},children:e?`Saving...`:`Save`})]}),A$=({post:e,state:t})=>{let{data:n=[]}=MY(),r=n.find(e=>e.id===t.categoryId);return(0,D.jsxs)(`div`,{style:{padding:`20px`,display:`flex`,flexDirection:`column`,gap:`12px`},children:[(0,D.jsx)(GQ,{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)(WQ,{title:t.editTitle,setTitle:t.setEditTitle,body:t.editBody,setBody:t.setEditBody,bodyPlaceholder:`What's on your mind?`,category:r,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:e=>{t.setCategoryId(e.id)},selectedItem:null,categoryItems:[],categoryTemplates:[],onSelectItem:O$,onApplyTemplate:(e,n)=>{t.setEditTitle(e),t.setEditBody(n)},setFeeling:t.setFeeling,setAudienceId:t.setAudienceId,setMustRead:t.setMustRead,onToggleTag:t.toggleTag,photos:[],setPhotos:O$,isEditMode:!0,editImagesNode:t.existingImages.length>0||t.newPhotos.length>0||t.sheet===`photo`?(0,D.jsx)(g$,{existingImages:t.existingImages,newPhotos:t.newPhotos,onAddPhotos:e=>{t.handleAddPhotos(e)},onRemoveExisting:t.handleRemoveExisting,onRemoveNew:t.handleRemoveNew}):void 0}),(0,D.jsx)(k$,{isPending:t.isPending,body:t.editBody,onSave:t.handleSave,onCancel:t.handleCancel})]})},j$=({comment:e,displayZone:t})=>(0,D.jsxs)(`div`,{className:Y.commentRow,children:[(0,D.jsx)(`span`,{className:Y.commentAvatar,style:E({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:Y.commentBubble,children:[(0,D.jsxs)(`div`,{className:Y.commentAuthor,children:[e.authorName,` `,(0,D.jsxs)(`span`,{className:Y.commentTime,children:[`· `,WY(e.createdAt,t)]})]}),(0,D.jsx)(`div`,{className:Y.commentText,children:e.text})]})]}),M$=({comments:e,pending:t,onAdd:r})=>{let[i,a]=(0,n.useState)(``),{user:o}=mz(),s=jN().display,c=di(i,4e3),l={initials:o?li(o.fullName):`?`,color:o?ui(o.id):`#6b7280`},u=()=>{i.trim()!==``&&(r(i.trim()),a(``))};return(0,D.jsxs)(`div`,{className:Y.comments,children:[e.map(e=>(0,D.jsx)(j$,{comment:e,displayZone:s},e.id)),(0,D.jsxs)(`div`,{className:Y.commentRow,children:[(0,D.jsx)(`span`,{className:Y.commentAvatar,style:E({"--avatar-color":l.color}),children:l.initials}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsxs)(`div`,{className:T(Y.commentComposer,c.isOverLimit&&Y.commentComposerError),children:[(0,D.jsx)(`input`,{className:Y.commentInput,placeholder:`Write a comment…`,value:i,onChange:e=>{a(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&!c.isOverLimit&&u()}}),(0,D.jsx)(`button`,{type:`button`,className:Y.commentSend,disabled:i.trim()===``||t||c.isOverLimit,onClick:u,children:(0,D.jsx)(Vr,{size:13})})]}),c.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:c.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[c.length,` / 4000`]})]})]})]})},N$=({url:e,alt:t,className:n})=>(0,D.jsx)(`img`,{src:e,alt:t,className:n,loading:`lazy`}),P$=({urls:e,onImageClick:t})=>{let n=e.length;if(n===0)return null;let r=Y.grid1;n===2&&(r=Y.grid2),n===3&&(r=Y.grid3),n>=4&&(r=Y.grid4);let i=n>4?e.slice(0,4):e;return(0,D.jsx)(`div`,{className:T(Y.postImagesGrid,r),children:i.map((e,r)=>{let i=r===3&&n>4;return(0,D.jsx)(`div`,{className:T(Y.gridImageWrap,i&&Y.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)(N$,{url:e,alt:`Attached`,className:Y.gridImage})},r)})})},F$=({onClose:e})=>(0,D.jsxs)(`div`,{className:Y.shareHead,children:[(0,D.jsx)(`div`,{className:Y.shareHeadIcon,children:(0,D.jsx)(Ir,{size:15})}),(0,D.jsxs)(`div`,{className:Y.shareHeadText,children:[(0,D.jsx)(`h3`,{className:Y.shareTitle,children:`Share Post`}),(0,D.jsx)(`p`,{className:Y.shareDesc,children:`Share this post to chat conversations`})]}),(0,D.jsx)(`button`,{type:`button`,className:Y.shareCloseBtn,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(oi,{size:18})})]}),I$=({count:e,disabled:t,onCancel:n,onSend:r})=>(0,D.jsxs)(`div`,{className:Y.shareFooter,children:[(0,D.jsx)(`span`,{className:Y.shareFootText,children:e===0?`Select at least one chat`:`${String(e)} ${e===1?`chat`:`chats`} selected`}),(0,D.jsxs)(`div`,{className:Y.shareFootBtns,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.shareCancelBtn,onClick:n,children:`Cancel`}),(0,D.jsxs)(`button`,{type:`button`,className:Y.shareSendBtn,disabled:e===0||t,onClick:r,children:[(0,D.jsx)(Vr,{size:12}),` Send`]})]})]}),L$=({post:e})=>(0,D.jsx)(`div`,{className:Y.sharePreviewWrap,children:(0,D.jsxs)(`div`,{className:Y.sharePreview,children:[(0,D.jsx)(`span`,{className:Y.sharePreviewAvatar,style:E({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:Y.sharePreviewBody,children:[(0,D.jsxs)(`div`,{className:Y.sharePreviewMeta,children:[e.authorName,` ·`,` `,(0,D.jsx)(`span`,{className:Y.sharePreviewCat,style:E({"--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:Y.sharePreviewTitle,children:e.title})]})]})}),R$=({target:e,selected:t,onToggle:n})=>(0,D.jsxs)(`button`,{type:`button`,className:T(Y.shareRow,t&&Y.shareRowOn),"aria-pressed":t,onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:T(Y.shareAvatar,e.square&&Y.shareAvatarSquare),style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:Y.shareRowBody,children:[(0,D.jsx)(`span`,{className:Y.shareRowName,children:e.name}),(0,D.jsx)(`span`,{className:Y.shareRowSub,children:e.subtitle})]}),(0,D.jsx)(`span`,{className:T(Y.shareCheck,t&&Y.shareCheckOn),children:t&&(0,D.jsx)(Un,{size:11,strokeWidth:3})})]}),z$=({label:e,targets:t,selected:n,onToggle:r})=>t.length===0?null:(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Y.shareSectionLabel,children:e}),t.map(e=>(0,D.jsx)(R$,{target:e,selected:n.has(e.id),onToggle:r},e.id))]}),B$=(e,t,n)=>e===``||t.toLowerCase().includes(e)||n.toLowerCase().includes(e),V$=({comment:e,query:t,onComment:n,onQuery:r})=>{let i=di(e,1e3);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:Y.shareField,style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsx)(`input`,{className:T(Y.shareComment,i.isOverLimit&&Y.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:Y.shareSearchWrap,children:(0,D.jsxs)(`div`,{className:Y.shareSearch,children:[(0,D.jsx)(Br,{size:13}),(0,D.jsx)(`input`,{className:Y.shareSearchInput,placeholder:`Search people or groups…`,value:t,onChange:e=>{r(e.target.value)}})]})})]})},H$=e=>({id: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`}),U$=({groups:e,dms:t,selected:n,onToggle:r})=>(0,D.jsxs)(`div`,{className:Y.shareList,children:[(0,D.jsx)(z$,{label:`Groups`,targets:e,selected:n,onToggle:r}),(0,D.jsx)(z$,{label:`Direct messages`,targets:t,selected:n,onToggle:r}),e.length===0&&t.length===0&&(0,D.jsx)(`div`,{className:Y.shareEmpty,children:`No matches.`})]}),W$=({post:e,comment:t,selected:n,sendMessage:r,setIsSending:i,close:a,count:o})=>{i(!0);let s=`${window.location.origin}/feed/posts/${e.postId}`,c={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:s}},l=`__UAPP_SHARED_CARD__::${JSON.stringify(c)}`,u=Array.from(n).map(e=>r.execute(e,l,crypto.randomUUID()));Promise.allSettled(u).then(()=>{j.success(`Shared to ${String(o)} ${o===1?`chat`:`chats`}`),a()}).catch(()=>{j.error(`Failed to share post`),i(!1)})},G$=(e,t)=>{let[r,i]=(0,n.useState)(``),[a,o]=(0,n.useState)(``),[s,c]=(0,n.useState)(()=>new Set),[l,u]=(0,n.useState)(!1),{sendMessage:d}=bP(),{data:f=[]}=TP(`all`,``),p=a.trim().toLowerCase(),m=f.filter(e=>e.kind===`dm`).map(H$).filter(e=>B$(p,e.name,e.subtitle)),h=f.filter(e=>e.kind===`group`).map(H$).filter(e=>B$(p,e.name,e.subtitle)),g=s.size,_=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=()=>{i(``),o(``),c(new Set),u(!1),t()};return{comment:r,setComment:i,query:a,setQuery:o,selected:s,isSending:l,dms:m,groups:h,count:g,toggle:_,close:v,send:()=>{g===0||l||r.length>1e3||W$({post:e,comment:r,selected:s,sendMessage:d,setIsSending:u,close:v,count:g})}}},K$=({open:e,post:t,onClose:n})=>{let r=G$(t,n);return e?(0,i.createPortal)((0,D.jsxs)(`div`,{className:Y.shareRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.shareBackdrop,"aria-label":`Close`,onClick:r.close}),(0,D.jsxs)(`div`,{className:Y.shareModal,role:`dialog`,"aria-label":`Share post`,children:[(0,D.jsx)(F$,{onClose:r.close}),(0,D.jsx)(L$,{post:t}),(0,D.jsx)(V$,{comment:r.comment,query:r.query,onComment:r.setComment,onQuery:r.setQuery}),(0,D.jsx)(U$,{groups:r.groups,dms:r.dms,selected:r.selected,onToggle:r.toggle}),(0,D.jsx)(I$,{count:r.count,disabled:r.comment.length>1e3,onCancel:r.close,onSend:r.send})]})]}),document.body):null},q$=[{id:`like`,label:`Like`,Icon:$r,color:`#2563eb`},{id:`insightful`,label:`Insightful`,Icon:gr,color:`#f59e0b`},{id:`celebrate`,label:`Celebrate`,Icon:Er,color:`#ec4899`}],J$=({post:e,onCommentClick:t})=>{if(e.totalReactions===0&&e.commentCount===0)return null;let n=q$.filter(t=>e.reactions[t.id]>0).slice(0,3);return(0,D.jsxs)(`div`,{className:Y.summary,children:[(0,D.jsxs)(`div`,{className:Y.summaryLeft,children:[n.length>0&&(0,D.jsx)(`span`,{className:Y.summaryIcons,children:n.map(({id:e,Icon:t,color:n})=>(0,D.jsx)(`span`,{className:Y.summaryDot,style:E({"--react-color":n}),children:(0,D.jsx)(t,{size:10})},e))}),e.totalReactions>0&&(0,D.jsx)(`span`,{className:Y.summaryCount,children:e.totalReactions})]}),e.commentCount>0&&(0,D.jsxs)(`span`,{className:T(Y.summaryComments,t!==void 0&&Y.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`]})]})},Y$=({post:e,commentsOpen:t,onReact:r,onComment:i,onShare:a})=>{let[o,s]=(0,n.useState)(!1),c=q$.find(t=>t.id===e.myReaction),l=c?.Icon??$r;return(0,D.jsxs)(`div`,{className:Y.postBar,children:[(0,D.jsxs)(`div`,{className:Y.reactWrap,onMouseEnter:()=>{s(!0)},onMouseLeave:()=>{s(!1)},children:[(0,D.jsxs)(`button`,{type:`button`,className:T(Y.actionBtn,c!==void 0&&Y.actionActive),style:c===void 0?void 0:E({"--react-color":c.color}),onClick:()=>{r(e.myReaction??`like`),s(!1)},children:[(0,D.jsx)(l,{size:16}),` `,c?.label??`Like`]}),(0,D.jsx)(`div`,{className:T(Y.picker,o&&Y.pickerVisible),children:q$.map(({id:t,label:n,Icon:i,color:a})=>(0,D.jsx)(`button`,{type:`button`,className:T(Y.pickerBtn,e.myReaction===t&&Y.pickerActive),style:E({"--react-color":a}),title:n,onClick:()=>{r(t),s(!1)},children:(0,D.jsx)(i,{size:18})},t))})]}),(0,D.jsxs)(`button`,{type:`button`,className:T(Y.actionBtn,t&&Y.actionActive),onClick:i,children:[(0,D.jsx)(xr,{size:16}),` Comment`]}),(0,D.jsxs)(`button`,{type:`button`,className:Y.actionBtn,onClick:a,children:[(0,D.jsx)(Hr,{size:16}),` Share`]})]})},X$=({post:e,onAcknowledge:t})=>e.mustAcknowledge?e.acknowledged?(0,D.jsx)(`div`,{className:Y.ackDone,children:`✓ You acknowledged this`}):(0,D.jsxs)(`div`,{className:Y.ackBanner,children:[(0,D.jsx)(`span`,{children:`Must read — please confirm you have seen this.`}),(0,D.jsx)(`button`,{type:`button`,className:Y.ackBtn,onClick:t,children:`Acknowledge`})]}):null,Z$={lightboxOverlay:`_lightboxOverlay_18fqf_5`,lightboxContainer:`_lightboxContainer_18fqf_20`,lightboxLeft:`_lightboxLeft_18fqf_33`,lightboxRight:`_lightboxRight_18fqf_43`,lightboxScrollableContent:`_lightboxScrollableContent_18fqf_53`,lightboxDivider:`_lightboxDivider_18fqf_64`,lightboxClose:`_lightboxClose_18fqf_88`,lightboxImage:`_lightboxImage_18fqf_101`,lightboxArrow:`_lightboxArrow_18fqf_136`,lightboxArrowLeft:`_lightboxArrowLeft_18fqf_158`,lightboxArrowRight:`_lightboxArrowRight_18fqf_166`,lightboxCounter:`_lightboxCounter_18fqf_174`},Q$=({urls:e,index:t,onPrev:n,onNext:r})=>(0,D.jsxs)(`div`,{className:Z$.lightboxLeft,children:[e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:T(Z$.lightboxArrow,Z$.lightboxArrowLeft),onClick:n,"aria-label":`Previous image`,children:(0,D.jsx)(Gn,{size:24})}),(0,D.jsx)(N$,{url:e[t]??``,alt:`Fullscreen view`,className:Z$.lightboxImage}),e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:T(Z$.lightboxArrow,Z$.lightboxArrowRight),onClick:r,"aria-label":`Next image`,children:(0,D.jsx)(Kn,{size:24})}),(0,D.jsxs)(`div`,{className:Z$.lightboxCounter,children:[t+1,` / `,e.length]})]}),$$=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,onShare:o})=>(0,D.jsx)(`div`,{className:Z$.lightboxRight,children:(0,D.jsxs)(`div`,{className:Z$.lightboxScrollableContent,children:[(0,D.jsx)(p$,{post:e,onBookmark:r}),e.title!==null&&(0,D.jsx)(`h2`,{className:Y.cardTitle,children:e.title}),(0,D.jsx)(`p`,{className:Y.cardBody,children:e.body}),(0,D.jsx)(X$,{post:e,onAcknowledge:i}),(0,D.jsx)(`div`,{className:Z$.lightboxDivider}),(0,D.jsx)(J$,{post:e}),(0,D.jsx)(Y$,{post:e,commentsOpen:!0,onReact:n,onComment:()=>{},onShare:o}),(0,D.jsx)(`div`,{className:Z$.lightboxDivider}),(0,D.jsx)(M$,{comments:e.comments,pending:t,onAdd:a})]})}),e1=({urls:e,index:t,onClose:r,onChange:a,post:o,commentPending:s,onReact:c,onBookmark:l,onAcknowledge:u,onAddComment:d,onShare:f})=>((0,n.useEffect)(()=>{let n=n=>{n.key===`Escape`&&r(),n.key===`ArrowLeft`&&a((t-1+e.length)%e.length),n.key===`ArrowRight`&&a((t+1)%e.length)};return window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,n)}},[t,r,a,e.length]),(0,i.createPortal)((0,D.jsx)(`div`,{className:Z$.lightboxOverlay,onClick:r,role:`presentation`,children:(0,D.jsxs)(`div`,{className:Z$.lightboxContainer,onClick:e=>{e.stopPropagation()},role:`presentation`,children:[(0,D.jsx)(`button`,{type:`button`,className:Z$.lightboxClose,onClick:r,"aria-label":`Close lightbox`,children:(0,D.jsx)(oi,{size:20})}),(0,D.jsx)(Q$,{urls:e,index:t,onPrev:()=>{a((t-1+e.length)%e.length)},onNext:()=>{a((t+1)%e.length)}}),(0,D.jsx)($$,{post:o,commentPending:s,onReact:c,onBookmark:l,onAcknowledge:u,onAddComment:d,onShare:f})]})}),document.body)),t1=({open:e,post:t,onClose:n})=>{let{categoryLabel:r,categoryColor:i}=LY(t);return(0,D.jsx)(K$,{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})},n1=({index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l})=>e===null?null:(0,D.jsx)(e1,{urls:t.imageUrls,index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l}),r1=({body:e,onSeeMore:t})=>{let[r,i]=(0,n.useState)(!1),a=e.length>200;return(0,D.jsxs)(`p`,{className:Y.cardBody,children:[a&&!r?`${e.slice(0,200)}...`:e,a&&(0,D.jsx)(`button`,{type:`button`,className:Y.seeMoreBtn,onClick:()=>{r||t(),i(e=>!e)},children:r?` See less`:` See more`})]})},i1=({post:e,commentsOpen:t,commentPending:n,shareOpen:r,lightboxIndex:i,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,toggleComments:l,setShareOpen:u,setLightboxIndex:d})=>{let f=kY(),p=()=>{u(!0),f.mutate(e.id)};return(0,D.jsxs)(D.Fragment,{children:[e.title!==null&&(0,D.jsx)(`h2`,{className:Y.cardTitle,children:e.title}),(0,D.jsx)(r1,{body:e.body,onSeeMore:()=>{f.mutate(e.id)}}),(0,D.jsx)(P$,{urls:e.imageUrls,onImageClick:t=>{d(t),t!==null&&f.mutate(e.id)}}),(0,D.jsx)(X$,{post:e,onAcknowledge:s}),(0,D.jsx)(J$,{post:e,onCommentClick:l}),(0,D.jsx)(Y$,{post:e,commentsOpen:t,onReact:a,onComment:l,onShare:p}),t&&(0,D.jsx)(M$,{comments:e.comments,pending:n,onAdd:c}),(0,D.jsx)(t1,{open:r,post:e,onClose:()=>{u(!1)}}),(0,D.jsx)(n1,{index:i,post:e,commentPending:n,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,onShare:p,onClose:()=>{d(null)},onChange:d})]})},a1=e=>{let t=(0,n.useRef)(null);(0,n.useEffect)(()=>{t.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:r}=Ay({target:e,container:t,offset:[`start end`,`end start`]});return Py(r,[0,1],[-12,12])},o1=({post:e,state:t})=>(0,D.jsx)(A$,{post:e,state:t}),s1=({post:e,isAuthor:t,commentPending:n,onBookmark:r,onPin:i,showPinButton:a,onReact:o,onAcknowledge:s,onAddComment:c,state:l,cardY:u,elementRef:d})=>(0,D.jsxs)(A.article,{id:`feed-post-${e.id}`,ref:d,style:{y:u},className:Y.card,children:[e.needsAcknowledgement&&(0,D.jsx)(`span`,{className:Y.urgentStripe}),e.pinned&&(0,D.jsxs)(`div`,{className:Y.pinnedRow,children:[(0,D.jsx)(jr,{size:10,className:Y.pin}),` Pinned`]}),!l.isEditing&&(0,D.jsx)(p$,{post:e,onBookmark:r,onPin:i,showPinButton:a,showEditButton:t,onEdit:()=>{l.setIsEditing(!0)}}),l.isEditing?(0,D.jsx)(o1,{post:e,state:l}):(0,D.jsx)(i1,{post:e,commentsOpen:l.commentsOpen,commentPending:n,shareOpen:l.shareOpen,lightboxIndex:l.lightboxIndex,onReact:o,onBookmark:r,onAcknowledge:s,onAddComment:c,toggleComments:()=>{l.setCommentsOpen(e=>!e)},setShareOpen:l.setShareOpen,setLightboxIndex:l.setLightboxIndex})]}),c1=({post:e,commentPending:t,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o})=>{let s=D$(e),{user:c}=mz(),l=e.authorUserId===c?.id,u=jY(),d=c!==null&&(c.hasRole(`admin`)||c.hasRole(`system-admin`)||c.hasRole(`FullAccess`)),f=()=>{u.mutateAsync({postId:e.id,pinned:!e.pinned})},p=(0,n.useRef)(null);return(0,D.jsx)(s1,{post:e,isAuthor:l,commentPending:t,onBookmark:i,onPin:f,showPinButton:d,onReact:r,onAcknowledge:a,onAddComment:o,state:s,cardY:a1(p),elementRef:p})},l1=({posts:e})=>{let t=EY(),n=DY(),r=OY(),i=AY();return(0,D.jsx)(D.Fragment,{children:e.map(e=>(0,D.jsx)(c1,{post:e,commentPending:i.isPending,onReact:n=>{t.mutate({postId:e.id,type:n})},onBookmark:()=>{n.mutate(e.id),j.success(e.bookmarked?`Bookmark removed`:`Post saved to bookmarks`)},onAcknowledge:()=>{r.mutate(e.id),j.success(`Post acknowledged`)},onAddComment:t=>{i.mutate({postId:e.id,text:t})}},e.id))})},u1=2,d1=e=>[...e].filter(e=>e.active).sort((e,t)=>e.priority-t.priority),f1=(e,t)=>e.find(e=>e.id===t.templateId),p1=(e,t,n)=>d1(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:f1(n,e),items:r.slice(0,u1)}}).filter(e=>e.count>0),m1=e=>[{id:`all`,label:`All`},...d1(e).map(e=>({id:e.id,label:e.name}))],h1=e=>Object.values(e.values).join(` `).toLowerCase(),g1=(e,t,n)=>{let r=[];for(let i of d1(e.categories)){if(t!==`all`&&i.id!==t)continue;let a=f1(e.templates,i);if(a===void 0)continue;let o=e.promotions.filter(e=>e.categoryId===i.id),s=n===``?o:o.filter(e=>h1(e).includes(n));s.length>0&&r.push({category:i,template:a,items:s,count:o.length})}return r},_1=({onClose:e})=>(0,D.jsxs)(`div`,{className:Y.ppHead,children:[(0,D.jsx)(`span`,{className:Y.ppHeadIcon,children:(0,D.jsx)(yr,{size:18})}),(0,D.jsxs)(`div`,{className:Y.ppHeadText,children:[(0,D.jsx)(`h2`,{className:Y.ppTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`p`,{className:Y.ppSubtitle,children:`Latest campaigns, university updates, intake alerts and events.`}),(0,D.jsx)(`span`,{className:Y.ppManaged,children:`Read-only · Managed by System Admin`})]}),(0,D.jsx)(`button`,{type:`button`,className:Y.ppClose,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(oi,{size:18})})]}),v1=({tabs:e,active:t,onSelect:n})=>(0,D.jsx)(`div`,{className:Y.ppTabs,children:e.map(e=>{let r=e.id===t;return(0,D.jsxs)(`button`,{type:`button`,className:T(Y.ppTab,r&&Y.ppTabActive),onClick:()=>{n(e.id)},children:[r&&(0,D.jsx)(A.span,{layoutId:`ppTabBg`,className:Y.ppTabBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:Y.ppTabLabel,children:e.label})]},e.id)})}),y1=({categories:e,promotions:t,templates:r,initialTab:i,onClose:a})=>{let[o,s]=(0,n.useState)(i),[c,l]=(0,n.useState)(``),u=m1(e),d=g1({categories:e,promotions:t,templates:r},o,c.trim().toLowerCase());return(0,D.jsxs)(`div`,{className:Y.ppRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.ppOverlay,"aria-label":`Close promotions`,onClick:a}),(0,D.jsxs)(`div`,{className:Y.ppPanel,role:`dialog`,"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(_1,{onClose:a}),(0,D.jsx)(v1,{tabs:u,active:o,onSelect:s}),(0,D.jsxs)(`div`,{className:Y.ppSearch,children:[(0,D.jsx)(Br,{size:14,className:Y.ppSearchIcon}),(0,D.jsx)(`input`,{type:`search`,className:Y.ppSearchInput,placeholder:`Search promotions…`,value:c,onChange:e=>{l(e.target.value)}})]}),(0,D.jsx)(`div`,{className:Y.ppList,children:(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(A.div,{className:Y.ppListInner,initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.18,ease:`easeOut`},children:d.length===0?(0,D.jsx)(`p`,{className:Y.ppEmpty,children:`No promotions match.`}):d.map(e=>(0,D.jsx)($L,{template:e.template,color:e.category.color,name:e.category.name,count:e.count,items:e.items},e.category.id))},o)})})]})]})},b1=({sections:e,onClose:t,onSeeAll:n,onSelectTab:r})=>(0,D.jsx)(A.div,{className:Y.promoPopoverOverlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,D.jsxs)(A.div,{className:Y.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:Y.popoverHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.popoverCloseX,onClick:t,"aria-label":`Close promotions modal`,children:(0,D.jsx)(oi,{size:18})}),(0,D.jsx)(`div`,{className:Y.popoverBadgeIcon,children:(0,D.jsx)(yr,{size:24})}),(0,D.jsxs)(`div`,{className:Y.popoverTitleRow,children:[(0,D.jsx)(`h3`,{className:Y.popoverTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`button`,{type:`button`,className:Y.popoverSeeAllBtn,onClick:()=>{t(),n()},children:`See all`})]}),(0,D.jsx)(`p`,{className:Y.popoverSub,children:`Stay updated with active promotions and university campaigns`})]}),(0,D.jsx)(`div`,{className:Y.popoverContent,children:e.length===0?(0,D.jsx)(`p`,{className:Y.popoverEmpty,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)($L,{template:e.template,color:e.color,name:e.name,count:e.count,items:e.items,onViewAll:()=>{t(),r(e.id)}},e.id))})]})}),x1=({sections:e,onSeeAll:t,onSelectTab:n})=>(0,D.jsxs)(`aside`,{className:Y.rail,children:[(0,D.jsxs)(`div`,{className:Y.railHead,children:[(0,D.jsxs)(`span`,{className:Y.railHeadTitle,children:[(0,D.jsx)(yr,{size:11}),` PROMOTIONS & CAMPAIGNS`]}),(0,D.jsx)(`button`,{type:`button`,className:Y.railSeeAll,onClick:t,children:`See all`})]}),(0,D.jsx)(`div`,{className:Y.railList,children:e.length===0?(0,D.jsx)(`p`,{className:Y.railFoot,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)($L,{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:Y.railFoot,children:`Managed by System Admin`})]}),S1=({onOpen:e})=>{let[t,r]=(0,n.useState)(!1),[i,a]=(0,n.useState)(!1),o=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let e=document.getElementById(`app-scroll-container`);if(!e)return;let t=()=>{let t=e.scrollTop;t<=4||t<o.current?a(!1):a(!0),o.current=t};return e.addEventListener(`scroll`,t,{passive:!0}),()=>{e.removeEventListener(`scroll`,t)}},[]),(0,n.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>{r(!1)},4e3);return()=>{clearTimeout(e)}},[t]),(0,D.jsxs)(`button`,{type:`button`,className:T(Y.mobilePromoTrigger,t&&Y.mobilePromoExpanded,i&&Y.mobilePromoTriggerBarHidden),onClick:()=>{t?(r(!1),e()):r(!0)},"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(`span`,{className:Y.promoShimmerSweep}),(0,D.jsx)(`span`,{className:Y.promoIconWrap,children:(0,D.jsx)(yr,{size:15,className:Y.sparkleIcon})}),(0,D.jsx)(`span`,{className:Y.promoBtnText,children:`Promotions & Campaigns`})]})},C1=()=>{let e=VL(),t=UL(),r=HL(),[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)(!1),c=e.data??[],l=t.data??[],u=r.data??[],d=p1(c,l,u);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(x1,{sections:d,onSeeAll:()=>{a(`all`)},onSelectTab:e=>{a(e)}}),(0,D.jsx)(S1,{onOpen:()=>{s(!0)}}),(0,D.jsx)(Wg,{children:o&&(0,D.jsx)(b1,{sections:d,onClose:()=>{s(!1)},onSeeAll:()=>{a(`all`)},onSelectTab:e=>{a(e)}})}),i!==null&&(0,D.jsx)(y1,{categories:c,promotions:l,templates:u,initialTab:i,onClose:()=>{a(null)}})]})},w1=[{id:`for_you`,label:`For You`},{id:`team`,label:`Team Updates`},{id:`company`,label:`Company Wide`},{id:`saved`,label:`Saved Posts`,icon:Fn}],T1=({scope:e,onChange:t})=>{let n=CY(`saved`).data?.pages[0]?.totalCount;return(0,D.jsx)(`div`,{className:Y.tabs,children:w1.map(r=>{let i=r.icon;return(0,D.jsxs)(`button`,{type:`button`,className:T(Y.tab,e===r.id&&Y.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:Y.tabBadge,children:n})]},r.id)})})},E1={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`},D1=({count:e=3})=>(0,D.jsx)(D.Fragment,{children:Array.from({length:e}).map((e,t)=>(0,D.jsxs)(`div`,{className:E1.skeletonCard,children:[(0,D.jsxs)(`div`,{className:E1.skeletonHeader,children:[(0,D.jsx)(`div`,{className:E1.skeletonAvatar}),(0,D.jsxs)(`div`,{className:E1.skeletonMeta,children:[(0,D.jsx)(`div`,{className:T(E1.skeletonLine,E1.medium)}),(0,D.jsx)(`div`,{className:T(E1.skeletonLine,E1.short)})]})]}),(0,D.jsxs)(`div`,{className:E1.skeletonBody,children:[(0,D.jsx)(`div`,{className:T(E1.skeletonLine,E1.full)}),(0,D.jsx)(`div`,{className:T(E1.skeletonLine,E1.full)}),(0,D.jsx)(`div`,{className:T(E1.skeletonLine,E1.medium)})]})]},t))}),O1=e=>{GY(`feed-post-${e}`,`app-scroll-container`,`start`)},k1=({post:e,onView:t,onDismiss:n,displayZone:r})=>{let{categoryLabel:i,categoryColor:a}=LY(e);return(0,D.jsxs)(`div`,{className:Y.missedCard,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.missedClose,"aria-label":`Dismiss`,onClick:n,children:(0,D.jsx)(oi,{size:11,strokeWidth:2.5})}),(0,D.jsxs)(`div`,{className:Y.missedCardTop,children:[(0,D.jsx)(`span`,{className:Y.missedDot,style:E({"--dot":a})}),(0,D.jsx)(`span`,{className:Y.missedCat,children:i}),(0,D.jsx)(`span`,{className:Y.missedTime,children:WY(e.createdAt,r)})]}),(0,D.jsx)(`p`,{className:Y.missedSummary,children:e.title??e.body}),(0,D.jsxs)(`div`,{className:Y.missedFoot,children:[(0,D.jsxs)(`button`,{type:`button`,className:Y.missedCta,onClick:t,children:[`View post `,(0,D.jsx)(Kn,{size:10,strokeWidth:3})]}),e.mustAcknowledge&&(0,D.jsxs)(`span`,{className:Y.missedPriority,children:[(0,D.jsx)(Jn,{size:8}),` Priority`]})]})]})},A1=({posts:e})=>{let[t,r]=(0,n.useState)(new Set),[i,a]=(0,n.useState)(!1),o=(0,n.useRef)(null),s=jN().display,c=e.filter(e=>e.mustAcknowledge&&!t.has(e.id)&&!e.acknowledged);if(i||c.length===0)return null;let l=e=>{o.current?.scrollBy({left:e*300,behavior:`smooth`})},u=c.length>2;return(0,D.jsxs)(`div`,{className:Y.missed,children:[(0,D.jsxs)(`div`,{className:Y.missedHead,children:[(0,D.jsx)(Jr,{size:12,className:Y.missedSpark}),(0,D.jsx)(`span`,{className:Y.missedTitle,children:`WHAT YOU MISSED`}),(0,D.jsx)(`span`,{className:Y.missedBadge,children:c.length}),(0,D.jsx)(`button`,{type:`button`,className:Y.missedRead,onClick:()=>{a(!0)},children:`Mark all read`})]}),(0,D.jsxs)(`div`,{className:T(Y.missedScroller,u&&Y.missedScrollerFade),children:[u&&(0,D.jsx)(`button`,{type:`button`,className:T(Y.missedNav,Y.missedNavLeft),"aria-label":`Scroll left`,onClick:()=>{l(-1)},children:(0,D.jsx)(Gn,{size:16})}),(0,D.jsx)(`div`,{className:Y.missedTrack,ref:o,children:c.map(e=>(0,D.jsx)(k1,{post:e,displayZone:s,onView:()=>{O1(e.id)},onDismiss:()=>{r(t=>new Set(t).add(e.id))}},e.id))}),u&&(0,D.jsx)(`button`,{type:`button`,className:T(Y.missedNav,Y.missedNavRight),"aria-label":`Scroll right`,onClick:()=>{l(1)},children:(0,D.jsx)(Kn,{size:16})})]})]})},j1=e=>{let{isSuccess:t,posts:r,hasNextPage:i,isFetchingNextPage:a,fetchNextPage:o}=e,[s,c]=ln(),l=s.get(`postId`),u=HM();(0,n.useEffect)(()=>{l!==null&&u.invalidateQueries({queryKey:[`feed`]})},[l,u]),(0,n.useEffect)(()=>{!t||l===null||a||!r.some(e=>e.id===l)&&i&&o()},[t,l,r,i,a,o]),(0,n.useEffect)(()=>{if(!t||l===null)return;let e,n=0,r=setInterval(()=>{if(document.getElementById(`feed-post-${l}`)){clearInterval(r);let t=document.getElementById(`app-scroll-container`);t&&(t.style.paddingBottom=`80vh`),GY(`feed-post-${l}`,`app-scroll-container`,`center`),e=setTimeout(()=>{t&&(t.style.paddingBottom=``);let e=new URLSearchParams(window.location.search);e.has(`postId`)&&(e.delete(`postId`),c(e,{replace:!0}))},1e3)}else n++,n>=100&&clearInterval(r)},50);return()=>{clearInterval(r),e&&clearTimeout(e)}},[t,l,s,c])},M1=(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))},N1=(e,t,r)=>{let i=(0,n.useRef)(null),a=(0,n.useCallback)(n=>{n[0]?.isIntersecting&&e&&!t&&r()},[e,t,r]);return(0,n.useEffect)(()=>{let e=i.current;if(!e)return;let t=new IntersectionObserver(a,{rootMargin:`2000px`});return t.observe(e),()=>{t.disconnect()}},[a]),i},P1=()=>{let[e,t]=(0,n.useState)(`for_you`),[r,i]=(0,n.useState)(``),a=CY(e),{hasNextPage:o,isFetchingNextPage:s,fetchNextPage:c}=a,l=a.data?a.data.pages.flatMap(e=>e.items):[],u=M1(l,r);j1({isSuccess:a.isSuccess,posts:l,hasNextPage:o,isFetchingNextPage:s,fetchNextPage:c});let d=N1(o,s,c);return(0,D.jsxs)(`div`,{className:Y.screen,children:[(0,D.jsx)(`div`,{className:Y.toolbar,children:(0,D.jsxs)(`div`,{className:Y.toolbarContainer,children:[(0,D.jsxs)(`div`,{className:Y.search,children:[(0,D.jsx)(Br,{size:14,className:Y.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:Y.searchInput,placeholder:`Search posts by keyword, student, university…`,value:r,onChange:e=>{i(e.target.value)}})]}),(0,D.jsx)(`div`,{className:Y.toolbarRailSpacer})]})}),(0,D.jsxs)(`div`,{className:Y.wrapper,children:[(0,D.jsxs)(`div`,{className:Y.column,children:[(0,D.jsx)(T1,{scope:e,onChange:e=>{t(e)}}),(0,D.jsx)(A1,{posts:u}),(0,D.jsx)(r$,{}),a.isPending&&(0,D.jsx)(D1,{count:3}),a.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load the feed`,children:a.error.message}),a.isSuccess&&u.length===0&&(0,D.jsx)(i$,{}),(0,D.jsx)(l1,{posts:u}),(0,D.jsx)(`div`,{ref:d,style:{height:`20px`,width:`100%`},children:a.isFetchingNextPage&&(0,D.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:`1rem`},children:(0,D.jsx)(mi,{})})})]}),(0,D.jsx)(C1,{})]})]})},F1=({path:e,children:t})=>(0,D.jsxs)(St,{children:[(0,D.jsx)(bt,{path:e,element:(0,D.jsx)(D.Fragment,{children:t})}),(0,D.jsx)(bt,{path:`*`,element:(0,D.jsx)(yt,{to:e,replace:!0})})]}),I1=()=>{eQ(`uapp-feed`,()=>(0,D.jsx)(F1,{path:`/comms/feed`,children:(0,D.jsx)(P1,{})}))},L1=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()},R1=()=>{let{user:e}=mz(),t=e?.fullName??``;return{id:e?.id??``,name:t,initials:L1(t),color:`#0f1f1f`,role:`Organizer`}},z1=(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)},B1=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},V1=(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}`},H1=(e,t)=>new Date(e).toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:t}),U1=(e,t,n)=>!e||!t?``:`${H1(e,n)} – ${H1(t,n)}`,W1=(e,t)=>e?new Date(e).toLocaleDateString(`en-US`,{weekday:`short`,day:`numeric`,month:`short`,timeZone:t}):``,G1=(e,t)=>t.id!==``&&e===t.id,K1=(e,t,n)=>{if(G1(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]??``},q1=(e,t,n)=>{if(G1(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`}},X={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`},J1=({spanKey:e,name:t,dateLabel:n,formattedSlot:r})=>(0,D.jsxs)(A.span,{className:X.bookSummary,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(`span`,{className:X.bookSummaryName,children:t}),` · `,n,` ·`,` `,(0,D.jsx)(`span`,{className:X.bookSummarySlot,children:r})]},e),Y1=({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)(J1,{spanKey:`summary`,name:t.name,dateLabel:n,formattedSlot:o}):null:i.length>0&&n!==``&&r!==null?(0,D.jsx)(J1,{spanKey:`group-summary`,name:`${a||`Group Meeting`} (${String(i.length)} guests)`,dateLabel:n,formattedSlot:o}):null,X1=({success:e,meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,selectedSlot:s,tzId:c})=>{if(e)return(0,D.jsxs)(A.span,{className:X.bookedNote,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(Un,{size:14,strokeWidth:3}),` Meeting booked — see the Scheduled tab.`]},`done`);let l=Y1({meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,formattedSlot:s?U1(s.startUtc,s.endUtc,c):``});return l===null?(0,D.jsx)(`span`,{className:X.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},Z1=({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:X.bookBar,children:[(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(X1,{success:i,meetingType:a,contact:e,dateLabel:t,slot:n,selectedContactIds:o,groupTitle:s,selectedSlot:l,tzId:u})}),(0,D.jsxs)(A.button,{type:`button`,className:X.bookBtn,disabled:!r,...r?{whileTap:{scale:.97}}:{},onClick:()=>{c()},children:[`Confirm booking `,(0,D.jsx)(Mn,{size:15})]})]}),Q1=[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],$1=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],e0=e=>e.toLocaleDateString(`en-GB`,{weekday:`short`,day:`2-digit`,month:`short`}),t0=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),n0=(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:t0(i,n)})}return o},r0={col:`_col_18ut1_6`,colTitle:`_colTitle_18ut1_13`,stepDot:`_stepDot_18ut1_22`},i0=({cell:e,selected:t,onPick:n})=>(0,D.jsx)(A.button,{type:`button`,disabled:e.past,...e.past?{}:{whileHover:{scale:1.12},whileTap:{scale:.9}},className:T(X.calCell,e.past&&X.calCellPast,e.today&&X.calCellToday,t?.toDateString()===e.date.toDateString()&&X.calCellSelected),onClick:()=>{n(e.date)},children:e.day}),a0=({view:e,today:t,selected:n,onShift:r,onPick:i})=>(0,D.jsxs)(`div`,{className:X.colCalendar,children:[(0,D.jsxs)(`div`,{className:r0.colTitle,children:[(0,D.jsx)(`span`,{className:r0.stepDot,children:`2`}),` Pick a date`]}),(0,D.jsxs)(`div`,{className:X.calHead,children:[(0,D.jsxs)(`span`,{className:X.calMonth,children:[$1[e.month],` `,e.year]}),(0,D.jsxs)(`div`,{className:X.calNav,children:[(0,D.jsx)(A.button,{type:`button`,"aria-label":`Previous month`,className:X.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(-1)},children:(0,D.jsx)(Gn,{size:15})}),(0,D.jsx)(A.button,{type:`button`,"aria-label":`Next month`,className:X.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(1)},children:(0,D.jsx)(Kn,{size:15})})]})]}),(0,D.jsx)(`div`,{className:X.calDays,children:Q1.map(e=>(0,D.jsx)(`span`,{className:X.calDayLabel,children:e},e))}),(0,D.jsx)(A.div,{className:X.calGrid,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.22,1,.36,1]},children:n0(e.year,e.month,t).map((e,t)=>e===null?(0,D.jsx)(`span`,{className:X.calCellBlank},`blank-${String(t)}`):(0,D.jsx)(i0,{cell:e,selected:n,onPick:i},e.day))},`${String(e.year)}-${String(e.month)}`)]}),o0={hidden:{},visible:{transition:{staggerChildren:.05,delayChildren:.05}}},s0={hidden:{opacity:0,x:-8},visible:{opacity:1,x:0,transition:{duration:.18,ease:`easeOut`}}},c0=({icon:e,label:t,value:n})=>(0,D.jsxs)(A.div,{className:X.confirmRow,variants:s0,children:[(0,D.jsx)(`span`,{className:X.confirmRowIcon,children:e}),(0,D.jsx)(`span`,{className:X.confirmRowLabel,children:t}),(0,D.jsx)(`span`,{className:X.confirmRowValue,children:n})]}),l0=({open:e,contact:t,dateLabel:n,slot:r,zone:i,pending:a,onConfirm:o,onClose:s,selectedSlot:c,tzId:l})=>{let u=U1(c?.startUtc,c?.endUtc,l);return(0,D.jsx)(Wy,{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)(gi,{variant:`ghost`,onClick:s,children:`Back`}),(0,D.jsx)(gi,{isLoading:a,onClick:o,children:`Confirm booking`})]}),children:t!==null&&r!==null?(0,D.jsxs)(`div`,{className:X.confirmBody,children:[(0,D.jsxs)(`div`,{className:X.confirmWho,children:[(0,D.jsx)(`span`,{className:X.confirmAvatar,style:E({"--avatar-color":t.color}),children:t.initials}),(0,D.jsxs)(`span`,{className:X.confirmWhoText,children:[(0,D.jsx)(`span`,{className:X.confirmName,children:t.name}),(0,D.jsx)(`span`,{className:X.confirmRole,children:t.role})]})]}),(0,D.jsxs)(A.div,{className:X.confirmRows,variants:o0,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(c0,{icon:(0,D.jsx)(zn,{size:15}),label:`Date`,value:n}),(0,D.jsx)(c0,{icon:(0,D.jsx)(Zn,{size:15}),label:`Time`,value:u}),(0,D.jsx)(c0,{icon:(0,D.jsx)(cr,{size:15}),label:`Timezone`,value:`${i.city} · ${i.offset}`}),(0,D.jsx)(c0,{icon:(0,D.jsx)(ii,{size:15}),label:`Location`,value:`Online — link generated automatically`})]})]}):null})},u0={titleWrap:`_titleWrap_18nb9_3`,titleInput:`_titleInput_18nb9_7`},d0={hidden:{},visible:{transition:{staggerChildren:.04}}},f0=({contact:e,active:t,onSelect:n})=>(0,D.jsxs)(A.button,{type:`button`,layout:!0,variants:zy,whileHover:{x:3},whileTap:{scale:.985},transition:{type:`spring`,stiffness:500,damping:34},className:T(X.contactRow,t&&X.contactActive),onClick:n,children:[(0,D.jsx)(`span`,{className:X.contactAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:X.contactText,children:[(0,D.jsx)(`span`,{className:X.contactName,children:e.name}),(0,D.jsx)(`span`,{className:X.contactRole,children:e.role})]}),(0,D.jsx)(`span`,{className:T(X.contactCheck,t&&X.contactCheckOn),children:(0,D.jsx)(Wg,{children:t&&(0,D.jsx)(A.span,{className:X.contactCheckIcon,initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Un,{size:11,strokeWidth:3})})})})]}),p0=({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:r0.col,children:[(0,D.jsxs)(`div`,{className:r0.colTitle,children:[(0,D.jsx)(`span`,{className:r0.stepDot,children:`1`}),` `,a===`group`?`Configure Group Event`:`Choose a person`]}),a===`group`&&l&&(0,D.jsx)(`div`,{className:u0.titleWrap,children:(0,D.jsx)(`input`,{type:`text`,className:T(X.searchInput,u0.titleInput),placeholder:`Group Event Title (e.g. Team Sync)`,value:c,onChange:e=>{l(e.target.value)}})}),(0,D.jsxs)(`div`,{className:X.search,children:[(0,D.jsx)(Br,{size:14,className:X.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:X.searchInput,placeholder:`Search people…`,value:n,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(A.div,{className:X.contactList,variants:d0,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(Wg,{initial:!1,children:e.map(e=>(0,D.jsx)(f0,{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:X.contactEmpty,children:`No people match.`})]})]}),Z={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`},m0={titleVal:`_titleVal_195yt_3`,inlineIcon:`_inlineIcon_195yt_8`,agendaVal:`_agendaVal_195yt_13`,lastRow:`_lastRow_195yt_17`,guestList:`_guestList_195yt_21`},h0=({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?U1(e.selectedSlot.startUtc,e.selectedSlot.endUtc,e.tzId):`No time selected`,i=e.selectedSlot?W1(e.selectedSlot.startUtc,e.tzId):e.dateLabel;return(0,D.jsxs)(`div`,{className:Z.wizardConfirmContainer,children:[(0,D.jsx)(`h3`,{className:Z.confirmHeading,children:`Review group meeting`}),(0,D.jsx)(`p`,{className:Z.confirmSub,children:`Ensure everything is correct before sending invitations.`}),(0,D.jsxs)(`div`,{className:Z.confirmCard,children:[(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Title`}),(0,D.jsx)(`span`,{className:T(Z.confirmVal,m0.titleVal),children:n})]}),(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:Z.confirmVal,children:[i,` @ `,r,` (`,e.zone.offset,`)`]})]}),(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Location`}),(0,D.jsxs)(`span`,{className:Z.confirmVal,children:[(0,D.jsx)(vr,{size:13,className:m0.inlineIcon}),e.groupLocation]})]}),e.groupDescription.trim()&&(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:T(Z.confirmVal,m0.agendaVal),children:e.groupDescription})]}),(0,D.jsxs)(`div`,{className:T(Z.confirmRow,m0.lastRow),children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Invited Guests`}),(0,D.jsx)(`div`,{className:T(Z.confirmVal,m0.guestList),children:t.map(e=>e===void 0?null:(0,D.jsxs)(`span`,{className:Z.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:Z.avatarTiny,style:{backgroundColor:e.color},children:e.initials}),e.name]},e.id))})]})]})]})},g0={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`},_0=({d:e})=>(0,D.jsxs)(`div`,{className:g0.wizardDetailsForm,children:[(0,D.jsx)(`h3`,{className:g0.detailsHeading,children:`Meeting details`}),(0,D.jsx)(`p`,{className:g0.detailsSub,children:`Add context to the invite so attendees know what to expect.`}),(0,D.jsxs)(`div`,{className:g0.formGroup,children:[(0,D.jsx)(`label`,{className:g0.formLabel,children:`MEETING TITLE *`}),(0,D.jsx)(`input`,{type:`text`,className:g0.formInput,placeholder:`e.g. Weekly Admissions Alignment`,value:e.groupTitle,onChange:t=>{e.setGroupTitle(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:g0.formGroup,children:[(0,D.jsx)(`label`,{className:g0.formLabel,children:`LOCATION / TYPE *`}),(0,D.jsx)(`input`,{type:`text`,className:g0.formInput,placeholder:`e.g. Google Meet, Room 402`,value:e.groupLocation,onChange:t=>{e.setGroupLocation(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:g0.formGroup,children:[(0,D.jsx)(`label`,{className:g0.formLabel,children:`AGENDA / DESCRIPTION`}),(0,D.jsx)(`textarea`,{className:g0.formTextarea,rows:5,placeholder:`What will you cover in this meeting? (optional)`,value:e.groupDescription,onChange:t=>{e.setGroupDescription(t.target.value)}})]})]}),v0={searchWrap:`_searchWrap_3i51q_3`,contactMeta:`_contactMeta_3i51q_7`,selectedMeta:`_selectedMeta_3i51q_13`},y0=({d:e,isSelected:t,onToggle:n})=>(0,D.jsxs)(`div`,{className:Z.wizardPanelLeft,children:[(0,D.jsxs)(`div`,{className:v0.searchWrap,children:[(0,D.jsx)(`h3`,{className:Z.panelHeading,children:`Add participants`}),(0,D.jsx)(`input`,{type:`text`,className:Z.wizardSearch,placeholder:`Search by name, role or department...`,value:e.search,onChange:t=>{e.setSearch(t.target.value)}})]}),(0,D.jsx)(`div`,{className:Z.wizardList,children:e.searchResults.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:T(Z.wizardListBtn,t(e.id)&&Z.wizardListBtnActive),onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:Z.avatar,style:{backgroundColor:e.color},children:e.initials}),(0,D.jsxs)(`div`,{className:v0.contactMeta,children:[(0,D.jsx)(`div`,{className:Z.contactName,children:e.name}),(0,D.jsx)(`div`,{className:Z.contactRole,children:e.role})]}),(0,D.jsx)(`div`,{className:T(Z.checkbox,t(e.id)&&Z.checkboxActive),children:t(e.id)&&(0,D.jsx)(Un,{size:10,strokeWidth:3})})]},e.id))})]}),b0=({d:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:Z.wizardPanelRight,children:[(0,D.jsxs)(`div`,{className:Z.panelHeader,children:[(0,D.jsx)(`span`,{children:`SELECTED`}),(0,D.jsxs)(`span`,{className:Z.badge,children:[String(e.selectedContactIds.length),` guests`]})]}),(0,D.jsx)(`div`,{className:Z.selectedGrid,children:(0,D.jsx)(Wg,{initial:!1,children:e.selectedContactIds.length===0?(0,D.jsxs)(A.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:Z.selectedEmpty,children:[(0,D.jsx)(ri,{size:22,className:Z.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)(A.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:Z.selectedItemCard,children:[(0,D.jsx)(`span`,{className:Z.avatarSmall,style:{backgroundColor:r.color},children:r.initials}),(0,D.jsxs)(`div`,{className:v0.selectedMeta,children:[(0,D.jsx)(`div`,{className:Z.cardName,children:r.name}),(0,D.jsx)(`div`,{className:Z.cardRole,children:r.role})]}),(0,D.jsx)(`button`,{type:`button`,className:Z.removeBtn,onClick:()=>{t(n)},children:(0,D.jsx)(ei,{size:13})})]},n)})})})]}),x0=({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:Z.wizardRow,children:[(0,D.jsx)(y0,{d:e,isSelected:t,onToggle:n}),(0,D.jsx)(b0,{d:e,onToggle:n})]})},S0={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`},C0={start:`00:00`,end:`24:00`},w0=30,T0=(e,t,n)=>{let r=new Date(DN(e,`00:00`,t)),i=n?.active?n.slots.map(n=>({start:new Date(DN(e,n.from,t)),end:new Date(DN(e,n.to,t))})):[];return{rangeStart:r,rangeEnd:new Date(DN(e,`23:59`,t)),workWindows:i}},E0=(e,t,n)=>{let r=DN(t,e.start,n);return{startUtc:r,endUtc:new Date(new Date(r).getTime()+w0*6e4).toISOString()}},D0=(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:[]})},O0=({id:e,slotItem:t,d:n,allBlocks:r,serverBusy:i,rowInstants:a,selfBounds:o,isSelected:s,hoverCell:c,setHoverCell:l})=>{let u=i.get(e),d=u===void 0?n.selected===null?`ooh`:dX({userId:e,selfUserId:n.viewer.id,slotStart:new Date(a.startUtc),slotEnd:new Date(a.endUtc),allBlocks:r,rangeStart:o.rangeStart,rangeEnd:o.rangeEnd,workWindows:o.workWindows}):z1(a.startUtc,a.endUtc,u)?`busy`:`available`,f=c!==null&&c.userId===e&&c.slotLabel===t.label;return(0,D.jsx)(`div`,{className:T(S0.timelineCell,d===`available`&&S0.cellAvail,d===`busy`&&S0.cellBusy,d===`ooh`&&S0.cellOoh,s&&S0.cellSelected),onClick:()=>{D0(n,t.label,a)},onMouseEnter:()=>{l({userId:e,slotLabel:t.label})},onMouseLeave:()=>{l(null)},children:f&&(0,D.jsxs)(`div`,{className:S0.gridTooltip,children:[(0,D.jsx)(`strong`,{children:K1(e,n.list,n.viewer)}),` ·`,` `,d.toUpperCase()]})})},k0=({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=E0(e,a,o),f=AN.from({pick:o}).formatTime(d.startUtc);return(0,D.jsxs)(`div`,{className:S0.timelineRow,children:[(0,D.jsx)(`button`,{type:`button`,className:T(S0.timelineTimeCell,u&&S0.timelineTimeCellActive),onClick:()=>{D0(t,e.label,d)},children:f}),n.map(n=>(0,D.jsx)(O0,{id:n,slotItem:e,d:t,allBlocks:r,serverBusy:i,rowInstants:d,selfBounds:s,isSelected:u,hoverCell:c,setHoverCell:l},n+`-`+e.label))]})},A0=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>{let s=e.tzId,c=B1(C0),l=T0(i,s,e.hostDayWindow);return(0,D.jsxs)(`div`,{className:S0.timelineContainer,children:[(0,D.jsxs)(`div`,{className:S0.timelineHeaderRow,children:[(0,D.jsx)(`div`,{className:S0.timelineTimeCell}),t.map(t=>(0,D.jsx)(`div`,{className:S0.timelineHeaderCell,children:K1(t,e.list,e.viewer)},t))]}),(0,D.jsx)(`div`,{className:S0.timelineBody,children:c.map(c=>(0,D.jsx)(k0,{slotItem:c,d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,displayZone:s,selfBounds:l,hoverCell:a,setHoverCell:o},c.label))})]})},j0={header:`_header_1afpk_3`,slotNote:`_slotNote_1afpk_7`,cardMeta:`_cardMeta_1afpk_12`},M0=({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(DN(a,e.from,i)),end:new Date(DN(a,e.to,i))})):[];return dX({userId:e,selfUserId:t,slotStart:new Date(DN(a,n,i)),slotEnd:new Date(DN(a,r,i)),allBlocks:o,rangeStart:new Date(DN(a,`00:00`,i)),rangeEnd:new Date(DN(a,`23:59`,i)),workWindows:c})},N0=(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);return u===void 0?M0({userId:r,selfUserId:i.viewer.id,startStr:t,endStr:n,anchorTzId:s,isoDate:c,allBlocks:a,dayWindow:l}):z1(DN(c,t,s),DN(c,n,s),u)?`busy`:`available`},P0=e=>{let{id:t,d:n,curSlot:r}=e,i=q1(t,n.list,n.viewer),[a,o]=r?r.split(` – `):[null,null],s=a&&o?N0(e,a,o):`available`;return(0,D.jsxs)(`div`,{className:Z.attendeeStatusItem,children:[(0,D.jsx)(`span`,{className:Z.avatarSmall,style:{backgroundColor:i.color},children:i.initials}),(0,D.jsxs)(`div`,{className:j0.cardMeta,children:[(0,D.jsx)(`div`,{className:Z.cardName,children:i.name}),(0,D.jsx)(`div`,{className:Z.cardRole,children:i.role})]}),(0,D.jsx)(`span`,{className:T(Z.statusIndicator,s===`available`&&Z.statusIndicatorAvail,s===`busy`&&Z.statusIndicatorBusy,s===`ooh`&&Z.statusIndicatorOoh)})]})},F0=({d:e,activeAttendees:t,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o})=>(0,D.jsxs)(`div`,{className:T(Z.wizardPanelLeft,Z.timePanelLeft),children:[(0,D.jsxs)(`div`,{className:j0.header,children:[(0,D.jsx)(`h3`,{className:Z.panelHeading,children:`Attendees Availability`}),(0,D.jsxs)(`span`,{className:j0.slotNote,children:[`For selected slot: `,n??`None`]})]}),(0,D.jsx)(`div`,{className:Z.wizardList,children:t.map(t=>(0,D.jsx)(P0,{id:t,d:e,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o},t))})]}),I0={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`},L0=({suggestedOptions:e,slot:t,activeAttendeesCount:n,setSlot:r,tzId:i})=>(0,D.jsxs)(`div`,{className:Z.suggestedRow,children:[e.map(e=>{let a=t===e.label,o=n-e.conflicts.length,s=U1(e.startUtc,e.endUtc,i);return(0,D.jsxs)(`button`,{type:`button`,className:T(Z.suggestedCard,a&&Z.suggestedCardActive,e.conflicts.length===0&&Z.suggestedCardFree),onClick:()=>{r(e.label)},children:[(0,D.jsx)(`div`,{className:I0.freeBadge,children:e.conflicts.length===0?`ALL FREE`:`${String(o)}/${String(n)} FREE`}),(0,D.jsx)(`div`,{className:I0.slotTime,children:s})]},e.label)}),e.length===0&&(0,D.jsx)(`div`,{className:I0.noSlots,children:`No suggested slots found.`})]}),R0=({d:e})=>(0,D.jsxs)(`div`,{className:Z.gridToolbar,children:[(0,D.jsxs)(`div`,{className:I0.toolbarGroup,children:[(0,D.jsx)(zn,{size:14,color:`var(--color-primary)`}),(0,D.jsx)(`input`,{type:`date`,className:Z.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:I0.toolbarGroup,children:[(0,D.jsx)(`span`,{className:I0.toolbarLabel,children:`DURATION`}),(0,D.jsx)(`div`,{className:Z.durationSelector,children:[30,60,90,120].map(t=>(0,D.jsx)(`button`,{type:`button`,className:T(Z.durBtn,e.groupDuration===t&&Z.durBtnActive),onClick:()=>{e.setGroupDuration(t)},children:t<60?`${String(t)}m`:`${String(t/60)}h`},t))})]}),(0,D.jsxs)(`div`,{className:Z.legend,children:[(0,D.jsxs)(`span`,{className:Z.legendItem,children:[(0,D.jsx)(`span`,{className:Z.dotAvail}),` Free`]}),(0,D.jsxs)(`span`,{className:Z.legendItem,children:[(0,D.jsx)(`span`,{className:Z.dotBusy}),` Busy`]}),(0,D.jsxs)(`span`,{className:Z.legendItem,children:[(0,D.jsx)(`span`,{className:Z.dotOoh}),` Out of hours`]})]})]}),z0=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>e.selected===null?(0,D.jsxs)(`div`,{className:Z.gridEmpty,children:[(0,D.jsx)(Zn,{size:28,className:I0.emptyIcon}),(0,D.jsx)(`span`,{children:`Select a date above to display the availability grid.`})]}):(0,D.jsx)(A0,{d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o}),B0=e=>{let t=mN().data??[],r=jN().anchor,i=e.selected===null?null:V1(e.selected,e.today),a=KX(e.selectedContactIds,i);return{allBlocks:t,anchorTzId:r,isoDate:i,serverBusy:(0,n.useMemo)(()=>{let e=new Map;for(let t of a.data??[])e.set(t.userId,t.busy);return e},[a.data]),activeAttendees:e.viewer.id===``?[...e.selectedContactIds]:[e.viewer.id,...e.selectedContactIds],curSlot:e.slot}},V0=({d:e})=>{let{allBlocks:t,anchorTzId:r,isoDate:i,serverBusy:a,activeAttendees:o,curSlot:s}=B0(e),[c,l]=(0,n.useState)(null);return(0,D.jsxs)(`div`,{className:Z.wizardRow,children:[(0,D.jsx)(F0,{d:e,activeAttendees:o,curSlot:s,allBlocks:t,serverBusy:a,anchorTzId:r,isoDate:i??``}),(0,D.jsxs)(`div`,{className:T(Z.wizardPanelRight,Z.timePanelRight),children:[(0,D.jsx)(R0,{d:e}),(0,D.jsxs)(`div`,{className:Z.suggestedStrip,children:[(0,D.jsxs)(`div`,{className:I0.suggestedHeader,children:[(0,D.jsx)(Jr,{size:12,color:`var(--color-secondary)`}),(0,D.jsx)(`span`,{className:I0.suggestedTitle,children:`SUGGESTED TIMESLOTS`})]}),(0,D.jsx)(L0,{suggestedOptions:e.availableSlots.slice(0,4),slot:e.slot,activeAttendeesCount:o.length,setSlot:e.setSlot,tzId:e.tzId})]}),(0,D.jsx)(z0,{d:e,activeAttendees:o,allBlocks:t,serverBusy:a,isoDate:i??``,hoverCell:c,setHoverCell:l})]})]})},H0=()=>{let[e,t]=(0,n.useState)(`participants`),[r,i]=(0,n.useState)(30),[a,o]=(0,n.useState)(`Online Meeting`),[s,c]=(0,n.useState)(``);return{groupStep:e,groupDuration:r,groupLocation:a,groupDescription:s,setGroupStep:t,setGroupDuration:i,setGroupLocation:o,setGroupDescription:c,resetGroupWizardState:()=>{t(`participants`),i(30),o(`Online Meeting`),c(``)}}},U0=(e,t,n,r)=>{let i=e.s.meetingType===`group`;return{contactId:i?e.s.selectedContactIds[0]??``:e.s.contactId??``,dateLabel:e0(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:V1(t,e.today),startUtc:r?.startUtc,endUtc:r?.endUtc}},W0=e=>e.s.pickedSlot??(e.s.slot===null?null:e.availableSlots.find(t=>t.label===e.s.slot)??null),G0=e=>()=>{if(e.s.slot===null||e.s.selected===null)return;let t=W0(e);e.book.mutate(U0(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=>{j.error(e.message)}})},K0=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:G0(e)}),q0=e=>{let t=K0(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:W0(e),bookedSlot:e.s.bookedSlot,confirmOpen:e.s.confirmOpen,list:e.list,searchResults:e.searchResults,contact:e.contact,dateLabel:e.s.selected===null?``:e0(e.s.selected),zone:aX(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}},J0=(e,t)=>{let[r,i]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let n=setTimeout(()=>{i(e)},t);return()=>{clearTimeout(n)}},[e,t]),r},Y0=e=>`${String(e.getFullYear())}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,X0=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},Z0=(e,t)=>e.selected===null?null:e.meetingType===`group`?e.selectedContactIds.length===0?null:{isoDate:Y0(e.selected),timeZone:t,isGroup:!0,contactId:void 0,attendeeIds:[...e.selectedContactIds].sort()}:e.contactId===null?null:{isoDate:Y0(e.selected),timeZone:t,isGroup:!1,contactId:e.contactId,attendeeIds:void 0},Q0=e=>{let[t,r]=(0,n.useState)(`1:1`),[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)([]),[c,l]=(0,n.useState)(``),[u,d]=(0,n.useState)(``),[f,p]=(0,n.useState)(``),[m,h]=(0,n.useState)({year:e.getFullYear(),month:e.getMonth()}),[g,_]=(0,n.useState)(null),[v,y]=(0,n.useState)(null),[b,x]=(0,n.useState)(null),[S,C]=(0,n.useState)(null),[ee,te]=(0,n.useState)(!1);return{meetingType:t,setMeetingType:r,contactId:i,setContactId:a,selectedContactIds:o,setSelectedContactIds:s,groupTitle:c,setGroupTitle:l,search:u,setSearch:d,tzId:f,setTzIdState:p,view:m,setView:h,selected:g,setSelected:_,slot:v,setSlot:y,pickedSlot:b,setPickedSlot:x,bookedSlot:S,setBookedSlot:C,confirmOpen:ee,setConfirmOpen:te}},$0=()=>{let e=qX(),t=R1(),n=new Date,r=H0(),i=Q0(n),a=J0(i.search,250),o=UX(),s=UX(a),c=vN(),l=dN(),u=KL(),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=AN.from({pick:i.tzId,personal:h.timezone,anchor:h.availabilityTimezone}).display,_=u.data?X0(dI(u.data,h.branchId)):null,v=JD(l.data??null,_),y=i.selected===null?null:YD(v,i.selected);return q0({today:n,viewer:t,s:i,gw:r,book:e,list:f,searchResults:p,contact:m,availableSlots:GX(Z0(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()}})},e2={wizardContentClip:`_wizardContentClip_14i7n_3`,wizardStep:`_wizardStep_14i7n_8`},t2=({currentStep:e})=>{let t=[{id:`participants`,label:`Participants`},{id:`time`,label:`Find a time`},{id:`details`,label:`Details`},{id:`confirm`,label:`Confirm`}],r=(e=>t.findIndex(t=>t.id===e))(e);return(0,D.jsx)(`div`,{className:Z.stepper,children:t.map((e,t)=>{let i=t<r,a=t===r;return(0,D.jsxs)(n.Fragment,{children:[t>0&&(0,D.jsx)(`div`,{className:T(Z.stepLine,t<=r&&Z.stepLineActive)}),(0,D.jsxs)(`div`,{className:Z.stepItem,children:[(0,D.jsx)(`div`,{className:T(Z.stepCircle,a&&Z.stepCircleActive,i&&Z.stepCircleDone),children:i?(0,D.jsx)(Un,{size:12,strokeWidth:3}):t+1}),(0,D.jsx)(`span`,{className:T(Z.stepText,a&&Z.stepTextActive),children:e.label})]})]},e.id)})})},n2=e=>e===`participants`?`time`:e===`time`?`details`:e===`details`?`confirm`:null,r2=e=>e===`time`?`participants`:e===`details`?`time`:e===`confirm`?`details`:null,i2=({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,a2=e=>e===`participants`?`Next: Find a time`:e===`time`?`Next: Details`:e===`details`?`Next: Confirm`:`Confirm Booking`,o2=({d:e})=>{let t=()=>{let t=r2(e.groupStep);t?e.setGroupStep(t):e.setMeetingType(`1:1`)},n=()=>{let t=n2(e.groupStep);t?e.setGroupStep(t):e.confirm()},r=i2({step:e.groupStep,selectedContactIds:e.selectedContactIds,slot:e.slot,title:e.groupTitle,location:e.groupLocation,pending:e.pending}),i=a2(e.groupStep);return(0,D.jsxs)(`div`,{className:Z.wizardContainer,children:[(0,D.jsx)(t2,{currentStep:e.groupStep}),(0,D.jsx)(`div`,{className:T(Z.wizardContent,e2.wizardContentClip),children:(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsxs)(A.div,{initial:{opacity:0,x:15},animate:{opacity:1,x:0},exit:{opacity:0,x:-15},transition:{duration:.18,ease:`easeInOut`},className:e2.wizardStep,children:[e.groupStep===`participants`&&(0,D.jsx)(x0,{d:e}),e.groupStep===`time`&&(0,D.jsx)(V0,{d:e}),e.groupStep===`details`&&(0,D.jsx)(_0,{d:e}),e.groupStep===`confirm`&&(0,D.jsx)(h0,{d:e})]},e.groupStep)})}),(0,D.jsxs)(`div`,{className:Z.wizardFooter,children:[(0,D.jsxs)(`button`,{type:`button`,className:Z.wizardBackBtn,onClick:t,disabled:e.pending,children:[(0,D.jsx)(Gn,{size:16}),` Back`]}),e.groupStep===`time`&&e.slot&&(0,D.jsxs)(`div`,{className:Z.selectedStatusAlert,children:[(0,D.jsx)(Jn,{size:14,color:`var(--color-primary)`}),(0,D.jsxs)(`span`,{children:[`Selected: `,e.slot]})]}),(0,D.jsxs)(`button`,{type:`button`,className:Z.wizardNextBtn,disabled:r||e.pending,onClick:n,children:[e.pending?`Booking...`:i,!e.pending&&(0,D.jsx)(Kn,{size:16})]})]})]})},s2={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`},c2={hidden:{},visible:{transition:{staggerChildren:.03}}},l2=`You're not available at this time — you can still book.`,u2=({option:e,isSelected:t,onSlot:n,contactsList:r,viewer:i,tzId:a})=>{let o=U1(e.startUtc,e.endUtc,a),s=e.conflicts.length>0,c=e.conflicts.includes(i.id);return(0,D.jsxs)(A.button,{type:`button`,variants:zy,whileTap:{scale:.97},className:T(s2.slot,t&&s2.slotActive,s&&!t&&s2.slotWithConflicts),title:c?l2:void 0,onClick:()=>{n(e.label)},children:[(0,D.jsxs)(`div`,{className:s2.slotMain,children:[(0,D.jsx)(`span`,{children:o}),t&&(0,D.jsx)(Un,{size:14,strokeWidth:3})]}),s&&(0,D.jsxs)(`div`,{className:s2.slotConflictList,children:[(0,D.jsx)(`span`,{className:s2.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:s2.conflictAvatar,title:t?l2:`${n?.name??``} is busy / unavailable`,children:t?i.initials||`YOU`:n?.initials??``},e)})]})]})},d2=({dateLabel:e,slot:t,offset:n,onSlot:r,slots:i,contactsList:a,viewer:o,tzId:s})=>(0,D.jsxs)(`div`,{className:r0.col,children:[(0,D.jsxs)(`div`,{className:r0.colTitle,children:[(0,D.jsx)(`span`,{className:r0.stepDot,children:`3`}),` Available times`]}),e===``?(0,D.jsxs)(`div`,{className:s2.slotsEmpty,children:[(0,D.jsx)(`span`,{className:s2.slotsEmptyIcon,children:(0,D.jsx)(Zn,{size:28})}),(0,D.jsx)(`span`,{className:s2.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:s2.slotsDate,children:[e,` · times in `,n]}),(0,D.jsxs)(A.div,{className:s2.slotList,variants:c2,initial:`hidden`,animate:`visible`,children:[i.map(e=>(0,D.jsx)(u2,{option:e,isSelected:t===e.label,onSlot:r,contactsList:a,viewer:o,tzId:s},e.label)),i.length===0&&(0,D.jsx)(`div`,{className:s2.noSlots,children:`No available timeslots found for this day.`})]})]})]}),f2={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`},p2=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(A.div,{className:f2.tzPop,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:f2.tzSearch,children:[(0,D.jsx)(Br,{size:13}),(0,D.jsx)(`input`,{className:f2.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:f2.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:T(f2.tzRow,e.id===n&&f2.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:f2.tzCity,children:e.city}),(0,D.jsx)(`span`,{className:f2.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Un,{size:13,className:f2.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:f2.tzEmpty,children:`No timezones match.`})]})]}),m2=({value:e,onChange:t})=>{let[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(``),s=aX(e),c=a.trim().toLowerCase(),l=(tX.some(e=>e.id===s.id)?tX:[s,...tX]).filter(e=>c===``||e.city.toLowerCase().includes(c)||e.offset.toLowerCase().includes(c)||e.id.toLowerCase().includes(c));return(0,D.jsxs)(`div`,{className:f2.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:f2.tzBtn,"aria-expanded":r,"aria-label":`Change timezone`,onClick:()=>{i(e=>!e)},children:[(0,D.jsx)(cr,{size:13}),(0,D.jsx)(`span`,{className:f2.tzBtnCity,children:s.city}),(0,D.jsx)(`span`,{className:f2.tzBtnOffset,children:s.offset}),(0,D.jsx)(Wn,{size:13,className:f2.tzChevron})]}),(0,D.jsx)(Wg,{children:r&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:f2.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{i(!1)}}),(0,D.jsx)(p2,{search:a,list:l,value:e,onSearch:o,onPick:e=>{t(e),o(``),i(!1)}})]})})]})},h2={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`},g2=()=>(0,D.jsxs)(`div`,{className:Z.successHeader,children:[(0,D.jsx)(`div`,{className:h2.badgeWrap,children:(0,D.jsx)(A.div,{initial:{scale:0},animate:{scale:1},transition:{type:`spring`,stiffness:260,damping:20},className:h2.badgeCircle,children:(0,D.jsx)(A.div,{initial:{scale:0,rotate:-45},animate:{scale:1,rotate:0},transition:{delay:.2,type:`spring`,stiffness:200,damping:15},children:(0,D.jsx)(Un,{size:32,color:`var(--color-success)`,strokeWidth:3})})})}),(0,D.jsx)(`h2`,{className:Z.successTitle,children:`Booking Confirmed!`}),(0,D.jsx)(`p`,{className:Z.successSub,children:`A calendar invite has been sent to all participants.`})]}),_2=({d:e})=>{let t=e.meetingType===`group`;return(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:t?`Invited Guests`:`Attendee`}),(0,D.jsx)(`div`,{className:T(Z.successVal,h2.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:Z.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:Z.avatarTiny,style:{backgroundColor:n.color},children:n.initials}),n.name]},n.id)}):e.contact?(0,D.jsxs)(`span`,{className:Z.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:Z.avatarTiny,style:{backgroundColor:e.contact.color},children:e.contact.initials}),e.contact.name]}):`None`})]})},v2=({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=U1(e.bookedSlot?.startUtc,e.bookedSlot?.endUtc,e.tzId);return(0,D.jsxs)(A.div,{className:Z.successCard,initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{delay:.3,duration:.25,ease:`easeOut`},children:[(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Event`}),(0,D.jsx)(`span`,{className:T(Z.successVal,h2.eventVal),children:n})]}),(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:Z.successVal,children:[(0,D.jsxs)(`span`,{className:h2.iconRow,children:[(0,D.jsx)(zn,{size:14,color:`var(--color-primary)`}),e.dateLabel]}),(0,D.jsxs)(`span`,{className:h2.iconRowMuted,children:[(0,D.jsx)(Zn,{size:14}),a,` (`,e.zone.offset,`)`]})]})]}),(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Location`}),(0,D.jsx)(`span`,{className:Z.successVal,children:(0,D.jsxs)(`span`,{className:h2.iconRow,children:[(0,D.jsx)(vr,{size:14,color:`var(--color-primary)`}),r]})})]}),(0,D.jsx)(_2,{d:e}),t&&i.trim()!==``&&(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:T(Z.successVal,h2.agendaVal),children:(0,D.jsxs)(`span`,{className:h2.iconRowTop,children:[(0,D.jsx)(Qr,{size:14,className:h2.iconTop}),i]})})]})]})},y2=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:Z.successActions,children:[(0,D.jsx)(`button`,{type:`button`,className:T(Z.successBtn,Z.successBtnPrimary),onClick:()=>{t!==void 0&&t()},children:`View Scheduled Meetings`}),(0,D.jsx)(`button`,{type:`button`,className:T(Z.successBtn,Z.successBtnSecondary),onClick:()=>{e.reset()},children:`Book Another Meeting`})]}),b2=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:Z.successContainer,children:[(0,D.jsx)(g2,{}),(0,D.jsx)(v2,{d:e}),(0,D.jsx)(y2,{d:e,onViewScheduled:t})]}),x2=({d:e})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:X.bookGrid,children:[(0,D.jsx)(p0,{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)(a0,{view:e.view,today:e.today,selected:e.selected,onShift:t=>{e.shift(t)},onPick:t=>{e.pickDate(t)}}),(0,D.jsx)(d2,{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)(Z1,{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)(l0,{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})]}),S2=({onViewScheduled:e})=>{let t=$0();return t.success?(0,D.jsx)(b2,{d:t,onViewScheduled:e}):(0,D.jsxs)(`div`,{className:X.bookCard,children:[(0,D.jsxs)(`div`,{className:X.bookTopBar,children:[(0,D.jsxs)(`div`,{className:X.typeSelector,children:[(0,D.jsx)(`button`,{type:`button`,className:T(X.typeBtn,t.meetingType===`1:1`&&X.typeBtnActive),onClick:()=>{t.setMeetingType(`1:1`)},children:`1:1 Meeting`}),(0,D.jsx)(`button`,{type:`button`,className:T(X.typeBtn,t.meetingType===`group`&&X.typeBtnActive),onClick:()=>{t.setMeetingType(`group`)},children:`Group Meeting (1:Many)`})]}),(0,D.jsx)(m2,{value:t.tzId,onChange:e=>{t.setTzId(e)}})]}),t.meetingType===`group`?(0,D.jsx)(o2,{d:t}):(0,D.jsx)(x2,{d:t})]})},C2={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`},w2=e=>e===`accepted`?`Accepted`:e===`rejected`?`Declined`:`Pending`,T2=1800*1e3,E2=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`},D2=({onRespond:e})=>(0,D.jsxs)(`div`,{className:C2.meetingActions,children:[(0,D.jsxs)(`button`,{type:`button`,className:C2.acceptBtn,onClick:()=>{e(!0)},children:[(0,D.jsx)(Un,{size:12,strokeWidth:3}),` Accept`]}),(0,D.jsx)(`button`,{type:`button`,className:C2.declineBtn,onClick:()=>{e(!1)},children:`Decline`})]}),O2=e=>e===`accepted`?C2.statusAccepted??!1:e===`rejected`?C2.statusRejected??!1:C2.statusPending??!1,k2=({meeting:e,onCancel:t,onJoin:n,canJoin:r,joinHint:i})=>{let a=sZ(e=>e.activeMeeting),o=sZ(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:C2.meetingActions,children:[(0,D.jsx)(`span`,{className:T(C2.statusPill,O2(e.myStatus)),children:w2(e.myStatus)}),s&&(0,D.jsx)(vE,{label:l,side:`top`,children:(0,D.jsxs)(`button`,{type:`button`,className:T(C2.joinBtn,c&&C2.joinBtnDisabled),disabled:c,"aria-label":l,onClick:n,children:[(0,D.jsx)(ii,{size:13}),` `,o?`Joined`:`Join`]})}),e.isOrganizer&&(0,D.jsx)(vE,{label:u,side:`top`,children:(0,D.jsx)(`button`,{type:`button`,className:T(C2.cancelBtn,o&&C2.cancelBtnDisabled),disabled:o,"aria-label":u,onClick:t,children:`Cancel`})})]})},A2=e=>{let{meeting:t,onRespond:n}=e;return t.awaitingResponse?(0,D.jsx)(D2,{onRespond:n}):t.bucket===`canceled`?(0,D.jsx)(`span`,{className:T(C2.statusPill,C2.statusCanceled),children:`Canceled`}):t.bucket===`passed`?(0,D.jsx)(`span`,{className:T(C2.statusPill,C2.statusCompleted),children:`Completed`}):(0,D.jsx)(k2,{...e})},j2=(e,t)=>({month:e.toLocaleDateString(`en-US`,{month:`short`,timeZone:t}).toUpperCase(),day:e.toLocaleDateString(`en-US`,{day:`numeric`,timeZone:t})}),M2=(e,t)=>{let[r,i]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{let e=setInterval(()=>{i(Date.now())},3e4);return()=>{clearInterval(e)}},[]);let a=r>=e-T2&&r<=t;return{canJoin:a,joinHint:a?`Join the meeting`:r>t?`This meeting has ended`:`Join opens 30 min before — starts ${E2(e-r)}`}},N2=e=>{let{meeting:t}=e,r=jN(),i=new Date(t.startUtc),a=new Date(t.endUtc),o=r.formatTime(t.startUtc),s=r.formatTime(t.endUtc),c=j2(i,r.display),l=` (${aX(r.display).offset})`,{canJoin:u,joinHint:d}=M2(i.getTime(),a.getTime()),f=(0,n.useRef)(null),p=(0,n.useRef)(null);(0,n.useEffect)(()=>{p.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:m}=Ay({target:f,container:p,offset:[`start end`,`end start`]}),h=Py(m,[0,1],[-8,8]);return(0,D.jsxs)(A.article,{ref:f,style:{y:h},className:C2.meeting,variants:zy,whileHover:{y:-2},transition:{type:`spring`,stiffness:400,damping:30},children:[(0,D.jsxs)(`div`,{className:T(C2.datePlate,t.bucket===`passed`&&C2.datePlatePassed,t.bucket===`canceled`&&C2.datePlateCanceled),children:[(0,D.jsx)(`span`,{className:C2.datePlateMonth,children:c.month}),(0,D.jsx)(`span`,{className:C2.datePlateDay,children:c.day})]}),(0,D.jsx)(`span`,{className:C2.meetingAvatar,style:E({"--avatar-color":t.withColor}),children:t.withInitials}),(0,D.jsxs)(`div`,{className:C2.meetingBody,children:[(0,D.jsxs)(`span`,{className:C2.meetingTitle,children:[t.title,` · `,t.withName]}),(0,D.jsxs)(`div`,{className:C2.meetingMeta,children:[(0,D.jsxs)(`span`,{className:C2.meetingMetaItem,children:[(0,D.jsx)(Zn,{size:11}),` `,o,`–`,s,l]}),(0,D.jsxs)(`span`,{className:C2.meetingMetaItem,children:[(0,D.jsx)(vr,{size:11}),` `,t.location]})]})]}),(0,D.jsx)(A2,{...e,canJoin:u,joinHint:d})]})},P2={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`},F2=()=>(0,D.jsx)(`div`,{className:P2.list,children:Array.from({length:3}).map((e,t)=>(0,D.jsxs)(`div`,{className:P2.meeting,children:[(0,D.jsx)(`div`,{className:P2.datePlate}),(0,D.jsx)(`div`,{className:P2.avatar}),(0,D.jsxs)(`div`,{className:P2.body,children:[(0,D.jsx)(`div`,{className:P2.title}),(0,D.jsx)(`div`,{className:P2.meta})]}),(0,D.jsxs)(`div`,{className:P2.actions,children:[(0,D.jsx)(`div`,{className:P2.btn}),(0,D.jsx)(`div`,{className:P2.btn})]})]},`skel-${String(t)}`))}),I2=[{id:`upcoming`,label:`Upcoming`},{id:`passed`,label:`Past`},{id:`canceled`,label:`Canceled`}],L2={type:`spring`,stiffness:420,damping:34},R2={hidden:{},visible:{transition:{staggerChildren:.05}}},z2=({bucket:e,counts:t,onSelect:n})=>(0,D.jsx)(`div`,{className:C2.bucketTabs,children:I2.map(r=>{let i=e===r.id;return(0,D.jsxs)(`button`,{type:`button`,className:T(C2.bucketTab,i&&C2.bucketTabActive),onClick:()=>{n(r.id)},children:[i&&(0,D.jsx)(A.span,{layoutId:`bucketBg`,className:C2.bucketBg,transition:L2}),(0,D.jsx)(`span`,{className:C2.bucketLabel,children:r.label}),(0,D.jsx)(`span`,{className:C2.bucketCount,children:t[r.id]})]},r.id)})}),B2=()=>{let e=Be(),t=WX(),r=JX(),i=YX(),[a,o]=(0,n.useState)(`upcoming`),s=t.data??[],c=s.filter(e=>e.bucket===a),l={upcoming:s.filter(e=>e.bucket===`upcoming`).length,passed:s.filter(e=>e.bucket===`passed`).length,canceled:s.filter(e=>e.bucket===`canceled`).length};return(0,D.jsxs)(`div`,{className:C2.schedWrap,children:[(0,D.jsx)(z2,{bucket:a,counts:l,onSelect:o}),t.isPending?(0,D.jsx)(F2,{}):null,t.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load meetings`,children:t.error.message}),t.isSuccess&&c.length===0?(0,D.jsxs)(`div`,{className:C2.empty,children:[(0,D.jsx)(`div`,{className:C2.emptyIconWrap,children:(0,D.jsx)(Bn,{size:32})}),(0,D.jsxs)(`span`,{className:C2.emptyTitle,children:[`No `,a,` meetings`]}),(0,D.jsx)(`span`,{className:C2.emptyText,children:`Nothing scheduled here yet.`})]}):null,t.isSuccess&&c.length>0?(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(A.div,{className:C2.meetingList,variants:R2,initial:`hidden`,animate:`visible`,children:c.map(t=>(0,D.jsx)(N2,{meeting:t,onRespond:e=>{r.mutate({meetingId:t.id,accept:e})},onCancel:()=>{i.mutate(t.id)},onJoin:()=>{e(`/comms/meetings/${t.id}/room`)}},t.id))},a)}):null]})},V2={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`},H2=()=>{let[e,t]=(0,n.useState)(`scheduled`),r=(WX().data??[]).filter(e=>e.bucket===`upcoming`).length;return(0,D.jsxs)(`div`,{className:V2.screen,children:[(0,D.jsxs)(`header`,{className:V2.head,children:[(0,D.jsxs)(`div`,{className:V2.headTop,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h1`,{className:V2.title,children:`Meetings`}),(0,D.jsx)(`p`,{className:V2.subtitle,children:`Book 1:1 meetings and manage your invitations.`})]}),(0,D.jsxs)(`div`,{className:V2.headBadge,children:[(0,D.jsx)(`span`,{className:V2.headBadgeNum,children:r}),(0,D.jsx)(`span`,{className:V2.headBadgeLabel,children:`upcoming`})]})]}),(0,D.jsxs)(`div`,{className:V2.tabs,children:[(0,D.jsxs)(`button`,{type:`button`,className:T(V2.tab,e===`book`&&V2.tabActive),onClick:()=>{t(`book`)},children:[(0,D.jsx)(zn,{size:15}),` Book a Meeting`,e===`book`&&(0,D.jsx)(A.span,{layoutId:`bookTabUnderline`,className:V2.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]}),(0,D.jsxs)(`button`,{type:`button`,className:T(V2.tab,e===`scheduled`&&V2.tabActive),onClick:()=>{t(`scheduled`)},children:[(0,D.jsx)(Zn,{size:15}),` Scheduled`,e===`scheduled`&&(0,D.jsx)(A.span,{layoutId:`bookTabUnderline`,className:V2.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]})]})]}),(0,D.jsx)(`div`,{className:V2.body,children:(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(A.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2,ease:`easeOut`},className:V2.tabContent,children:e===`book`?(0,D.jsx)(S2,{onViewScheduled:()=>{t(`scheduled`)}}):(0,D.jsx)(B2,{})},e)})})]})},U2=()=>{let{meetingId:e}=We(),t=sZ(e=>e.setRequestedMeetingId);return(0,n.useEffect)(()=>{e!==void 0&&t(e)},[e,t]),(0,D.jsx)(D.Fragment,{})},W2=`/comms/bookings`,G2=`/comms/meetings/:meetingId/room`,K2=()=>(0,D.jsxs)(St,{children:[(0,D.jsx)(bt,{path:W2,element:(0,D.jsx)(H2,{})}),(0,D.jsx)(bt,{path:G2,element:(0,D.jsx)(U2,{})}),(0,D.jsx)(bt,{path:`*`,element:(0,D.jsx)(yt,{to:W2,replace:!0})})]}),q2=()=>{eQ(`uapp-bookings`,()=>(0,D.jsx)(K2,{}))},J2=(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})},Y2=(e,t)=>{let n=UD(e);return J2(e,t).map(e=>({date:e,dayNumber:e.getDate(),isToday:UD(e)===n}))},X2=(e,t)=>e.toLocaleDateString(void 0,t),Z2=(e,t)=>{let n=J2(e,t),r=n[0]??e,i=n[6]??e,a=r.getFullYear()===i.getFullYear();return a&&r.getMonth()===i.getMonth()?`${String(r.getDate())} – ${X2(i,{day:`numeric`,month:`long`,year:`numeric`})}`:a?`${X2(r,{day:`numeric`,month:`short`})} – ${X2(i,{day:`numeric`,month:`short`,year:`numeric`})}`:`${X2(r,{day:`numeric`,month:`short`,year:`numeric`})} – ${X2(i,{day:`numeric`,month:`short`,year:`numeric`})}`},Q2=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),$2=(e,t)=>Q2(e,t).toLocaleDateString(void 0,{month:`long`,year:`numeric`}),e4=(e,t)=>{let n=Q2(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})},t4=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`},n4=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`},r4=e=>new Date(e).toLocaleDateString(void 0,{weekday:`short`,day:`numeric`,month:`short`}),i4=e=>UD(e),a4=e=>n4(e),o4=(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()},s4={available:{label:`Available`,color:`#22c55e`,Icon:Un},busy:{label:`Busy`,color:`#ef4444`,Icon:Nn},meeting:{label:`Meeting`,color:`#3b82f6`,Icon:ii},focus:{label:`Focus`,color:`#8b5cf6`,Icon:Zr},away:{label:`Away`,color:`#94a3b8`,Icon:Zn}},c4=e=>e===0||e===24?`12 AM`:e===12?`12 PM`:e<12?`${String(e)} AM`:`${String(e-12)} PM`,l4=(e,t)=>{let n=zD(e),r=zD(t);return r<=n?1440:r},u4=(e,t)=>{let n=IO(t);return n<=IO(e)?1440:n},d4=(e,t,n)=>{let r=IO(n)<=IO(t)?0:Math.max(0,Math.floor(IO(t)/60)-1),i=Math.min(24,Math.ceil(u4(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(zD(t.start)/60)),i=Math.max(i,Math.ceil(l4(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}},f4=e=>Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n),p4=e=>(e.endHour-e.startHour)*52,m4=(e,t,n)=>{let r=zD(e),i=l4(e,t);return{top:(r-n.startHour*60)*52/60,height:Math.max(20,(i-r)*52/60-2)}},h4=(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}},g4=(e,t,n)=>e?t.flatMap(e=>{let t=IO(e.from),r=IO(e.to);if(r<=t)return[h4(t,1440,n),h4(0,r,n)].filter(e=>e!==null);let i=h4(t,r,n);return i===null?[]:[i]}):[],_4=(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},v4=(e,t,n,r=90)=>((IO(t)<=IO(e)?0:IO(e))-n*60)*52/60-r*52/60,y4=(e,t,n=90)=>(e.getHours()*60+e.getMinutes()-t*60)*52/60-n*52/60,b4=e=>{let t=[...e].sort((e,t)=>zD(e.start)-zD(t.start)||l4(e.start,e.end)-l4(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=zD(e.start),n=l4(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},x4=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},S4=e=>e.reduce((e,t)=>e+(t.end-t.start),0),C4=(e,t,n)=>{let r=UD(t),i=e.filter(e=>e.date===r&&!e.block.allDay),a=x4([...n.map(e=>{let t=IO(e.from),n=IO(e.to);return{start:t,end:n<=t?1440:n}}),...i.filter(e=>e.block.status===`available`).map(e=>({start:zD(e.start),end:l4(e.start,e.end)}))]),o=i.filter(e=>e.block.status!==`available`).map(e=>({start:zD(e.start),end:l4(e.start,e.end)})),s=0;for(let e of a){let t=x4(o.map(t=>({start:Math.max(e.start,t.start),end:Math.min(e.end,t.end)})));s+=e.end-e.start-S4(t)}return Math.max(0,Math.round(s/60))},w4=(e,t)=>new Date(new Date(e).getTime()+t*6e4).toISOString(),T4=(e,t)=>{let n=new Date(e),r=CN(t,n)-CN(xN(),n);return r===0?e:new Date(n.getTime()-r*6e4).toISOString()},E4=(e,t)=>{let n=new Date(e),r=CN(t,n)-CN(xN(),n);return r===0?e:new Date(n.getTime()+r*6e4).toISOString()},D4=(e,t)=>({...e,start:T4(e.start,t),end:T4(e.end,t)}),O4=e=>{if(e.mode===`edit`){let{block:t}=e;return{title:t.title,status:t.status,start:t.start,end:t.allDay?t.end:o4(i4(t.start),a4(t.end)),allDay:t.allDay,notes:t.notes,recurrence:t.recurrence}}let t=e.start,n=e.end??w4(t,60),r=null,i=UD(t);if(i!==UD(n)){n=o4(i,a4(n));let a=new Date(t),o=new Date(e.end??n),s=[],c=new Date(a),l=0;for(;UD(c)<=UD(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:UD(o),exceptions:[]}}return{title:e.title??``,status:e.status??`available`,start:t,end:n,allDay:!1,notes:``,recurrence:r}},k4=e=>({...e,recurrence:e.recurrence===null?lO(e.start):null}),A4=(e,t)=>({...e,recurrence:t}),j4=(e,t)=>({...e,start:o4(t,a4(e.start)),end:o4(t,a4(e.end))}),M4=(e,t)=>{let n=o4(i4(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()}},N4=(e,t)=>({...e,end:o4(i4(e.start),t)}),P4=(e,t)=>{let n=i4(e.start);return t?{...e,allDay:!0,start:o4(n,`00:00`),end:o4(n,`23:59`)}:{...e,allDay:!1,start:o4(n,`09:00`),end:o4(n,`10:00`)}},Q={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`},F4={center:`_center_10cfo_6`,field:`_field_10cfo_12`,dash:`_dash_10cfo_18`},I4={timeInput:`_timeInput_ik08d_4`},L4=[{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`}],R4=({slot:e,index:t,dayMeta:n,dayName:r,showTrash:i,onUpdateStart:a,onUpdateEnd:o,onAdd:s,onRemove:c})=>(0,D.jsxs)(`div`,{className:Q.differentTimeRowItem,children:[t===0?(0,D.jsx)(`span`,{className:Q.differentTimeDayLabel,children:n?.longLabel??r}):(0,D.jsx)(`span`,{className:Q.differentTimeDayLabelSpacer}),(0,D.jsx)(`input`,{type:`time`,className:T(Q.recurDate,I4.timeInput),value:e.start,onChange:e=>{a(e.target.value)}}),(0,D.jsx)(`span`,{className:F4.dash,children:`–`}),(0,D.jsx)(`input`,{type:`time`,className:T(Q.recurDate,I4.timeInput),value:e.end,onChange:e=>{o(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:Q.slotActionBtn,onClick:s,children:(0,D.jsx)(Mr,{size:14})}),i&&(0,D.jsx)(`button`,{type:`button`,className:Q.slotActionBtnTrash,onClick:c,children:(0,D.jsx)(ei,{size:12})})]}),z4=({dayMeta:e,dayName:t,slots:n,startIso:r,endIso:i,onChangeSlots:a})=>{let o=n.length>0?n:[{start:a4(r),end:a4(i??r)}];return(0,D.jsx)(`div`,{className:Q.differentTimeRowGroup,children:o.map((n,r)=>(0,D.jsx)(R4,{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,{start:e?.end??`09:00`,end:e?.end??`17:00`}])},onRemove:()=>{a(o.filter((e,t)=>t!==r))}},r))})},B4=({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:Q.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:Q.differentTimeList,children:[e.weekdays.map(i=>{let a=L4.find(e=>e.wd===i);return(0,D.jsx)(z4,{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:Q.differentTimeNote,children:`Defaults to the base event time when not overridden. Use + to add multiple slots per day.`})]})]}),V4=({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=gO({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:Q.upcomingCard,children:[(0,D.jsxs)(`div`,{className:Q.upcomingHeader,children:[(0,D.jsx)(Vn,{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=`${n4(e.start)} – ${n4(e.end)}`;return(0,D.jsxs)(`div`,{className:Q.upcomingRow,children:[(0,D.jsx)(`span`,{className:Q.upcomingRowDate,children:n}),(0,D.jsx)(`span`,{className:Q.upcomingRowTime,children:r})]},t)})}),s.length>5&&(0,D.jsx)(`div`,{className:Q.upcomingMore,children:`...and more beyond`})]})},H4=[{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`}],U4={daily:`day`,weekly:`week`,monthly:`month`,yearly:`year`},W4=[{id:`dayOfMonth`,label:`Day of month`},{id:`nthWeekday`,label:`Day of week`}],G4=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:Q.recurChips,children:oO.map(n=>(0,D.jsx)(`button`,{type:`button`,className:T(Q.recurChip,e.freq===n.id&&Q.recurChipActive),"aria-pressed":e.freq===n.id,onClick:()=>{t({...e,freq:n.id})},children:n.label},n.id))}),K4=({rec:e,onChange:t})=>(0,D.jsxs)(`label`,{className:Q.recurInline,children:[(0,D.jsx)(`span`,{className:Q.recurInlineLabel,children:`Every`}),(0,D.jsx)(`input`,{type:`number`,min:1,max:99,className:Q.recurNumber,value:e.interval,onChange:n=>{t({...e,interval:Math.max(1,Number(n.target.value)||1)})}}),(0,D.jsxs)(`span`,{className:Q.recurInlineLabel,children:[U4[e.freq],e.interval>1?`s`:``]})]}),q4=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:Q.recurWeekdays,children:H4.map(({wd:n,label:r})=>{let i=e.weekdays.includes(n);return(0,D.jsx)(`button`,{type:`button`,className:T(Q.recurDay,i&&Q.recurDayActive),"aria-pressed":i,onClick:()=>{t({...e,weekdays:i?e.weekdays.filter(e=>e!==n):[...e.weekdays,n]})},children:r},n)})}),J4=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:Q.recurChips,children:W4.map(n=>(0,D.jsx)(`button`,{type:`button`,className:T(Q.recurChip,e.monthlyMode===n.id&&Q.recurChipActive),onClick:()=>{t({...e,monthlyMode:n.id})},children:n.label},n.id))}),Y4=({rec:e,startIso:t,onChange:n})=>(0,D.jsxs)(`div`,{className:Q.recurEnds,children:[(0,D.jsxs)(`label`,{className:Q.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:Q.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:Q.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:Q.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:Q.recurDate,min:t.slice(0,10),value:e.endDate,disabled:e.endType!==`on`,onChange:t=>{n({...e,endType:`on`,endDate:t.target.value})}})]})]}),X4=({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:Q.recurBuilder,children:[(0,D.jsx)(G4,{rec:e,onChange:r}),(0,D.jsx)(K4,{rec:e,onChange:r}),i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(q4,{rec:e,onChange:r}),(0,D.jsx)(B4,{rec:e,onChange:r,startIso:t,endIso:n})]}),a&&(0,D.jsx)(J4,{rec:e,onChange:r}),(0,D.jsx)(Y4,{rec:e,startIso:t,onChange:r}),(0,D.jsx)(`div`,{className:Q.recurSummaryBox,children:xO(e,t)}),(0,D.jsx)(V4,{recurrence:e,startIso:t,endIso:n})]})},Z4=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Status`}),(0,D.jsx)(`div`,{className:Q.statusPills,children:DO.map(n=>{let r=s4[n.id],i=e.status===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:T(Q.statusPill,i&&Q.statusPillActive),style:E({"--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)})})]}),Q4=({draft:e,onChange:t})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:e.allDay?F4.field:Q.dtGrid,children:[(0,D.jsxs)(`label`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:Q.panelInput,value:i4(e.start),onChange:n=>{t(j4(e,n.target.value))}})]}),!e.allDay&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Start`}),(0,D.jsx)(YE,{value:a4(e.start),onChange:n=>{t(M4(e,n))}})]}),(0,D.jsxs)(`label`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`End`}),(0,D.jsx)(YE,{align:`end`,value:a4(e.end),onChange:n=>{t(N4(e,n))}})]})]})]}),(0,D.jsxs)(`label`,{className:Q.checkRow,children:[(0,D.jsx)(`input`,{type:`checkbox`,className:Q.checkbox,checked:e.allDay,onChange:n=>{t(P4(e,n.target.checked))}}),(0,D.jsx)(`span`,{children:`All-day`})]})]}),$4=({draft:e,onChange:t})=>{let n=e.recurrence!==null;return(0,D.jsxs)(`div`,{className:Q.recurSection,children:[(0,D.jsxs)(`button`,{type:`button`,className:T(Q.recurToggle,n&&Q.recurToggleOn),"aria-pressed":n,onClick:()=>{t(k4(e))},children:[(0,D.jsxs)(`span`,{className:Q.recurToggleLabel,children:[(0,D.jsx)(zr,{size:13}),` Recurring`]}),(0,D.jsx)(`span`,{className:T(Q.recurSwitch,n&&Q.recurSwitchOn),children:(0,D.jsx)(`span`,{className:Q.recurKnob})})]}),e.recurrence!==null&&(0,D.jsx)(X4,{recurrence:e.recurrence,startIso:e.start,endIso:e.end,onChange:n=>{t(A4(e,n))}})]})},e3=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:Q.panelForm,children:[(0,D.jsxs)(`label`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Title`}),(0,D.jsx)(`input`,{type:`text`,className:T(Q.panelInput,e.title.length>200&&Q.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:Q.fieldError,children:`The field Title must be a string with a maximum length of 200.`})]}),(0,D.jsx)(Z4,{draft:e,onChange:t}),(0,D.jsx)(Q4,{draft:e,onChange:t}),(0,D.jsx)($4,{draft:e,onChange:t}),(0,D.jsxs)(`label`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Notes`}),(0,D.jsx)(`textarea`,{className:Q.notesInput,rows:3,value:e.notes,placeholder:`Optional notes`,onChange:n=>{t({...e,notes:n.target.value})}})]})]}),t3=(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},n3=(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},r3=(e,t)=>{let n=e.block.status===`available`&&t.block.status===`available`,r=e.block.status!==`available`&&t.block.status!==`available`;return(n||r)&&n3(e,t)},i3=(e,t,n)=>{let r=FO([new SO({id:`draft`,...e})],n),i=FO(t,n),a=[];for(let e of i)r.some(t=>r3(t,e))&&a.push(e);return a},a3=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}),o3=(e,t,n)=>({...a3(e),start:t,end:n,recurrence:null}),s3=(e,t)=>{let n=e.recurrence;if(n===null)return a3(e);let r=Array.from(new Set([...n.exceptions,...t]));return{...a3(e),recurrence:{...n,exceptions:r}}},c3=(e,t,n)=>n.type===`delete`?[]:n.type===`update`?[o3(e,n.start,n.end)]:[o3(e,t.start,n.updateEnd),o3(e,n.createStart,n.createEnd)],l3=(e,t,n)=>{let r=t3(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:o3(e,r.start,r.end)}]:[{kind:`update`,blockId:e.id,draft:o3(e,t.start,r.updateEnd)},{kind:`create`,draft:o3(e,r.createStart,r.createEnd)}]},u3=(e,t,n)=>{let r=[],i=[];for(let a of t){let t=t3(n.start,n.end,a.start,a.end);if(t!==null){r.push(a.date);for(let n of c3(e,a,t))i.push({kind:`create`,draft:n})}}return r.length===0?[]:[{kind:`update`,blockId:e.id,draft:s3(e,r)},...i]},d3=(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?l3(n.block,n,e):u3(n.block,t,e);r.push(...i)}return r},f3=(e,t)=>e.filter(e=>t.mode!==`edit`||e.id!==t.block.id),p3=(e,t,n)=>{let r=new Map;for(let i of i3(e,t,n))r.set(i.block.id,i.block);return[...r.values()]},m3=(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(!VD(e.start,e.end))return{error:`End time must be after start time.`,code:`invalid_time`};let i=D4(e,r);if(n.mode!==`edit`&&new Date(i.start).getTime()<Date.now()-300*1e3)return{error:`Cannot create an event in the past.`,code:`invalid_time`};let a=J2(new Date(i.start),0),o=p3(i,f3(t,n),a);if(o.length>0){let t=o[0],n=o.some(e=>e.status===`meeting`);if(t!==void 0)return e.status===`available`&&t.status===`available`?{error:`This block overlaps with an existing availability.`,code:`overlap_availability`,hasMeetingConflict:n}:{error:n?`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:n}}return{error:null}},h3=(e,t,n)=>{let r=hN(),i=gN(),a=_N(),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=D4(e,n),s=J2(new Date(a.start),0),c=d3(a,i3(a,f3(r,t),s));try{await Promise.all(c.map(o)),j.success(`Conflicts resolved successfully!`),i()}catch(e){let t=e instanceof Error?e.message:String(e);j.error(`Failed to resolve conflicts: ${t}`)}}}},g3={errorStack:`_errorStack_q9qoj_4`,errorLine:`_errorLine_q9qoj_11`},_3=` · `,v3=` – `,y3=e=>{let t=UD(e.start)===UD(e.end)?r4(e.start):`${r4(e.start)}${v3}${r4(e.end)}`,n=e.recurrence===null?``:`${_3}${xO(e.recurrence,e.start)}`;return e.allDay?`${t}${_3}All day${n}`:`${t}${_3}${`${n4(e.start)}${v3}${n4(e.end)}`}${_3}${t4(BD(e.start,e.end))}${n}`},b3=({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:Q.panelFooter,children:[(0,D.jsx)(`div`,{className:T(Q.panelSummary,r!==null&&Q.panelSummaryError),children:r===null?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(zn,{size:14}),` `,a]}):(0,D.jsxs)(`div`,{className:g3.errorStack,children:[(0,D.jsxs)(`span`,{className:g3.errorLine,children:[(0,D.jsx)(Jn,{size:14}),` `,r]}),i&&(0,D.jsxs)(`button`,{type:`button`,className:Q.resolveConflictBtn,onClick:l,disabled:t,children:[(0,D.jsx)(Fr,{size:11}),` Auto-adjust blocks to fit`]})]})}),(0,D.jsxs)(`div`,{className:Q.panelActions,children:[e&&(0,D.jsxs)(gi,{variant:`ghost`,onClick:s,disabled:t,children:[(0,D.jsx)(ei,{size:15}),` Delete`]}),(0,D.jsx)(`span`,{className:Q.actionSpacer}),(0,D.jsx)(gi,{variant:`secondary`,onClick:c,disabled:t,children:`Cancel`}),n?(0,D.jsx)(gi,{onClick:o,isLoading:t,children:e?`Save changes`:`Create`}):(0,D.jsx)(vE,{label:r??`Cannot save`,side:`top`,children:(0,D.jsx)(`span`,{className:Q.disabledButtonWrapper,children:(0,D.jsx)(gi,{onClick:o,isLoading:t,disabled:!0,children:e?`Save changes`:`Create`})})})]})]}),x3=(e,t,n,r)=>{let i=hN(),a=gN(),o=_N();return{busy:i.isPending||a.isPending||o.isPending,onSave:()=>{let o=D4(t,n),s=e=>{j.success(e),r()};if(e.mode===`edit`){a.mutate({id:e.block.id,draft:o},{onSuccess:()=>{s(`Event updated`)},onError:e=>{j.error(e.message)}});return}i.mutate(o,{onSuccess:()=>{s(`Event added`)},onError:e=>{j.error(e.message)}})},onDelete:()=>{e.mode===`edit`&&o.mutate(e.block.id,{onSuccess:()=>{j.success(`Event removed`),r()},onError:e=>{j.error(e.message)}})}}},S3=({state:e,timezone:t,onClose:r})=>{let[i,a]=(0,n.useState)(()=>O4(e)),{busy:o,onSave:s,onDelete:c}=x3(e,i,t,r),{data:l=[]}=mN(),u=h3(i,e,t),d=e.mode===`edit`,f=m3(i,l,e,t),p=f.code===`title_too_long`?null:f.error,m=f.error===null,h=(f.code===`overlap_availability`||f.code===`overlap_event`)&&!f.hasMeetingConflict;return(0,D.jsxs)(Jy,{open:!0,side:`right`,title:d?`Edit Event`:`New Event`,onOpenChange:e=>{e||r()},footer:(0,D.jsx)(b3,{isEdit:d,busy:o,canSave:m,validationError:p,isConflict:h,summary:y3(i),onSave:s,onDelete:c,onCancel:r,onResolveConflicts:()=>{u.resolve(l,s)}}),children:[(0,D.jsxs)(`header`,{className:Q.panelHead,children:[(0,D.jsx)(`span`,{className:Q.panelTitle,children:d?`Edit Event`:`New Event`}),(0,D.jsx)(wi,{label:`Close`,onClick:r,children:(0,D.jsx)(oi,{size:18})})]}),(0,D.jsx)(e3,{draft:i,onChange:a})]})},C3=()=>{let e=Intl.supportedValuesOf;return typeof e==`function`?e(`timeZone`):EO},w3=(e,t,n,r)=>({...e,slots:e.slots.map(e=>({...e,from:EN(e.from,t,n,r),to:EN(e.to,t,n,r)}))}),T3=(e,t,n,r)=>WD({mon:w3(e.mon,t,n,r),tue:w3(e.tue,t,n,r),wed:w3(e.wed,t,n,r),thu:w3(e.thu,t,n,r),fri:w3(e.fri,t,n,r),sat:w3(e.sat,t,n,r),sun:w3(e.sun,t,n,r)}),E3=(e,t)=>{let n=C3();return(n.includes(t)?n:[t,...n]).map(t=>({id:t,offset:ON(CN(t,e))}))},D3={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`},O3=(e,t)=>t===``||e.id.toLowerCase().includes(t)||e.offset.toLowerCase().includes(t),k3=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(A.div,{className:D3.tzPop,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:D3.tzSearch,children:[(0,D.jsx)(Br,{size:13}),(0,D.jsx)(`input`,{className:D3.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:D3.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:T(D3.tzRow,e.id===n&&D3.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:D3.tzRowLabel,children:e.id}),(0,D.jsx)(`span`,{className:D3.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Un,{size:13,className:D3.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:D3.tzEmpty,children:`No timezones match.`})]})]}),A3=({value:e,now:t,onChange:r})=>{let[i,a]=(0,n.useState)(!1),[o,s]=(0,n.useState)(``),c=(0,n.useMemo)(()=>E3(t,e),[t,e]),l=c.find(t=>t.id===e)??{id:e,offset:``},u=o.trim().toLowerCase(),d=c.filter(e=>O3(e,u));return(0,D.jsxs)(`div`,{className:D3.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:D3.tzTrigger,"aria-expanded":i,"aria-label":`Change timezone`,onClick:()=>{a(e=>!e)},children:[(0,D.jsx)(cr,{size:14,className:D3.tzGlobe}),(0,D.jsx)(`span`,{className:D3.tzTriggerLabel,children:l.id}),(0,D.jsx)(`span`,{className:D3.tzTriggerOffset,children:l.offset}),(0,D.jsx)(Wn,{size:15,className:D3.tzChevron})]}),(0,D.jsx)(Wg,{children:i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:D3.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{a(!1)}}),(0,D.jsx)(k3,{search:o,list:d,value:e,onSearch:s,onPick:e=>{r(e),s(``),a(!1)}})]})})]})},$={gridScroll:`_gridScroll_156z1_7`,gridInner:`_gridInner_156z1_33`,gutter:`_gutter_156z1_38`,gutterHead:`_gutterHead_156z1_44`,gutterAllDay:`_gutterAllDay_156z1_48`,gutterHour:`_gutterHour_156z1_62`,dayCol:`_dayCol_156z1_73`,dayHeader:`_dayHeader_156z1_79`,colDay:`_colDay_156z1_93`,colDayToday:`_colDayToday_156z1_101`,dayNum:`_dayNum_156z1_105`,dayNumToday:`_dayNumToday_156z1_125`,dayCount:`_dayCount_156z1_131`,allDayBand:`_allDayBand_156z1_137`,allDayChip:`_allDayChip_156z1_148`,hoursWrap:`_hoursWrap_156z1_168`,workBand:`_workBand_156z1_174`,hourRow:`_hourRow_156z1_184`,nowLine:`_nowLine_156z1_203`,nowDot:`_nowDot_156z1_214`,block:`_block_156z1_224`,blockTitle:`_blockTitle_156z1_261`,blockTime:`_blockTime_156z1_279`,monthScroll:`_monthScroll_156z1_293`,monthHead:`_monthHead_156z1_302`,monthHeadCell:`_monthHeadCell_156z1_309`,monthGrid:`_monthGrid_156z1_319`,monthCell:`_monthCell_156z1_326`,monthCellOff:`_monthCellOff_156z1_347`,monthDayNum:`_monthDayNum_156z1_351`,monthCellToday:`_monthCellToday_156z1_355`,monthDayNumToday:`_monthDayNumToday_156z1_366`,monthChip:`_monthChip_156z1_379`,monthMore:`_monthMore_156z1_402`,agendaScroll:`_agendaScroll_156z1_410`,agendaGroup:`_agendaGroup_156z1_418`,agendaDay:`_agendaDay_156z1_422`,agendaItems:`_agendaItems_156z1_432`,agendaRow:`_agendaRow_156z1_438`,agendaAccent:`_agendaAccent_156z1_459`,agendaBody:`_agendaBody_156z1_467`,agendaTitle:`_agendaTitle_156z1_475`,agendaMeta:`_agendaMeta_156z1_484`,agendaPill:`_agendaPill_156z1_493`,agendaEmpty:`_agendaEmpty_156z1_506`,agendaEmptyIcon:`_agendaEmptyIcon_156z1_517`,agendaEmptyTitle:`_agendaEmptyTitle_156z1_522`,agendaEmptyText:`_agendaEmptyText_156z1_528`,agendaEmptyBtn:`_agendaEmptyBtn_156z1_533`,availabilityBand:`_availabilityBand_156z1_546`,availabilityBandLabel:`_availabilityBandLabel_156z1_579`,availabilityBandEditBtn:`_availabilityBandEditBtn_156z1_589`,dragSelectionHighlight:`_dragSelectionHighlight_156z1_612`,dragSelectionLabel:`_dragSelectionLabel_156z1_631`},j3={hidden:{},visible:{transition:{staggerChildren:.04}}},M3=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()]},N3=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=s4[n.status],i=n.allDay?`All day`:`${n4(e.start)} – ${n4(e.end)}`;return(0,D.jsxs)(A.button,{type:`button`,variants:zy,whileHover:{x:3},className:$.agendaRow,style:E({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(`span`,{className:$.agendaAccent}),(0,D.jsxs)(`span`,{className:$.agendaBody,children:[(0,D.jsx)(`span`,{className:$.agendaTitle,children:n.title}),(0,D.jsxs)(`span`,{className:$.agendaMeta,children:[i,n.recurrence!==null&&(0,D.jsxs)(D.Fragment,{children:[` · `,(0,D.jsx)(Lr,{size:10}),` Recurring`]})]})]}),(0,D.jsxs)(`span`,{className:$.agendaPill,children:[(0,D.jsx)(r.Icon,{size:10}),` `,r.label]})]})},P3=({occurrences:e,onSelectBlock:t,onCreate:n})=>{let r=M3(e);return r.length===0?(0,D.jsxs)(`div`,{className:$.agendaEmpty,children:[(0,D.jsx)(`span`,{className:$.agendaEmptyIcon,children:(0,D.jsx)(Bn,{size:30})}),(0,D.jsx)(`span`,{className:$.agendaEmptyTitle,children:`Nothing scheduled this month`}),(0,D.jsx)(`span`,{className:$.agendaEmptyText,children:`Create a block to fill your week.`}),(0,D.jsx)(`button`,{type:`button`,className:$.agendaEmptyBtn,onClick:n,children:`Create New Event`})]}):(0,D.jsx)(`div`,{className:$.agendaScroll,children:r.map(e=>(0,D.jsxs)(`div`,{className:$.agendaGroup,children:[(0,D.jsx)(`div`,{className:$.agendaDay,children:e.label}),(0,D.jsx)(A.div,{className:$.agendaItems,variants:j3,initial:`hidden`,animate:`visible`,children:e.items.map(e=>(0,D.jsx)(N3,{occurrence:e,onSelect:t},e.key))})]},e.key))})},F3=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],I3=3,L3=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},R3=e=>{let{date:t,inMonth:n,isToday:r,occs:i}=e,a=i.length-I3;return(0,D.jsxs)(`div`,{className:T($.monthCell,!n&&$.monthCellOff,r&&$.monthCellToday),onClick:()=>{e.onSelectSlot(o4(UD(t),`09:00`))},children:[(0,D.jsx)(`span`,{className:T($.monthDayNum,r&&$.monthDayNumToday),children:t.getDate()}),i.slice(0,I3).map(t=>(0,D.jsx)(`button`,{type:`button`,className:$.monthChip,style:E({"--status-color":s4[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:$.monthMore,children:[`+`,a,` more`]})]})},z3=({dates:e,anchor:t,occurrences:n,today:r,onSelectBlock:i,onSelectSlot:a})=>{let o=L3(n),s=UD(r);return(0,D.jsxs)(`div`,{className:$.monthScroll,children:[(0,D.jsx)(`div`,{className:$.monthHead,children:F3.map(e=>(0,D.jsx)(`span`,{className:$.monthHeadCell,children:e},e))}),(0,D.jsx)(A.div,{className:$.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=UD(e);return(0,D.jsx)(R3,{date:e,inMonth:e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear(),isToday:n===s,occs:o.get(n)??[],onSelectBlock:i,onSelectSlot:a},n)})})]})},B3={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`},V3={hidden:{},visible:{transition:{staggerChildren:.05}}},H3=({occurrences:e,today:t,availability:n})=>{let r=AO(e,t),i=OD[(t.getDay()+6)%7]?.id??`mon`,a=n?.[i],o=a?.active?a.slots:[],s=[{label:`Free`,value:`${String(C4(e,t,o))}h`,color:`var(--color-primary)`,Icon:Zn},{label:`Busy`,value:`${String(r.busyHours)}h`,color:s4.busy.color,Icon:s4.busy.Icon},{label:`Meetings`,value:String(r.meetingCount),color:s4.meeting.color,Icon:s4.meeting.Icon},{label:`Focus`,value:`${String(r.focusHours)}h`,color:s4.focus.color,Icon:s4.focus.Icon}];return(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:B3.sideHeader,children:`Today`}),(0,D.jsx)(A.div,{className:B3.summaryGrid,variants:V3,initial:`hidden`,animate:`visible`,children:s.map(e=>(0,D.jsxs)(A.div,{className:B3.summaryCard,style:E({"--v":e.color}),variants:zy,whileHover:{y:-2},children:[(0,D.jsxs)(`span`,{className:B3.summaryTop,children:[(0,D.jsx)(e.Icon,{size:12,strokeWidth:2.4,className:B3.summaryTopIcon}),(0,D.jsx)(`span`,{className:B3.summaryLabel,children:e.label})]}),(0,D.jsx)(`span`,{className:B3.summaryValue,children:e.value})]},e.label))})]})},U3=({onQuickAdd:e})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:B3.sideHeader,children:`Quick add`}),(0,D.jsx)(`div`,{className:B3.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=s4[t.status];return(0,D.jsxs)(A.button,{type:`button`,whileTap:{scale:.96},className:B3.quickBtn,style:E({"--status-color":n.color}),onClick:()=>{e(t.status,t.minutes,t.title)},children:[(0,D.jsx)(n.Icon,{size:11}),` `,t.label]},t.label)})})]}),W3=({activeStatuses:e,onToggleStatus:t})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:B3.sideHeader,children:`Status legend`}),(0,D.jsx)(`div`,{className:B3.legend,children:DO.map(n=>{let r=s4[n.id],i=e.has(n.id);return(0,D.jsxs)(A.button,{type:`button`,whileTap:{scale:.97},className:T(B3.legendItem,i?B3.legendItemOn:B3.legendOff),style:E({"--status-color":r.color}),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:T(B3.legendSwatch,!i&&B3.legendSwatchOff),children:(0,D.jsx)(Wg,{children:i&&(0,D.jsx)(A.span,{initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Un,{size:11,strokeWidth:3})})})}),(0,D.jsx)(r.Icon,{size:12,className:B3.legendIcon}),n.label]},n.id)})})]}),G3=e=>(0,D.jsxs)(`aside`,{className:B3.sidebar,children:[e.onClose!==void 0&&(0,D.jsxs)(`div`,{className:B3.drawerHeader,children:[(0,D.jsx)(`span`,{className:B3.drawerTitle,children:`Schedule Settings`}),(0,D.jsx)(`button`,{type:`button`,className:B3.drawerCloseBtn,onClick:e.onClose,"aria-label":`Close schedule settings`,children:(0,D.jsx)(oi,{size:16})})]}),(0,D.jsx)(H3,{occurrences:e.occurrences,today:e.today,availability:e.availability}),(0,D.jsx)(U3,{onQuickAdd:e.onQuickAdd}),(0,D.jsx)(W3,{activeStatuses:e.activeStatuses,onToggleStatus:e.onToggleStatus})]}),K3=(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}},q3=({item:e,range:t,onSelect:n})=>{let{occurrence:r}=e,{block:i}=r,a=s4[i.status],o=m4(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)(A.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:$.block,style:{...E({"--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:$.blockTitle,children:[s&&(0,D.jsx)(qn,{size:10,"aria-hidden":!0}),` `,(0,D.jsx)(a.Icon,{size:10}),` `,i.title]}),o.height>=30&&(0,D.jsxs)(`span`,{className:$.blockTime,children:[n4(r.start),` – `,n4(r.end),c&&(0,D.jsx)(Wn,{size:10,"aria-hidden":!0})]})]})},J3=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=s4[n.status];return(0,D.jsxs)(`button`,{type:`button`,className:$.allDayChip,style:E({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(r.Icon,{size:10}),` `,n.title]})},Y3=e=>`${String(e).padStart(2,`0`)}:00`,X3=({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:p4(t)}:m4(e.start,e.end,t);return(0,D.jsxs)(`div`,{className:$.availabilityBand,style:E({"--top":`${String(i.top)}px`,"--h":`${String(i.height)}px`}),onClick:()=>{n(e.start,e.end)},children:[(0,D.jsxs)(`span`,{className:$.availabilityBandLabel,children:[(0,D.jsx)(Un,{size:11,strokeWidth:3}),` Available`]}),(0,D.jsx)(`button`,{type:`button`,className:$.availabilityBandEditBtn,onClick:t=>{t.stopPropagation(),r(e.block)},children:`Edit`})]},e.key)})}),Z3=({day:e,cell:t,dayIndex:n,range:r,onDragSelectStart:i,onDragSelectEnter:a,onDropBlock:o,onSelectSlot:s})=>(0,D.jsx)(D.Fragment,{children:f4(r).map(r=>(0,D.jsx)(`button`,{type:`button`,className:$.hourRow,"aria-label":`Add a block on ${e.long} at ${c4(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,o4(UD(t.date),Y3(r)))},onClick:()=>{s(o4(UD(t.date),Y3(r)))}},r))}),Q3=e=>e===0?``:e===1?`1 event`:`${String(e)} events`,$3=({day:e,cell:t,count:n,off:r})=>(0,D.jsxs)(`div`,{className:$.dayHeader,children:[(0,D.jsx)(`span`,{className:T($.colDay,t.isToday&&$.colDayToday),children:e.short}),(0,D.jsx)(`span`,{className:T($.dayNum,t.isToday&&$.dayNumToday),children:t.dayNumber}),(0,D.jsx)(`span`,{className:$.dayCount,children:r?`Day off`:Q3(n)})]}),e6=({allDay:e,onSelectBlock:t})=>(0,D.jsx)(`div`,{className:$.allDayBand,children:e.map(e=>(0,D.jsx)(J3,{occurrence:e,onSelect:t},e.key))}),t6=({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:$.dragSelectionHighlight,style:E({"--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:$.dragSelectionLabel,children:[c4(Math.min(t.startHour,t.endHour)),` –`,` `,c4(Math.max(t.startHour,t.endHour))]})}),n6=(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:b4(n.filter(e=>!e.block.allDay&&e.block.status!==`available`))}},r6=({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=g4(e,t,n),g=r.isToday?_4(o,n):null;return(0,D.jsxs)(`div`,{className:$.hoursWrap,style:E({"--grid-h":`${String(p4(n))}px`}),children:[h.map(e=>(0,D.jsx)(`div`,{className:$.workBand,style:E({"--top":`${String(e.top)}px`,"--h":`${String(e.height)}px`})},e.top)),(0,D.jsx)(X3,{bands:s,range:n,onSelectSlot:p,onSelectBlock:m}),(0,D.jsx)(Z3,{day:i,cell:r,dayIndex:a,range:n,onDragSelectStart:u,onDragSelectEnter:d,onDropBlock:f,onSelectSlot:p}),(0,D.jsx)(t6,{dayIndex:a,dragSelect:l,rangeStartHour:n.startHour}),g!==null&&(0,D.jsx)(`div`,{className:$.nowLine,style:E({"--top":`${String(g)}px`}),children:(0,D.jsx)(`span`,{className:$.nowDot})}),c.map(e=>(0,D.jsx)(q3,{item:e,range:n,onSelect:m},e.occurrence.key))]})},i6=e=>{let{day:t,cell:n,dayIndex:r,occurrences:i,onSelectBlock:a,active:o}=e,{dayOccs:s,allDay:c,availabilityBands:l,laid:u}=n6(i,r),d=!o;return(0,D.jsxs)(`div`,{className:T($.dayCol,n.isToday&&$.dayColToday),children:[(0,D.jsx)($3,{day:t,cell:n,count:s.length,off:d}),(0,D.jsx)(e6,{allDay:c,onSelectBlock:a}),(0,D.jsx)(r6,{...e,availabilityBands:l,laid:u})]})},a6=({range:e})=>(0,D.jsxs)(`div`,{className:$.gutter,children:[(0,D.jsx)(`div`,{className:$.gutterHead}),(0,D.jsx)(`div`,{className:$.gutterAllDay,children:`all-day`}),Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n).map(e=>(0,D.jsx)(`div`,{className:$.gutterHour,children:c4(e)},e))]}),o6=(e,t)=>{let[r,i]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let n=()=>{if(r!==null){let{firstDayIdx:n,lastDayIdx:a,startHour:o,endHour:s}=K3(r.startDayIndex,r.endDayIndex,r.startHour,r.endHour),c=e[n],l=e[a];c&&l&&t(o4(UD(c.date),`${String(o).padStart(2,`0`)}:00`),o4(UD(l.date),`${String(s).padStart(2,`0`)}:00`)),i(null)}};return window.addEventListener(`mouseup`,n),()=>{window.removeEventListener(`mouseup`,n)}},[r,e,t]),{dragSelect:r,startDrag:(e,t)=>{i({startDayIndex:e,endDayIndex:e,startHour:t,endHour:t+1})},enterDrag:(e,t,n)=>{if(r!==null){if(n!==1){i(null);return}i({...r,endDayIndex:e,endHour:t+1})}}}},s6=e=>{let t=gN();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}})}}},c6=e=>({active:e?e.active:!0,slots:e?.slots??[{from:`09:00`,to:`17:00`}]}),l6=({days:e,cells:t,occurrences:r,availability:i,workStart:a,workEnd:o,range:s,now:c,onSelectBlock:l,onSelectSlot:u})=>{let d=(0,n.useRef)(null),{dragSelect:f,startDrag:p,enterDrag:m}=o6(t,u),{dropBlock:h}=s6(r),g=(0,n.useRef)(c);g.current=c;let{startHour:_,endHour:v}=s,y=c.getHours()*60+c.getMinutes(),b=t.some(e=>e.isToday)&&y>=_*60&&y<=v*60;(0,n.useEffect)(()=>{let e=d.current;if(e===null)return;let t=b?y4(g.current,_):v4(a,o,_);e.scrollTo({top:Math.max(0,Math.min(t,e.scrollHeight-e.clientHeight))})},[_,a,o,b]);let x=Math.max(1,...e.map(e=>{let t=OD.findIndex(t=>t.id===e.id);return r.filter(e=>e.dayIndex===t&&e.block.allDay).length}));return(0,D.jsx)(`div`,{className:$.gridScroll,ref:d,children:(0,D.jsxs)(`div`,{className:$.gridInner,style:E({"--all-day-rows":x}),children:[(0,D.jsx)(a6,{range:s}),e.map(e=>{let n=OD.findIndex(t=>t.id===e.id),a=t[n]??t[0];if(a===void 0)return null;let{active:o,slots:d}=c6(i?i[e.id]:null);return(0,D.jsx)(i6,{day:e,cell:a,dayIndex:n,active:o,slots:d,range:s,now:c,occurrences:r,dragSelect:f,onDragSelectStart:p,onDragSelectEnter:m,onDropBlock:h,onSelectBlock:l,onSelectSlot:u},e.id)})]})})},u6=[{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`}],d6=e=>e===`month`||e===`agenda`,f6=(e,t)=>{let n=new Set(e);return t===`agenda`?n.delete(`available`):t!==`hours`&&n.add(`available`),n},p6=(e,t)=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n},m6=()=>{let[e,t]=(0,n.useState)(`week`),[r,i]=(0,n.useState)(0),[a,o]=(0,n.useState)(0),[s,c]=(0,n.useState)(null),[l,u]=(0,n.useState)(()=>new Set(DO.map(e=>e.id))),[d,f]=(0,n.useState)(``),p=jN(d).display;return{view:e,setView:e=>{t(e),u(t=>f6(t,e))},weekOffset:r,monthOffset:a,goPrev:()=>{d6(e)?o(e=>e-1):i(e=>e-1)},goNext:()=>{d6(e)?o(e=>e+1):i(e=>e+1)},goToday:()=>{i(0),o(0)},active:l,toggle:e=>{u(t=>p6(t,e))},editor:s,openCreate:(e,t)=>{c({mode:`create`,start:e,...t===void 0?{}:{end:t}})},openQuick:(e,t,n)=>{let r=new Date(E4(new Date().toISOString(),p));r.setSeconds(0,0),r.setMinutes(Math.ceil(r.getMinutes()/5)*5);let i=new Date(r.getTime()+t*6e4);c({mode:`create`,start:r.toISOString(),end:i.toISOString(),status:e,title:n})},openEdit:e=>{c({mode:`edit`,block:e})},closeEditor:()=>{c(null)},timezone:p,setTimezone:f}},h6={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`},g6=e=>e.view===`month`?(0,D.jsx)(z3,{dates:e.monthDates,anchor:e.monthAnchor,occurrences:e.monthOccurrences,today:e.today,onSelectBlock:e.onSelectBlock,onSelectSlot:e.onSelectSlot}):e.view===`agenda`?(0,D.jsx)(P3,{occurrences:e.monthOccurrences,onSelectBlock:e.onSelectBlock,onCreate:e.onCreate}):(0,D.jsx)(l6,{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}),_6=e=>{let t=fi(`(max-width: 1024px)`);return(0,D.jsxs)(`div`,{className:h6.main,children:[(0,D.jsxs)(`div`,{className:h6.calArea,children:[e.query.isPending&&(0,D.jsx)(`div`,{className:F4.center,children:(0,D.jsx)(mi,{label:`Loading schedule`})}),e.query.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load schedule`,children:e.query.error.message}),e.query.isSuccess&&g6(e)]}),!t&&(0,D.jsx)(G3,{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)(Jy,{open:e.isSidebarOpen??!1,onOpenChange:t=>{!t&&e.onCloseSidebar!==void 0&&e.onCloseSidebar()},title:`Schedule Settings`,side:`right`,children:(0,D.jsx)(G3,{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})})]})},v6=(e,t)=>e.meetingDuration!==t.meetingDuration||e.bufferMinutes!==t.bufferMinutes,y6=(e,t,n)=>{let r=AN.from({personal:t.timezone,anchor:t.availabilityTimezone});return{anchorZone:r.anchor,initialTimezone:r.display,initialInZone:T3(e,r.anchor,r.display,n)}},b6=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},x6=(e,t,r)=>{let i=pN(),a=yN(),[o]=(0,n.useState)(()=>r.now()),[{anchorZone:s,initialTimezone:c,initialInZone:l}]=(0,n.useState)(()=>y6(e,t,o)),[u,d]=(0,n.useState)(l),[f,p]=(0,n.useState)(c),[m,h]=(0,n.useState)(t.meetingDuration),[g,_]=(0,n.useState)(t.bufferMinutes),v=T3(u,f,s,o),y=JSON.stringify(b6(v))!==JSON.stringify(b6(e)),b=v6({meetingDuration:m,bufferMinutes:g},t);return(0,n.useEffect)(()=>{i.isSuccess&&d(T3(e,s,f,o))},[e,i.isSuccess,s,f,o]),(0,n.useEffect)(()=>{a.isSuccess&&(h(t.meetingDuration),_(t.bufferMinutes))},[t,a.isSuccess]),{draft:u,timezone:f,meetingDuration:m,bufferMinutes:g,now:o,dirty:y||b,isSaving:i.isPending||a.isPending,isSuccess:i.isSuccess||a.isSuccess,isError:i.isError||a.isError,errorMsg:i.error?.message??a.error?.message??``,setMeetingDuration:h,setBufferMinutes:_,patchDay:(e,t)=>{i.reset(),a.reset(),d(n=>({...n,[e]:{...n[e],...t}}))},changeTimezone:e=>{i.reset(),a.reset(),d(t=>T3(t,f,e,o)),p(e)},reset:()=>{i.mutate(null,{onSuccess:()=>{j.success(`Reverted to your branch default hours.`)},onError:()=>{j.error(`Could not revert to branch defaults. Please try again.`)}})},onSave:()=>{i.reset(),a.reset(),y&&i.mutate(v),b&&a.mutate({...t,meetingDuration:m,bufferMinutes:g})}}},S6={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`},C6=({name:e,options:t,selected:n,onSelect:r})=>(0,D.jsx)(`div`,{className:S6.chips,children:t.map(t=>{let i=n===t;return(0,D.jsxs)(`button`,{type:`button`,className:T(S6.chipBtn,i&&S6.chipBtnActive),onClick:()=>{r(t)},children:[i&&(0,D.jsx)(A.span,{layoutId:`chip-${e}`,className:S6.chipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsxs)(`span`,{className:S6.chipLabel,children:[t,`m`]})]},t)})}),w6=({meetingDuration:e,bufferMinutes:t,onDurationChange:n,onBufferChange:r})=>(0,D.jsxs)(`div`,{className:S6.settingsGrid,children:[(0,D.jsxs)(`div`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:S6.fieldLabel,children:`Meeting duration`}),(0,D.jsx)(C6,{name:`duration`,options:wO,selected:e,onSelect:n})]}),(0,D.jsxs)(`div`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:S6.fieldLabel,children:`Buffer between meetings`}),(0,D.jsx)(C6,{name:`buffer`,options:TO,selected:t,onSelect:r})]})]}),T6=({day:e,value:t,onChange:n})=>(0,D.jsxs)(`div`,{className:S6.dayRow,children:[(0,D.jsx)(`button`,{type:`button`,className:T(S6.toggle,t.active&&S6.toggleOn),"aria-pressed":t.active,onClick:()=>{n({active:!t.active})},children:(0,D.jsx)(`span`,{className:S6.toggleKnob})}),(0,D.jsx)(`span`,{className:S6.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.jsxs)(`div`,{className:S6.dayTimes,children:[(0,D.jsx)(YE,{value:e.from,disabled:!t.active,onChange:i=>{let a=[...t.slots];a[r]={...e,from:i},n({slots:a})}}),(0,D.jsx)(`span`,{className:F4.dash,children:`–`}),(0,D.jsx)(YE,{value:e.to,disabled:!t.active,align:`end`,onChange:i=>{let a=[...t.slots];a[r]={...e,to:i},n({slots:a})}}),(0,D.jsx)(`button`,{type:`button`,className:S6.resetBtn,disabled:!t.active||t.slots.length===1,onClick:()=>{n({slots:t.slots.filter((e,t)=>t!==r)})},children:`Delete`})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:S6.resetBtn,style:{alignSelf:`flex-start`,margin:0},disabled:!t.active,onClick:()=>{n({slots:[...t.slots,{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]})},children:`+ Add Time`})]}),(0,D.jsxs)(`button`,{type:`button`,className:S6.resetBtn,onClick:()=>{n({active:!0,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]})},children:[(0,D.jsx)(Pr,{size:13}),` Reset`]})]}),E6=({timezone:e,branchName:t,now:n,onTimezoneChange:r})=>(0,D.jsxs)(`div`,{className:S6.settingsGrid,children:[(0,D.jsxs)(`div`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:S6.fieldLabel,children:`Timezone`}),(0,D.jsx)(A3,{value:e,now:n,onChange:r}),(0,D.jsx)(`span`,{className:S6.fieldHint,children:`Preview only — set your saved timezone in Profile`})]}),(0,D.jsxs)(`div`,{className:F4.field,children:[(0,D.jsx)(`span`,{className:S6.fieldLabel,children:`Home Branch`}),(0,D.jsx)(`div`,{className:S6.readonlyField,children:t}),(0,D.jsx)(`span`,{className:S6.fieldHint,children:`Assigned from your UAPP account`})]})]}),D6=({isOverride:e,branchName:t,onReset:n})=>(0,D.jsx)(`div`,{className:S6.inheritedBanner,children:e?(0,D.jsxs)(`div`,{className:S6.customBadge,children:[(0,D.jsxs)(`span`,{className:S6.customBadgeText,children:[`Customized Working Hours (overrides `,t,`)`]}),(0,D.jsxs)(`button`,{type:`button`,className:S6.resetToBranchBtn,onClick:n,children:[(0,D.jsx)(ti,{size:13}),` Use Branch Defaults`]})]}):(0,D.jsxs)(`div`,{className:S6.inheritedBadge,children:[(0,D.jsxs)(`span`,{children:[`Inheriting default hours from `,(0,D.jsx)(`strong`,{children:t})]}),(0,D.jsx)(`span`,{className:S6.badgeSub,children:`Modifying the hours below will create a personal override.`})]})}),O6=({statusText:e,disabled:t,onClick:n})=>(0,D.jsxs)(`div`,{className:S6.formFooter,children:[(0,D.jsx)(`span`,{className:S6.formStatus,children:e}),(0,D.jsx)(`button`,{type:`button`,className:S6.saveBtn,disabled:t,onClick:n,children:`Save changes`})]}),k6=(e,t)=>e?`Unsaved changes`:t?`Saved`:``,A6=({initial:e,isOverride:t,branchName:n,prefs:r})=>{let{clock:i}=oN(),a=x6(e,r,i),o=k6(a.dirty,a.isSuccess);return(0,D.jsxs)(`div`,{className:S6.hours,children:[(0,D.jsx)(E6,{timezone:a.timezone,branchName:n,now:a.now,onTimezoneChange:a.changeTimezone}),(0,D.jsx)(w6,{meetingDuration:a.meetingDuration,bufferMinutes:a.bufferMinutes,onDurationChange:a.setMeetingDuration,onBufferChange:a.setBufferMinutes}),(0,D.jsx)(D6,{isOverride:t,branchName:n,onReset:a.reset}),OD.map(e=>(0,D.jsx)(T6,{day:e,value:a.draft[e.id],onChange:t=>{a.patchDay(e.id,t)}},e.id)),a.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not save`,children:a.errorMsg}),(0,D.jsx)(O6,{statusText:o,disabled:!a.dirty||a.isSaving,onClick:a.onSave})]})},j6=(e,t,n)=>e?.message??t?.message??n?.message??`Unknown error`,M6=(e,t)=>e?.branches.find(e=>e.id===t)?.name??`your branch`,N6=()=>{let e=fN(),t=KL(),n=vN();if(e.isPending||t.isPending||n.isPending)return(0,D.jsx)(`div`,{className:F4.center,children:(0,D.jsx)(mi,{label:`Loading working hours`})});if(e.isError||t.isError||n.isError)return(0,D.jsx)(vi,{tone:`error`,title:`Could not load working hours`,children:j6(e.error,t.error,n.error)});let r=M6(t.data,n.data.branchId);return(0,D.jsx)(A6,{initial:e.data.weekly,isOverride:e.data.isOverride,branchName:r,prefs:n.data},`${String(e.data.isOverride)}:${e.data.source}`)},P6={workStart:`09:00`,workEnd:`17:00`,branchId:`uk`},F6=(e,t)=>e===`day`?OD.slice(t,t+1):e===`workweek`?OD.slice(0,5):OD,I6=e=>{let[t]=e.split(`:`);return Number(t??`0`)},L6=(e,t,n)=>{if(e!==null)return e;if(t){let e=dI(t,n),r={};for(let t of OD){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 OD)r[e.id]={active:e.id!==`sat`&&e.id!==`sun`,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]};return r},R6=(e,t,n,r)=>t!==``&&t!==n?T3(e,t,n,r):e,z6=e=>{let t=Object.values(e).filter(e=>e.active).flatMap(e=>e.slots),n=t.length>0?Math.min(...t.map(e=>I6(e.from))):9,r=t.length>0?Math.max(...t.map(e=>I6(e.to))):17;return{workStart:`${String(Math.max(0,n)).padStart(2,`0`)}:00`,workEnd:`${String(Math.min(24,r)).padStart(2,`0`)}:00`}},B6=e=>{let t=mN(),r=dN().data??null,i=vN().data,a=i??P6,o=KL(),s=new Date,c=CN(e.timezone,s)-CN(xN(),s),l=new Date(s.getTime()+c*6e4),u=e.view===`month`||e.view===`agenda`,d=t=>e.active.has(t.block.status),f=a.branchId,p=R6((0,n.useMemo)(()=>L6(r,o.data,f),[r,o.data,f]),i?.availabilityTimezone??``,e.timezone,s),{workStart:m,workEnd:h}=z6(p),g=e.timezone,_=t.data,v=(0,n.useMemo)(()=>{let e=_??[],t=xN();if(g===t)return e;let n=e=>{let n=new Date(e),r=CN(g,n)-CN(t,n);return r===0?e:new Date(n.getTime()+r*6e4).toISOString()};return e.map(e=>new SO({id:e.id,userId:e.userId,title:e.title,status:e.status,start:n(e.start),end:n(e.end),allDay:e.allDay,notes:e.notes,recurrence:e.recurrence}))},[_,g]),y=J2(l,e.weekOffset),b=FO(v,y),x=e4(l,e.monthOffset),S=PO(x[0]??l,x[x.length-1]??l,v);return{query:t,today:l,days:F6(e.view,(l.getDay()+6)%7),cells:Y2(l,e.weekOffset),weekOccurrences:b.filter(d),availability:p,workStart:m,workEnd:h,range:d4(b,m,h),monthDates:x,monthAnchor:Q2(l,e.monthOffset),monthOccurrences:S.filter(d),summary:u?S:b,rangeText:u?$2(l,e.monthOffset):Z2(l,e.weekOffset),defaultStart:o4(UD(y[0]??l),`09:00`)}},V6=({view:e,onView:t})=>(0,D.jsx)(`div`,{className:h6.viewChips,children:u6.map(n=>{let r=e===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:T(h6.viewChip,r&&h6.viewChipActive),onClick:()=>{t(n.id)},children:[r&&(0,D.jsx)(A.span,{layoutId:`schedViewBg`,className:h6.viewChipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:h6.viewChipLabel,children:n.label})]},n.id)})}),H6=({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:h6.toolbar,children:[(0,D.jsx)(`select`,{className:h6.scheduleSelect,"aria-label":`Calendar`,defaultValue:`my`,children:(0,D.jsx)(`option`,{value:`my`,children:`My Schedule`})}),e!==`hours`&&(0,D.jsx)(A3,{value:c,onChange:l,now:u}),r&&(0,D.jsxs)(`div`,{className:h6.weekNav,children:[(0,D.jsx)(`button`,{type:`button`,className:h6.todayBtn,onClick:o,children:`Today`}),(0,D.jsx)(`button`,{type:`button`,className:h6.navBtn,"aria-label":`Previous week`,onClick:i,children:(0,D.jsx)(Gn,{size:16})}),(0,D.jsx)(`button`,{type:`button`,className:h6.navBtn,"aria-label":`Next week`,onClick:a,children:(0,D.jsx)(Kn,{size:16})}),(0,D.jsx)(`span`,{className:h6.dateLabel,children:n})]}),e!==`hours`&&d!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:T(h6.sidebarToggleBtn,f&&h6.sidebarToggleBtnActive),"aria-label":`Schedule settings`,title:`Schedule settings`,onClick:d,children:(0,D.jsx)(Gr,{size:15})}),(0,D.jsx)(V6,{view:e,onView:t}),(0,D.jsxs)(`button`,{type:`button`,className:h6.newBtn,onClick:s,children:[(0,D.jsx)(Mr,{size:14,strokeWidth:2.5}),` New`]})]}),U6=()=>{let[e,t]=(0,n.useState)(!1),r=m6(),i=B6(r),a=()=>{r.openCreate(i.defaultStart)};return(0,D.jsxs)(`div`,{className:h6.scheduleRoot,children:[(0,D.jsx)(H6,{view:r.view,onView:r.setView,rangeText:i.rangeText,showNav:r.view!==`hours`,onPrev:r.goPrev,onNext:r.goNext,onToday:r.goToday,onNew:a,timezone:r.timezone,setTimezone:r.setTimezone,todayDate:i.today,onToggleSidebar:()=>{t(e=>!e)},isSidebarOpen:e}),r.view===`hours`?(0,D.jsx)(`div`,{className:h6.hoursArea,children:(0,D.jsx)(N6,{})}):(0,D.jsx)(_6,{query:i.query,view:r.view,today:i.today,days:i.days,cells:i.cells,weekOccurrences:i.weekOccurrences,availability:i.availability,workStart:i.workStart,workEnd:i.workEnd,range:i.range,monthDates:i.monthDates,monthAnchor:i.monthAnchor,monthOccurrences:i.monthOccurrences,summary:i.summary,active:r.active,onToggle:r.toggle,onSelectBlock:r.openEdit,onSelectSlot:r.openCreate,onCreate:a,onQuickAdd:r.openQuick,isSidebarOpen:e,onCloseSidebar:()=>{t(!1)}}),r.editor!==null&&(0,D.jsx)(S3,{state:r.editor,timezone:r.timezone,onClose:r.closeEditor})]})},W6=()=>{eQ(`uapp-schedule`,()=>(0,D.jsx)(F1,{path:`/comms/schedule`,children:(0,D.jsx)(U6,{})}))},G6=()=>{tQ(),I1(),q2(),W6()};exports.CommsProvider=WZ,exports.SDK_MODULE_SCOPES=qG,exports.WidgetRoot=GZ,exports.defineCustomElements=G6,exports.registerBookingsWidget=q2,exports.registerChatWidget=tQ,exports.registerFeedWidget=I1,exports.registerScheduleWidget=W6;
|
|
55
|
+
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i}return o.updateDeps=e=>{r=e},o}function eD(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var tD=(e,t)=>Math.abs(e-t)<1.01,nD=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},rD,iD=()=>{if(rD!==void 0)return rD;if(typeof navigator>`u`)return rD=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return rD=!0;let e=navigator.maxTouchPoints;return rD=navigator.platform===`MacIntel`&&e!==void 0&&e>0},aD=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},oD=e=>e,sD=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},cD=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(aD(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(aD(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},lD={passive:!0},uD=typeof window>`u`?!0:`onscrollend`in window,dD=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&uD,o=0,s=a?null:nD(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,lD),a&&r.addEventListener(`scrollend`,u,lD),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},fD=(e,t)=>dD(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),pD=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},mD=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},hD=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:oD,rangeExtractor:sD,onChange:()=>{},measureElement:pD,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=$E(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:process.env.NODE_ENV!==`production`&&`maybeNotify`,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{t&&this._intendedScrollOffset===null&&e===this.scrollOffset||(this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify())})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!iD()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,lD),e.addEventListener(`touchend`,n,lD),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(iD()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=$E(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=$E(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=QE(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),d=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(d[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,f=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=d[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},d[s]=i}return this.measurementsCache=u,u},{key:process.env.NODE_ENV!==`production`&&`getMeasurements`,debug:()=>this.options.debug}),this.calculateRange=$E(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?_D({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:r===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:process.env.NODE_ENV!==`production`&&`calculateRange`,debug:()=>this.options.debug}),this.getVirtualIndexes=$E(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:process.env.NODE_ENV!==`production`&&`getVirtualIndexes`,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(i)||this.scrollDirection!==`backward`):this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=$E(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:process.env.NODE_ENV!==`production`&&`getVirtualItems`,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return eD(t[gD(0,t.length-1,r?e=>n[e*2]:e=>eD(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(process.env.NODE_ENV!==`production`&&this.options.debug&&console.info(`correction`,e),iD()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&tD(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},gD=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function _D({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:i}){let a=e.length-1,o=i?e=>i[e*2]:t=>e[t].start,s=i?e=>i[e*2]+i[e*2+1]:t=>e[t].end;if(e.length<=r)return{startIndex:0,endIndex:a};let c=gD(0,a,o,n),l=c;if(r===1)for(;l<a&&s(l)<n+t;)l++;else if(r>1){let i=Array(r).fill(0);for(;l<a&&i.some(e=>e<n+t);){let t=e[l];i[t.lane]=t.end,l++}let o=Array(r).fill(n+t);for(;c>=0&&o.some(e=>e>=n);){let t=e[c];o[t.lane]=t.start,c--}c=Math.max(0,c-c%r),l=Math.min(a,l+(r-1-l%r))}return{startIndex:c,endIndex:l}}var vD=typeof document<`u`?n.useLayoutEffect:n.useEffect;function yD({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:r=`transform`,...a}){let o=n.useReducer(e=>e+1,0)[1],s=n.useRef({enabled:t,mode:r,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});s.current.enabled=t,s.current.mode=r;let c=e=>{let t=s.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}let r=!!e.options.horizontal,i=t.mode===`transform`,a=r?`left`:`top`,o=e.options.scrollMargin,c=e.getVirtualItems();for(let n of c){let s=n.start-o,c=e.elementsCache.get(n.key);c&&t.lastPositions.get(c)!==s&&(t.lastPositions.set(c,s),i?c.style.transform=r?`translate3d(${s}px, 0, 0)`:`translate3d(0, ${s}px, 0)`:c.style[a]=`${s}px`)}},l={...a,onChange:(t,n)=>{var r;let l=s.current,u=!0;if(l.enabled){c(t);let e=t.range,n=l.prevRange;u=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,u&&(l.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}u&&(e&&n?(0,i.flushSync)(o):o()),(r=a.onChange)==null||r.call(a,t,n)}},[u]=n.useState(()=>{let e=new hD(l);return Object.assign(e,{containerRef:t=>{let n=s.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return u.setOptions(l),vD(()=>u._didMount(),[]),vD(()=>u._willUpdate()),vD(()=>{c(u)}),u}function bD(e){return yD({observeElementRect:cD,observeElementOffset:fD,scrollToFn:mD,...e})}var xD=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`get-availability`)}async execute(){let e=await this.scheduleGateway.getAvailability();return e.ok||this.logger.warn(`Loading availability failed`,{code:e.error.code}),e}},SD=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`get-effective-availability`)}async execute(){let e=await this.scheduleGateway.getEffectiveAvailability();return e.ok||this.logger.warn(`Loading effective availability failed`,{code:e.error.code}),e}},M=e=>({ok:!0,value:e}),N=e=>({ok:!1,error:e}),CD=e=>!e.ok,wD=e=>{if(CD(e))throw e.error;return e.value},P=async e=>wD(await e),TD=class extends ci{code=`INVALID_EMAIL`;constructor(e){super(`"${e}" is not a valid email address.`,{context:{value:e}})}},ED=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,DD=class e{value;constructor(e){this.value=e}static create(t){let n=t.trim().toLowerCase();return ED.test(n)?M(new e(n)):N(new TD(t))}equals(e){return this.value===e.value}toString(){return this.value}},OD=[{id:`mon`,short:`Mon`,long:`Monday`},{id:`tue`,short:`Tue`,long:`Tuesday`},{id:`wed`,short:`Wed`,long:`Wednesday`},{id:`thu`,short:`Thu`,long:`Thursday`},{id:`fri`,short:`Fri`,long:`Friday`},{id:`sat`,short:`Sat`,long:`Saturday`},{id:`sun`,short:`Sun`,long:`Sunday`}],kD=class extends ci{code=`INVALID_TIME`;constructor(e){super(`"${e}" is not a valid 24-hour time.`,{context:{value:e}})}},AD=/^([01]\d|2[0-3]):([0-5]\d)$/,jD=60,MD=class e{minutes;normalized;constructor(e,t){this.minutes=e,this.normalized=t}static create(t){let n=AD.exec(t.trim());if(n===null)return N(new kD(t));let r=Number(n[1]),i=Number(n[2]);return M(new e(r*jD+i,`${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`))}get minutesSinceMidnight(){return this.minutes}get value(){return this.normalized}equals(e){return this.minutes===e.minutes}isBefore(e){return this.minutes<e.minutes}isAfter(e){return this.minutes>e.minutes}toString(){return this.normalized}},ND=class e{start;end;constructor(e,t){this.start=e,this.end=t}static create(t,n){let r=MD.create(t);if(!r.ok)return r;let i=MD.create(n);return i.ok?t===n?N(new kD(`${t}–${n}`)):M(new e(r.value,i.value)):i}get from(){return this.start}get to(){return this.end}get minutes(){let e=this.end.minutesSinceMidnight-this.start.minutesSinceMidnight;return e<0?e+1440:e}},PD=class extends ci{},FD=class extends PD{code=`SCHEDULE_UNAVAILABLE`;constructor(e){super(`Your schedule is currently unavailable. Please try again.`,{cause:e})}},ID=class extends PD{code=`SCHEDULE_INVALID_AVAILABILITY`;constructor(){super(`Each working day must end after it starts.`)}},LD=class extends PD{code=`SCHEDULE_INVALID_BLOCK`;constructor(e=`Give the block a title and an end time after its start.`){super(e)}},RD=class extends PD{code=`SCHEDULE_BLOCK_NOT_FOUND`;constructor(){super(`That schedule block no longer exists.`)}},zD=e=>{let t=new Date(e);return t.getHours()*60+t.getMinutes()},BD=(e,t)=>Math.max(0,Math.round((new Date(t).getTime()-new Date(e).getTime())/6e4)),VD=(e,t)=>new Date(t).getTime()>new Date(e).getTime(),HD=e=>(new Date(e).getDay()+6)%7,UD=e=>{let t=typeof e==`string`?new Date(e):e;return`${String(t.getFullYear())}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`},WD=e=>{let t={mon:{active:e.mon.active,slots:[]},tue:{active:e.tue.active,slots:[]},wed:{active:e.wed.active,slots:[]},thu:{active:e.thu.active,slots:[]},fri:{active:e.fri.active,slots:[]},sat:{active:e.sat.active,slots:[]},sun:{active:e.sun.active,slots:[]}},n=e=>OD[(e+1)%7]?.id??`mon`;OD.forEach((r,i)=>{let a=e[r.id].slots,o=t[r.id].slots;for(let e of a)if(e.from>e.to&&e.from!==e.to){if(o.push({id:e.id,from:e.from,to:`23:59`}),e.to>`00:00`){let r=n(i),a=t[r].slots;a.push({id:crypto.randomUUID(),from:`00:00`,to:e.to}),t[r]={active:!0,slots:a}}}else o.push({...e})});for(let e of OD)t[e.id].slots.sort((e,t)=>e.from.localeCompare(t.from));return t},GD={mon:{active:!0,slots:[{id:`default-mon-1`,from:`09:00`,to:`17:00`}]},tue:{active:!0,slots:[{id:`default-tue-1`,from:`09:00`,to:`17:00`}]},wed:{active:!0,slots:[{id:`default-wed-1`,from:`09:00`,to:`17:00`}]},thu:{active:!0,slots:[{id:`default-thu-1`,from:`09:00`,to:`17:00`}]},fri:{active:!0,slots:[{id:`default-fri-1`,from:`09:00`,to:`17:00`}]},sat:{active:!1,slots:[{id:`default-sat-1`,from:`10:00`,to:`14:00`}]},sun:{active:!1,slots:[{id:`default-sun-1`,from:`10:00`,to:`14:00`}]}},KD=OD.map(e=>e.id),qD=e=>KD[(e.getDay()+6)%7]??`mon`,JD=(e,t)=>e??t??GD,YD=(e,t)=>e[qD(t)],XD=1500,ZD=(e,t)=>new Date(e,t+1,0).getDate(),QD=e=>Math.min(5,Math.ceil(e.getDate()/7)),$D=(e,t,n,r)=>{if(n===5){let n=ZD(e,t),i=new Date(e,t,n);return new Date(e,t,n-(i.getDay()-r+7)%7)}let i=1+(r-new Date(e,t,1).getDay()+7)%7+(n-1)*7;return i>ZD(e,t)?null:new Date(e,t,i)},eO=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),tO=(e,t,n)=>{let r=[],i=eO(e),a=Math.max(1,t);for(;i<=n&&r.length<1500;)r.push(new Date(i)),i.setDate(i.getDate()+a);return r},nO=(e,t,n)=>{let r=Math.max(1,t.interval),i=(t.weekdays.length>0?[...t.weekdays]:[e.getDay()]).sort((e,t)=>e-t),a=eO(e);a.setDate(a.getDate()-a.getDay());let o=[];for(let e=0;o.length<XD;e+=r){let t=new Date(a);if(t.setDate(t.getDate()+e*7),t>n)break;for(let e of i){let r=new Date(t);r.setDate(r.getDate()+e),r<=n&&o.push(r)}}return o},rO=(e,t,n,r)=>t.monthlyMode===`dayOfMonth`?new Date(n,r,Math.min(e.getDate(),ZD(n,r))):$D(n,r,QD(e),e.getDay()),iO=(e,t,n,r)=>{let i=[],a=Math.max(1,t.interval),o=r?12*a:a;for(let r=0;r<600&&i.length<1500;r+=1){let a=e.getMonth()+r*o,s=e.getFullYear()+Math.floor(a/12),c=(a%12+12)%12;if(new Date(s,c,1)>n&&r>0)break;let l=rO(e,t,s,c);l&&l<=n&&i.push(l)}return i},aO=(e,t,n)=>{switch(t.freq){case`daily`:return tO(e,t.interval,n);case`weekly`:return nO(e,t,n);case`monthly`:return iO(e,t,n,!1);case`yearly`:return iO(e,t,n,!0)}},oO=[{id:`daily`,label:`Daily`},{id:`weekly`,label:`Weekly`},{id:`monthly`,label:`Monthly`},{id:`yearly`,label:`Yearly`}],sO=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],cO=[`first`,`second`,`third`,`fourth`,`last`],lO=e=>({freq:`weekly`,interval:1,weekdays:[new Date(e).getDay()],monthlyMode:`dayOfMonth`,endType:`never`,endCount:13,endDate:``,exceptions:[]}),uO=e=>e.endType===`on`&&e.endDate!==``?new Date(`${e.endDate}T23:59:59`):null,dO=(e,t,n)=>{let[r,i]=t.split(`:`),[a,o]=n.split(`:`);return{start:new Date(e.getFullYear(),e.getMonth(),e.getDate(),Number(r??`0`),Number(i??`0`),0,0),end:new Date(e.getFullYear(),e.getMonth(),e.getDate(),Number(a??`0`),Number(o??`0`),0,0)}},fO=({day:e,rec:t,endDate:n,exceptions:r,range:i,count:a,out:o})=>{let s=a,c=e.getDay(),l=t.weekdayTimes?.[c];if(!l||l.length===0)return{count:s,broken:!1};for(let a of l){let{start:c,end:l}=dO(e,a.start,a.end);if(n!==null&&c>n)return{count:s,broken:!0};if(!r.has(UD(c))){if(s+=1,t.endType===`after`&&s>t.endCount)return{count:s,broken:!0};c>=i.start&&c<=i.end&&o.push({start:c.toISOString(),end:l.toISOString()})}}return{count:s,broken:!1}},pO=(e,t)=>{if(!t.differentTimes||!t.weekdayTimes)return!1;let n=t.weekdayTimes[e.getDay()];return n!==void 0&&n.length>0},mO=({day:e,base:t,dur:n,rec:r,endDate:i,exceptions:a,range:o,count:s,out:c})=>{if(pO(e,r))return fO({day:e,rec:r,endDate:i,exceptions:a,range:o,count:s,out:c});let l=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),0,0);if(l<t)return{count:s,broken:!1};if(i!==null&&l>i)return{count:s,broken:!0};if(a.has(UD(l)))return{count:s,broken:!1};let u=s+1;return r.endType===`after`&&u>r.endCount?{count:u,broken:!0}:(l>=o.start&&l<=o.end&&c.push({start:l.toISOString(),end:new Date(l.getTime()+n).toISOString()}),{count:u,broken:!1})},hO=(e,t,n,r)=>{let i=uO(n),a=new Set(n.exceptions),o=[],s=0;for(let c of aO(e,n,r.end)){let l=mO({day:c,base:e,dur:t,rec:n,endDate:i,exceptions:a,range:r,count:s,out:o});if(s=l.count,l.broken)break}return o},gO=(e,t,n)=>{let r=new Date(e.start);return e.recurrence===null?r>=t&&r<=n?[{start:e.start,end:e.end}]:[]:hO(r,new Date(e.end).getTime()-r.getTime(),e.recurrence,{start:t,end:n})},_O=(e,t,n)=>{let r=Math.max(0,new Date(e.end).getTime()-new Date(e.start).getTime()),i=new Date(t.getTime()-r),a=t.getTime(),o=n.getTime();return gO(e,i,n).filter(e=>{let t=new Date(e.start).getTime(),n=new Date(e.end).getTime();return t<=o&&n>a})},vO=e=>{let t={daily:`day`,weekly:`week`,monthly:`month`,yearly:`year`}[e.freq];return e.interval>1?`every ${String(e.interval)} ${t}s`:`every ${t}`},yO=(e,t)=>e.freq===`weekly`?` on ${(e.weekdays.length>0?[...e.weekdays]:[t.getDay()]).sort((e,t)=>e-t).map(e=>sO[e]).join(`, `)}`:e.freq===`monthly`||e.freq===`yearly`?e.monthlyMode===`nthWeekday`?` on the ${cO[QD(t)-1]??`first`} ${sO[t.getDay()]??``}`:` on day ${String(t.getDate())}`:``,bO=e=>e.endType===`after`?`, ${String(e.endCount)} times`:e.endType===`on`&&e.endDate!==``?`, until ${new Date(`${e.endDate}T00:00:00`).toLocaleDateString(void 0,{day:`numeric`,month:`short`,year:`numeric`})}`:``,xO=(e,t)=>{if(e.differentTimes){let n=yO(e,new Date(t));return`${vO(e)}${n} with different times per day${bO(e)}`}return`${vO(e)}${yO(e,new Date(t))}${bO(e)}`},SO=class{id;userId;title;status;start;end;allDay;notes;recurrence;constructor(e){this.id=e.id,this.userId=e.userId,this.title=e.title,this.status=e.status,this.start=e.start,this.end=e.end,this.allDay=e.allDay,this.notes=e.notes,this.recurrence=e.recurrence}get durationMinutes(){return BD(this.start,this.end)}get isRecurring(){return this.recurrence!==null}get hasNotes(){return this.notes.trim().length>0}},CO=e=>{let t=e.title.trim();if(t.length===0)return N(new LD(`Give the block a title.`));if(!VD(e.start,e.end))return N(new LD(`The block must end after it starts.`));let n=e.allDay?26:24;return BD(e.start,e.end)>n*60?N(new LD(`A single block can't span more than ${String(n)} hours. Use a recurring block for events that repeat across days.`)):M({...e,title:t})},wO=[15,30,45,60],TO=[0,5,10,15],EO=[`Europe/London`,`America/New_York`,`America/Los_Angeles`,`Asia/Dhaka`,`Europe/Bucharest`,`Asia/Dubai`],DO=[{id:`available`,label:`Available`},{id:`busy`,label:`Busy`},{id:`meeting`,label:`Meeting`},{id:`focus`,label:`Focus`},{id:`away`,label:`Away`}],OO=e=>Math.round(e*10)/10,kO=(e,t)=>OO(e.filter(e=>!e.block.allDay&&e.block.status===t).reduce((e,t)=>e+BD(t.start,t.end),0)/60),AO=(e,t)=>{let n=UD(t),r=e.filter(e=>e.date===n);return{busyHours:kO(r,`busy`),meetingCount:r.filter(e=>!e.block.allDay&&e.block.status===`meeting`).length,focusHours:kO(r,`focus`)}},jO=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0),MO=(e,t)=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+t,0,0,0,0),NO=(e,t,n)=>{let r=[],i=new Date(t.start).getTime(),a=new Date(t.end).getTime(),o=UD(t.start),s=jO(new Date(t.start)),c=!0;s.getTime()<n.start.getTime()&&(s=jO(n.start),c=!1);for(let l=0;s.getTime()<a&&s.getTime()<=n.end.getTime()&&l<400;l+=1){let l=MO(s,1),u=Math.max(i,s.getTime()),d=Math.min(a,l.getTime());if(d>u&&s.getTime()>=n.start.getTime()){let n=UD(s),l=u===i?t.start:new Date(u).toISOString(),f=d===a?t.end:new Date(d).toISOString(),p=u>i,m=d<a;r.push({key:c?`${e.id}@${o}`:`${e.id}@${o}+${n}`,block:e,dayIndex:HD(l),date:n,start:l,end:f,...p?{continuesFromPrevDay:!0}:{},...m?{continuesToNextDay:!0}:{}})}c=!1,s=l}return r},PO=(e,t,n)=>{let r=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0),i=new Date(t.getFullYear(),t.getMonth(),t.getDate(),23,59,59,999),a=[];for(let e of n)for(let t of _O(e,r,i))for(let n of NO(e,t,{start:r,end:i}))a.push(n);return a},FO=(e,t)=>{let n=t[0],r=t[6];return n===void 0||r===void 0?[]:PO(n,r,e)},IO=e=>{let[t,n]=e.split(`:`);return Number(t??`0`)*60+Number(n??`0`)},LO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`save-availability`)}async execute(e){return e!==null&&OD.some(t=>{let n=e[t.id];if(!n.active||n.slots.length===0)return!1;if(n.slots.some(e=>{let t=ND.create(e.from,e.to);return!t.ok||t.value.from.minutesSinceMidnight>=t.value.to.minutesSinceMidnight}))return!0;let r=[...n.slots].sort((e,t)=>e.from.localeCompare(t.from)),i=``;for(let e of r){if(e.from<i)return!0;i=e.to}return!1})?(this.logger.warn(`Rejected invalid availability`),N(new ID)):this.scheduleGateway.saveAvailability(e)}},RO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`list-schedule-blocks`)}async execute(){let e=await this.scheduleGateway.listBlocks();return e.ok||this.logger.warn(`Listing schedule blocks failed`,{code:e.error.code}),e}},zO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`create-schedule-block`)}async execute(e){let t=CO(e);return CD(t)?(this.logger.warn(`Rejected invalid block`,{code:t.error.code}),N(t.error)):this.scheduleGateway.createBlock(t.value)}},BO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`update-schedule-block`)}async execute({id:e,draft:t}){let n=CO(t);return CD(n)?(this.logger.warn(`Rejected invalid block edit`,{code:n.error.code}),N(n.error)):this.scheduleGateway.updateBlock(e,n.value)}},VO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`delete-schedule-block`)}async execute(e){let t=await this.scheduleGateway.deleteBlock(e);return t.ok||this.logger.warn(`Deleting schedule block failed`,{code:t.error.code}),t}},HO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`get-preferences`)}async execute(){let e=await this.scheduleGateway.getPreferences();return e.ok||this.logger.warn(`Loading preferences failed`,{code:e.error.code}),e}},UO=class{scheduleGateway;logger;constructor(e){this.scheduleGateway=e.scheduleGateway,this.logger=e.logger.child(`save-preferences`)}async execute(e){let t=await this.scheduleGateway.savePreferences(e);return t.ok||this.logger.warn(`Saving preferences failed`,{code:t.error.code}),t}},WO=class extends si{code=`HTTP`;status;statusText;url;body;retryAfterMs;constructor(e){super(`HTTP ${String(e.status)} ${e.statusText} for ${e.url}`,{context:{status:e.status,url:e.url}}),this.status=e.status,this.statusText=e.statusText,this.url=e.url,this.body=e.body,this.retryAfterMs=e.retryAfterMs}isUnauthorized(){return this.status===401}isForbidden(){return this.status===403}isNotFound(){return this.status===404}isConflict(){return this.status===409}isTooManyRequests(){return this.status===429}isClientError(){return this.status>=400&&this.status<500}isServerError(){return this.status>=500&&this.status<600}},GO=class extends si{code=`NETWORK`;constructor(e,t){super(`Network request to ${e} failed`,{cause:t,context:{url:e}})}},KO=class{baseUrl;logger;getAuthToken;constructor(e){this.baseUrl=e.baseUrl,this.logger=e.logger.child(`http`),this.getAuthToken=e.getAuthToken}get(e,t){return this.send(`GET`,e,void 0,t)}async getBlob(e,t){let n=this.buildUrl(e,t?.query),r={method:`GET`,headers:this.buildHeaders(void 0,t),redirect:`error`};t?.signal!==void 0&&(r.signal=t.signal);let i;try{i=await fetch(n,r)}catch(e){throw this.logger.error(`Blob request failed before a response was received`,e,{url:n}),new GO(n,e)}if(!i.ok)throw this.logger.warn(`Blob request returned a non-2xx status`,{url:n,status:i.status}),new WO({status:i.status,statusText:i.statusText,url:n,body:void 0,retryAfterMs:this.parseRetryAfter(i.headers.get(`Retry-After`))});return i.blob()}post(e,t,n){return this.send(`POST`,e,this.jsonBody(t),n)}put(e,t,n){return this.send(`PUT`,e,this.jsonBody(t),n)}patch(e,t,n){return this.send(`PATCH`,e,this.jsonBody(t),n)}delete(e,t){return this.send(`DELETE`,e,void 0,t)}postForm(e,t,n){let r=new URLSearchParams(t).toString();return this.send(`POST`,e,{body:r,contentType:qO},n)}jsonBody(e){if(e!==void 0)return e instanceof FormData?{body:e,contentType:null}:{body:JSON.stringify(e),contentType:`application/json`}}async send(e,t,n,r){let i=this.buildUrl(t,r?.query),a=this.buildHeaders(n,r);n?.body instanceof FormData&&a.delete(`Content-Type`);let o={method:e,headers:a};n!==void 0&&(o.body=n.body),r?.signal!==void 0&&(o.signal=r.signal);let s;try{s=await fetch(i,o)}catch(e){throw this.logger.error(`Request failed before a response was received`,e,{url:i}),new GO(i,e)}return this.handleResponse(s,i)}async handleResponse(e,t){let n=await this.readBody(e);if(!e.ok){this.logger.warn(`Request returned a non-2xx status`,{url:t,status:e.status});let r=this.parseRetryAfter(e.headers.get(`Retry-After`));throw new WO({status:e.status,statusText:e.statusText,url:t,body:n,retryAfterMs:r})}return n}parseRetryAfter(e){if(e===null||e.length===0)return null;let t=Number(e);if(!Number.isNaN(t))return t>=0?t*1e3:null;let n=Date.parse(e);return Number.isNaN(n)?null:Math.max(0,n-Date.now())}async readBody(e){if(e.status===204||e.status===205)return;let t=await e.text();if(t.length!==0){if(!(e.headers.get(`content-type`)??``).includes(`application/json`))return t;try{return JSON.parse(t)}catch(t){throw new GO(e.url,t)}}}buildHeaders(e,t){let n=new Headers({Accept:`application/json`,...t?.headers});if(e&&e.contentType!==null&&n.set(`Content-Type`,e.contentType),!t?.anonymous){let e=this.getAuthToken();e&&n.set(`Authorization`,`Bearer ${e}`)}return n}buildUrl(e,t){let n=e.startsWith(`http://`)||e.startsWith(`https://`)?e:`${this.baseUrl}${e.startsWith(`/`)?e:`/${e}`}`,r=new URL(n);return t&&this.appendQuery(r,t),r.toString()}appendQuery(e,t){for(let[n,r]of Object.entries(t))if(r!==void 0)if(Array.isArray(r))for(let t of r)e.searchParams.append(n,String(t));else e.searchParams.set(n,String(r))}},qO=`application/x-www-form-urlencoded`,JO=class{inner;timeoutMs;logger;constructor(e,t){this.inner=e,this.timeoutMs=t.timeoutMs,this.logger=t.logger.child(`http-timeout`)}get(e,t){return this.withTimeout(t=>this.inner.get(e,t),t)}getBlob(e,t){return this.withTimeout(t=>this.inner.getBlob(e,t),t)}post(e,t,n){return this.withTimeout(n=>this.inner.post(e,t,n),n)}put(e,t,n){return this.withTimeout(n=>this.inner.put(e,t,n),n)}patch(e,t,n){return this.withTimeout(n=>this.inner.patch(e,t,n),n)}delete(e,t){return this.withTimeout(t=>this.inner.delete(e,t),t)}postForm(e,t,n){return this.withTimeout(n=>this.inner.postForm(e,t,n),n)}async withTimeout(e,t){let n=new AbortController,r=setTimeout(()=>{this.logger.warn(`Request exceeded timeout; aborting`,{timeoutMs:this.timeoutMs}),n.abort(new DOMException(`Request timed out`,`TimeoutError`))},this.timeoutMs),i=[n.signal];t?.signal!==void 0&&i.push(t.signal);let a=AbortSignal.any(i);try{return await e({...t,signal:a})}finally{clearTimeout(r)}}},YO=2,XO=300,ZO=5e3,QO=class{inner;maxRetries;baseDelayMs;maxDelayMs;logger;constructor(e,t){this.inner=e,this.maxRetries=t.maxRetries??YO,this.baseDelayMs=t.baseDelayMs??XO,this.maxDelayMs=t.maxDelayMs??ZO,this.logger=t.logger.child(`http-retry`)}get(e,t){return this.withRetry(()=>this.inner.get(e,t),t)}getBlob(e,t){return this.withRetry(()=>this.inner.getBlob(e,t),t)}post(e,t,n){return this.inner.post(e,t,n)}put(e,t,n){return this.inner.put(e,t,n)}patch(e,t,n){return this.inner.patch(e,t,n)}delete(e,t){return this.inner.delete(e,t)}postForm(e,t,n){return this.inner.postForm(e,t,n)}async withRetry(e,t){let n=0;for(;;)try{return await e()}catch(e){if(n+=1,n>this.maxRetries||!this.isRetryable(e)||t?.signal?.aborted===!0)throw e;let r=this.computeDelay(e,n);this.logger.warn(`Request failed; retrying`,{attempt:n,delay:r}),await this.sleep(r,t?.signal)}}isRetryable(e){return e instanceof GO?!0:e instanceof WO?e.status===429||e.status===503||e.status>=500:!1}computeDelay(e,t){return e instanceof WO&&e.retryAfterMs!==null?Math.min(e.retryAfterMs,this.maxDelayMs):Math.min(this.maxDelayMs,this.baseDelayMs*2**(t-1))*(.5+Math.random()*.5)}sleep(e,t){return new Promise(n=>{let r=()=>{clearTimeout(i),n()},i=setTimeout(()=>{t?.removeEventListener(`abort`,r),n()},e);t!==void 0&&t.addEventListener(`abort`,r,{once:!0})})}},$O=class{inner;refresh;logger;inFlightRefresh=null;constructor(e,t){this.inner=e,this.refresh=t.refresh,this.logger=t.logger.child(`http-auth-refresh`)}get(e,t){return this.withRefresh(t=>this.inner.get(e,t),t)}getBlob(e,t){return this.withRefresh(t=>this.inner.getBlob(e,t),t)}post(e,t,n){return this.withRefresh(n=>this.inner.post(e,t,n),n)}put(e,t,n){return this.withRefresh(n=>this.inner.put(e,t,n),n)}patch(e,t,n){return this.withRefresh(n=>this.inner.patch(e,t,n),n)}delete(e,t){return this.withRefresh(t=>this.inner.delete(e,t),t)}postForm(e,t,n){return this.withRefresh(n=>this.inner.postForm(e,t,n),n)}async withRefresh(e,t){try{return await e(t)}catch(n){if(t?.anonymous===!0||!(n instanceof WO)||n.status!==401||!await this.refreshOnce())throw n;return e(t)}}refreshOnce(){return this.inFlightRefresh??=this.runRefresh(),this.inFlightRefresh}async runRefresh(){try{return await this.refresh()}catch(e){return this.logger.warn(`Token refresh threw; treating as failed`,{error:e instanceof Error?e.message:String(e)}),!1}finally{this.inFlightRefresh=null}}},ek={debug:10,info:20,warn:30,error:40,silent:100},tk=class e{minLevel;scope;minWeight;constructor(e,t){this.minLevel=e,this.scope=t,this.minWeight=ek[e]}debug(e,t){this.write(`debug`,console.debug,e,t)}info(e,t){this.write(`info`,console.info,e,t)}warn(e,t){this.write(`warn`,console.warn,e,t)}error(e,t,n){this.minWeight>ek.error||console.error(this.format(e),{error:t,...n})}child(t){let n=this.scope?`${this.scope}:${t}`:t;return new e(this.minLevel,n)}write(e,t,n,r){this.minWeight>ek[e]||(r?t(this.format(n),r):t(this.format(n)))}format(e){return this.scope?`[${this.scope}] ${e}`:e}},nk;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(nk||={});var rk;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(rk||={});var F=nk.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),ik=e=>{switch(typeof e){case`undefined`:return F.undefined;case`string`:return F.string;case`number`:return Number.isNaN(e)?F.nan:F.number;case`boolean`:return F.boolean;case`function`:return F.function;case`bigint`:return F.bigint;case`symbol`:return F.symbol;case`object`:return Array.isArray(e)?F.array:e===null?F.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?F.promise:typeof Map<`u`&&e instanceof Map?F.map:typeof Set<`u`&&e instanceof Set?F.set:typeof Date<`u`&&e instanceof Date?F.date:F.object;default:return F.unknown}},I=nk.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),ak=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,nk.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};ak.create=e=>new ak(e);var ok=(e,t)=>{let n;switch(e.code){case I.invalid_type:n=e.received===F.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case I.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,nk.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:n=`Unrecognized key(s) in object: ${nk.joinValues(e.keys,`, `)}`;break;case I.invalid_union:n=`Invalid input`;break;case I.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${nk.joinValues(e.options)}`;break;case I.invalid_enum_value:n=`Invalid enum value. Expected ${nk.joinValues(e.options)}, received '${e.received}'`;break;case I.invalid_arguments:n=`Invalid function arguments`;break;case I.invalid_return_type:n=`Invalid function return type`;break;case I.invalid_date:n=`Invalid date`;break;case I.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:nk.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case I.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case I.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case I.custom:n=`Invalid input`;break;case I.invalid_intersection_types:n=`Intersection results could not be merged`;break;case I.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case I.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,nk.assertNever(e)}return{message:n}},sk=ok;function ck(){return sk}var lk=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function L(e,t){let n=ck(),r=lk({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ok?void 0:ok].filter(e=>!!e)});e.common.issues.push(r)}var uk=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return R;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return R;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},R=Object.freeze({status:`aborted`}),dk=e=>({status:`dirty`,value:e}),fk=e=>({status:`valid`,value:e}),pk=e=>e.status===`aborted`,mk=e=>e.status===`dirty`,hk=e=>e.status===`valid`,gk=e=>typeof Promise<`u`&&e instanceof Promise,z;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(z||={});var _k=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},vk=(e,t)=>{if(hk(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new ak(e.common.issues);return this._error=t,this._error}}};function B(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var yk=class{get description(){return this._def.description}_getType(e){return ik(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:ik(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new uk,ctx:{common:e.parent.common,data:e.data,parsedType:ik(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(gk(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ik(e)};return vk(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ik(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return hk(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>hk(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ik(e)},r=this._parse({data:e,path:n.path,parent:n});return vk(n,await(gk(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:I.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new SA({schema:this,typeName:V.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return CA.create(this,this._def)}nullable(){return wA.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return rA.create(this)}promise(){return xA.create(this,this._def)}or(e){return oA.create([this,e],this._def)}and(e){return uA.create(this,e,this._def)}transform(e){return new SA({...B(this._def),schema:this,typeName:V.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new TA({...B(this._def),innerType:this,defaultValue:t,typeName:V.ZodDefault})}brand(){return new OA({typeName:V.ZodBranded,type:this,...B(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new EA({...B(this._def),innerType:this,catchValue:t,typeName:V.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return kA.create(this,e)}readonly(){return AA.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},bk=/^c[^\s-]{8,}$/i,xk=/^[0-9a-z]+$/,Sk=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ck=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,wk=/^[a-z0-9_-]{21}$/i,Tk=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ek=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Dk=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ok=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,kk,Ak=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jk=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Mk=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Nk=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Pk=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Fk=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Ik=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Lk=RegExp(`^${Ik}$`);function Rk(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function zk(e){return RegExp(`^${Rk(e)}$`)}function Bk(e){let t=`${Ik}T${Rk(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Vk(e,t){return!!((t===`v4`||!t)&&Ak.test(e)||(t===`v6`||!t)&&Mk.test(e))}function Hk(e,t){if(!Tk.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Uk(e,t){return!!((t===`v4`||!t)&&jk.test(e)||(t===`v6`||!t)&&Nk.test(e))}var Wk=class e extends yk{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==F.string){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.string,received:t.parsedType}),R}let t=new uk,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?L(n,{code:I.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&L(n,{code:I.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Dk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`email`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)kk||=new RegExp(Ok,`u`),kk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`emoji`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)Ck.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`uuid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)wk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`nanoid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)bk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cuid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)xk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cuid2`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Sk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`ulid`,code:I.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),L(n,{validation:`url`,code:I.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`regex`,code:I.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Bk(r).test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Lk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?zk(r).test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:I.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ek.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`duration`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Vk(e.data,r.version)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`ip`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Hk(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`jwt`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Uk(e.data,r.version)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cidr`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Pk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`base64`,code:I.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Fk.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`base64url`,code:I.invalid_string,message:r.message}),t.dirty()):nk.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:I.invalid_string,...z.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...z.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...z.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...z.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...z.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...z.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...z.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...z.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...z.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...z.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...z.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...z.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...z.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...z.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...z.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...z.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...z.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...z.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...z.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...z.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...z.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...z.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...z.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...z.errToObj(t)})}nonempty(e){return this.min(1,z.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Wk.create=e=>new Wk({checks:[],typeName:V.ZodString,coerce:e?.coerce??!1,...B(e)});function Gk(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var Kk=class e extends yk{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==F.number){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.number,received:t.parsedType}),R}let t,n=new uk;for(let r of this._def.checks)r.kind===`int`?nk.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),L(t,{code:I.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Gk(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),L(t,{code:I.not_finite,message:r.message}),n.dirty()):nk.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,z.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,z.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,z.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,z.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:z.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:z.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:z.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:z.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:z.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:z.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:z.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:z.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:z.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:z.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&nk.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};Kk.create=e=>new Kk({checks:[],typeName:V.ZodNumber,coerce:e?.coerce||!1,...B(e)});var qk=class e extends yk{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==F.bigint)return this._getInvalidInput(e);let t,n=new uk;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),L(t,{code:I.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):nk.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.bigint,received:t.parsedType}),R}gte(e,t){return this.setLimit(`min`,e,!0,z.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,z.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,z.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,z.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:z.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:z.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:z.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:z.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:z.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:z.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};qk.create=e=>new qk({checks:[],typeName:V.ZodBigInt,coerce:e?.coerce??!1,...B(e)});var Jk=class extends yk{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==F.boolean){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.boolean,received:t.parsedType}),R}return fk(e.data)}};Jk.create=e=>new Jk({typeName:V.ZodBoolean,coerce:e?.coerce||!1,...B(e)});var Yk=class e extends yk{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==F.date){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.date,received:t.parsedType}),R}if(Number.isNaN(e.data.getTime()))return L(this._getOrReturnCtx(e),{code:I.invalid_date}),R;let t=new uk,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:I.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):nk.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:z.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:z.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};Yk.create=e=>new Yk({checks:[],coerce:e?.coerce||!1,typeName:V.ZodDate,...B(e)});var Xk=class extends yk{_parse(e){if(this._getType(e)!==F.symbol){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.symbol,received:t.parsedType}),R}return fk(e.data)}};Xk.create=e=>new Xk({typeName:V.ZodSymbol,...B(e)});var Zk=class extends yk{_parse(e){if(this._getType(e)!==F.undefined){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.undefined,received:t.parsedType}),R}return fk(e.data)}};Zk.create=e=>new Zk({typeName:V.ZodUndefined,...B(e)});var Qk=class extends yk{_parse(e){if(this._getType(e)!==F.null){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.null,received:t.parsedType}),R}return fk(e.data)}};Qk.create=e=>new Qk({typeName:V.ZodNull,...B(e)});var $k=class extends yk{constructor(){super(...arguments),this._any=!0}_parse(e){return fk(e.data)}};$k.create=e=>new $k({typeName:V.ZodAny,...B(e)});var eA=class extends yk{constructor(){super(...arguments),this._unknown=!0}_parse(e){return fk(e.data)}};eA.create=e=>new eA({typeName:V.ZodUnknown,...B(e)});var tA=class extends yk{_parse(e){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.never,received:t.parsedType}),R}};tA.create=e=>new tA({typeName:V.ZodNever,...B(e)});var nA=class extends yk{_parse(e){if(this._getType(e)!==F.undefined){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.void,received:t.parsedType}),R}return fk(e.data)}};nA.create=e=>new nA({typeName:V.ZodVoid,...B(e)});var rA=class e extends yk{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==F.array)return L(t,{code:I.invalid_type,expected:F.array,received:t.parsedType}),R;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(L(t,{code:e?I.too_big:I.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(L(t,{code:I.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(L(t,{code:I.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new _k(t,e,t.path,n)))).then(e=>uk.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new _k(t,e,t.path,n)));return uk.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:z.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:z.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:z.toString(n)}})}nonempty(e){return this.min(1,e)}};rA.create=(e,t)=>new rA({type:e,minLength:null,maxLength:null,exactLength:null,typeName:V.ZodArray,...B(t)});function iA(e){if(e instanceof aA){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=CA.create(iA(r))}return new aA({...e._def,shape:()=>t})}else if(e instanceof rA)return new rA({...e._def,type:iA(e.element)});else if(e instanceof CA)return CA.create(iA(e.unwrap()));else if(e instanceof wA)return wA.create(iA(e.unwrap()));else if(e instanceof dA)return dA.create(e.items.map(e=>iA(e)));else return e}var aA=class e extends yk{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=nk.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==F.object){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.object,received:t.parsedType}),R}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof tA&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new _k(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof tA){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(L(n,{code:I.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new _k(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>uk.mergeObjectSync(t,e)):uk.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return z.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:z.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:V.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of nk.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of nk.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return iA(this)}partial(t){let n={};for(let e of nk.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of nk.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof CA;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return vA(nk.objectKeys(this.shape))}};aA.create=(e,t)=>new aA({shape:()=>e,unknownKeys:`strip`,catchall:tA.create(),typeName:V.ZodObject,...B(t)}),aA.strictCreate=(e,t)=>new aA({shape:()=>e,unknownKeys:`strict`,catchall:tA.create(),typeName:V.ZodObject,...B(t)}),aA.lazycreate=(e,t)=>new aA({shape:e,unknownKeys:`strip`,catchall:tA.create(),typeName:V.ZodObject,...B(t)});var oA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new ak(e.ctx.common.issues));return L(t,{code:I.invalid_union,unionErrors:n}),R}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new ak(e));return L(t,{code:I.invalid_union,unionErrors:i}),R}}get options(){return this._def.options}};oA.create=(e,t)=>new oA({options:e,typeName:V.ZodUnion,...B(t)});var sA=e=>e instanceof gA?sA(e.schema):e instanceof SA?sA(e.innerType()):e instanceof _A?[e.value]:e instanceof yA?e.options:e instanceof bA?nk.objectValues(e.enum):e instanceof TA?sA(e._def.innerType):e instanceof Zk?[void 0]:e instanceof Qk?[null]:e instanceof CA?[void 0,...sA(e.unwrap())]:e instanceof wA?[null,...sA(e.unwrap())]:e instanceof OA||e instanceof AA?sA(e.unwrap()):e instanceof EA?sA(e._def.innerType):[],cA=class e extends yk{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==F.object)return L(t,{code:I.invalid_type,expected:F.object,received:t.parsedType}),R;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(L(t,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),R)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=sA(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:V.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...B(r)})}};function lA(e,t){let n=ik(e),r=ik(t);if(e===t)return{valid:!0,data:e};if(n===F.object&&r===F.object){let n=nk.objectKeys(t),r=nk.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=lA(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===F.array&&r===F.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=lA(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===F.date&&r===F.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var uA=class extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(pk(e)||pk(r))return R;let i=lA(e.value,r.value);return i.valid?((mk(e)||mk(r))&&t.dirty(),{status:t.value,value:i.data}):(L(n,{code:I.invalid_intersection_types}),R)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};uA.create=(e,t,n)=>new uA({left:e,right:t,typeName:V.ZodIntersection,...B(n)});var dA=class e extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.array)return L(n,{code:I.invalid_type,expected:F.array,received:n.parsedType}),R;if(n.data.length<this._def.items.length)return L(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),R;!this._def.rest&&n.data.length>this._def.items.length&&(L(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new _k(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>uk.mergeArray(t,e)):uk.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};dA.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new dA({items:e,typeName:V.ZodTuple,rest:null,...B(t)})};var fA=class e extends yk{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.object)return L(n,{code:I.invalid_type,expected:F.object,received:n.parsedType}),R;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new _k(n,e,n.path,e)),value:a._parse(new _k(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?uk.mergeObjectAsync(t,r):uk.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof yk?new e({keyType:t,valueType:n,typeName:V.ZodRecord,...B(r)}):new e({keyType:Wk.create(),valueType:t,typeName:V.ZodRecord,...B(n)})}},pA=class extends yk{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.map)return L(n,{code:I.invalid_type,expected:F.map,received:n.parsedType}),R;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new _k(n,e,n.path,[a,`key`])),value:i._parse(new _k(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return R;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return R;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};pA.create=(e,t,n)=>new pA({valueType:t,keyType:e,typeName:V.ZodMap,...B(n)});var mA=class e extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.set)return L(n,{code:I.invalid_type,expected:F.set,received:n.parsedType}),R;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(L(n,{code:I.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(L(n,{code:I.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return R;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new _k(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:z.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:z.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};mA.create=(e,t)=>new mA({valueType:e,minSize:null,maxSize:null,typeName:V.ZodSet,...B(t)});var hA=class e extends yk{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==F.function)return L(t,{code:I.invalid_type,expected:F.function,received:t.parsedType}),R;function n(e,n){return lk({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ck(),ok].filter(e=>!!e),issueData:{code:I.invalid_arguments,argumentsError:n}})}function r(e,n){return lk({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,ck(),ok].filter(e=>!!e),issueData:{code:I.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof xA){let e=this;return fk(async function(...t){let o=new ak([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return fk(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new ak([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new ak([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:dA.create(t).rest(eA.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||dA.create([]).rest(eA.create()),returns:n||eA.create(),typeName:V.ZodFunction,...B(r)})}},gA=class extends yk{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};gA.create=(e,t)=>new gA({getter:e,typeName:V.ZodLazy,...B(t)});var _A=class extends yk{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return L(t,{received:t.data,code:I.invalid_literal,expected:this._def.value}),R}return{status:`valid`,value:e.data}}get value(){return this._def.value}};_A.create=(e,t)=>new _A({value:e,typeName:V.ZodLiteral,...B(t)});function vA(e,t){return new yA({values:e,typeName:V.ZodEnum,...B(t)})}var yA=class e extends yk{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return L(t,{expected:nk.joinValues(n),received:t.parsedType,code:I.invalid_type}),R}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return L(t,{received:t.data,code:I.invalid_enum_value,options:n}),R}return fk(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};yA.create=vA;var bA=class extends yk{_parse(e){let t=nk.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==F.string&&n.parsedType!==F.number){let e=nk.objectValues(t);return L(n,{expected:nk.joinValues(e),received:n.parsedType,code:I.invalid_type}),R}if(this._cache||=new Set(nk.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=nk.objectValues(t);return L(n,{received:n.data,code:I.invalid_enum_value,options:e}),R}return fk(e.data)}get enum(){return this._def.values}};bA.create=(e,t)=>new bA({values:e,typeName:V.ZodNativeEnum,...B(t)});var xA=class extends yk{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==F.promise&&t.common.async===!1?(L(t,{code:I.invalid_type,expected:F.promise,received:t.parsedType}),R):fk((t.parsedType===F.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};xA.create=(e,t)=>new xA({type:e,typeName:V.ZodPromise,...B(t)});var SA=class extends yk{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===V.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{L(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return R;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?R:r.status===`dirty`||t.value===`dirty`?dk(r.value):r});{if(t.value===`aborted`)return R;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?R:r.status===`dirty`||t.value===`dirty`?dk(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?R:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?R:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!hk(e))return R;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>hk(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):R);nk.assertNever(r)}};SA.create=(e,t,n)=>new SA({schema:e,typeName:V.ZodEffects,effect:t,...B(n)}),SA.createWithPreprocess=(e,t,n)=>new SA({schema:t,effect:{type:`preprocess`,transform:e},typeName:V.ZodEffects,...B(n)});var CA=class extends yk{_parse(e){return this._getType(e)===F.undefined?fk(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};CA.create=(e,t)=>new CA({innerType:e,typeName:V.ZodOptional,...B(t)});var wA=class extends yk{_parse(e){return this._getType(e)===F.null?fk(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};wA.create=(e,t)=>new wA({innerType:e,typeName:V.ZodNullable,...B(t)});var TA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===F.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};TA.create=(e,t)=>new TA({innerType:e,typeName:V.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...B(t)});var EA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return gk(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new ak(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new ak(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};EA.create=(e,t)=>new EA({innerType:e,typeName:V.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...B(t)});var DA=class extends yk{_parse(e){if(this._getType(e)!==F.nan){let t=this._getOrReturnCtx(e);return L(t,{code:I.invalid_type,expected:F.nan,received:t.parsedType}),R}return{status:`valid`,value:e.data}}};DA.create=e=>new DA({typeName:V.ZodNaN,...B(e)});var OA=class extends yk{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},kA=class e extends yk{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?R:e.status===`dirty`?(t.dirty(),dk(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?R:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:V.ZodPipeline})}},AA=class extends yk{_parse(e){let t=this._def.innerType._parse(e),n=e=>(hk(e)&&(e.value=Object.freeze(e.value)),e);return gk(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};AA.create=(e,t)=>new AA({innerType:e,typeName:V.ZodReadonly,...B(t)});function jA(e,t){let n=typeof e==`function`?e(t):typeof e==`string`?{message:e}:e;return typeof n==`string`?{message:n}:n}function MA(e,t={},n){return e?$k.create().superRefine((r,i)=>{let a=e(r);if(a instanceof Promise)return a.then(e=>{if(!e){let e=jA(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}});if(!a){let e=jA(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}}):$k.create()}aA.lazycreate;var V;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(V||={});var H=Wk.create,U=Kk.create;DA.create,qk.create;var NA=Jk.create;Yk.create,Xk.create,Zk.create,Qk.create;var PA=$k.create;eA.create,tA.create,nA.create;var W=rA.create,G=aA.create;aA.strictCreate;var FA=oA.create,IA=cA.create;uA.create;var LA=dA.create,RA=fA.create;pA.create,mA.create,hA.create,gA.create;var zA=_A.create,BA=yA.create;bA.create,xA.create,SA.create,CA.create,wA.create,SA.createWithPreprocess,kA.create;var VA=G({freq:U(),interval:U(),weekdaysCsv:H(),monthlyMode:U(),endType:U(),endCount:U(),endDate:H(),exceptionsCsv:H(),differentTimes:NA().optional(),weekdayTimesJson:H().nullable().optional()}),HA=G({id:H(),ownerUserId:H(),title:H(),status:U(),start:H(),end:H(),allDay:NA(),notes:H(),recurrence:VA.nullable().optional()}).passthrough(),UA=W(HA),WA=G({from:H(),to:H()}),GA=G({active:NA(),slots:W(WA).default([])}),KA=G({mon:GA,tue:GA,wed:GA,thu:GA,fri:GA,sat:GA,sun:GA}),qA=G({weekly:KA,isOverride:NA(),source:H()}),JA=G({meetingDuration:U(),bufferMinutes:U(),workStart:H(),workEnd:H(),timezone:H(),branchId:H(),availabilityTimezone:H().optional()}),YA={0:`available`,1:`busy`,2:`meeting`,3:`focus`,4:`away`},XA={available:0,busy:1,meeting:2,focus:3,away:4},ZA={0:`daily`,1:`weekly`,2:`monthly`,3:`yearly`},QA={daily:0,weekly:1,monthly:2,yearly:3},$A={0:`dayOfMonth`,1:`nthWeekday`},ej={dayOfMonth:0,nthWeekday:1},tj={0:`never`,1:`after`,2:`on`},nj={never:0,after:1,on:2},rj=e=>e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0).map(Number).filter(e=>!Number.isNaN(e)),ij=e=>e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),aj=/[zZ]|[+-]\d{2}:?\d{2}$/,oj=e=>{let t=aj.test(e)?e:`${e}Z`,n=new Date(t);return Number.isNaN(n.getTime())?e:n.toISOString()},sj=e=>{let t;if(e.weekdayTimesJson)try{t=JSON.parse(e.weekdayTimesJson)}catch{}return{freq:ZA[e.freq]??`daily`,interval:e.interval,weekdays:rj(e.weekdaysCsv),monthlyMode:$A[e.monthlyMode]??`dayOfMonth`,endType:tj[e.endType]??`never`,endCount:e.endCount,endDate:e.endDate,exceptions:ij(e.exceptionsCsv),differentTimes:e.differentTimes??!1,...t?{weekdayTimes:t}:{}}},cj=e=>new SO({id:e.id,userId:e.ownerUserId,title:e.title,status:YA[e.status]??`busy`,start:oj(e.start),end:oj(e.end),allDay:e.allDay,notes:e.notes,recurrence:e.recurrence!==null&&e.recurrence!==void 0?sj(e.recurrence):null}),lj=e=>({active:e.active,slots:e.slots.map(e=>({id:crypto.randomUUID(),from:e.from,to:e.to}))}),uj=e=>WD({mon:lj(e.mon),tue:lj(e.tue),wed:lj(e.wed),thu:lj(e.thu),fri:lj(e.fri),sat:lj(e.sat),sun:lj(e.sun)}),dj=[`personal`,`branch`,`org`,`default`],fj=e=>dj.find(t=>t===e)??`default`,pj=e=>({weekly:uj(e.weekly),isOverride:e.isOverride,source:fj(e.source)}),mj=e=>({meetingDuration:e.meetingDuration,bufferMinutes:e.bufferMinutes,workStart:e.workStart,workEnd:e.workEnd,timezone:e.timezone,branchId:e.branchId,availabilityTimezone:e.availabilityTimezone??``}),hj=e=>({freq:QA[e.freq],interval:e.interval,weekdaysCsv:e.weekdays.join(`,`),monthlyMode:ej[e.monthlyMode],endType:nj[e.endType],endCount:e.endCount,endDate:e.endDate,exceptionsCsv:e.exceptions.join(`,`),differentTimes:e.differentTimes,weekdayTimesJson:e.weekdayTimes?JSON.stringify(e.weekdayTimes):null}),gj=e=>({title:e.title,status:XA[e.status],start:e.start,end:e.end,allDay:e.allDay,notes:e.notes,recurrence:e.recurrence===null?null:hj(e.recurrence)}),_j=e=>({active:e.active,slots:e.slots.map(e=>({from:e.from,to:e.to}))}),vj=e=>({mon:_j(e.mon),tue:_j(e.tue),wed:_j(e.wed),thu:_j(e.thu),fri:_j(e.fri),sat:_j(e.sat),sun:_j(e.sun)}),yj=e=>({meetingDuration:e.meetingDuration,bufferMinutes:e.bufferMinutes,workStart:e.workStart,workEnd:e.workEnd,timezone:e.timezone,branchId:e.branchId}),bj=(e,t,n)=>(e.error(`Schedule ${t} returned an unexpected shape`,n),N(new FD(n))),xj=(e,t)=>t instanceof WO&&t.status===404?new RD:(e.error(`Schedule request failed`,t),new FD(t)),Sj={blocks:`/api/app/schedule-block`,availability:`/api/app/schedule-availability/availability`,effectiveAvailability:`/api/app/schedule-availability/effective-availability`,saveAvailability:`/api/app/schedule-availability/save-availability`,clearAvailability:`/api/app/schedule-availability/clear-availability`,preferences:`/api/app/schedule-preferences/preferences`,savePreferences:`/api/app/schedule-preferences/save-preferences`},Cj=e=>`/api/app/schedule-block/${encodeURIComponent(e)}`,wj=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-schedule-gateway`)}async getAvailability(){try{let e=await this.httpClient.get(Sj.availability);if(e==null)return M(null);let t=KA.safeParse(e);return t.success?M(uj(t.data)):bj(this.logger,`availability`,t.error)}catch(e){return N(xj(this.logger,e))}}async getEffectiveAvailability(){try{let e=await this.httpClient.get(Sj.effectiveAvailability),t=qA.safeParse(e);return t.success?M(pj(t.data)):bj(this.logger,`effective-availability`,t.error)}catch(e){return N(xj(this.logger,e))}}async saveAvailability(e){if(e===null)try{return await this.httpClient.post(Sj.clearAvailability),M(null)}catch(e){return N(xj(this.logger,e))}try{let t=await this.httpClient.post(Sj.saveAvailability,vj(e)),n=KA.safeParse(t);return n.success?M(uj(n.data)):bj(this.logger,`save-availability`,n.error)}catch(e){return N(xj(this.logger,e))}}async listBlocks(){try{let e=await this.httpClient.get(Sj.blocks),t=UA.safeParse(e);return t.success?M(t.data.map(cj)):bj(this.logger,`blocks`,t.error)}catch(e){return N(xj(this.logger,e))}}createBlock(e){return this.saveBlock(this.httpClient.post(Sj.blocks,gj(e)),`create-block`)}updateBlock(e,t){return this.saveBlock(this.httpClient.put(Cj(e),gj(t)),`update-block`)}async saveBlock(e,t){try{let n=await e,r=HA.safeParse(n);return r.success?M(cj(r.data)):bj(this.logger,t,r.error)}catch(e){return N(xj(this.logger,e))}}async deleteBlock(e){try{return await this.httpClient.delete(Cj(e)),M(void 0)}catch(e){return N(xj(this.logger,e))}}async getPreferences(){try{let e=await this.httpClient.get(Sj.preferences),t=JA.safeParse(e);return t.success?M(mj(t.data)):bj(this.logger,`preferences`,t.error)}catch(e){return N(xj(this.logger,e))}}async savePreferences(e){try{let t=await this.httpClient.post(Sj.savePreferences,yj(e)),n=JA.safeParse(t);return n.success?M(mj(n.data)):bj(this.logger,`save-preferences`,n.error)}catch(e){return N(xj(this.logger,e))}}addMeetingBlocks(e){this.logger.debug(`addMeetingBlocks is a no-op (server owns meeting→calendar sync)`)}},Tj=e=>{let t=new wj({httpClient:e.httpClient,logger:e.logger}),n={scheduleGateway:t,logger:e.logger};return{getAvailability:new xD(n),getEffectiveAvailability:new SD(n),saveAvailability:new LO(n),listBlocks:new RO(n),createBlock:new zO(n),updateBlock:new BO(n),deleteBlock:new VO(n),getPreferences:new HO(n),savePreferences:new UO(n),calendarSink:t,clock:e.clock}},Ej=(0,n.createContext)(null),Dj=({module:e,children:t})=>(0,D.jsx)(Ej.Provider,{value:e,children:t}),Oj=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},kj=new class extends Oj{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Aj={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},jj=new class{#e=Aj;#t=!1;setTimeoutProvider(e){process.env.NODE_ENV!==`production`&&this.#t&&e!==this.#e&&console.error(`[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,{previous:this.#e,provider:e}),this.#e=e,process.env.NODE_ENV!==`production`&&(this.#t=!1)}setTimeout(e,t){return process.env.NODE_ENV!==`production`&&(this.#t=!0),this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return process.env.NODE_ENV!==`production`&&(this.#t=!0),this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function Mj(e){setTimeout(e,0)}var Nj=typeof window>`u`||`Deno`in globalThis;function Pj(){}function Fj(e,t){return typeof e==`function`?e(t):e}function Ij(e){return typeof e==`number`&&e>=0&&e!==1/0}function Lj(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Rj(e,t){return typeof e==`function`?e(t):e}function zj(e,t){return typeof e==`function`?e(t):e}function Bj(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==Hj(o,t.options))return!1}else if(!Wj(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function Vj(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Uj(t.options.mutationKey)!==Uj(a))return!1}else if(!Wj(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Hj(e,t){return(t?.queryKeyHashFn||Uj)(e)}function Uj(e){return JSON.stringify(e,(e,t)=>Yj(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function Wj(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>Wj(e[n],t[n])):!1}var Gj=Object.prototype.hasOwnProperty;function Kj(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=Jj(e)&&Jj(t);if(!r&&!(Yj(e)&&Yj(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:Gj.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Kj(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function qj(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function Jj(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Yj(e){if(!Xj(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Xj(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Xj(e){return Object.prototype.toString.call(e)===`[object Object]`}function Zj(e){return new Promise(t=>{jj.setTimeout(t,e)})}function Qj(e,t,n){if(typeof n.structuralSharing==`function`)return n.structuralSharing(e,t);if(n.structuralSharing!==!1){if(process.env.NODE_ENV!==`production`)try{return Kj(e,t)}catch(e){throw console.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${n.queryHash}]: ${e}`),e}return Kj(e,t)}return t}function $j(e){return e}function eM(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function tM(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var nM=Symbol();function rM(e,t){return process.env.NODE_ENV!==`production`&&e.queryFn===nM&&console.error(`Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${e.queryHash}'`),!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===nM?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function iM(e,t){return typeof e==`function`?e(...t):!!e}function aM(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var oM=(()=>{let e=()=>Nj;return{isServer(){return e()},setIsServer(t){e=t}}})();function sM(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var cM=Mj;function lM(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=cM,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var uM=lM(),dM=new class extends Oj{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function fM(e){return Math.min(1e3*2**e,3e4)}function pM(e){return(e??`online`)===`online`?dM.isOnline():!0}var mM=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function hM(e){let t=!1,n=0,r,i=sM(),a=()=>i.status!==`pending`,o=t=>{if(!a()){let n=new mM(t);f(n),e.onCancel?.(n)}},s=()=>{t=!0},c=()=>{t=!1},l=()=>kj.isFocused()&&(e.networkMode===`always`||dM.isOnline())&&e.canRun(),u=()=>pM(e.networkMode)&&e.canRun(),d=e=>{a()||(r?.(),i.resolve(e))},f=e=>{a()||(r?.(),i.reject(e))},p=()=>new Promise(t=>{r=e=>{(a()||l())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,a()||e.onContinue?.()}),m=()=>{if(a())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(d).catch(r=>{if(a())return;let i=e.retry??(oM.isServer()?0:3),o=e.retryDelay??fM,s=typeof o==`function`?o(n,r):o,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){f(r);return}n++,e.onFail?.(n,r),Zj(s).then(()=>l()?void 0:p()).then(()=>{t?f(r):m()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?m():p().then(m),i)}}var gM=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ij(this.gcTime)&&(this.#e=jj.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(oM.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(jj.clearTimeout(this.#e),this.#e=void 0)}};function _M(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{aM(e,()=>t.signal,()=>n=!0)},u=rM(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?tM:eM;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?yM:vM,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:vM(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function vM(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function yM(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function bM(e,t){return t?vM(e,t)!=null:!1}function xM(e,t){return!t||!e.getPreviousPageParam?!1:yM(e,t)!=null}var SM=class extends gM{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=TM(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=TM(this.options);e.data!==void 0&&(this.setState(wM(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=Qj(this.state.data,e,this.options);return this.#l({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#l({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(Pj).catch(Pj):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>zj(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===nM||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>Rj(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!Lj(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#l({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}process.env.NODE_ENV!==`production`&&(Array.isArray(this.options.queryKey)||console.error(`As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`));let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=rM(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?_M(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#l({type:`fetch`,meta:a.fetchOptions?.meta}),this.#a=hM({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof mM&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#l({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#l({type:`pause`})},onContinue:()=>{this.#l({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(e===void 0)throw process.env.NODE_ENV!==`production`&&console.error(`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`),Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof mM){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#l({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#l(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...CM(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...wM(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),uM.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function CM(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:pM(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function wM(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function TM(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var EM=class extends Oj{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=sM(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),OM(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return kM(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return kM(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof zj(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!qj(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&AM(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||zj(this.options.enabled,this.#t)!==zj(t.enabled,this.#t)||Rj(this.options.staleTime,this.#t)!==Rj(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||zj(this.options.enabled,this.#t)!==zj(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return MM(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(Pj)),t}#g(){this.#b();let e=Rj(this.options.staleTime,this.#t);if(oM.isServer()||this.#r.isStale||!Ij(e))return;let t=Lj(this.#r.dataUpdatedAt,e)+1;this.#d=jj.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(oM.isServer()||zj(this.options.enabled,this.#t)===!1||!Ij(this.#p)||this.#p===0)&&(this.#f=jj.setInterval(()=>{(this.options.refetchIntervalInBackground||kj.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(jj.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(jj.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&OM(e,t),o=i&&AM(e,n,t,r);(a||o)&&(l={...l,...CM(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=Qj(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=Qj(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:jM(e,t),refetch:this.refetch,promise:this.#o,isEnabled:zj(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=sM())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!qj(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){uM.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function DM(e,t){return zj(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&zj(t.retryOnMount,e)===!1)}function OM(e,t){return DM(e,t)||e.state.data!==void 0&&kM(e,t,t.refetchOnMount)}function kM(e,t,n){if(zj(t.enabled,e)!==!1&&Rj(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&jM(e,t)}return!1}function AM(e,t,n,r){return(e!==t||zj(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&jM(e,n)}function jM(e,t){return zj(t.enabled,e)!==!1&&e.isStaleByTime(Rj(t.staleTime,e))}function MM(e,t){return!qj(e.getCurrentResult(),t)}var NM=class extends EM{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:s}=r,c=n.fetchMeta?.fetchMore?.direction,l=o&&c===`forward`,u=i&&c===`forward`,d=o&&c===`backward`,f=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:bM(t,n.data),hasPreviousPage:xM(t,n.data),isFetchNextPageError:l,isFetchingNextPage:u,isFetchPreviousPageError:d,isFetchingPreviousPage:f,isRefetchError:s&&!l&&!d,isRefetching:a&&!u&&!f}}},PM=class extends gM{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||FM(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=hM({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),uM.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function FM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var IM=class extends Oj{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new PM({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=LM(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=LM(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=LM(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=LM(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){uM.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Vj(t,e))}findAll(e={}){return this.getAll().filter(t=>Vj(e,t))}notify(e){uM.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return uM.batch(()=>Promise.all(e.map(e=>e.continue().catch(Pj))))}};function LM(e){return e.options.scope?.id}var RM=class extends Oj{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),qj(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&Uj(t.mutationKey)!==Uj(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??FM();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){uM.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},zM=class extends Oj{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??Hj(r,t),a=this.get(i);return a||(a=new SM({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){uM.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Bj(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>Bj(e,t)):t}notify(e){uM.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){uM.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){uM.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},BM=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new zM,this.#t=e.mutationCache||new IM,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=kj.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=dM.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(Rj(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Fj(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return uM.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;uM.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return uM.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=uM.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(Pj).catch(Pj)}invalidateQueries(e,t={}){return uM.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=uM.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(Pj)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(Pj)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(Rj(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Pj).catch(Pj)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Pj).catch(Pj)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return dM.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(Uj(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{Wj(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(Uj(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{Wj(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=Hj(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===nM&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},VM=n.createContext(void 0),HM=e=>{let t=n.useContext(VM);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},UM=({client:e,children:t})=>(n.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,D.jsx)(VM.Provider,{value:e,children:t})),WM=n.createContext(!1),GM=()=>n.useContext(WM);WM.Provider;function KM(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var qM=n.createContext(KM()),JM=()=>n.useContext(qM),YM=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?iM(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},XM=e=>{n.useEffect(()=>{e.clearReset()},[e])},ZM=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||iM(n,[e.error,r])),QM=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},$M=(e,t)=>e.isLoading&&e.isFetching&&!t,eN=(e,t)=>e?.suspense&&t.isPending,tN=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function nN(e,t,r){if(process.env.NODE_ENV!==`production`&&(typeof e!=`object`||Array.isArray(e)))throw Error(`Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object`);let i=GM(),a=JM(),o=HM(r),s=o.defaultQueryOptions(e);o.getDefaultOptions().queries?._experimental_beforeQuery?.(s);let c=o.getQueryCache().get(s.queryHash);process.env.NODE_ENV!==`production`&&(s.queryFn||console.error(`[${s.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`));let l=e.subscribed!==!1;s._optimisticResults=i?`isRestoring`:l?`optimistic`:void 0,QM(s),YM(s,a,c),XM(a);let u=!o.getQueryCache().get(s.queryHash),[d]=n.useState(()=>new t(o,s)),f=d.getOptimisticResult(s),p=!i&&l;if(n.useSyncExternalStore(n.useCallback(e=>{let t=p?d.subscribe(uM.batchCalls(e)):Pj;return d.updateResult(),t},[d,p]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),n.useEffect(()=>{d.setOptions(s)},[s,d]),eN(s,f))throw tN(s,d,a);if(ZM({result:f,errorResetBoundary:a,throwOnError:s.throwOnError,query:c,suspense:s.suspense}))throw f.error;return o.getDefaultOptions().queries?._experimental_afterQuery?.(s,f),s.experimental_prefetchInRender&&!oM.isServer()&&$M(f,i)&&(u?tN(s,d,a):c?.promise)?.catch(Pj).finally(()=>{d.updateResult()}),s.notifyOnChangeProps?f:d.trackResult(f)}function rN(e,t){return nN(e,EM,t)}function iN(e,t){let r=HM(t),[i]=n.useState(()=>new RM(r,e));n.useEffect(()=>{i.setOptions(e)},[i,e]);let a=n.useSyncExternalStore(n.useCallback(e=>i.subscribe(uM.batchCalls(e)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),o=n.useCallback((e,t)=>{i.mutate(e,t).catch(Pj)},[i]);if(a.error&&iM(i.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}function aN(e,t){return nN(e,NM,t)}var oN=()=>{let e=(0,n.useContext)(Ej);if(e===null)throw Error(`Schedule hooks must be used within <ScheduleModuleProvider>.`);return e},sN=[`schedule`,`availability`],cN=[`schedule`,`effective-availability`],lN=[`schedule`,`blocks`],uN=[`schedule`,`preferences`],dN=()=>{let{getAvailability:e}=oN();return rN({queryKey:sN,queryFn:()=>P(e.execute())})},fN=()=>{let{getEffectiveAvailability:e}=oN();return rN({queryKey:cN,queryFn:()=>P(e.execute())})},pN=()=>{let{saveAvailability:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:sN}),t.invalidateQueries({queryKey:cN})}})},mN=()=>{let{listBlocks:e}=oN();return rN({queryKey:lN,queryFn:()=>P(e.execute())})},hN=()=>{let{createBlock:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:lN})}})},gN=()=>{let{updateBlock:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:lN})}})},_N=()=>{let{deleteBlock:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:lN})}})},vN=()=>{let{getPreferences:e}=oN();return rN({queryKey:uN,queryFn:()=>P(e.execute())})},yN=()=>{let{savePreferences:e}=oN(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:uN})}})},bN=class{now(){return new Date}},xN=()=>Intl.DateTimeFormat().resolvedOptions().timeZone,SN=(e,t)=>{let n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,hour12:!1,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).formatToParts(e),r=e=>Number(n.find(t=>t.type===e)?.value??`0`);return{year:r(`year`),month:r(`month`),day:r(`day`),hour:r(`hour`)===24?0:r(`hour`),minute:r(`minute`),second:r(`second`)}},CN=(e,t)=>{let n=SN(t,e),r=Date.UTC(n.year,n.month-1,n.day,n.hour,n.minute,n.second);return Math.round((r-t.getTime())/6e4)},wN=/^(\d{1,2}):(\d{2})$/,TN=e=>String(e).padStart(2,`0`),EN=(e,t,n,r)=>{let i=wN.exec(e);if(i===null||t===n)return e;let a=((Number(i[1])*60+Number(i[2])+(CN(n,r)-CN(t,r)))%1440+1440)%1440;return`${TN(Math.floor(a/60))}:${TN(a%60)}`},DN=(e,t,n)=>{let r=Date.parse(`${e}T${t}:00Z`);if(Number.isNaN(r))throw Error(`Invalid date/time`);let i=CN(n,new Date(r)),a=CN(n,new Date(r-i*6e4));return new Date(r-a*6e4).toISOString()},ON=e=>{let t=e<0?`-`:`+`,n=Math.abs(e);return`GMT${t}${TN(Math.floor(n/60))}:${TN(n%60)}`},kN=e=>e.find(e=>e!==void 0&&e!==``),AN=class e{display;anchor;constructor(e,t){this.display=e,this.anchor=t}static from(t){let n=kN([t.anchor,t.personal])??`UTC`;return new e(kN([t.pick,t.personal])??(n===`UTC`?xN():n),n)}get displayMatchesAnchor(){return this.display===this.anchor}formatTime(e){return new Date(e).toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:this.display})}formatTimeRange(e,t){return!e||!t?``:`${this.formatTime(e)} – ${this.formatTime(t)}`}formatDate(e,t={weekday:`short`,day:`numeric`,month:`short`}){return new Date(e).toLocaleDateString(`en-US`,{...t,timeZone:this.display})}},jN=e=>{let t=vN().data;return AN.from({pick:e,personal:t?.timezone,anchor:t?.availabilityTimezone})},MN=5e3,NN={},PN={delivered:0,read:0},FN={status:`disconnected`,presence:{},typing:{},receipts:{},pending:{},activeConversationId:null,removedConversationIds:[]},IN=(e,t)=>({...e,status:t}),LN=(e,t,n,r)=>({...e,presence:{...e.presence,[t]:{online:n,lastSeenUtc:r}}}),RN=(e,t)=>{let{conversationId:n,userId:r,isTyping:i,nowMs:a}=t,o=e.typing[n]??{},s=i?{...o,[r]:a+MN}:Object.fromEntries(Object.entries(o).filter(([e])=>e!==r));return{...e,typing:{...e.typing,[n]:s}}},zN=(e,t,n)=>t===`delivered`?{...e,delivered:Math.max(e.delivered,n)}:{...e,read:Math.max(e.read,n)},BN=(e,t)=>{let{conversationId:n,userId:r,kind:i,uptoSequence:a}=t,o=e.receipts[n]??NN,s=o[r]??PN,c={...o,[r]:zN(s,i,a)};return{...e,receipts:{...e.receipts,[n]:c}}},VN=(e,t,n)=>{let r={...e.receipts[t]??NN};for(let e of n){let t=r[e.userId]??PN;r[e.userId]={delivered:Math.max(t.delivered,e.deliveredUpto),read:Math.max(t.read,e.readUpto)}}return{...e,receipts:{...e.receipts,[t]:r}}},HN=(e,t,n)=>{let r=e.typing[t];return r===void 0?[]:Object.entries(r).filter(([,e])=>e>n).map(([e])=>e)},UN=(e,t)=>e.receipts[t]??NN,WN=(e,t,n)=>({...e,pending:{...e.pending,[t]:n}}),GN=(e,t)=>WN(e,t,`sending`),KN=(e,t)=>WN(e,t,`failed`),qN=(e,t)=>{if(e.pending[t]===void 0)return e;let n=Object.fromEntries(Object.entries(e.pending).filter(([e])=>e!==t));return{...e,pending:n}},JN=(e,t)=>e.pending[t]??null,YN=(e,t)=>e.activeConversationId===t?e:{...e,activeConversationId:t},XN=(e,t)=>e.removedConversationIds.includes(t)?e:{...e,removedConversationIds:[...e.removedConversationIds,t]},ZN=(e,t)=>e.removedConversationIds.includes(t),QN=()=>xE((e,t)=>({...FN,setStatus:t=>{e(e=>IN(e,t))},applyPresence:(t,n,r)=>{e(e=>LN(e,t,n,r))},applyTyping:(t,n,r,i)=>{e(e=>RN(e,{conversationId:t,userId:n,isTyping:r,nowMs:i}))},applyReceipt:(t,n,r,i)=>{e(e=>BN(e,{conversationId:t,userId:n,kind:r,uptoSequence:i}))},seedReceipts:(t,n)=>{e(e=>VN(e,t,n))},markSending:t=>{e(e=>GN(e,t))},markFailed:t=>{e(e=>KN(e,t))},clearPending:t=>{e(e=>qN(e,t))},setActiveConversationId:t=>{e(e=>YN(e,t))},markRemovedFromConversation:t=>{e(e=>XN(e,t))},isRemovedFromConversation:e=>ZN(t(),e),clear:()=>{e(FN)},typingUserIds:(e,n)=>HN(t(),e,n),receiptsFor:e=>UN(t(),e),pendingStatus:e=>JN(t(),e)})),$N=(0,n.createContext)(null),eP=()=>{let e=(0,n.useContext)($N);if(e===null)throw Error(`Chat realtime hooks must be used within <ChatModuleProvider>.`);return e},tP=e=>CE(eP(),e),nP=class extends ci{},rP=class extends nP{code=`CHAT_UNAVAILABLE`;constructor(e,t){super(t??`Chat is currently unavailable. Please try again.`,{cause:e})}},iP=class extends nP{code=`CHAT_EMPTY_MESSAGE`;constructor(){super(`Write something before sending.`)}},aP=class extends nP{code=`CHAT_MESSAGE_TOO_LONG`;constructor(e){super(`Message must be ${String(e)} characters or less.`)}},oP=class extends nP{code=`CHAT_EMPTY_GROUP_TITLE`;constructor(){super(`Give the group a name before creating it.`)}},sP=class extends nP{code=`CHAT_EMPTY_GROUP_MEMBERS`;constructor(){super(`Add at least one member before creating the group.`)}},cP=class extends nP{code=`CHAT_MISSING_DIRECT_RECIPIENT`;constructor(){super(`Choose someone to start a conversation with.`)}},lP=3600*1e3,uP=900*1e3,dP=/([zZ]|[+-]\d{2}:?\d{2})$/,fP=e=>new Date(e.length>0&&!dP.test(e)?`${e}Z`:e),pP=class e{id;kind;authorName;authorInitials;authorColor;text;time;sentAt;fromViewer;reactions;sequence;senderId;clientMessageId;replyTo;mediaUrl;mediaContentType;mediaFileName;isEdited;deletedForEveryone;constructor(e){this.id=e.id,this.kind=e.kind,this.authorName=e.authorName,this.authorInitials=e.authorInitials,this.authorColor=e.authorColor,this.text=e.text,this.time=e.time,this.sentAt=e.sentAt??``,this.fromViewer=e.fromViewer,this.reactions=e.reactions,this.sequence=e.sequence,this.senderId=e.senderId,this.clientMessageId=e.clientMessageId,this.replyTo=e.replyTo??null,this.mediaUrl=e.mediaUrl??null,this.mediaContentType=e.mediaContentType??null,this.mediaFileName=e.mediaFileName??null,this.isEdited=e.isEdited??!1,this.deletedForEveryone=e.deletedForEveryone??!1}get isSystem(){return this.kind===`system`}canDeleteForEveryone(e){if(!this.fromViewer||this.isSystem||this.deletedForEveryone)return!1;let t=fP(this.sentAt).getTime();return Number.isNaN(t)?!0:Math.max(0,e-t)<=lP}get isSharedCard(){return this.text.startsWith(`__UAPP_SHARED_CARD__::`)}canEdit(e){if(!this.fromViewer||this.isSystem||this.deletedForEveryone||this.isSharedCard)return!1;let t=fP(this.sentAt).getTime();return Number.isNaN(t)?!0:Math.max(0,e-t)<=uP}with(t){return new e({id:this.id,kind:this.kind,authorName:this.authorName,authorInitials:this.authorInitials,authorColor:this.authorColor,text:this.text,time:this.time,sentAt:this.sentAt,fromViewer:this.fromViewer,reactions:this.reactions,sequence:this.sequence,senderId:this.senderId,clientMessageId:this.clientMessageId,replyTo:this.replyTo,mediaUrl:this.mediaUrl,mediaContentType:this.mediaContentType,mediaFileName:this.mediaFileName,isEdited:this.isEdited,deletedForEveryone:this.deletedForEveryone,...t})}withFallbackSentAt(e){return this.sentAt.length>0||e.length===0?this:this.with({sentAt:e})}asDeletedForEveryone(){return this.deletedForEveryone?this:this.with({text:``,reactions:[],replyTo:null,mediaUrl:null,mediaContentType:null,mediaFileName:null,isEdited:!1,deletedForEveryone:!0})}},mP=class e{id;kind;title;subtitle;initials;color;online;unread;pinned;favourite;archived;admin;lastMessage;lastTime;lastMessageAt;lastSynced;tenantId;categoryId;members;adminIds;data;peerUserId;memberReceipts;constructor(e){this.id=e.id,this.kind=e.kind,this.title=e.title,this.subtitle=e.subtitle,this.initials=e.initials,this.color=e.color,this.online=e.online,this.unread=e.unread,this.pinned=e.pinned,this.favourite=e.favourite,this.archived=e.archived,this.admin=e.admin,this.lastMessage=e.lastMessage,this.lastTime=e.lastTime,this.lastMessageAt=e.lastMessageAt??null,this.lastSynced=e.lastSynced,this.tenantId=e.tenantId,this.categoryId=e.categoryId,this.members=e.members,this.adminIds=e.adminIds,this.data=e.data,this.peerUserId=e.peerUserId,this.memberReceipts=e.memberReceipts}get isUnread(){return this.unread>0}get isGroup(){return this.kind===`group`}get isDm(){return this.kind===`dm`}get hasCategory(){return this.categoryId!==null}get memberCount(){return this.members.length}isAdmin(e){return this.adminIds.includes(e)}canManageMembers(e){return this.isAdmin(e)}with(t){return new e({id:this.id,kind:this.kind,title:this.title,subtitle:this.subtitle,initials:this.initials,color:this.color,online:this.online,unread:this.unread,pinned:this.pinned,favourite:this.favourite,archived:this.archived,admin:this.admin,lastMessage:this.lastMessage,lastTime:this.lastTime,lastMessageAt:this.lastMessageAt,lastSynced:this.lastSynced,tenantId:this.tenantId,categoryId:this.categoryId,members:this.members,adminIds:this.adminIds,data:this.data,peerUserId:this.peerUserId,memberReceipts:this.memberReceipts,...t})}},hP=(e,t)=>{if(e.length===0)return``;let n=fP(e);return Number.isNaN(n.getTime())?``:n.toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`,hour12:!0,timeZone:t&&t.length>0?t:void 0})},K={root:`_root_1wc1d_1`,fullCenter:`_fullCenter_1wc1d_7`,list:`_list_1wc1d_14`,listHead:`_listHead_1wc1d_24`,listTitle:`_listTitle_1wc1d_31`,composeBtn:`_composeBtn_1wc1d_38`,menuItemContent:`_menuItemContent_1wc1d_61`,chatIconTile:`_chatIconTile_1wc1d_68`,groupIconTile:`_groupIconTile_1wc1d_69`,menuItemText:`_menuItemText_1wc1d_89`,menuItemTitle:`_menuItemTitle_1wc1d_97`,menuItemSub:`_menuItemSub_1wc1d_104`,search:`_search_1wc1d_110`,searchInput:`_searchInput_1wc1d_122`,searchClearBtn:`_searchClearBtn_1wc1d_131`,tabsWrapper:`_tabsWrapper_1wc1d_148`,tabs:`_tabs_1wc1d_148`,arrowBtn:`_arrowBtn_1wc1d_168`,arrowLeft:`_arrowLeft_1wc1d_223`,arrowRight:`_arrowRight_1wc1d_227`,tab:`_tab_1wc1d_148`,tabActive:`_tabActive_1wc1d_259`,tabBg:`_tabBg_1wc1d_264`,tabLabel:`_tabLabel_1wc1d_273`,tabCount:`_tabCount_1wc1d_278`,tabDot:`_tabDot_1wc1d_292`,rows:`_rows_1wc1d_301`,empty:`_empty_1wc1d_338`,sentinel:`_sentinel_1wc1d_347`,loadMore:`_loadMore_1wc1d_352`,row:`_row_1wc1d_301`,rowActive:`_rowActive_1wc1d_370`,rowMain:`_rowMain_1wc1d_375`,rowMenuBtn:`_rowMenuBtn_1wc1d_388`,rowPin:`_rowPin_1wc1d_412`,rowStar:`_rowStar_1wc1d_419`,rowAvatar:`_rowAvatar_1wc1d_426`,onlineDot:`_onlineDot_1wc1d_441`,rowBody:`_rowBody_1wc1d_452`,rowTop:`_rowTop_1wc1d_460`,rowName:`_rowName_1wc1d_467`,rowTitle:`_rowTitle_1wc1d_478`,rowTime:`_rowTime_1wc1d_490`,rowBottom:`_rowBottom_1wc1d_496`,rowPreview:`_rowPreview_1wc1d_503`,rowRole:`_rowRole_1wc1d_511`,unread:`_unread_1wc1d_517`,view:`_view_1wc1d_530`,viewEmpty:`_viewEmpty_1wc1d_542`,emptyIconWrap:`_emptyIconWrap_1wc1d_553`,emptyTitle:`_emptyTitle_1wc1d_565`,emptyText:`_emptyText_1wc1d_572`,viewHead:`_viewHead_1wc1d_580`,viewAvatarWrap:`_viewAvatarWrap_1wc1d_590`,viewAvatar:`_viewAvatar_1wc1d_590`,viewPresenceDot:`_viewPresenceDot_1wc1d_609`,viewHeadText:`_viewHeadText_1wc1d_614`,viewIcon:`_viewIcon_1wc1d_622`,viewTitleRow:`_viewTitleRow_1wc1d_634`,viewTitle:`_viewTitle_1wc1d_634`,statusPill:`_statusPill_1wc1d_653`,adminBadge:`_adminBadge_1wc1d_666`,viewSub:`_viewSub_1wc1d_679`,headEnd:`_headEnd_1wc1d_687`,memberStack:`_memberStack_1wc1d_694`,memberAvatar:`_memberAvatar_1wc1d_699`,memberMore:`_memberMore_1wc1d_710`,headMenuBtn:`_headMenuBtn_1wc1d_725`,threadWrap:`_threadWrap_1wc1d_743`,messages:`_messages_1wc1d_535`,thread:`_thread_1wc1d_743`,center:`_center_1wc1d_776`,olderRow:`_olderRow_1wc1d_783`,newPill:`_newPill_1wc1d_791`,sendFailed:`_sendFailed_1wc1d_817`,sendFailedText:`_sendFailedText_1wc1d_823`,retryBtn:`_retryBtn_1wc1d_829`,systemRow:`_systemRow_1wc1d_844`,systemPill:`_systemPill_1wc1d_851`,msgRow:`_msgRow_1wc1d_768`,msgRowGroupStart:`_msgRowGroupStart_1wc1d_768`,msgRowMe:`_msgRowMe_1wc1d_875`,msgAvatarSpacer:`_msgAvatarSpacer_1wc1d_880`,dateSep:`_dateSep_1wc1d_886`,dateSepPill:`_dateSepPill_1wc1d_892`,msgBubbleWrap:`_msgBubbleWrap_1wc1d_904`,reactWrap:`_reactWrap_1wc1d_915`,reactBtn:`_reactBtn_1wc1d_920`,reactPop:`_reactPop_1wc1d_946`,reactPopRight:`_reactPopRight_1wc1d_961`,reactPopLeft:`_reactPopLeft_1wc1d_967`,reactPopBtn:`_reactPopBtn_1wc1d_972`,msgAvatar:`_msgAvatar_1wc1d_880`,msgCol:`_msgCol_1wc1d_1005`,msgColWithReactions:`_msgColWithReactions_1wc1d_1012`,bubble:`_bubble_1wc1d_1016`,bubbleThem:`_bubbleThem_1wc1d_1026`,bubbleMe:`_bubbleMe_1wc1d_1033`,msgAuthor:`_msgAuthor_1wc1d_1039`,msgText:`_msgText_1wc1d_1053`,msgTextDeleted:`_msgTextDeleted_1wc1d_1058`,msgMeta:`_msgMeta_1wc1d_1063`,msgTime:`_msgTime_1wc1d_1073`,tick:`_tick_1wc1d_1080`,tickRead:`_tickRead_1wc1d_1086`,reactionPill:`_reactionPill_1wc1d_1091`,reactionPillActive:`_reactionPillActive_1wc1d_1119`,reactionsMe:`_reactionsMe_1wc1d_1124`,reactionsThem:`_reactionsThem_1wc1d_1128`,reactionEmojis:`_reactionEmojis_1wc1d_1132`,reactionCount:`_reactionCount_1wc1d_1140`,reactionOn:`_reactionOn_1wc1d_1151`,composer:`_composer_1wc1d_1156`,removedComposer:`_removedComposer_1wc1d_1167`,attachTray:`_attachTray_1wc1d_1182`,attachItem:`_attachItem_1wc1d_1195`,attachThumb:`_attachThumb_1wc1d_1206`,attachFile:`_attachFile_1wc1d_1213`,attachFileName:`_attachFileName_1wc1d_1225`,attachRemove:`_attachRemove_1wc1d_1234`,attachAdd:`_attachAdd_1wc1d_1256`,composerIcon:`_composerIcon_1wc1d_1278`,composerInput:`_composerInput_1wc1d_1300`,emojiWrap:`_emojiWrap_1wc1d_1325`,emojiBackdrop:`_emojiBackdrop_1wc1d_1330`,emojiPop:`_emojiPop_1wc1d_1339`,emojiBtn:`_emojiBtn_1wc1d_1355`,sendBtn:`_sendBtn_1wc1d_1376`,memberStackBtn:`_memberStackBtn_1wc1d_1396`,membersBody:`_membersBody_1wc1d_1410`,unsavedBar:`_unsavedBar_1wc1d_1416`,addMemberCta:`_addMemberCta_1wc1d_1426`,membersSectionLabel:`_membersSectionLabel_1wc1d_1447`,membersList:`_membersList_1wc1d_1454`,memberRow:`_memberRow_1wc1d_1460`,memberRowNew:`_memberRowNew_1wc1d_1473`,memberRowAvatar:`_memberRowAvatar_1wc1d_1482`,memberRowBody:`_memberRowBody_1wc1d_1496`,memberRowName:`_memberRowName_1wc1d_1504`,memberRowYou:`_memberRowYou_1wc1d_1514`,memberRowRole:`_memberRowRole_1wc1d_1519`,memberBadgeAdmin:`_memberBadgeAdmin_1wc1d_1524`,memberBadge:`_memberBadge_1wc1d_1524`,memberPillNew:`_memberPillNew_1wc1d_1545`,memberPillUp:`_memberPillUp_1wc1d_1555`,memberPillDown:`_memberPillDown_1wc1d_1566`,memberRowMenuBtn:`_memberRowMenuBtn_1wc1d_1576`,removedLabel:`_removedLabel_1wc1d_1596`,removedRow:`_removedRow_1wc1d_1604`,removedName:`_removedName_1wc1d_1619`,undoBtn:`_undoBtn_1wc1d_1627`,addPanel:`_addPanel_1wc1d_1648`,addPanelHead:`_addPanelHead_1wc1d_1654`,addPanelTitle:`_addPanelTitle_1wc1d_1660`,addPanelSearch:`_addPanelSearch_1wc1d_1666`,addPanelList:`_addPanelList_1wc1d_1677`,addPanelEmpty:`_addPanelEmpty_1wc1d_1685`,addMemberBtn:`_addMemberBtn_1wc1d_1692`,newGroupBody:`_newGroupBody_1wc1d_1717`,staffPickRow:`_staffPickRow_1wc1d_1723`,staffPickRowOn:`_staffPickRowOn_1wc1d_1748`,pickCheck:`_pickCheck_1wc1d_1757`,pickCheckOn:`_pickCheckOn_1wc1d_1769`,pickerPending:`_pickerPending_1wc1d_1774`,connPill:`_connPill_1wc1d_1788`,typingRow:`_typingRow_1wc1d_1802`,typingText:`_typingText_1wc1d_1811`,typingDots:`_typingDots_1wc1d_1816`,typingBounce:`_typingBounce_1wc1d_1`,memberRowAvatarWrap:`_memberRowAvatarWrap_1wc1d_1858`,presenceDot:`_presenceDot_1wc1d_1864`,replyPreview:`_replyPreview_1wc1d_1875`,replyPreviewAuthor:`_replyPreviewAuthor_1wc1d_1895`,replyPreviewText:`_replyPreviewText_1wc1d_1908`,replyBar:`_replyBar_1wc1d_1924`,replyBarText:`_replyBarText_1wc1d_1935`,replyBarClose:`_replyBarClose_1wc1d_1944`,msgMedia:`_msgMedia_1wc1d_1952`,msgMediaLoading:`_msgMediaLoading_1wc1d_1976`,msgMediaFallback:`_msgMediaFallback_1wc1d_1977`,albumGrid:`_albumGrid_1wc1d_1993`,albumCell:`_albumCell_1wc1d_2002`,albumCellMedia:`_albumCellMedia_1wc1d_2002`,albumCellActions:`_albumCellActions_1wc1d_2041`,albumActionBtn:`_albumActionBtn_1wc1d_2067`,albumCellReactions:`_albumCellReactions_1wc1d_2086`,mediaButton:`_mediaButton_1wc1d_2095`,mediaButtonFill:`_mediaButtonFill_1wc1d_2104`,viewerBackdrop:`_viewerBackdrop_1wc1d_2111`,viewerScrim:`_viewerScrim_1wc1d_2121`,viewerFade:`_viewerFade_1wc1d_1`,viewerStage:`_viewerStage_1wc1d_2130`,viewerImg:`_viewerImg_1wc1d_2144`,viewerZoom:`_viewerZoom_1wc1d_1`,viewerFallback:`_viewerFallback_1wc1d_2154`,viewerClose:`_viewerClose_1wc1d_2163`,viewerNav:`_viewerNav_1wc1d_2164`,viewerNavPrev:`_viewerNavPrev_1wc1d_2208`,viewerNavNext:`_viewerNavNext_1wc1d_2212`,viewerCount:`_viewerCount_1wc1d_2216`,fileCard:`_fileCard_1wc1d_2253`,fileCardMe:`_fileCardMe_1wc1d_2271`,fileCardIcon:`_fileCardIcon_1wc1d_2284`,fileCardInfo:`_fileCardInfo_1wc1d_2296`,fileCardName:`_fileCardName_1wc1d_2304`,fileCardMetaLabel:`_fileCardMetaLabel_1wc1d_2313`,fileCardDownload:`_fileCardDownload_1wc1d_2318`,msgActions:`_msgActions_1wc1d_2326`,msgActionBtn:`_msgActionBtn_1wc1d_2338`,editedLabel:`_editedLabel_1wc1d_2351`,hiddenFileInput:`_hiddenFileInput_1wc1d_2358`,viewPaneWrapper:`_viewPaneWrapper_1wc1d_2362`,emptyFloating1:`_emptyFloating1_1wc1d_2370`,emptyFloating2:`_emptyFloating2_1wc1d_2379`,emptyFloating3:`_emptyFloating3_1wc1d_2388`,backBtn:`_backBtn_1wc1d_2397`,hasActiveChat:`_hasActiveChat_1wc1d_2438`,standardHeader:`_standardHeader_1wc1d_2569`,mobileSelectionHeader:`_mobileSelectionHeader_1wc1d_2576`,selectionLeft:`_selectionLeft_1wc1d_2585`,selectionTitle:`_selectionTitle_1wc1d_2593`,selectionActions:`_selectionActions_1wc1d_2602`,selectionActionBtn:`_selectionActionBtn_1wc1d_2609`,selectionActionDanger:`_selectionActionDanger_1wc1d_2631`,hasMobileSelection:`_hasMobileSelection_1wc1d_2642`,bubbleSelected:`_bubbleSelected_1wc1d_2650`},gP=({conversation:e,actions:t,onRequestDelete:n})=>{let r={label:e.isGroup?`Delete group`:`Delete chat`,icon:(0,D.jsx)(ei,{size:14}),danger:!0,onSelect:()=>{n(e)}};return e.archived?[{label:`Unarchive`,icon:(0,D.jsx)(kn,{size:14}),onSelect:()=>{t.toggleArchive(e)}},r]:[{label:e.favourite?`Remove from Favourites`:`Add to Favourites`,icon:(0,D.jsx)(Yr,{size:14}),onSelect:()=>{t.toggleFavourite(e)}},{label:e.pinned?`Unpin`:`Pin to top`,icon:(0,D.jsx)(jr,{size:14}),onSelect:()=>{t.togglePin(e)}},{label:`Archive`,icon:(0,D.jsx)(An,{size:14}),onSelect:()=>{t.toggleArchive(e)}},r]},_P=e=>(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.rowMenuBtn,"aria-label":`Chat options`,children:(0,D.jsx)(er,{size:15})}),items:gP(e)}),vP=({conversation:e,active:t,actions:n,onSelect:r,onRequestDelete:i})=>{let a=jN(),o=e.peerUserId,s=tP(e=>o===null?void 0:e.presence[o]?.online),c=o===null?e.online:s??e.online,l=hP(e.lastMessageAt??``,a.display)||e.lastTime;return(0,D.jsxs)(A.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:T(K.row,t&&K.rowActive),children:[(0,D.jsxs)(`button`,{type:`button`,className:K.rowMain,onClick:r,children:[(0,D.jsxs)(`span`,{className:K.rowAvatar,style:E({"--avatar-color":e.color}),children:[e.initials,c&&(0,D.jsx)(`span`,{className:K.onlineDot})]}),(0,D.jsxs)(`span`,{className:K.rowBody,children:[(0,D.jsxs)(`span`,{className:K.rowTop,children:[(0,D.jsxs)(`span`,{className:K.rowName,children:[e.pinned&&(0,D.jsx)(jr,{size:12,className:K.rowPin}),e.favourite&&(0,D.jsx)(Yr,{size:12,className:K.rowStar}),(0,D.jsx)(`span`,{className:K.rowTitle,children:e.title})]}),(0,D.jsx)(`span`,{className:K.rowTime,children:l})]}),(0,D.jsxs)(`span`,{className:K.rowBottom,children:[(0,D.jsxs)(`span`,{className:K.rowPreview,children:[(0,D.jsx)(`span`,{className:K.rowRole,children:e.subtitle}),` `,e.lastMessage]}),e.unread>0&&(0,D.jsx)(`span`,{className:K.unread,children:e.unread})]})]})]}),(0,D.jsx)(_P,{conversation:e,actions:n,onRequestDelete:i})]})},yP=(0,n.createContext)(null),bP=()=>{let e=(0,n.useContext)(yP);if(e===null)throw Error(`Chat hooks must be used within <ChatModuleProvider>.`);return e},xP=[`chat`,`conversations`],SP=[`chat`,`conversation-counts`],CP=e=>[`chat`,`conversation`,e],wP=20,TP=(e,t)=>{let{listConversations:n}=bP(),r=t.trim(),i=aN({queryKey:[...xP,e,r],initialPageParam:0,queryFn:({pageParam:t})=>P(n.execute({scope:e,filter:r,skipCount:t,maxResultCount:wP})),placeholderData:$j,getNextPageParam:(e,t)=>{let n=t.reduce((e,t)=>e+t.items.length,0);return n<e.totalCount?n:void 0}});return{data:i.data?.pages.flatMap(e=>e.items),isPending:i.isPending,isSuccess:i.isSuccess,error:i.error,hasNextPage:i.hasNextPage,isFetchingNextPage:i.isFetchingNextPage,fetchNextPage:()=>{i.fetchNextPage()}}},EP=()=>{let{getConversationCounts:e}=bP();return rN({queryKey:SP,queryFn:()=>P(e.execute())})},DP=(e,t)=>{let n=e.getQueryCache().findAll({queryKey:xP});for(let e of n){let n=e.state.data?.pages.flatMap(e=>e.items).find(e=>e.id===t);if(n!==void 0)return{conversation:n,updatedAt:e.state.dataUpdatedAt}}},OP=e=>{let{getConversation:t}=bP(),n=HM(),r=e===null?void 0:DP(n,e);return rN({queryKey:CP(e??``),enabled:e!==null,retry:!1,queryFn:()=>P(t.execute(e??``)),...r===void 0?{}:{initialData:r.conversation,initialDataUpdatedAt:r.updatedAt}})},kP=e=>{e.invalidateQueries({queryKey:xP,refetchType:`all`}),e.invalidateQueries({queryKey:SP})},AP=e=>{kP(e),e.invalidateQueries({queryKey:[`chat`,`conversation`]})},jP=e=>{e.invalidateQueries({queryKey:xP,refetchType:`all`}),e.invalidateQueries({queryKey:[`chat`,`conversation`]})},MP=(e,t,n)=>{e.setQueriesData({queryKey:xP},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t?n(e):e)}))}),e.setQueryData(CP(t),e=>e===void 0?e:n(e))},NP=(e,t)=>e.map(e=>{if(e.emoji===t||!e.reacted)return e;let n=e.count-1;return n>0?{...e,count:n,reacted:!1}:null}).filter(e=>e!==null),PP=(e,t,n)=>{let r=t.byUserId===n?NP(e,t.emoji):e;return r.find(e=>e.emoji===t.emoji)===void 0?[...r,{emoji:t.emoji,count:1,reacted:t.byUserId===n}]:r.map(e=>e.emoji===t.emoji?{...e,count:e.count+1,reacted:e.reacted||t.byUserId===n}:e)},FP=(e,t,n)=>e.map(e=>e.emoji===t.emoji?{...e,count:e.count-1,reacted:t.byUserId===n?!1:e.reacted}:e).filter(e=>e.count>0),IP=(e,t,n)=>{if(!t.added&&!e.reactions.some(e=>e.emoji===t.emoji))return e;let r=t.added?PP(e.reactions,t,n):FP(e.reactions,t,n);return e.with({reactions:r})},LP=(e,t)=>new mP({id:e.id,kind:e.kind,title:e.title,subtitle:e.subtitle,initials:e.initials,color:e.color,online:e.online,unread:t,pinned:e.pinned,favourite:e.favourite,archived:e.archived,admin:e.admin,lastMessage:e.lastMessage,lastTime:e.lastTime,lastMessageAt:e.lastMessageAt,lastSynced:e.lastSynced,tenantId:e.tenantId,categoryId:e.categoryId,members:e.members,adminIds:e.adminIds,data:e.data,peerUserId:e.peerUserId,memberReceipts:e.memberReceipts}),RP=(e,t,n)=>{e.setQueryData(SP,{...t,unread:Math.max(0,t.unread-1),favourites:n.favourite?Math.max(0,t.favourites-1):t.favourites,groups:n.group?Math.max(0,t.groups-1):t.groups,archived:n.archived?Math.max(0,t.archived-1):t.archived})},zP=async(e,t)=>{await e.cancelQueries({queryKey:SP}),await e.cancelQueries({queryKey:CP(t)});let n=e.getQueriesData({queryKey:xP}),r=e.getQueryData(SP),i=e.getQueryData(CP(t)),a=!1,o=!1,s=!1,c=!1;return i&&(a=i.unread>0,o=i.favourite,s=i.isGroup,c=i.archived,e.setQueryData(CP(t),LP(i,0))),e.setQueriesData({queryKey:xP},e=>e&&{...e,pages:e.pages.map(e=>({...e,items:e.items.map(e=>e.id===t?(i||(a=e.unread>0,o=e.favourite,s=e.isGroup,c=e.archived),LP(e,0)):e)}))}),a&&r&&RP(e,r,{favourite:o,group:s,archived:c}),{previousConversations:n,previousCounts:r,previousSingleConversation:i,conversationId:t}},BP=(e,t)=>{t&&(t.previousSingleConversation&&e.setQueryData(CP(t.conversationId),t.previousSingleConversation),t.previousConversations.forEach(([t,n])=>{e.setQueryData(t,n)}),t.previousCounts&&e.setQueryData(SP,t.previousCounts))},VP=()=>{let{markRead:e}=bP(),t=HM();return iN({mutationFn:({conversationId:t,uptoSequence:n})=>P(e.execute(t,n)),onMutate:({conversationId:e})=>zP(t,e),onError:(e,n,r)=>{BP(t,r)},onSettled:()=>{t.invalidateQueries({queryKey:SP})}})},HP=(e,t=`directory`)=>[`chat`,`staff`,t,e?.trim().toLowerCase()??``],UP=[`chat`,`viewer`],WP=e=>[`chat`,`messages`,e],GP=(e,t=`directory`)=>{let{listStaff:n,getGroupMemberPool:r}=bP(),i=e?.trim()??``,a=t===`groupPool`?r:n;return rN({queryKey:HP(i,t),queryFn:()=>P(a.execute(i||void 0))})},KP=()=>{let{getViewer:e}=bP();return rN({queryKey:UP,queryFn:()=>P(e.execute())})},qP=e=>{let{getMessages:t}=bP();return rN({queryKey:WP(e??``),enabled:e!==null,queryFn:()=>P(t.execute(e??``))})},JP=e=>{let t=HM();return iN({mutationFn:e,onSuccess:()=>{AP(t)}})},YP=()=>{let{setFavourite:e}=bP(),t=HM();return iN({mutationFn:({id:t,value:n})=>P(e.execute(t,n)),onSuccess:(e,{id:n,value:r})=>{MP(t,n,e=>e.with({favourite:r})),AP(t)}})},XP=()=>{let{setArchived:e}=bP(),t=HM();return iN({mutationFn:({id:t,value:n})=>P(e.execute(t,n)),onSuccess:(e,{id:n,value:r})=>{MP(t,n,e=>e.with({archived:r})),AP(t)}})},ZP=()=>{let{setPinned:e}=bP(),t=HM();return iN({mutationFn:({id:t,value:n})=>P(e.execute(t,n)),onSuccess:(e,{id:n,value:r})=>{MP(t,n,e=>e.with({pinned:r})),AP(t)}})},QP=()=>{let{deleteConversation:e}=bP();return JP(t=>P(e.execute(t)))},$P=()=>{let{leaveConversation:e}=bP();return JP(t=>P(e.execute(t)))},eF=()=>{let{refreshPortal:e}=bP();return JP(t=>P(e.execute(t)))},tF=e=>{let{saveMembers:t}=bP(),n=HM(),{data:r}=KP();return iN({mutationFn:({members:n,adminIds:r})=>P(t.execute(e,n,r)),onSuccess:(t,{members:i,adminIds:a})=>{let o=r?.id??``;MP(n,e,e=>e.with({members:i,adminIds:a,admin:a.includes(o)})),jP(n),n.invalidateQueries({queryKey:WP(e)})}})},nF=()=>{let{startDirect:e}=bP(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{AP(t)}})},rF=()=>{let{createGroup:e}=bP(),t=HM();return iN({mutationFn:({title:t,memberIds:n})=>P(e.execute(t,n)),onSuccess:()=>{AP(t)}})},iF=e=>{let{reactToMessage:t}=bP(),n=HM(),r=KP().data?.id??``,i=WP(e);return iN({mutationFn:({messageId:n,emoji:r})=>P(t.execute(e,n,r)),onMutate:async({messageId:e,emoji:t})=>{await n.cancelQueries({queryKey:i});let a=n.getQueryData(i),o=!((a?.find(t=>t.id===e))?.reactions.some(e=>e.emoji===t&&e.reacted)??!1);return n.setQueryData(i,n=>n?.map(n=>n.id===e?IP(n,{emoji:t,byUserId:r,added:o},r):n)),{previous:a}},onError:(e,t,r)=>{r?.previous!==void 0&&n.setQueryData(i,r.previous)}})},aF=e=>{let{editMessage:t}=bP(),n=HM();return iN({mutationFn:({messageId:n,text:r})=>P(t.execute(e,n,r)),onSuccess:t=>{n.setQueryData(WP(e),e=>e?.map(e=>e.id===t.id?t:e)??[t])}})},oF=e=>{let{deleteMessage:t}=bP(),n=HM();return iN({mutationFn:n=>P(t.execute(e,n)),onSuccess:(t,r)=>{n.setQueryData(WP(e),e=>e?.map(e=>e.id===r?e.asDeletedForEveryone():e)??[])}})},sF=e=>{let{deleteMessageForMe:t}=bP();return iN({mutationFn:n=>P(t.execute(e,n))})},cF=(e,t)=>e.trim().length>0&&t.length>0,lF=(e,t)=>e.includes(t)?e.filter(e=>e!==t):[...e,t],uF=(e,t)=>{let[r,i]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let n=setTimeout(()=>{i(e)},t);return()=>{clearTimeout(n)}},[e,t]),r},dF=(e,t=`directory`)=>{let[r,i]=(0,n.useState)(``),a=uF(r,250),o=GP(a,t);return{search:r,setSearch:i,results:(o.data??[]).filter(t=>!e.includes(t.id)),loading:o.isFetching,hasQuery:a.trim().length>0}},fF=({excludeIds:e,selectedIds:t,onToggle:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=dF(e,`groupPool`);return(0,D.jsxs)(`div`,{className:K.addPanel,children:[(0,D.jsxs)(`div`,{className:K.addPanelSearch,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(mi,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:K.addPanelList,children:[a.map(e=>{let r=t.includes(e.id);return(0,D.jsxs)(`button`,{type:`button`,className:T(K.staffPickRow,r&&K.staffPickRowOn),"aria-pressed":r,onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]}),(0,D.jsx)(`span`,{className:T(K.pickCheck,r&&K.pickCheckOn),children:r&&(0,D.jsx)(Un,{size:13})})]},e.id)}),a.length===0&&!o&&(0,D.jsx)(`p`,{className:K.addPanelEmpty,children:s?`No staff match your search.`:`No teammates available to add yet.`})]})]})},pF=({valid:e,saving:t,onCancel:n,onSubmit:r})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(gi,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,D.jsx)(gi,{variant:`primary`,isLoading:t,disabled:!e,onClick:r,children:`Create group`})]}),mF=({open:e,excludeIds:t,onClose:r,onCreated:i})=>{let a=rF(),[o,s]=(0,n.useState)(``),[c,l]=(0,n.useState)([]),u=cF(o,c),d=()=>{s(``),l([]),r()};return(0,D.jsx)(Wy,{open:e,onOpenChange:e=>{e||d()},title:`New group`,description:`Name the group and pick the staff to add.`,footer:(0,D.jsx)(pF,{valid:u,saving:a.isPending,onCancel:d,onSubmit:()=>{u&&a.mutate({title:o,memberIds:c},{onSuccess:e=>{s(``),l([]),i(e)}})}}),children:(0,D.jsxs)(`div`,{className:K.newGroupBody,children:[(0,D.jsx)(bi,{label:`Group name`,placeholder:`e.g. Autumn Intake Counsellors`,value:o,onChange:e=>{s(e.target.value)}}),(0,D.jsxs)(`div`,{className:K.membersSectionLabel,children:[`MEMBERS · `,c.length]}),(0,D.jsx)(fF,{excludeIds:t,selectedIds:c,onToggle:e=>{l(t=>lF(t,e))}}),a.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not create group`,children:a.error.message})]})})},hF=({excludeIds:e,isPending:t,onPick:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=dF(e);return(0,D.jsxs)(`div`,{className:K.addPanel,children:[(0,D.jsxs)(`div`,{className:K.addPanelSearch,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(mi,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:K.addPanelList,children:[a.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:K.staffPickRow,disabled:t,onClick:()=>{n(e)},children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]})]},e.id)),a.length===0&&!o&&(0,D.jsx)(`p`,{className:K.addPanelEmpty,children:s?`No staff match your search.`:`No teammates available to message yet.`})]}),t&&(0,D.jsx)(`div`,{className:K.pickerPending,children:(0,D.jsx)(mi,{size:`sm`,label:`Starting chat`})})]})},gF=({onSelectDirect:e,onSelectGroup:t})=>[{id:`new-chat`,label:(0,D.jsxs)(`div`,{className:K.menuItemContent,children:[(0,D.jsx)(`div`,{className:K.chatIconTile,children:(0,D.jsx)(xr,{size:18})}),(0,D.jsxs)(`div`,{className:K.menuItemText,children:[(0,D.jsx)(`span`,{className:K.menuItemTitle,children:`New chat`}),(0,D.jsx)(`span`,{className:K.menuItemSub,children:`Direct message a contact`})]})]}),onSelect:e},{id:`new-group`,label:(0,D.jsxs)(`div`,{className:K.menuItemContent,children:[(0,D.jsx)(`div`,{className:K.groupIconTile,children:(0,D.jsx)(ri,{size:18})}),(0,D.jsxs)(`div`,{className:K.menuItemText,children:[(0,D.jsx)(`span`,{className:K.menuItemTitle,children:`New group`}),(0,D.jsx)(`span`,{className:K.menuItemSub,children:`Create a group chat`})]})]}),onSelect:t}],_F=({onOpenConversation:e})=>{let[t,r]=(0,n.useState)(`none`),i=KP(),a=nF(),o=i.data?[i.data.id]:[],s=()=>{r(`none`)},c=t=>{s(),e(t.id)},l=e=>{a.mutate(e.id,{onSuccess:c,onError:()=>{j.error(`Could not start that chat`)}})},u=gF({onSelectDirect:()=>{r(`direct`)},onSelectGroup:()=>{r(`group`)}});return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.composeBtn,"aria-label":`New conversation`,children:(0,D.jsx)(Dr,{size:16})}),items:u}),(0,D.jsx)(Wy,{open:t===`direct`,onOpenChange:e=>{e||s()},title:`New direct message`,description:`Pick a staff member to message.`,children:(0,D.jsx)(hF,{excludeIds:o,isPending:a.isPending,onPick:l})}),(0,D.jsx)(mF,{open:t===`group`,excludeIds:o,onClose:s,onCreated:c})]})},vF=[{id:`all`,label:`All`},{id:`unread`,label:`Unread`},{id:`favourites`,label:`Favourites`},{id:`groups`,label:`Groups`},{id:`archive`,label:`Archive`}],yF=(e,t)=>{if(e===void 0)return null;let n=t===`archive`?e.archived:t===`unread`?e.unread:t===`favourites`?e.favourites:t===`groups`?e.groups:0;return n>0?n:null},bF=e=>(e?.unread??0)>0,xF={type:`spring`,stiffness:420,damping:34},SF=({entry:e,active:t,counts:n,onSelect:r})=>{let i=e.id===t,a=yF(n,e.id),o=e.id===`all`&&bF(n);return(0,D.jsxs)(`button`,{type:`button`,className:T(K.tab,i&&K.tabActive),onClick:()=>{r(e.id)},children:[i&&(0,D.jsx)(A.span,{layoutId:`chatTabBg`,className:K.tabBg,transition:xF}),(0,D.jsx)(`span`,{className:K.tabLabel,children:e.label}),a!==null&&(0,D.jsx)(`span`,{className:K.tabCount,children:a}),o&&(0,D.jsx)(`span`,{className:K.tabDot})]})},CF=({active:e,counts:t,onSelect:r})=>{let i=(0,n.useRef)(null),[a,o]=(0,n.useState)(!1),[s,c]=(0,n.useState)(!1),l=()=>{let e=i.current;e&&(o(e.scrollLeft>1),c(e.scrollLeft<e.scrollWidth-e.clientWidth-1))};(0,n.useEffect)(()=>{let e=i.current;if(e)return l(),e.addEventListener(`scroll`,l),window.addEventListener(`resize`,l),()=>{e.removeEventListener(`scroll`,l),window.removeEventListener(`resize`,l)}},[t,e]);let u=e=>{i.current?.scrollBy({left:e===`left`?-80:80,behavior:`smooth`})};return(0,D.jsxs)(`div`,{className:K.tabsWrapper,children:[a&&(0,D.jsx)(`button`,{type:`button`,className:T(K.arrowBtn,K.arrowLeft),onClick:()=>{u(`left`)},"aria-label":`Scroll left`,children:(0,D.jsx)(Gn,{size:14})}),(0,D.jsx)(`div`,{className:K.tabs,ref:i,children:vF.map(n=>(0,D.jsx)(SF,{entry:n,active:e,counts:t,onSelect:r},n.id))}),s&&(0,D.jsx)(`button`,{type:`button`,className:T(K.arrowBtn,K.arrowRight),onClick:()=>{u(`right`)},"aria-label":`Scroll right`,children:(0,D.jsx)(Kn,{size:14})})]})},wF=({virtualRow:e,measureElement:t,isLoaderRow:n,conversation:r,activeId:i,actions:a,isFetchingNextPage:o,onRequestDelete:s,onSelect:c})=>n?(0,D.jsx)(`div`,{ref:t,"data-index":e.index,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${String(e.start)}px)`},children:o&&(0,D.jsx)(`div`,{className:K.loadMore,children:(0,D.jsx)(mi,{size:`sm`,label:`Loading more chats`})})}):r?(0,D.jsx)(`div`,{ref:t,"data-index":e.index,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${String(e.start)}px)`},children:(0,D.jsx)(vP,{conversation:r,active:r.id===i,actions:a,onSelect:()=>{c(r.id)},onRequestDelete:s})}):null,TF=({conversations:e,activeId:t,actions:r,hasNextPage:i,isFetchingNextPage:a,onLoadMore:o,onRequestDelete:s,onSelect:c})=>{let l=(0,n.useRef)(null),u=bD({count:i?e.length+1:e.length,getScrollElement:()=>l.current,estimateSize:()=>54,overscan:10}),d=u.getVirtualItems();return(0,n.useEffect)(()=>{let t=d[d.length-1];t!==void 0&&t.index>=e.length-1&&i&&!a&&o()},[d,i,a,e.length,o]),(0,D.jsxs)(`div`,{className:K.rows,ref:l,children:[(0,D.jsx)(`div`,{style:{height:`${String(u.getTotalSize())}px`,width:`100%`,position:`relative`},children:d.map(n=>(0,D.jsx)(wF,{virtualRow:n,measureElement:u.measureElement,isLoaderRow:n.index>e.length-1,conversation:e[n.index],activeId:t,actions:r,isFetchingNextPage:a,onRequestDelete:s,onSelect:c},n.index>e.length-1?`loader`:e[n.index]?.id??n.index))}),e.length===0&&!i&&!a&&(0,D.jsx)(`p`,{className:K.empty,children:`No conversations here.`})]})},EF=({conversations:e,activeId:t,actions:n,filter:r,hasNextPage:i,isFetchingNextPage:a,onLoadMore:o,onRequestDelete:s,onSelect:c})=>(0,D.jsxs)(`div`,{className:K.list,children:[(0,D.jsxs)(`div`,{className:K.listHead,children:[(0,D.jsx)(`h1`,{className:K.listTitle,children:`Chats`}),(0,D.jsx)(_F,{onOpenConversation:c})]}),(0,D.jsxs)(`div`,{className:K.search,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search conversations`,value:r.search,onChange:e=>{r.onSearchChange(e.target.value)}}),r.search.length>0&&(0,D.jsx)(`button`,{type:`button`,className:K.searchClearBtn,"aria-label":`Clear search`,onClick:()=>{r.onSearchChange(``)},children:(0,D.jsx)(oi,{size:14})})]}),(0,D.jsx)(CF,{active:r.tab,counts:r.counts,onSelect:r.onTabChange}),(0,D.jsx)(TF,{conversations:e,activeId:t,actions:n,hasNextPage:i,isFetchingNextPage:a,onLoadMore:o,onRequestDelete:s,onSelect:c})]}),DF={root:`_root_1tuup_1`,list:`_list_1tuup_7`,listHead:`_listHead_1tuup_17`,title:`_title_1tuup_21`,pulse:`_pulse_1tuup_1`,search:`_search_1tuup_30`,rows:`_rows_1tuup_38`,row:`_row_1tuup_38`,rowAvatar:`_rowAvatar_1tuup_53`,rowBody:`_rowBody_1tuup_62`,line:`_line_1tuup_69`,medium:`_medium_1tuup_76`,full:`_full_1tuup_80`,view:`_view_1tuup_84`,viewHead:`_viewHead_1tuup_91`,messages:`_messages_1tuup_100`,bubbleWrap:`_bubbleWrap_1tuup_108`,me:`_me_1tuup_76`,bubbleAvatar:`_bubbleAvatar_1tuup_118`,bubble:`_bubble_1tuup_108`,narrow:`_narrow_1tuup_139`,wide:`_wide_1tuup_143`},OF=()=>(0,D.jsxs)(`div`,{className:DF.root,children:[(0,D.jsxs)(`div`,{className:DF.list,children:[(0,D.jsx)(`div`,{className:DF.listHead,children:(0,D.jsx)(`div`,{className:DF.title})}),(0,D.jsx)(`div`,{className:DF.search}),(0,D.jsx)(`div`,{className:DF.rows,children:[1,2,3,4,5].map(e=>(0,D.jsxs)(`div`,{className:DF.row,children:[(0,D.jsx)(`div`,{className:DF.rowAvatar}),(0,D.jsxs)(`div`,{className:DF.rowBody,children:[(0,D.jsx)(`div`,{className:T(DF.line,DF.medium)}),(0,D.jsx)(`div`,{className:T(DF.line,DF.full)})]})]},e))})]}),(0,D.jsxs)(`div`,{className:DF.view,children:[(0,D.jsxs)(`div`,{className:DF.viewHead,children:[(0,D.jsx)(`div`,{className:DF.rowAvatar}),(0,D.jsxs)(`div`,{className:DF.rowBody,children:[(0,D.jsx)(`div`,{className:T(DF.line,DF.medium)}),(0,D.jsx)(`div`,{className:T(DF.line,DF.medium,DF.narrow)})]})]}),(0,D.jsxs)(`div`,{className:DF.messages,children:[(0,D.jsxs)(`div`,{className:DF.bubbleWrap,children:[(0,D.jsx)(`div`,{className:DF.bubbleAvatar}),(0,D.jsx)(`div`,{className:DF.bubble})]}),(0,D.jsx)(`div`,{className:T(DF.bubbleWrap,DF.me),children:(0,D.jsx)(`div`,{className:DF.bubble})}),(0,D.jsxs)(`div`,{className:DF.bubbleWrap,children:[(0,D.jsx)(`div`,{className:DF.bubbleAvatar}),(0,D.jsx)(`div`,{className:T(DF.bubble,DF.wide)})]})]})]})]}),kF=class{gateway;constructor(e){this.gateway=e.usageGateway}execute(e){return this.gateway.listUsage(e)}},AF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.rotateSecret(e)}},jF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.getWebhookData()}},MF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.retryWebhook(e)}},NF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.skipWebhook(e)}},PF=class{gateway;constructor(e){this.gateway=e.groupCategoriesGateway}execute(){return this.gateway.listGroupCategories()}},FF=class{gateway;constructor(e){this.gateway=e.groupCategoriesGateway}execute(e){return this.gateway.saveGroupCategory(e)}},IF=class{gateway;constructor(e){this.gateway=e.groupCategoriesGateway}execute(e){return this.gateway.deleteGroupCategory(e)}},LF=class{gateway;constructor(e){this.gateway=e.groupProvisioningGateway}execute(e){return this.gateway.provisionGroup(e)}},RF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listWebhookEndpoints()}},zF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.saveWebhookEndpoint(e)}},BF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.deleteWebhookEndpoint(e)}},VF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.sendTestEvent(e)}},HF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listPromoCategories()}},UF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.savePromoCategories(e)}},WF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listCommTemplates()}},GF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.saveCommTemplate(e)}},KF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.deleteCommTemplate(e)}},qF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(){return this.gateway.listPromotions()}},JF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.savePromotion(e)}},YF=class{gateway;constructor(e){this.gateway=e.settingsGateway}execute(e){return this.gateway.deletePromotion(e)}},XF=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(){return this.gateway.getContentPrefs()}},ZF=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(e){return this.gateway.saveContentPrefs(e)}},QF=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(){return this.gateway.listFeedCategories()}},$F=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}execute(e){return this.gateway.saveFeedCategories(e)}},eI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(){return this.gateway.listFeedTemplates()}},tI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.saveFeedTemplate(e)}},nI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.deleteFeedTemplate(e)}},rI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.listFeedCategoryItems(e)}},iI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e,t){return this.gateway.listExternalFeedCategoryItems(e,t)}},aI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.saveFeedCategoryItem(e)}},oI=class{gateway;constructor(e){this.gateway=e.feedPrefsGateway}async execute(e){return this.gateway.deleteFeedCategoryItem(e)}},sI=class extends ci{},q=class extends sI{code=`SETTINGS_UNAVAILABLE`;constructor(e){super(`This settings area is currently unavailable. Please try again.`,{cause:e})}},cI=class extends sI{code=`SETTINGS_INVALID_FIELD`;constructor(e){super(e)}},lI=[{id:`text`,label:`Text`},{id:`id`,label:`ID / Code`},{id:`pill`,label:`Status pill`},{id:`date`,label:`Date`},{id:`link`,label:`Link`},{id:`person`,label:`Person`}],uI=[`Hash`,`GraduationCap`,`Users`,`Building2`,`Briefcase`,`BookOpen`,`Globe`],dI=(e,t)=>e.branchHours[t]??e.defaultHours,fI=e=>Object.values(e).every(e=>e.active?ND.create(e.from,e.to).ok:!0),pI=e=>fI(e.defaultHours)&&Object.values(e.branchHours).every(e=>fI(e));({commission:[{token:`university`,label:`University`,description:`Partner university name`},{token:`commission_amount`,label:`Commission amount`,description:`Payout per enrolled student`,type:`currency`},{token:`commission_group`,label:`Commission group`,description:`Tier / group label (e.g. Gold)`,type:`badge`},{token:`minimum_student_requirement`,label:`Minimum students`,description:`Students needed to qualify`,type:`number`},{token:`account_intake`,label:`Intake`,description:`Eligible intake window`},{token:`start_from`,label:`Start date`,description:`When the deal becomes active`,type:`date`}],university:[{token:`university_name`,label:`University name`,description:`Name of the new university`},{token:`location`,label:`Location`,description:`City / country`},{token:`ranking`,label:`Ranking`,description:`League-table position or "New"`,type:`badge`},{token:`added_date`,label:`Added date`,description:`When it joined the catalog`,type:`date`}],course:[{token:`course_name`,label:`Course name`,description:`Name of the new course`},{token:`university`,label:`University`,description:`University offering the course`},{token:`level`,label:`Level`,description:`e.g. Undergraduate, Masters`},{token:`intake`,label:`Intake`,description:`Available intake window`},{token:`mode`,label:`Mode`,description:`On-campus, Online or Blended`}],event:[{token:`event_title`,label:`Event title`,description:`Name of the event`},{token:`event_location`,label:`Event location`,description:`Venue or "Online"`},{token:`event_date`,label:`Event date`,description:`When the event runs`,type:`date`},{token:`event_type`,label:`Event type`,description:`Webinar, Open day, Workshop…`,type:`badge`}],generic:[{token:`item_title`,label:`Item title`,description:`Title of each promo item you add`},{token:`item_description`,label:`Item description`,description:`Short line under the title`},{token:`category_name`,label:`Category name`,description:`The category's display name`},{token:`badge`,label:`Badge`,description:`Small label, e.g. "New" or "Hot"`,type:`badge`}]}).generic;var mI=e=>[...e.matchAll(/\{\{\s*([a-z0-9_]+)\s*\}\}/gi)].map(e=>e[1]??``).filter(e=>e!==``),hI=(e,t)=>{let n=mI(e);return n.length>0&&n.every(e=>(t[e]??``)===``)?``:e.replace(/\{\{\s*([a-z0-9_]+)\s*\}\}/gi,(e,n)=>t[n]??``)},gI=(e,t)=>({statusLabel:hI(e.statusLabel,t),mainHeader:hI(e.mainHeader,t),cardTitle:hI(e.cardTitle,t),cardSubtitle:hI(e.cardSubtitle,t),dateLine:hI(e.dateLine,t),badgeText:hI(e.badgeText,t),amountText:hI(e.amountText,t),ctaText:hI(e.ctaText,t)}),_I={2:3e3,3:2500,4:2e3,5:1500},vI=class{id;name;role;level;msgs;audioCalls;audioMins;videoCalls;videoMins;constructor(e){this.id=e.id,this.name=e.name,this.role=e.role,this.level=e.level,this.msgs=e.msgs,this.audioCalls=e.audioCalls,this.audioMins=e.audioMins,this.videoCalls=e.videoCalls,this.videoMins=e.videoMins}get creditLimit(){return _I[this.level]??1500}get usagePct(){return Math.round(this.msgs/this.creditLimit*100)}},yI=class{gateway;constructor(e){this.gateway=e.orgSettingsGateway}execute(){return this.gateway.getOrgSettings()}},bI=class{gateway;constructor(e){this.gateway=e.orgSettingsGateway}execute(e){return pI(e)?this.gateway.saveOrgSettings(e):Promise.resolve(N(new cI(`Work hours start and end times cannot be identical.`)))}},xI=W(G({id:H(),name:H(),role:H(),level:U().int(),msgs:U().int(),audioCalls:U().int(),audioMins:U().int(),videoCalls:U().int(),videoMins:U().int(),creditLimit:U().int(),usagePct:U().int()})),SI=G({id:H().uuid(),name:H(),direction:FA([H(),U()]),owner:H().nullable().optional(),url:H().nullable().optional(),eventKey:H(),secret:H(),status:FA([H(),U()]),health:G({lastDelivery:H().nullable().optional(),succeeded:U().int().nullable().optional(),failed:U().int().nullable().optional()}).nullable().optional(),extraProperties:RA(PA()).optional()}),CI=G({items:W(SI),totalCount:U().int()}),wI=G({key:H(),label:H(),type:H(),icon:H().nullable().optional(),source:H().nullable().optional(),visible:NA()});G({items:W(G({id:H().uuid(),tenantId:H().uuid().nullable().optional(),name:H(),description:H().nullable().optional(),accent:H(),icon:H(),locked:NA(),fields:W(wI),webhookId:H().uuid().nullable().optional()})),totalCount:U().int()});var TI=G({id:H(),name:H(),slug:H(),desc:H(),cat:H(),url:H(),color:H(),status:FA([H(),U()]),webhooks:U().int(),lastSync:H()}),EI=G({key:H(),app:H(),desc:H(),ver:H(),hooks:U().int(),schema:H()}),DI=G({id:H(),webhook:H(),event:H(),reqId:H(),status:H(),code:U().int(),duration:U().int(),attempts:U().int(),ts:H()}),OI=G({id:H(),webhook:H(),event:H(),attempt:U().int(),nextRetry:H(),error:H()}),kI=G({id:H(),name:H(),desc:H(),cat:H(),fields:W(H()),event:H(),method:H(),url:H(),payload:H()}),AI=G({apps:W(TI),events:W(EI),logs:W(DI),retryQueue:W(OI),templates:W(kI)}),jI=e=>new vI({id:e.id,name:e.name,role:e.role,level:e.level,msgs:e.msgs,audioCalls:e.audioCalls,audioMins:e.audioMins,videoCalls:e.videoCalls,videoMins:e.videoMins}),MI=e=>{if(typeof e==`number`)return e===1?`paused`:e===2?`error`:`active`;let t=e.toLowerCase();return t===`paused`?`paused`:t===`error`?`error`:`active`},NI=e=>typeof e==`number`?e===1?`outbound`:`inbound`:e.toLowerCase()===`outbound`?`outbound`:`inbound`,PI=e=>{let t=e.health,n=t?.succeeded??0,r=t?.failed??0,i=n+r,a=i===0?100:Math.round(n/i*100);return{id:e.id,name:e.name,direction:NI(e.direction),owner:e.owner??``,url:e.url??``,eventKey:e.eventKey,secret:e.secret,status:MI(e.status),health:{lastDelivery:t?.lastDelivery??null,successRate:a,failures:r},extraProperties:e.extraProperties??{}}},FI=e=>({apps:e.apps.map(e=>({id:e.id,name:e.name,slug:e.slug,desc:e.desc,cat:e.cat,url:e.url,color:e.color,status:MI(e.status),webhooks:e.webhooks,lastSync:e.lastSync})),events:e.events.map(e=>({key:e.key,app:e.app,desc:e.desc,ver:e.ver,hooks:e.hooks,schema:e.schema})),logs:e.logs.map(e=>({id:e.id,webhook:e.webhook,event:e.event,reqId:e.reqId,status:e.status,code:e.code,duration:e.duration,attempts:e.attempts,ts:e.ts})),retryQueue:e.retryQueue.map(e=>({id:e.id,webhook:e.webhook,event:e.event,attempt:e.attempt,nextRetry:e.nextRetry,error:e.error})),templates:e.templates.map(e=>({id:e.id,name:e.name,desc:e.desc,cat:e.cat,fields:e.fields,event:e.event,method:e.method,url:e.url,payload:e.payload}))}),II=`/api/app/usage`,LI={week:`Week`,month:`Month`,quarter:`Quarter`,all:`All`},RI=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-usage-gateway`)}async listUsage(e){try{let t=await this.httpClient.get(`${II}?period=${LI[e]}`),n=xI.safeParse(t);return n.success?M(n.data.map(jI)):(this.logger.error(`Usage returned an unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.logger.error(`List usage failed`,e),N(new q(e))}}},zI=W(G({key:H(),label:H(),color:H(),templateIds:W(H()).optional().default([]),webhookId:H().nullable().optional()})),BI=G({seeMore:W(H()),seeLess:W(H()),muted:W(H()),preferredDepts:W(H()),hiddenDepts:W(H()),priorityOn:NA()}),VI=G({id:H().uuid(),name:H(),priority:U().int(),color:H(),active:NA(),templateId:H(),webhookId:H().uuid().nullable().optional()}),HI=G({items:W(VI),totalCount:U().int()}),UI=W(VI),WI=G({token:H(),label:H(),description:H(),type:H()}),GI=G({id:H().uuid(),type:H(),name:H(),statusLabel:H(),mainHeader:H(),cardTitle:H(),cardSubtitle:H(),dateLine:H(),badgeText:H(),amountText:H(),ctaText:H(),custom:NA(),fields:W(WI)}),KI=G({items:W(GI),totalCount:U().int()}),qI=G({id:H().uuid(),categoryId:H(),values:RA(H())}),JI=G({items:W(qI),totalCount:U().int()}),YI=G({id:H().uuid(),type:H(),name:H(),postTitle:H().optional().default(``),postBody:H().optional().default(``),custom:NA().optional().default(!1),fields:W(WI).optional().default([])}),XI=G({items:W(YI),totalCount:U().int()}),ZI=G({id:H().uuid(),categoryKey:H(),values:RA(H())}),QI=W(ZI),$I=e=>({key:e.key,label:e.label,color:e.color,templateIds:e.templateIds,webhookId:e.webhookId??void 0}),eL=e=>({seeMore:e.seeMore,seeLess:e.seeLess,muted:e.muted,preferredDepts:e.preferredDepts,hiddenDepts:e.hiddenDepts,priorityOn:e.priorityOn}),tL=e=>({id:e.id,type:e.type,name:e.name,postTitle:e.postTitle,postBody:e.postBody,custom:e.custom,fields:e.fields.map(e=>({token:e.token,label:e.label,description:e.description,type:e.type}))}),nL=e=>({id:e.id,categoryKey:e.categoryKey,values:e.values}),rL=class{httpClient;settingsLogger;constructor(e){this.httpClient=e.httpClient,this.settingsLogger=e.logger.child(`http-feed-preferences-gateway`)}async getContentPrefs(){try{let e=await this.httpClient.get(`/api/app/feed/content-prefs`),t=BI.safeParse(e);return t.success?M(eL(t.data)):(this.settingsLogger.error(`Content preferences returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`Get content preferences failed`,e),N(new q(e))}}async saveContentPrefs(e){try{let t=await this.httpClient.post(`/api/app/feed/save-content-prefs`,e),n=BI.safeParse(t);return n.success?M(eL(n.data)):(this.settingsLogger.error(`Saved content preferences returned an unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.settingsLogger.error(`Save content preferences failed`,e),N(new q(e))}}async listFeedCategories(){try{let e=await this.httpClient.get(`/api/app/feed/feed-categories`),t=zI.safeParse(e);return t.success?M(t.data.map($I)):(this.settingsLogger.error(`Feed categories returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List feed categories failed`,e),N(new q(e))}}async saveFeedCategories(e){try{let t=await this.httpClient.post(`/api/app/feed/save-feed-categories`,{categories:[...e]}),n=zI.safeParse(t);return n.success?M(n.data.map($I)):(this.settingsLogger.error(`Saved feed categories returned an unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.settingsLogger.error(`Save feed categories failed`,e),N(new q(e))}}async listFeedTemplates(){try{let e=await this.httpClient.get(`/api/app/feed/feed-templates`),t=XI.safeParse(e);return t.success?M(t.data.items.map(tL)):(this.settingsLogger.error(`Feed templates returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List feed templates failed`,e),N(new q(e))}}async saveFeedTemplate(e){try{let t={id:e.id.startsWith(`tpl-`)?null:e.id,type:e.type,name:e.name,postTitle:e.postTitle,postBody:e.postBody,custom:e.custom??!1,fields:e.fields??[]},n=await this.httpClient.post(`/api/app/feed/save-feed-template`,t),r=YI.safeParse(n);return r.success?M(tL(r.data)):(this.settingsLogger.error(`Save feed template returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save feed template failed`,e),N(new q(e))}}async deleteFeedTemplate(e){try{return await this.httpClient.delete(`/api/app/feed/${e}/feed-template`),M(e)}catch(e){return this.settingsLogger.error(`Delete feed template failed`,e),N(new q(e))}}async listFeedCategoryItems(e){try{let t=e?`?categoryKey=${encodeURIComponent(e)}`:``,n=await this.httpClient.get(`/api/app/feed/feed-category-items${t}`),r=QI.safeParse(n);return r.success?M(r.data.map(nL)):(this.settingsLogger.error(`Feed category items returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`List feed category items failed`,e),N(new q(e))}}async listExternalFeedCategoryItems(e,t){try{let n=t?`&query=${encodeURIComponent(t)}`:``,r=await this.httpClient.get(`/api/app/feed/external-category-items?categoryKey=${encodeURIComponent(e)}${n}`),i=QI.safeParse(r);return i.success?M(i.data.map(nL)):(this.settingsLogger.error(`External feed category items returned an unexpected shape`,i.error),N(new q(i.error)))}catch(e){return this.settingsLogger.error(`List external feed category items failed`,e),N(new q(e))}}async saveFeedCategoryItem(e){try{let t={id:e.id.startsWith(`item-`)||e.id.startsWith(`promo-`)?null:e.id,categoryKey:e.categoryKey,values:e.values},n=await this.httpClient.post(`/api/app/feed/save-feed-category-item`,t),r=ZI.safeParse(n);return r.success?M(nL(r.data)):(this.settingsLogger.error(`Save feed category item returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save feed category item failed`,e),N(new q(e))}}async deleteFeedCategoryItem(e){try{return await this.httpClient.delete(`/api/app/feed/${e}/feed-category-item`),M(e)}catch(e){return this.settingsLogger.error(`Delete feed category item failed`,e),N(new q(e))}}},iL=G({active:NA(),from:H(),to:H()}),aL=G({mon:iL,tue:iL,wed:iL,thu:iL,fri:iL,sat:iL,sun:iL}),oL=G({id:H(),name:H(),address:H(),flag:H(),color:H(),timezone:H()}),sL=G({details:G({name:H(),headquarters:H()}),branches:W(oL),defaultHours:aL,branchHours:RA(H(),aL)}),cL=e=>({active:e.active,from:e.from,to:e.to}),lL=e=>({mon:cL(e.mon),tue:cL(e.tue),wed:cL(e.wed),thu:cL(e.thu),fri:cL(e.fri),sat:cL(e.sat),sun:cL(e.sun)}),uL=e=>({id:e.id,name:e.name,address:e.address,flag:e.flag,color:e.color,timezone:e.timezone}),dL=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]=lL(r);return t},fL=e=>({details:{name:e.details.name,headquarters:e.details.headquarters},branches:e.branches.map(uL),defaultHours:lL(e.defaultHours),branchHours:dL(e.branchHours)}),pL=e=>({name:e.details.name,headquarters:e.details.headquarters,branches:e.branches,defaultHours:e.defaultHours,branchHours:e.branchHours}),mL=`/api/app/org-settings`,hL=`/api/app/org-settings/save`,gL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-org-settings-gateway`)}async getOrgSettings(){try{let e=await this.httpClient.get(mL);return this.parse(e,`Org settings`)}catch(e){return this.logger.error(`Get org settings failed`,e),N(new q(e))}}async saveOrgSettings(e){try{let t=await this.httpClient.post(hL,pL(e));return this.parse(t,`Saved org settings`)}catch(e){return this.logger.error(`Save org settings failed`,e),N(new q(e))}}parse(e,t){let n=sL.safeParse(e);return n.success?M(fL(n.data)):(this.logger.error(`${t} returned an unexpected shape`,n.error),N(new q(n.error)))}},_L=e=>({id:e.id,name:e.name,priority:e.priority,color:e.color,active:e.active,templateId:e.templateId,webhookId:e.webhookId??null}),vL=e=>({id:e.id,type:e.type,name:e.name,statusLabel:e.statusLabel,mainHeader:e.mainHeader,cardTitle:e.cardTitle,cardSubtitle:e.cardSubtitle,dateLine:e.dateLine,badgeText:e.badgeText,amountText:e.amountText,ctaText:e.ctaText,custom:e.custom,fields:e.fields.map(e=>({token:e.token,label:e.label,description:e.description,type:e.type||`text`}))}),yL=e=>({id:e.id,categoryId:e.categoryId,values:{...e.values}}),bL=class{httpClient;settingsLogger;constructor(e){this.httpClient=e.httpClient,this.settingsLogger=e.logger.child(`http-promotions-gateway`)}async listPromoCategories(){try{let e=await this.httpClient.get(`/api/app/promo-category?maxResultCount=1000`),t=HI.safeParse(e);return t.success?M(t.data.items.map(_L)):(this.settingsLogger.error(`Promo categories returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List promo categories failed`,e),N(new q(e))}}async savePromoCategories(e){try{let t=e.map(e=>({id:e.id.startsWith(`pc-`)||e.id===`new`?null:e.id,name:e.name,color:e.color,active:e.active,templateId:e.templateId,webhookId:e.webhookId})),n=await this.httpClient.post(`/api/app/promo-category/save-list`,t),r=UI.safeParse(n);return r.success?M(r.data.map(_L)):(this.settingsLogger.error(`Save promo categories returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save promo categories failed`,e),N(new q(e))}}async listCommTemplates(){try{let e=await this.httpClient.get(`/api/app/comm-template?maxResultCount=1000`),t=KI.safeParse(e);return t.success?M(t.data.items.map(vL)):(this.settingsLogger.error(`Comm templates returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List comm templates failed`,e),N(new q(e))}}async saveCommTemplate(e){try{let t={id:e.id.startsWith(`tpl-`)?null:e.id,type:e.type,name:e.name,statusLabel:e.statusLabel,mainHeader:e.mainHeader,cardTitle:e.cardTitle,cardSubtitle:e.cardSubtitle,dateLine:e.dateLine,badgeText:e.badgeText,amountText:e.amountText,ctaText:e.ctaText,custom:e.custom??!1,fields:e.fields??[]},n=await this.httpClient.post(`/api/app/comm-template/save`,t),r=GI.safeParse(n);return r.success?M(vL(r.data)):(this.settingsLogger.error(`Save comm template returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save comm template failed`,e),N(new q(e))}}async deleteCommTemplate(e){try{return await this.httpClient.delete(`/api/app/comm-template/${e}`),M(e)}catch(e){return this.settingsLogger.error(`Delete comm template failed`,e),N(new q(e))}}async listPromotions(){try{let e=await this.httpClient.get(`/api/app/promotion?maxResultCount=1000`),t=JI.safeParse(e);return t.success?M(t.data.items.map(yL)):(this.settingsLogger.error(`Promotions returned an unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.settingsLogger.error(`List promotions failed`,e),N(new q(e))}}async savePromotion(e){try{let t={id:e.id,categoryId:e.categoryId,values:e.values},n=await this.httpClient.post(`/api/app/promotion/save`,t),r=qI.safeParse(n);return r.success?M(yL(r.data)):(this.settingsLogger.error(`Save promotion returned an unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.settingsLogger.error(`Save promotion failed`,e),N(new q(e))}}async deletePromotion(e){try{return await this.httpClient.delete(`/api/app/promotion/${e}`),M(e)}catch(e){return this.settingsLogger.error(`Delete promotion failed`,e),N(new q(e))}}},xL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-webhook-gateway`)}async listWebhookEndpoints(){try{let e=await this.httpClient.get(`/api/app/webhook-endpoint?maxResultCount=1000`),t=CI.safeParse(e);return t.success?M(t.data.items.map(PI)):(this.logger.error(`Webhook endpoints returned unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.logger.error(`List webhook endpoints failed`,e),N(new q(e))}}async saveWebhookEndpoint(e){try{let t={id:e.id,name:e.name,direction:e.direction===`inbound`?0:1,owner:e.owner,url:e.url,eventKey:e.eventKey,secret:e.secret,status:e.status===`active`?0:e.status===`paused`?1:2,extraProperties:e.extraProperties},n=await this.httpClient.post(`/api/app/webhook-endpoint/save`,t),r=SI.safeParse(n);return r.success?M(PI(r.data)):(this.logger.error(`Saved webhook endpoint returned unexpected shape`,r.error),N(new q(r.error)))}catch(e){return this.logger.error(`Save webhook endpoint failed`,e),N(new q(e))}}async deleteWebhookEndpoint(e){try{return await this.httpClient.delete(`/api/app/webhook-endpoint/${e}`),M(e)}catch(e){return this.logger.error(`Delete webhook endpoint failed`,e),N(new q(e))}}async rotateSecret(e){try{let t=await this.httpClient.post(`/api/app/webhook-endpoint/${e}/rotate-secret`),n=SI.safeParse(t);return n.success?M(PI(n.data)):(this.logger.error(`Rotated secret returned unexpected shape`,n.error),N(new q(n.error)))}catch(e){return this.logger.error(`Rotate signing secret failed`,e),N(new q(e))}}async getWebhookData(){try{let e=await this.httpClient.get(`/api/app/webhook-endpoint/webhook-data`),t=AI.safeParse(e);return t.success?M(FI(t.data)):(this.logger.error(`Webhook overview data returned unexpected shape`,t.error),N(new q(t.error)))}catch(e){return this.logger.error(`Get webhook overview data failed`,e),N(new q(e))}}async sendTestEvent(e){try{return await this.httpClient.post(`/api/app/webhook-endpoint/${e}/send-test-event`),M(void 0)}catch(e){return this.logger.error(`Send test event failed`,e),N(new q(e))}}async retryWebhook(e){try{return await this.httpClient.post(`/api/app/webhook-delivery/${e}/retry`),M(void 0)}catch(e){return this.logger.error(`Retry webhook delivery failed`,e),N(new q(e))}}async skipWebhook(e){try{return await this.httpClient.post(`/api/app/webhook-delivery/${e}/skip`),M(void 0)}catch(e){return this.logger.error(`Skip webhook delivery failed`,e),N(new q(e))}}},SL=G({key:H(),label:H(),type:U(),icon:H(),source:H(),visible:NA()}),CL=G({id:H(),name:H(),locked:NA(),description:H(),accent:H(),icon:U(),webhookId:H().nullable().optional(),fields:W(SL)}).passthrough(),wL=G({items:W(CL),totalCount:U()}),TL=e=>uI[e]??`Hash`,EL=e=>{let t=uI.indexOf(e);return t<0?0:t},DL=e=>lI[e]?.id??`text`,OL=e=>{let t=lI.findIndex(t=>t.id===e);return t<0?0:t},kL=e=>({id:e.id,tenantId:``,name:e.name,locked:e.locked,description:e.description,accent:e.accent,icon:TL(e.icon),webhookId:e.webhookId??null,fields:e.fields.map(t=>({id:`${e.id}:${t.key}`,key:t.key,label:t.label,type:DL(t.type),icon:t.icon,source:t.source,visible:t.visible}))}),AL=e=>({id:e.id,name:e.name,description:e.description,accent:e.accent,icon:EL(e.icon),webhookId:e.webhookId,fields:e.fields.map(e=>({key:e.key,label:e.label,type:OL(e.type),icon:e.icon,source:e.source,visible:e.visible}))}),jL=(e,t)=>{let n=t instanceof WO?ML(t.body):null;return n===null?(e.error(`Settings request failed`,t),new q(t)):(e.warn(`Settings request failed with server message`,{message:n}),new cI(n))},ML=e=>{if(typeof e!=`object`||!e||!(`error`in e))return null;let t=e.error;if(typeof t!=`object`||!t||!(`message`in t))return null;let n=t.message;return typeof n==`string`&&n.length>0?n:null},NL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-group-categories-gateway`)}async listGroupCategories(){try{let e=await this.httpClient.get(`/api/app/group-category?maxResultCount=1000`),t=wL.safeParse(e);return t.success?M(t.data.items.map(kL)):(this.logger.error(`Group categories returned unexpected shape`,t.error),N(new q(t.error)))}catch(e){return N(jL(this.logger,e))}}async saveGroupCategory(e){try{let t=await this.httpClient.post(`/api/app/group-category/save`,AL(e)),n=CL.safeParse(t);return n.success?M(kL(n.data)):(this.logger.error(`Saved group category returned unexpected shape`,n.error),N(new q(n.error)))}catch(e){return N(jL(this.logger,e))}}async deleteGroupCategory(e){try{return await this.httpClient.delete(`/api/app/group-category/${e}`),M(e)}catch(e){return N(jL(this.logger,e))}}},PL=G({conversationId:H(),isNew:NA(),skipped:NA()}),FL=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger.child(`http-group-provisioning-gateway`)}async provisionGroup(e){try{let t=await this.httpClient.post(`/api/app/group-provisioning/provision`,e),n=PL.safeParse(t);return n.success?M(n.data):(this.logger.error(`Provision group returned unexpected shape`,n.error),N(new q(n.error)))}catch(e){return N(jL(this.logger,e))}}},IL=e=>{let t=new RI({httpClient:e.httpClient,logger:e.logger}),n=new xL({httpClient:e.httpClient,logger:e.logger}),r=new rL({httpClient:e.httpClient,logger:e.logger}),i=new gL({httpClient:e.httpClient,logger:e.logger}),a=new bL({httpClient:e.httpClient,logger:e.logger}),o=new FL({httpClient:e.httpClient,logger:e.logger}),s=new NL({httpClient:e.httpClient,logger:e.logger}),c={usageGateway:t,logger:e.logger},l={groupCategoriesGateway:s,logger:e.logger},u={feedPrefsGateway:r,logger:e.logger},d={orgSettingsGateway:i,logger:e.logger},f={settingsGateway:a,logger:e.logger},p={settingsGateway:n,logger:e.logger};return{listUsage:new kF(c),getWebhookData:new jF(p),listGroupCategories:new PF(l),saveGroupCategory:new FF(l),deleteGroupCategory:new IF(l),listWebhookEndpoints:new RF(p),saveWebhookEndpoint:new zF(p),deleteWebhookEndpoint:new BF(p),rotateSecret:new AF(p),sendTestEvent:new VF(p),retryWebhook:new MF(p),skipWebhook:new NF(p),listPromoCategories:new HF(f),savePromoCategories:new UF(f),listCommTemplates:new WF(f),saveCommTemplate:new GF(f),deleteCommTemplate:new KF(f),listPromotions:new qF(f),savePromotion:new JF(f),deletePromotion:new YF(f),getOrgSettings:new yI(d),saveOrgSettings:new bI(d),getContentPrefs:new XF(u),saveContentPrefs:new ZF(u),listFeedCategories:new QF(u),saveFeedCategories:new $F(u),listFeedTemplates:new eI(u),saveFeedTemplate:new tI(u),deleteFeedTemplate:new nI(u),listFeedCategoryItems:new rI(u),listExternalFeedCategoryItems:new iI(u),saveFeedCategoryItem:new aI(u),deleteFeedCategoryItem:new oI(u),provisionGroup:new LF({groupProvisioningGateway:o,logger:e.logger})}},LL=(0,n.createContext)(null),RL=({module:e,children:t})=>(0,D.jsx)(LL.Provider,{value:e,children:t}),zL=()=>{let e=(0,n.useContext)(LL);if(e===null)throw Error(`Settings hooks must be used within <SettingsModuleProvider>.`);return e},BL={promoCategories:[`settings`,`promo-categories`],commTemplates:[`settings`,`comm-templates`],promotions:[`settings`,`promotions`]},VL=()=>{let{listPromoCategories:e}=zL();return rN({queryKey:BL.promoCategories,queryFn:()=>P(e.execute())})},HL=()=>{let{listCommTemplates:e}=zL();return rN({queryKey:BL.commTemplates,queryFn:()=>P(e.execute())})},UL=()=>{let{listPromotions:e}=zL();return rN({queryKey:BL.promotions,queryFn:()=>P(e.execute())})},WL={usage:[`settings`,`usage`],groupCategories:[`settings`,`group-categories`],orgSettings:[`settings`,`org-settings`],contentPrefs:[`settings`,`content-prefs`],feedCategories:[`settings`,`feed-categories`],feedTemplates:[`settings`,`feed-templates`],feedCategoryItems:[`settings`,`feed-category-items`]},GL=()=>{let{listGroupCategories:e}=zL();return rN({queryKey:WL.groupCategories,queryFn:()=>P(e.execute())})},KL=()=>{let{getOrgSettings:e}=zL();return rN({queryKey:WL.orgSettings,queryFn:()=>P(e.execute())})},qL=()=>{let{listFeedTemplates:e}=zL();return rN({queryKey:WL.feedTemplates,queryFn:()=>P(e.execute())})},JL=e=>{let{listFeedCategoryItems:t}=zL();return rN({queryKey:[...WL.feedCategoryItems,e??`all`],queryFn:()=>P(t.execute(e))})},YL=(e,t,n=!0)=>{let{listExternalFeedCategoryItems:r}=zL();return rN({queryKey:[...WL.feedCategoryItems,`external`,e,t??``],queryFn:()=>P(r.execute(e,t)),enabled:n&&e!==``})},XL={screen:`_screen_15ft6_1`,center:`_center_15ft6_9`,head:`_head_15ft6_15`,crumb:`_crumb_15ft6_23`,title:`_title_15ft6_28`,subtitle:`_subtitle_15ft6_38`,muted:`_muted_15ft6_44`,strong:`_strong_15ft6_49`,code:`_code_15ft6_54`,tabs:`_tabs_15ft6_61`,tab:`_tab_15ft6_61`,tabActive:`_tabActive_15ft6_87`,filterBar:`_filterBar_15ft6_93`,pillsContainer:`_pillsContainer_15ft6_101`,pills:`_pills_15ft6_101`,pill:`_pill_15ft6_101`,pillAdd:`_pillAdd_15ft6_136`,pillBg:`_pillBg_15ft6_160`,pillLabel:`_pillLabel_15ft6_168`,pillActive:`_pillActive_15ft6_173`,pillChipActive:`_pillChipActive_15ft6_177`,select:`_select_15ft6_183`,input:`_input_15ft6_184`,inputInvalid:`_inputInvalid_15ft6_203`,fieldError:`_fieldError_15ft6_209`,kpiRow:`_kpiRow_15ft6_221`,kpiCard:`_kpiCard_15ft6_227`,kpiIcon:`_kpiIcon_15ft6_238`,kpiValue:`_kpiValue_15ft6_249`,kpiLabel:`_kpiLabel_15ft6_255`,tableWrap:`_tableWrap_15ft6_262`,table:`_table_15ft6_262`,th:`_th_15ft6_277`,row:`_row_15ft6_289`,barTrack:`_barTrack_15ft6_300`,barFill:`_barFill_15ft6_308`,barLabel:`_barLabel_15ft6_315`,pillBadge:`_pillBadge_15ft6_320`,pillOk:`_pillOk_15ft6_327`,pillBad:`_pillBad_15ft6_320`,field:`_field_15ft6_209`,label:`_label_15ft6_345`,req:`_req_15ft6_351`,formGrid:`_formGrid_15ft6_356`,swatches:`_swatches_15ft6_362`,swatch:`_swatch_15ft6_362`,swatchActive:`_swatchActive_15ft6_377`,checkbox:`_checkbox_15ft6_381`,formFooter:`_formFooter_15ft6_395`,editBtn:`_editBtn_15ft6_402`,deleteBtn:`_deleteBtn_15ft6_403`,prefsWrap:`_prefsWrap_15ft6_427`,catWrap:`_catWrap_15ft6_428`,promoWrap:`_promoWrap_15ft6_429`,tplWrap:`_tplWrap_15ft6_430`,guide:`_guide_15ft6_431`,retryList:`_retryList_15ft6_432`,prefBlock:`_prefBlock_15ft6_443`,prefHeading:`_prefHeading_15ft6_449`,prefRow:`_prefRow_15ft6_456`,catRow:`_catRow_15ft6_457`,promoRow:`_promoRow_15ft6_458`,dragHandle:`_dragHandle_15ft6_482`,priorityBadge:`_priorityBadge_15ft6_486`,prefDot:`_prefDot_15ft6_490`,promoNameBtn:`_promoNameBtn_15ft6_495`,activeCheck:`_activeCheck_15ft6_500`,promoRowDragging:`_promoRowDragging_15ft6_525`,promoRowDragOver:`_promoRowDragOver_15ft6_529`,dragHandleOff:`_dragHandleOff_15ft6_553`,prefName:`_prefName_15ft6_558`,catLabel:`_catLabel_15ft6_559`,prefBtns:`_prefBtns_15ft6_566`,prefBtn:`_prefBtn_15ft6_566`,prefBtnActive:`_prefBtnActive_15ft6_582`,catActions:`_catActions_15ft6_589`,catHead:`_catHead_15ft6_594`,webhookFilterBar:`_webhookFilterBar_15ft6_610`,catHeadDesc:`_catHeadDesc_15ft6_630`,catList:`_catList_15ft6_638`,catKey:`_catKey_15ft6_643`,promoList:`_promoList_15ft6_653`,promoRowOff:`_promoRowOff_15ft6_666`,reorder:`_reorder_15ft6_670`,reorderBtn:`_reorderBtn_15ft6_675`,priorityBadgeOff:`_priorityBadgeOff_15ft6_698`,tplHint:`_tplHint_15ft6_720`,tplEditLayout:`_tplEditLayout_15ft6_726`,tplEditForm:`_tplEditForm_15ft6_733`,tplEditPreview:`_tplEditPreview_15ft6_738`,tplLiveHead:`_tplLiveHead_15ft6_746`,tplMirrorHead:`_tplMirrorHead_15ft6_758`,tplLiveDot:`_tplLiveDot_15ft6_772`,tplPulse:`_tplPulse_15ft6_1`,promoNameTop:`_promoNameTop_15ft6_820`,promoName:`_promoName_15ft6_495`,promoNameOff:`_promoNameOff_15ft6_833`,promoNameMeta:`_promoNameMeta_15ft6_838`,tplBadge:`_tplBadge_15ft6_852`,catCount:`_catCount_15ft6_861`,campaignBox:`_campaignBox_15ft6_866`,campaignHead:`_campaignHead_15ft6_879`,campaignHeadTitle:`_campaignHeadTitle_15ft6_886`,campaignCount:`_campaignCount_15ft6_897`,campaignList:`_campaignList_15ft6_912`,seeAll:`_seeAll_15ft6_918`,cpTop:`_cpTop_15ft6_934`,cpHead:`_cpHead_15ft6_946`,cpTitle:`_cpTitle_15ft6_953`,cpCount:`_cpCount_15ft6_960`,cpSearch:`_cpSearch_15ft6_967`,cpSearchIcon:`_cpSearchIcon_15ft6_973`,cpSearchInput:`_cpSearchInput_15ft6_979`,cpList:`_cpList_15ft6_989`,cpFooter:`_cpFooter_15ft6_996`,campaignEmpty:`_campaignEmpty_15ft6_1007`,campaignRow:`_campaignRow_15ft6_1017`,campaignText:`_campaignText_15ft6_1028`,campaignTitle:`_campaignTitle_15ft6_1036`,campaignSub:`_campaignSub_15ft6_1042`,campaignMeta:`_campaignMeta_15ft6_1047`,campaignChip:`_campaignChip_15ft6_1054`,campaignChipLabel:`_campaignChipLabel_15ft6_1066`,campaignAmount:`_campaignAmount_15ft6_1071`,campaignBadge:`_campaignBadge_15ft6_1077`,promoPreview:`_promoPreview_15ft6_1086`,promoCard:`_promoCard_15ft6_1104`,promoCardHeader:`_promoCardHeader_15ft6_1113`,promoCardStatus:`_promoCardStatus_15ft6_1122`,promoCardHeading:`_promoCardHeading_15ft6_1133`,promoCardBody:`_promoCardBody_15ft6_1141`,promoItem:`_promoItem_15ft6_1148`,promoItemText:`_promoItemText_15ft6_1159`,promoItemTitle:`_promoItemTitle_15ft6_1168`,promoItemSub:`_promoItemSub_15ft6_1178`,promoItemDate:`_promoItemDate_15ft6_1185`,promoItemBadge:`_promoItemBadge_15ft6_1194`,promoItemAmount:`_promoItemAmount_15ft6_1203`,promoViewAll:`_promoViewAll_15ft6_1213`,promoStatus:`_promoStatus_15ft6_1239`,promoHeader:`_promoHeader_15ft6_1246`,promoCardInner:`_promoCardInner_15ft6_1253`,promoCardTitle:`_promoCardTitle_15ft6_1263`,promoCardSub:`_promoCardSub_15ft6_1268`,promoDate:`_promoDate_15ft6_1269`,promoCardFoot:`_promoCardFoot_15ft6_1274`,promoBadge:`_promoBadge_15ft6_1281`,promoAmount:`_promoAmount_15ft6_1290`,promoCta:`_promoCta_15ft6_1295`,tplLayout:`_tplLayout_15ft6_1302`,tplList:`_tplList_15ft6_1309`,tplItem:`_tplItem_15ft6_1315`,tplItemActive:`_tplItemActive_15ft6_1327`,tplDot:`_tplDot_15ft6_1332`,tplItemText:`_tplItemText_15ft6_1340`,tplItemName:`_tplItemName_15ft6_1346`,tplItemMeta:`_tplItemMeta_15ft6_1352`,editorPane:`_editorPane_15ft6_1357`,editorName:`_editorName_15ft6_1368`,editorMeta:`_editorMeta_15ft6_1379`,editorMetaCard:`_editorMetaCard_15ft6_1386`,iconPicker:`_iconPicker_15ft6_1393`,iconChoice:`_iconChoice_15ft6_1399`,iconChoiceActive:`_iconChoiceActive_15ft6_1417`,intGuide:`_intGuide_15ft6_1424`,intToggle:`_intToggle_15ft6_1430`,intChevron:`_intChevron_15ft6_1443`,intChevronOpen:`_intChevronOpen_15ft6_1447`,intSteps:`_intSteps_15ft6_1451`,intStep:`_intStep_15ft6_1451`,intNum:`_intNum_15ft6_1465`,intStepBody:`_intStepBody_15ft6_1479`,intStepTitle:`_intStepTitle_15ft6_1487`,intText:`_intText_15ft6_1493`,intIntro:`_intIntro_15ft6_1509`,intList:`_intList_15ft6_1516`,intOl:`_intOl_15ft6_1529`,registry:`_registry_15ft6_1552`,regStats:`_regStats_15ft6_1558`,regList:`_regList_15ft6_1564`,regRow:`_regRow_15ft6_1570`,regRowMain:`_regRowMain_15ft6_1589`,regRowName:`_regRowName_15ft6_1596`,regRowMeta:`_regRowMeta_15ft6_1602`,regRowEnd:`_regRowEnd_15ft6_1607`,regRate:`_regRate_15ft6_1614`,regDetail:`_regDetail_15ft6_1620`,regDetailHead:`_regDetailHead_15ft6_1628`,regDetailTitle:`_regDetailTitle_15ft6_1634`,feedEmpty:`_feedEmpty_15ft6_1641`,feedEmptyText:`_feedEmptyText_15ft6_1651`,feedEmptyTitle:`_feedEmptyTitle_15ft6_1656`,feedHead:`_feedHead_15ft6_1663`,feedTitle:`_feedTitle_15ft6_1670`,feedMeta:`_feedMeta_15ft6_1679`,feedActions:`_feedActions_15ft6_1685`,tplPreview:`_tplPreview_15ft6_1692`,tplPreviewLabel:`_tplPreviewLabel_15ft6_1702`,tplPreviewCard:`_tplPreviewCard_15ft6_1710`,tplPreviewAvatar:`_tplPreviewAvatar_15ft6_1721`,tplPreviewText:`_tplPreviewText_15ft6_1733`,tplPreviewTitleRow:`_tplPreviewTitleRow_15ft6_1740`,tplPreviewTitle:`_tplPreviewTitle_15ft6_1740`,tplPreviewPill:`_tplPreviewPill_15ft6_1753`,tplPreviewSub:`_tplPreviewSub_15ft6_1762`,fieldsHead:`_fieldsHead_15ft6_1770`,fieldList:`_fieldList_15ft6_1777`,fieldCard:`_fieldCard_15ft6_1783`,fieldCardMain:`_fieldCardMain_15ft6_1793`,fieldLabelInput:`_fieldLabelInput_15ft6_1800`,fieldTypeSelect:`_fieldTypeSelect_15ft6_1813`,fieldKeyRow:`_fieldKeyRow_15ft6_1825`,fieldKeyLabel:`_fieldKeyLabel_15ft6_1832`,fieldKeyInput:`_fieldKeyInput_15ft6_1839`,iconToggle:`_iconToggle_15ft6_1851`,iconToggleOn:`_iconToggleOn_15ft6_1864`,webhookBox:`_webhookBox_15ft6_1870`,schema:`_schema_15ft6_1883`,retryItem:`_retryItem_15ft6_1895`,retryInfo:`_retryInfo_15ft6_1905`,retryError:`_retryError_15ft6_1911`,retryActions:`_retryActions_15ft6_1916`,tplGrid:`_tplGrid_15ft6_1922`,tplCard:`_tplCard_15ft6_1928`,tplCardHead:`_tplCardHead_15ft6_1940`,tplCat:`_tplCat_15ft6_1947`,fieldRow:`_fieldRow_15ft6_1965`,tplSidebar:`_tplSidebar_15ft6_1990`,tplLock:`_tplLock_15ft6_1996`,lockBadge:`_lockBadge_15ft6_2002`,footerBtns:`_footerBtns_15ft6_2016`,copyRow:`_copyRow_15ft6_2023`,copyBtn:`_copyBtn_15ft6_2034`,webhookFoot:`_webhookFoot_15ft6_2056`,testBtn:`_testBtn_15ft6_2064`,fieldRef:`_fieldRef_15ft6_2083`,fieldRefHead:`_fieldRefHead_15ft6_2091`,fieldRefHint:`_fieldRefHint_15ft6_2108`,fieldRefList:`_fieldRefList_15ft6_2117`,fieldRefItem:`_fieldRefItem_15ft6_2122`,fieldRefToken:`_fieldRefToken_15ft6_2143`,fieldRefDesc:`_fieldRefDesc_15ft6_2155`,tokenWarn:`_tokenWarn_15ft6_2161`,tplEditMain:`_tplEditMain_15ft6_2181`,tplEditSide:`_tplEditSide_15ft6_2187`,tplEditWrap:`_tplEditWrap_15ft6_2194`,tplEditBar:`_tplEditBar_15ft6_2200`,tplBarSpacer:`_tplBarSpacer_15ft6_2209`,tcFieldsHead:`_tcFieldsHead_15ft6_2254`,tcRows:`_tcRows_15ft6_2263`,tcCard:`_tcCard_15ft6_2270`,tcCardTop:`_tcCardTop_15ft6_2280`,tcGrow:`_tcGrow_15ft6_2286`,tcType:`_tcType_15ft6_2300`,tcToken:`_tcToken_15ft6_2313`,currencyWrap:`_currencyWrap_15ft6_2328`,currencyPrefix:`_currencyPrefix_15ft6_2335`,currencyInput:`_currencyInput_15ft6_2341`,tokenRead:`_tokenRead_15ft6_2357`,tokenReadOver:`_tokenReadOver_15ft6_2379`,tokenReadStatic:`_tokenReadStatic_15ft6_2385`,tokenInput:`_tokenInput_15ft6_2393`,tokenPlaceholder:`_tokenPlaceholder_15ft6_2404`,tokenChip:`_tokenChip_15ft6_2409`,tokenChipBad:`_tokenChipBad_15ft6_2425`,tokenChipX:`_tokenChipX_15ft6_2431`,palette:`_palette_15ft6_2451`,paletteGroup:`_paletteGroup_15ft6_2461`,paletteGroupLabel:`_paletteGroupLabel_15ft6_2467`,paletteChips:`_paletteChips_15ft6_2475`,paletteChipWrap:`_paletteChipWrap_15ft6_2481`,paletteChip:`_paletteChip_15ft6_2475`,paletteGrip:`_paletteGrip_15ft6_2513`,paletteToken:`_paletteToken_15ft6_2518`,paletteDesc:`_paletteDesc_15ft6_2529`,paletteHint:`_paletteHint_15ft6_2535`,simMemberRow:`_simMemberRow_15ft6_2542`,simMemberRemove:`_simMemberRemove_15ft6_2549`,signatureContainer:`_signatureContainer_15ft6_2564`,signatureLabel:`_signatureLabel_15ft6_2570`,signatureCheckbox:`_signatureCheckbox_15ft6_2578`,signatureText:`_signatureText_15ft6_2587`,signatureTitle:`_signatureTitle_15ft6_2593`,signatureDesc:`_signatureDesc_15ft6_2600`},ZL=(e,t)=>{let n=new Date;return{item_count:String(t),current_year:String(n.getFullYear()),current_date:n.toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`}),...e}},QL=({card:e})=>(0,D.jsxs)(`div`,{className:XL.promoItem,children:[(0,D.jsxs)(`span`,{className:XL.promoItemText,children:[e.cardTitle!==``&&(0,D.jsx)(`span`,{className:XL.promoItemTitle,children:e.cardTitle}),e.cardSubtitle!==``&&(0,D.jsx)(`span`,{className:XL.promoItemSub,children:e.cardSubtitle}),e.dateLine!==``&&(0,D.jsx)(`span`,{className:XL.promoItemDate,children:e.dateLine})]}),e.amountText!==``&&(0,D.jsx)(`span`,{className:XL.promoItemAmount,children:e.amountText}),e.badgeText!==``&&e.amountText===``&&(0,D.jsx)(`span`,{className:XL.promoItemBadge,children:e.badgeText})]}),$L=({template:e,color:t,name:n,count:r,items:i,onViewAll:a})=>{let o=i[0];if(o===void 0)return null;let s=gI(e,ZL(o.values,r));return(0,D.jsxs)(A.div,{className:XL.promoCard,style:E({"--cat":t}),initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.22,ease:`easeOut`},children:[(0,D.jsxs)(`div`,{className:XL.promoCardHeader,children:[s.statusLabel!==``&&(0,D.jsx)(`span`,{className:XL.promoCardStatus,children:s.statusLabel}),(0,D.jsx)(In,{size:11,color:t})]}),(0,D.jsxs)(`div`,{className:XL.promoCardBody,children:[i.map(t=>(0,D.jsx)(QL,{card:gI(e,ZL(t.values,r))},t.id)),a!==void 0&&(0,D.jsxs)(`button`,{type:`button`,className:XL.promoViewAll,onClick:a,children:[`View all `,r,` `,n.toLowerCase()]})]})]})},eR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`start-call`)}async execute(e,t=`audio`){let n=await this.callGateway.start(e,t);return n.ok||this.logger.warn(`Start call failed`,{code:n.error.code}),n}},tR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`accept-call`)}async execute(e){let t=await this.callGateway.accept(e);return t.ok||this.logger.warn(`Accept call failed`,{code:t.error.code}),t}},nR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`decline-call`)}async execute(e){let t=await this.callGateway.decline(e);return t.ok||this.logger.warn(`Decline call failed`,{code:t.error.code}),t}},rR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`cancel-call`)}async execute(e){let t=await this.callGateway.cancel(e);return t.ok||this.logger.warn(`Cancel call failed`,{code:t.error.code}),t}},iR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`end-call`)}async execute(e){let t=await this.callGateway.end(e);return t.ok||this.logger.warn(`End call failed`,{code:t.error.code}),t}},aR=class{callGateway;logger;constructor(e){this.callGateway=e.callGateway,this.logger=e.logger.child(`get-call-history`)}async execute(e=0,t=20){let n=await this.callGateway.history(e,t);return n.ok||this.logger.warn(`Get call history failed`,{code:n.error.code}),n}},oR=`ringing`,sR=`callee_unavailable`,cR=class extends ci{},lR=class extends cR{code=`CALL_FAILED`;constructor(e=`The call could not be completed. Please try again.`,t){super(e,{cause:t})}},uR=G({token:H(),providerType:H(),roomId:H(),participantName:H()}).passthrough(),dR=G({callId:H(),status:H(),joinTicket:uR.nullish()}).passthrough(),fR=G({id:H(),callerUserId:H(),callerName:H(),calleeUserId:H(),calleeName:H(),type:H(),status:H(),endReason:H(),inbound:NA(),ringingAtUtc:H(),answeredAtUtc:H().nullish(),endedAtUtc:H().nullish(),durationSeconds:U()}).passthrough(),pR=G({totalCount:U(),items:W(fR)}).passthrough(),mR=e=>e===`video`?`video`:`audio`,hR=e=>({token:e.token,providerType:e.providerType,roomId:e.roomId,participantName:e.participantName}),gR=e=>({callId:e.callId,status:e.status===`callee_unavailable`?sR:oR,joinTicket:e.joinTicket?hR(e.joinTicket):null}),_R=e=>({id:e.id,callerUserId:e.callerUserId,callerName:e.callerName,calleeUserId:e.calleeUserId,calleeName:e.calleeName,type:mR(e.type),status:e.status,endReason:e.endReason,inbound:e.inbound,ringingAtUtc:e.ringingAtUtc,answeredAtUtc:e.answeredAtUtc??null,endedAtUtc:e.endedAtUtc??null,durationSeconds:e.durationSeconds}),vR=e=>({items:e.items.map(_R),total:e.totalCount}),yR=encodeURIComponent,bR=`/api/app/call`,xR={start:`${bR}/start`,accept:e=>`${bR}/${yR(e)}/accept`,decline:e=>`${bR}/${yR(e)}/decline`,cancel:e=>`${bR}/${yR(e)}/cancel`,end:e=>`${bR}/${yR(e)}/end`,history:(e,t)=>`${bR}/history?SkipCount=${String(e)}&MaxResultCount=${String(t)}`},SR=class{http;logger;constructor(e){this.http=e.httpClient,this.logger=e.logger.child(`http-call-gateway`)}async start(e,t){try{let n=await this.http.post(xR.start,{calleeUserId:e,type:t}),r=dR.safeParse(n);return r.success?M(gR(r.data)):this.fail(`Start returned an unexpected shape`,r.error)}catch(e){return this.fail(`Placing the call failed`,e)}}async accept(e){try{let t=await this.http.post(xR.accept(e)),n=uR.safeParse(t);return n.success?M(hR(n.data)):this.fail(`Accept returned an unexpected shape`,n.error)}catch(e){return this.fail(`Answering the call failed`,e)}}decline(e){return this.signal(xR.decline(e),`Declining the call failed`)}cancel(e){return this.signal(xR.cancel(e),`Canceling the call failed`)}end(e){return this.signal(xR.end(e),`Ending the call failed`)}async history(e,t){try{let n=await this.http.get(xR.history(e,t)),r=pR.safeParse(n);return r.success?M(vR(r.data)):this.fail(`History returned an unexpected shape`,r.error)}catch(e){return this.fail(`Loading call history failed`,e)}}async signal(e,t){try{return await this.http.post(e),M(void 0)}catch(e){return this.fail(t,e)}}fail(e,t){return this.logger.error(e,t),N(new lR(e,t))}},CR={IncomingCall:`IncomingCall`,CallAccepted:`CallAccepted`,CallDeclined:`CallDeclined`,CallCanceled:`CallCanceled`,CallEnded:`CallEnded`},wR=G({callId:H(),callerUserId:H(),callerName:H(),callerInitials:H().optional().default(``),callerColor:H().optional().default(``),type:H()}).passthrough(),TR=G({callId:H()}).passthrough(),ER=G({callId:H(),reason:H()}).passthrough(),DR=(e,t,n)=>{let r=wR.safeParse(e);return r.success?r.data:(n.warn(`Ignoring malformed call realtime payload`,{event:t}),null)},OR=(e,t,n)=>{let r=TR.safeParse(e);return r.success?r.data:(n.warn(`Ignoring malformed call realtime payload`,{event:t}),null)},kR=(e,t,n)=>{let r=ER.safeParse(e);return r.success?r.data:(n.warn(`Ignoring malformed call realtime payload`,{event:t}),null)},AR={phase:`idle`,callId:null,direction:null,peerUserId:null,peerName:``,peerInitials:``,peerColor:``,mediaType:`audio`,dialId:null,ticket:null,muted:!1,connected:!1,activeSinceMs:null,endReason:null},jR=()=>xE(e=>({...AR,incoming:({callId:t,peer:n,mediaType:r})=>{e({...AR,phase:`incoming`,callId:t,direction:`incoming`,peerUserId:n.userId,peerName:n.name,peerInitials:n.initials,peerColor:n.color,mediaType:r})},dialing:({peer:t,mediaType:n,dialId:r})=>{e({...AR,phase:`outgoing`,direction:`outgoing`,peerUserId:t.userId,peerName:t.name,peerInitials:t.initials,peerColor:t.color,mediaType:n,dialId:r})},attachOutgoing:({callId:t,ticket:n})=>{e(e=>e.direction!==`outgoing`||e.phase!==`outgoing`&&e.phase!==`active`?e:{callId:t,ticket:n})},activate:(t,n)=>{e(e=>({phase:`active`,ticket:t??e.ticket,activeSinceMs:e.activeSinceMs??n}))},markConnected:()=>{e({connected:!0})},ended:t=>{e({phase:`ended`,endReason:t,ticket:null,connected:!1})},reset:()=>{e({...AR})},setMuted:t=>{e({muted:t})}})),MR=e=>{let t={callGateway:new SR({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{startCall:new eR(t),acceptCall:new tR(t),declineCall:new nR(t),cancelCall:new rR(t),endCall:new iR(t),getCallHistory:new aR(t),realtime:e.realtime,store:jR(),logger:e.logger.child(`calls-realtime`)}},NR=(0,n.createContext)(null),PR=({module:e,children:t})=>(0,D.jsx)(NR.Provider,{value:e,children:t}),FR=class extends ci{},IR=class extends FR{code=`AUTH_INVALID_CREDENTIALS`;constructor(){super(`Your sign-in could not be completed. The link may have expired — please try again.`)}},LR=class extends FR{code=`AUTH_SERVICE_UNAVAILABLE`;constructor(e){super(`The authentication service is currently unavailable. Please try again.`,{cause:e})}},RR=class{id;email;fullName;userType;roles;constructor(e){if(e.id.trim().length===0)throw Error(`AuthenticatedUser requires a non-empty id.`);this.id=e.id,this.email=e.email,this.fullName=e.fullName.trim().length>0?e.fullName:e.email.value,this.userType=e.userType,this.roles=new Set(e.roles.map(e=>e.toLowerCase()))}hasRole(e){return this.roles.has(e.toLowerCase())}hasAnyRole(e){return e.some(e=>this.hasRole(e))}get roleNames(){return[...this.roles]}},zR=30,BR=class e{user;accessToken;refreshToken;tokenType;expiresAt;constructor(e){this.user=e.user,this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.tokenType=e.tokenType,this.expiresAt=e.expiresAt}isExpired(e){return this.expiresAt.getTime()-zR*1e3<=e.getTime()}isValid(e){return this.accessToken.length>0&&!this.isExpired(e)}get canRefresh(){return this.refreshToken!==null&&this.refreshToken.length>0}authorizationHeader(){return`${this.tokenType} ${this.accessToken}`}snapshot(){return{user:{id:this.user.id,email:this.user.email.value,fullName:this.user.fullName,roles:this.user.roleNames,userType:this.user.userType},accessToken:this.accessToken,refreshToken:this.refreshToken,tokenType:this.tokenType,expiresAtIso:this.expiresAt.toISOString()}}static restore(t){let n=DD.create(t.user.email);return CD(n)?n:M(new e({user:new RR({id:t.user.id,email:n.value,fullName:t.user.fullName,roles:t.user.roles,userType:t.user.userType}),accessToken:t.accessToken,refreshToken:t.refreshToken,tokenType:t.tokenType,expiresAt:new Date(t.expiresAtIso)}))}},VR=class{authGateway;sessionStore;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.logger=e.logger.child(`complete-sso-login`)}async execute(e){if(e.trim().length===0)return this.logger.warn(`SSO callback carried no secret`),N(new IR);let t=await this.authGateway.exchangeSsoSecret(e);return CD(t)?(this.logger.warn(`SSO secret exchange failed`,{code:t.error.code}),t):(this.sessionStore.save(t.value),this.logger.info(`User authenticated via UAPP SSO`,{userId:t.value.user.id}),t)}},HR=class{authGateway;sessionStore;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.logger=e.logger.child(`logout`)}async execute(e){e!==null&&await this.authGateway.signOut(e),this.sessionStore.clear(),this.logger.info(`Session cleared`)}},UR=class{authGateway;sessionStore;clock;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.clock=e.clock,this.logger=e.logger.child(`restore-session`)}async execute(){let e=this.sessionStore.load();if(e===null)return M(null);if(e.isValid(this.clock.now()))return M(e);let t=e.refreshToken;if(t===null||t.length===0)return this.sessionStore.clear(),M(null);let n=await this.authGateway.refresh(t);return CD(n)?(this.logger.info(`Could not refresh session; signing out`,{code:n.error.code}),this.sessionStore.clear(),M(null)):(this.sessionStore.save(n.value),M(n.value))}},WR=class{authGateway;sessionStore;logger;constructor(e){this.authGateway=e.authGateway,this.sessionStore=e.sessionStore,this.logger=e.logger.child(`refresh-session`)}async execute(e){let t=e.refreshToken;if(t===null||t.length===0)return this.logger.info(`No refresh token available; signing out`),this.sessionStore.clear(),N(new IR);let n=await this.authGateway.refresh(t);return CD(n)?(this.logger.info(`Could not refresh session; signing out`,{code:n.error.code}),this.sessionStore.clear(),n):(this.sessionStore.save(n.value),n)}},GR=G({access_token:H().min(1),token_type:H().min(1).optional().default(`Bearer`),expires_in:U().int().positive(),refresh_token:H().min(1).nullable().optional()}),KR=G({error:H().optional(),error_description:H().optional()}),qR=G({sub:H().min(1),email:H().optional(),name:H().optional(),role:FA([H(),W(H())]).optional()}).passthrough(),JR=e=>e.role===void 0?[]:typeof e.role==`string`?[e.role]:e.role,YR=e=>{let t=e.split(`.`)[1];if(t===void 0||t.length===0)return N(new LR(`Access token is not a JWT.`));let n=XR(t);if(n===null)return N(new LR(`Access token payload is not valid base64url.`));let r;try{r=JSON.parse(n)}catch(e){return N(new LR(e))}let i=qR.safeParse(r);return i.success?M(i.data):N(new LR(i.error))},XR=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.padEnd(Math.ceil(t.length/4)*4,`=`);try{let e=atob(n),t=new Uint8Array(e.length);for(let n=0;n<e.length;n+=1)t[n]=e.charCodeAt(n);return new TextDecoder().decode(t)}catch{return null}},ZR=(e,t)=>{let n=YR(e.access_token);if(CD(n))return n;let r=n.value.email??n.value.name;if(r===void 0||r.length===0)return N(new LR(`Access token carries no email/name claim.`));let i=DD.create(r);return CD(i)?N(new LR(i.error)):M(new BR({user:new RR({id:n.value.sub,email:i.value,fullName:n.value.name??i.value.value,roles:JR(n.value),userType:null}),accessToken:e.access_token,refreshToken:e.refresh_token??null,tokenType:e.token_type,expiresAt:new Date(t.getTime()+e.expires_in*1e3)}))},QR=`/connect/token`,$R=`CommunicationHub_App`,ez=`CommunicationHub offline_access`,tz=`uapp_sso`,nz=`refresh_token`,rz=`secret`,iz=class{httpClient;clock;logger;constructor(e){this.httpClient=e.httpClient,this.clock=e.clock,this.logger=e.logger.child(`uapp-sso-gateway`)}exchangeSsoSecret(e){return e.trim().length===0?Promise.resolve(N(new IR)):this.requestToken({grant_type:tz,[rz]:e,client_id:$R,scope:ez})}refresh(e){return this.requestToken({grant_type:nz,refresh_token:e,client_id:$R,scope:ez})}signOut(e){return this.logger.debug(`Sign-out is local-only for the SSO client; no server call made.`),Promise.resolve()}async requestToken(e){try{let t=await this.httpClient.postForm(QR,e,{anonymous:!0}),n=GR.safeParse(t);return n.success?ZR(n.data,this.clock.now()):(this.logger.error(`Token endpoint returned an unexpected shape`,n.error),N(new LR(n.error)))}catch(e){return N(this.mapError(e))}}mapError(e){return e instanceof WO?e.status===400||e.status===401?(this.logger.warn(`Token request was rejected`,{reason:az(e.body)}),new IR):(this.logger.error(`Token request failed with an unexpected status`,e),new LR(e)):(this.logger.error(`Token request failed`,e),new LR(e))}},az=e=>{let t=KR.safeParse(e);return t.success?t.data.error_description??t.data.error??`unknown`:`unknown`},oz=`auth.session`,sz=e=>`${e}.${oz}`,cz=G({user:G({id:H(),email:H(),fullName:H(),roles:W(H()),userType:H().nullable()}),accessToken:H(),refreshToken:H().nullable(),tokenType:H(),expiresAtIso:H()}),lz=class{storage;logger;key;constructor(e){this.storage=e.storage,this.logger=e.logger.child(`session-store`),this.key=sz(e.namespace)}load(){let e=this.storage.getItem(this.key);if(e===null)return null;let t=cz.safeParse(this.tryParseJson(e));if(!t.success)return this.logger.warn(`Discarding corrupt persisted session`),this.clear(),null;let n=BR.restore(t.data);return CD(n)?(this.logger.warn(`Discarding unrestorable persisted session`),this.clear(),null):n.value}save(e){this.storage.setItem(this.key,JSON.stringify(e.snapshot()))}clear(){this.storage.removeItem(this.key)}tryParseJson(e){try{return JSON.parse(e)}catch{return null}}},uz=e=>xE((t,n)=>({status:`initializing`,session:null,error:null,loginUrl:e.loginUrl,initialize:async()=>{t({status:`initializing`,error:null});let n=await e.restoreSessionUseCase.execute(),r=CD(n)?null:n.value;e.setAccessToken(r?.accessToken??null),t({status:r?`authenticated`:`unauthenticated`,session:r})},completeLogin:async n=>{t({status:`authenticating`,error:null});let r=await e.completeSsoLoginUseCase.execute(n);return CD(r)?(t({status:`unauthenticated`,session:null,error:r.error.message}),!1):(e.setAccessToken(r.value.accessToken),t({status:`authenticated`,session:r.value,error:null}),!0)},logout:async()=>{await e.logoutUseCase.execute(n().session),e.setAccessToken(null),t({status:`unauthenticated`,session:null,error:null})},refreshSession:async()=>{let r=n().session;if(r===null)return!1;let i=await e.refreshSessionUseCase.execute(r);return CD(i)?(e.setAccessToken(null),t({status:`unauthenticated`,session:null}),!1):(e.setAccessToken(i.value.accessToken),t({status:`authenticated`,session:i.value,error:null}),!0)},clearError:()=>{t({error:null})}})),dz=(0,n.createContext)(null),fz=({store:e,children:t})=>((0,n.useEffect)(()=>{e.getState().initialize()},[e]),(0,D.jsx)(dz.Provider,{value:e,children:t})),pz=e=>{let t=(0,n.useContext)(dz);if(t===null)throw Error(`Auth hooks must be used within <AuthStoreProvider>.`);return CE(t,e)},mz=()=>{let e=HM(),t=pz(e=>e.status),n=pz(e=>e.session?.user??null),r=pz(e=>e.error),i=pz(e=>e.loginUrl),a=pz(e=>e.completeLogin),o=pz(e=>e.logout),s=pz(e=>e.clearError);return{status:t,user:n,error:r,isAuthenticated:t===`authenticated`,isInitializing:t===`initializing`,isBusy:t===`authenticating`,loginUrl:i,completeLogin:a,logout:async()=>{e.clear(),await o()},clearError:s}},hz=(e,t)=>{let n=e.status===`connected`;return e.onStatusChange(e=>{e===`connected`&&(n&&t.getState().phase===`outgoing`&&t.getState().reset(),n=!0)})},gz=e=>{let{connection:t,store:n,declineCall:r,logger:i}=e,a=[hz(t,n),t.on(CR.IncomingCall,e=>{let t=DR(e,CR.IncomingCall,i);if(t===null)return;let a=n.getState().phase;if(a!==`idle`&&a!==`ended`){r.execute(t.callId);return}n.getState().incoming({callId:t.callId,peer:{userId:t.callerUserId,name:t.callerName,initials:t.callerInitials,color:t.callerColor},mediaType:t.type===`video`?`video`:`audio`})}),t.on(CR.CallAccepted,e=>{let t=OR(e,CR.CallAccepted,i);if(t===null)return;let r=n.getState();r.callId===t.callId&&(r.direction===`outgoing`?r.activate(null,Date.now()):r.phase===`incoming`&&r.reset())}),t.on(CR.CallDeclined,e=>{let t=OR(e,CR.CallDeclined,i);t!==null&&n.getState().callId===t.callId&&n.getState().ended(`declined`)}),t.on(CR.CallCanceled,e=>{let t=OR(e,CR.CallCanceled,i);t!==null&&n.getState().callId===t.callId&&n.getState().reset()}),t.on(CR.CallEnded,e=>{let t=kR(e,CR.CallEnded,i);t!==null&&n.getState().callId===t.callId&&n.getState().ended(t.reason)})];return()=>{for(let e of a)e()}},_z=()=>{let e=(0,n.useContext)(NR);if(e===null)throw Error(`Calls hooks must be used within <CallsModuleProvider>.`);return e},vz=e=>CE(_z().store,e),yz=()=>{let{isAuthenticated:e}=mz(),{realtime:t,store:r,declineCall:i,logger:a}=_z();(0,n.useEffect)(()=>gz({connection:t,store:r,declineCall:i,logger:a}),[t,r,i,a]),(0,n.useEffect)(()=>{if(!e){t.stop(),r.getState().reset();return}return t.start().catch(()=>void 0),()=>{t.stop()}},[e,t,r])},bz=({children:e})=>(yz(),(0,D.jsx)(D.Fragment,{children:e})),xz=(e,t)=>{let n=e.currentTime+t.atMs/1e3,r=t.durMs/1e3,i=e.createGain();i.connect(e.destination),i.gain.setValueAtTime(1e-4,n),i.gain.linearRampToValueAtTime(t.volume,n+.02),i.gain.exponentialRampToValueAtTime(Math.max(1e-4,t.volume*.5),n+r*.6),i.gain.linearRampToValueAtTime(1e-4,n+r);let a=e.createOscillator();a.type=t.type??`triangle`,a.frequency.value=t.freq,a.connect(i),a.start(n),a.stop(n+r+.03)},Sz=()=>{let e=globalThis,t=e.AudioContext??e.webkitAudioContext;return typeof t==`function`?t:null},Cz=()=>{let e=null,t=null,n=()=>{if(e!==null)return e;let t=Sz();return t===null?null:(e=new t,e)},r=()=>{t!==null&&(window.clearInterval(t),t=null)},i=e=>{let t=n();t!==null&&xz(t,e)},a=(e,i)=>{r();let a=n();a!==null&&(a.resume().catch(()=>void 0),e(),t=window.setInterval(e,i))};return{unlock:()=>{let e=n();e!==null&&e.resume().catch(()=>void 0)},playRing:()=>{let e=e=>{i({freq:440,atMs:e+0,durMs:230,volume:.38}),i({freq:554,atMs:e+190,durMs:230,volume:.38}),i({freq:659,atMs:e+380,durMs:230,volume:.38}),i({freq:880,atMs:e+570,durMs:340,volume:.4})};a(()=>{e(0),e(900)},3e3)},playRingback:()=>{a(()=>{i({freq:440,atMs:0,durMs:1200,volume:.13,type:`sine`}),i({freq:480,atMs:0,durMs:1200,volume:.11,type:`sine`})},3e3)},stop:r,dispose:()=>{r(),e!==null&&(e.close().catch(()=>void 0),e=null)}}},wz=(0,n.lazy)(()=>Promise.resolve().then(()=>require("./realtimekit-call-media-Bw4ob8QT.cjs")).then(e=>({default:e.RealtimeKitCallMedia}))),Tz=e=>{let t=e.ticket.providerType;return(0,D.jsx)(n.Suspense,{fallback:null,children:t===`cloudflare`?(0,D.jsx)(wz,{...e}):null})},Ez={overlay:`_overlay_4ifrb_5`,card:`_card_4ifrb_12`,draggable:`_draggable_4ifrb_30`,head:`_head_4ifrb_40`,info:`_info_4ifrb_46`,avatarRing:`_avatarRing_4ifrb_53`,avatarRingPulse:`_avatarRingPulse_4ifrb_65`,callPulse:`_callPulse_4ifrb_1`,avatar:`_avatar_4ifrb_53`,name:`_name_4ifrb_107`,status:`_status_4ifrb_117`,timer:`_timer_4ifrb_123`,actions:`_actions_4ifrb_130`,btn:`_btn_4ifrb_137`,accept:`_accept_4ifrb_163`,acceptBob:`_acceptBob_4ifrb_1`,decline:`_decline_4ifrb_178`,mute:`_mute_4ifrb_182`,muteOn:`_muteOn_4ifrb_191`},Dz=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()},Oz=e=>e===`unavailable`?`Unavailable`:e===`failed`?`Call failed`:`Call ended`,kz=(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 Oz(r);case`idle`:return``}},Az=({sinceMs:e})=>{let[t,r]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{let e=window.setInterval(()=>{r(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]);let i=Math.max(0,Math.floor((t-e)/1e3)),a=String(Math.floor(i/60)).padStart(2,`0`),o=String(i%60).padStart(2,`0`);return(0,D.jsxs)(`span`,{className:Ez.timer,children:[a,`:`,o]})},jz=({phase:e,muted:t,actions:n})=>e===`ended`?null:e===`incoming`?(0,D.jsxs)(`div`,{className:Ez.actions,children:[(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.decline),onClick:()=>{n.decline()},"aria-label":`Decline call`,children:(0,D.jsx)(kr,{size:24})}),(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.accept),onClick:()=>{n.accept()},"aria-label":`Accept call`,children:(0,D.jsx)(Ar,{size:24})})]}):(0,D.jsxs)(`div`,{className:Ez.actions,children:[e===`active`&&(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.mute,t&&Ez.muteOn),onClick:()=>{n.toggleMute()},"aria-label":t?`Unmute`:`Mute`,children:t?(0,D.jsx)(Sr,{size:20}):(0,D.jsx)(Cr,{size:20})}),(0,D.jsx)(`button`,{type:`button`,className:T(Ez.btn,Ez.decline),onClick:()=>{n.hangup()},"aria-label":`Hang up`,children:(0,D.jsx)(kr,{size:24})})]}),Mz=({actions:e})=>{let t=vz(e=>e.phase),r=vz(e=>e.callId),i=vz(e=>e.peerName),a=vz(e=>e.peerInitials),o=vz(e=>e.peerColor),s=vz(e=>e.mediaType),c=vz(e=>e.muted),l=vz(e=>e.connected),u=vz(e=>e.activeSinceMs),d=vz(e=>e.endReason),f=(0,n.useRef)(null);if(t===`idle`)return null;let p=t===`active`,m=t===`incoming`||t===`outgoing`,h=t===`outgoing`&&r!==null,g=a===``?Dz(i):a,_=t===`active`&&l&&u!==null?(0,D.jsx)(Az,{sinceMs:u}):kz(t,s,h,d);return(0,D.jsx)(`div`,{className:Ez.overlay,ref:f,role:`dialog`,"aria-label":`Call`,children:(0,D.jsxs)(A.div,{className:T(Ez.card,p&&Ez.draggable),variants:By,initial:`hidden`,animate:`visible`,drag:p,dragConstraints:f,dragElastic:.12,dragMomentum:!1,children:[(0,D.jsxs)(`div`,{className:Ez.head,children:[(0,D.jsx)(`div`,{className:T(Ez.avatarRing,m&&Ez.avatarRingPulse),children:(0,D.jsx)(`div`,{className:Ez.avatar,style:o===``?void 0:E({"--avatar-color":o}),"aria-hidden":`true`,children:g})}),(0,D.jsxs)(`div`,{className:Ez.info,children:[(0,D.jsx)(`div`,{className:Ez.name,children:i===``?`Unknown caller`:i}),(0,D.jsx)(`div`,{className:Ez.status,children:_})]})]}),(0,D.jsx)(jz,{phase:t,muted:c,actions:e})]})})},Nz=0,Pz=(e,t)=>{let n=e.getState();return n.direction===`outgoing`&&n.phase===`outgoing`&&n.callId===null&&n.dialId===t},Fz=async({store:e,cancelCall:t,dialId:n,result:r})=>{let i=Pz(e,n);if(!r.ok){i&&e.getState().ended(`failed`);return}let a=r.value;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})},Iz=()=>{let{store:e,startCall:t,acceptCall:r,declineCall:i,cancelCall:a,endCall:o}=_z();return{startCall:(0,n.useCallback)(async n=>{if(n.userId===``)return;let r=e.getState().phase;if(r!==`idle`&&r!==`ended`)return;let i=String(Nz+=1);e.getState().dialing({peer:n,mediaType:`audio`,dialId:i}),await Fz({store:e,cancelCall:a,dialId:i,result:await t.execute(n.userId,`audio`)})},[e,t,a]),accept:(0,n.useCallback)(async()=>{let{callId:t,direction:n}=e.getState();if(t===null||n!==`incoming`)return;e.getState().activate(null,Date.now());let i=await r.execute(t);if(!i.ok){e.getState().ended(`failed`);return}e.getState().activate(i.value,Date.now())},[e,r]),decline:(0,n.useCallback)(async()=>{let{callId:t}=e.getState();e.getState().reset(),t!==null&&await i.execute(t)},[e,i]),hangup:(0,n.useCallback)(async()=>{let{callId:t,phase:n}=e.getState();e.getState().ended(`hung_up`),t!==null&&(n===`active`?await o.execute(t):await a.execute(t))},[e,o,a]),toggleMute:(0,n.useCallback)(()=>{let t=e.getState();t.setMuted(!t.muted)},[e])}},Lz=()=>{let e=vz(e=>e.phase),t=vz(e=>e.ticket),r=vz(e=>e.muted),i=_z().store,a=Iz(),o=(0,n.useRef)(null);o.current??=Cz();let s=o.current;return(0,n.useEffect)(()=>{let e=()=>{s.unlock()};return window.addEventListener(`pointerdown`,e,{once:!0}),()=>{window.removeEventListener(`pointerdown`,e)}},[s]),(0,n.useEffect)(()=>{e===`incoming`?s.playRing():e===`outgoing`?s.playRingback():s.stop()},[e,s]),(0,n.useEffect)(()=>()=>{s.dispose()},[s]),(0,n.useEffect)(()=>{if(e!==`ended`)return;let t=window.setTimeout(()=>{i.getState().reset()},2500);return()=>{window.clearTimeout(t)}},[e,i]),e===`idle`?null:(0,D.jsxs)(D.Fragment,{children:[t!==null&&(e===`outgoing`||e===`active`)&&(0,D.jsx)(Tz,{ticket:t,muted:r,onConnected:()=>{i.getState().markConnected()},onEnded:()=>{i.getState().ended(`ended`)}}),(0,D.jsx)(Mz,{actions:a})]})},Rz=()=>{let{startCall:e}=Iz(),t=vz(e=>e.phase);return{start:t=>{e(t)},busy:t!==`idle`&&t!==`ended`}},zz={callBtn:`_callBtn_1q44j_1`},Bz=({calleeUserId:e,calleeName:t,calleeInitials:n=``,calleeColor:r=``,className:i})=>{let{start:a,busy:o}=Rz();return e===``?null:(0,D.jsx)(`button`,{type:`button`,className:T(zz.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)(Ar,{size:18})})},Vz=({conversation:e})=>e.isGroup||e.peerUserId===null?null:(0,D.jsx)(`div`,{className:K.headEnd,children:(0,D.jsx)(Bz,{calleeUserId:e.peerUserId,calleeName:e.title,calleeInitials:e.initials,calleeColor:e.color})}),Hz=`This message was deleted`,Uz=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`))try{let t=e.substring(22);return JSON.parse(t)}catch{return null}return null},Wz=e=>{if(e.startsWith(`__UAPP_SHARED_CARD__::`)){let t=Uz(e);if(t!==null){let e=t.card.title;return e.length>0?`Shared Post: ${e}`:`Shared Post`}return`Shared Post`}return e},Gz=(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},Kz=(e,t)=>{if(e.replyTo===null)return null;let n=t.get(e.replyTo.messageId),r=n?.deletedForEveryone?Hz:n?.text??e.replyTo.text,i=n?.authorName??e.replyTo.authorName;return r.startsWith(`__UAPP_SHARED_CARD__::`)?{author:i,text:r}:null},qz=(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?Hz:n.text,a=Kz(n,t);return a!==null&&(r=a.author,i=a.text),{messageId:e.messageId,authorName:r,text:i}},Jz=(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),Yz=`pending:`,Xz=e=>`${Yz}${e}`,Zz=e=>e.id.startsWith(Yz),Qz=e=>e.reduce((e,t)=>Math.max(e,t.sequence),0),$z=e=>e.filter(e=>!Zz(e)).reduce((e,t)=>Math.max(e,t.sequence),0),eB=e=>new pP({id:Xz(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}),tB=e=>new pP({id:Xz(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}),nB=(e,t)=>Jz(e??[],t),rB=(e,t)=>Jz(e??[],t),iB=({selectedMessage:e,onClearSelection:t,onReply:n,onStartEdit:r,onDelete:i})=>{let a=Zz(e),o=e.fromViewer&&!e.deletedForEveryone&&e.canEdit(Date.now());return(0,D.jsxs)(`div`,{className:K.mobileSelectionHeader,children:[(0,D.jsxs)(`div`,{className:K.selectionLeft,children:[(0,D.jsx)(`button`,{type:`button`,className:K.selectionActionBtn,"aria-label":`Clear selection`,onClick:t,children:(0,D.jsx)(oi,{size:18})}),(0,D.jsx)(`span`,{className:K.selectionTitle,children:`1 Selected`})]}),(0,D.jsxs)(`div`,{className:K.selectionActions,children:[!a&&n!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:K.selectionActionBtn,title:`Reply`,"aria-label":`Reply`,onClick:()=>{n(Gz(e)),t!==void 0&&t()},children:(0,D.jsx)(Rr,{size:17})}),!a&&o&&r!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:K.selectionActionBtn,title:`Edit message`,"aria-label":`Edit message`,onClick:()=>{r(e),t!==void 0&&t()},children:(0,D.jsx)(Or,{size:17})}),!a&&e.fromViewer&&i!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:T(K.selectionActionBtn,K.selectionActionDanger),title:`Delete message`,"aria-label":`Delete message`,onClick:()=>{i(e.id),t!==void 0&&t()},children:(0,D.jsx)(ei,{size:17})})]})]})},aB=(e,t,n)=>[...e.lastSynced===null?[]:[{label:`Last synced ${e.lastSynced}`,icon:(0,D.jsx)(Pr,{size:14}),onSelect:()=>{t.refresh(e)}}],{label:`Manage members`,icon:(0,D.jsx)(ri,{size:14}),onSelect:n.onManageMembers},{label:e.favourite?`Remove from Favourites`:`Add to Favourites`,icon:(0,D.jsx)(Yr,{size:14}),onSelect:()=>{t.toggleFavourite(e)}},{label:e.pinned?`Unpin`:`Pin to top`,icon:(0,D.jsx)(jr,{size:14}),onSelect:()=>{t.togglePin(e)}},{label:e.archived?`Unarchive`:`Archive`,icon:e.archived?(0,D.jsx)(kn,{size:14}):(0,D.jsx)(An,{size:14}),onSelect:()=>{t.toggleArchive(e)}},{label:`Leave group`,icon:(0,D.jsx)(_r,{size:14}),onSelect:()=>{n.onRequestLeave(e)}},{label:`Delete group`,icon:(0,D.jsx)(ei,{size:14}),danger:!0,onSelect:()=>{n.onRequestDelete(e)}}],oB=(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},sB=e=>{let t=Object.entries(e.data).filter(([e,t])=>e!==`statusColor`&&t!==``).map(([,e])=>e).slice(0,4);return t.length>0?t.join(` · `):e.subtitle},cB=(e,t)=>{let n=oB(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:sB(e)};let a=i.find(e=>e.type===`pill`),o=i.filter(e=>e.type!==`pill`).slice(0,4).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}},lB=6e4,uB=36e5,dB=864e5,fB=(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<lB?`Last seen just now`:r<uB?`Last seen ${String(Math.floor(r/lB))}m ago`:r<dB?`Last seen ${String(Math.floor(r/uB))}h ago`:`Last seen ${String(Math.floor(r/dB))}d ago`},pB=4,mB={Hash:ur,GraduationCap:lr,Users:ri,Building2:Ln,Briefcase:In,BookOpen:Pn,Globe:cr},hB=(e,t,n,r)=>t?.online??e.online?{online:!0,subtitle:`Online`}:{online:!1,subtitle:(t===void 0?null:fB(t.lastSeenUtc,r))??n},gB=({conversation:e,header:t,dmOnline:n})=>{let r=t?.icon??null,i=r===null?void 0:mB[r];return i===void 0?(0,D.jsxs)(`span`,{className:K.viewAvatarWrap,children:[(0,D.jsx)(`span`,{className:K.viewAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),n===!0&&(0,D.jsx)(`span`,{className:T(K.presenceDot,K.viewPresenceDot),"aria-label":`Online`})]}):(0,D.jsx)(`span`,{className:K.viewIcon,style:E({"--avatar-color":t?.accent??e.color}),children:(0,D.jsx)(i,{size:18})})},_B=({members:e})=>{if(e.length===0)return null;let t=e.length-pB;return(0,D.jsxs)(`div`,{className:K.memberStack,children:[e.slice(0,pB).map(e=>(0,D.jsx)(`span`,{className:K.memberAvatar,title:e.name,children:(0,D.jsx)(IE,{initials:e.initials,color:e.color,size:`xs`})},e.id)),t>0&&(0,D.jsxs)(`span`,{className:K.memberMore,children:[`+`,t]})]})},vB=(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}`},yB=({conversation:e,pill:t,statusPill:n,subtitle:r})=>(0,D.jsxs)(`span`,{className:K.viewHeadText,children:[(0,D.jsxs)(`span`,{className:K.viewTitleRow,children:[(0,D.jsx)(`span`,{className:K.viewTitle,children:e.title}),e.admin&&(0,D.jsx)(`span`,{className:K.adminBadge,children:`You're admin`}),t?(0,D.jsx)(`span`,{className:K.statusPill,style:E({"--pill":t.color}),children:t.value}):null,n]}),(0,D.jsx)(`span`,{className:K.viewSub,children:r})]}),bB=({conversation:e,header:t,dmOnline:n,pill:r,statusPill:i,subtitle:a,actions:o,onManageMembers:s,onRequestDelete:c,onRequestLeave:l})=>{let u=Be();return(0,D.jsxs)(`div`,{className:K.standardHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:K.backBtn,"aria-label":`Back to conversations`,onClick:()=>{u(`/comms/chats`)},children:(0,D.jsx)(jn,{size:18})}),(0,D.jsx)(gB,{conversation:e,header:t,dmOnline:n}),(0,D.jsx)(yB,{conversation:e,pill:r,statusPill:i,subtitle:a}),e.isGroup&&(0,D.jsxs)(`div`,{className:K.headEnd,children:[(0,D.jsx)(`button`,{type:`button`,className:K.memberStackBtn,"aria-label":`Manage members`,onClick:s,children:(0,D.jsx)(_B,{members:e.members})}),(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.headMenuBtn,"aria-label":`Group options`,children:(0,D.jsx)(er,{size:16})}),items:aB(e,o,{onManageMembers:s,onRequestDelete:c,onRequestLeave:l})})]}),(0,D.jsx)(Vz,{conversation:e})]})},xB=({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?cB(e,t):null,p=f?.pill??null,m=e.peerUserId,h=hB(e,tP(e=>m===null?void 0:e.presence[m]),f?.subtitle??e.subtitle,Date.now()),g=e.isGroup?vB(e,f):h.subtitle,_=s!==null;return(0,D.jsxs)(`header`,{className:T(K.viewHead,_&&K.hasMobileSelection),children:[s!==null&&(0,D.jsx)(iB,{selectedMessage:s,onClearSelection:c,onReply:l,onStartEdit:u,onDelete:d}),(0,D.jsx)(bB,{conversation:e,header:f,dmOnline:e.isGroup?null:h.online,pill:p,statusPill:r,subtitle:g,actions:n,onManageMembers:i,onRequestDelete:a,onRequestLeave:o})]})},SB=({excludeIds:e,onAdd:t,onBack:n})=>{let{search:r,setSearch:i,results:a,loading:o,hasQuery:s}=dF(e,`groupPool`);return(0,D.jsxs)(`div`,{className:K.addPanel,children:[(0,D.jsxs)(`div`,{className:K.addPanelHead,children:[(0,D.jsx)(`button`,{type:`button`,className:K.memberRowMenuBtn,"aria-label":`Back to members`,onClick:n,children:(0,D.jsx)(jn,{size:15})}),(0,D.jsx)(`span`,{className:K.addPanelTitle,children:`Add member`})]}),(0,D.jsxs)(`div`,{className:K.addPanelSearch,children:[(0,D.jsx)(Br,{size:14}),(0,D.jsx)(`input`,{className:K.searchInput,placeholder:`Search staff`,value:r,onChange:e=>{i(e.target.value)}}),o&&(0,D.jsx)(mi,{size:`sm`,label:`Searching staff`})]}),(0,D.jsxs)(`div`,{className:K.addPanelList,children:[(0,D.jsx)(Wg,{initial:!1,children:a.map(e=>(0,D.jsxs)(A.div,{layout:!0,variants:zy,initial:`hidden`,animate:`visible`,exit:`exit`,className:K.memberRow,children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.memberRowName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:K.addMemberBtn,onClick:()=>{t(e)},children:[(0,D.jsx)(Mr,{size:13}),` Add`]})]},e.id))}),a.length===0&&!o&&(0,D.jsx)(`p`,{className:K.addPanelEmpty,children:s?`No staff match your search.`:`Everyone is already in this group.`})]})]})},CB=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)(Wr,{size:14}),onSelect:()=>{i(t.id)}}),n&&r>1&&s.push({label:`Remove admin`,icon:(0,D.jsx)(Ur,{size:14}),onSelect:()=>{a(t.id)}}),s.push({label:`Remove from group`,icon:(0,D.jsx)(ei,{size:14}),danger:!0,onSelect:()=>{o(t.id)}}),s},wB=e=>{let{member:t,isAdmin:n,isSelf:r,isNew:i,isPromoted:a,isDemoted:o,canManage:s}=e,c=tP(e=>e.presence[t.id]?.online??!1);return(0,D.jsxs)(A.div,{layout:!0,variants:zy,initial:`hidden`,animate:`visible`,className:T(K.memberRow,i&&K.memberRowNew),children:[(0,D.jsxs)(`span`,{className:K.memberRowAvatarWrap,children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":t.color}),children:t.initials}),c&&(0,D.jsx)(`span`,{className:K.presenceDot,"aria-label":`Online`})]}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsxs)(`span`,{className:K.memberRowName,children:[t.name,r&&(0,D.jsx)(`span`,{className:K.memberRowYou,children:` (You)`}),n?(0,D.jsx)(`span`,{className:K.memberBadgeAdmin,children:`ADMIN`}):(0,D.jsx)(`span`,{className:K.memberBadge,children:`MEMBER`}),i&&(0,D.jsx)(`span`,{className:K.memberPillNew,children:`+ NEW`}),a&&!i&&(0,D.jsx)(`span`,{className:K.memberPillUp,children:`↑ PROMOTED`}),o&&(0,D.jsx)(`span`,{className:K.memberPillDown,children:`↓ DEMOTED`})]}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:t.role})]}),s&&!r&&(0,D.jsx)(ET,{align:`end`,trigger:(0,D.jsx)(`button`,{type:`button`,className:K.memberRowMenuBtn,"aria-label":`Actions for ${t.name}`,children:(0,D.jsx)(er,{size:14})}),items:CB(e)})]})},TB=(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}},EB=(e,t)=>t.some(t=>e.some(e=>e.id===t)),DB=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)})`},OB=(e,t)=>{let[r,i]=(0,n.useState)(e.members),[a,o]=(0,n.useState)(e.adminIds),[s,c]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{t&&(i(e.members),o(e.adminIds),c(!1))},[t,e.id,e.members,e.adminIds]),{members:r,adminIds:a,adding:s,diff:TB(e.members,e.adminIds,r,a),adminCount:a.filter(e=>r.some(t=>t.id===e)).length,setAdding:c,addMember:e=>{i(t=>[...t,e]),c(!1)},removeMember:e=>{i(t=>t.filter(t=>t.id!==e)),o(t=>t.filter(t=>t!==e))},makeAdmin:e=>{o(t=>t.includes(e)?t:[...t,e])},removeAdmin:e=>{o(t=>t.filter(t=>t!==e))},undoRemove:e=>{i(t=>[...t,e])}}},kB=({member:e,onUndo:t})=>(0,D.jsxs)(`div`,{className:K.removedRow,children:[(0,D.jsx)(`span`,{className:K.memberRowAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:K.memberRowBody,children:[(0,D.jsx)(`span`,{className:K.removedName,children:e.name}),(0,D.jsx)(`span`,{className:K.memberRowRole,children:e.role})]}),(0,D.jsxs)(`button`,{type:`button`,className:K.undoBtn,onClick:t,children:[(0,D.jsx)(zr,{size:12}),` Undo`]})]}),AB=e=>{let{conversation:t,draftMembers:n,draftAdminIds:r,diff:i,adminCount:a,iAmAdmin:o}=e,{viewerId:s}=e;return(0,D.jsxs)(`div`,{className:K.membersBody,children:[i.total>0&&(0,D.jsxs)(`div`,{className:K.unsavedBar,children:[i.total,` unsaved `,i.total===1?`change`:`changes`]}),o&&(0,D.jsxs)(`button`,{type:`button`,className:K.addMemberCta,onClick:e.onAddClick,children:[(0,D.jsx)(ni,{size:14}),` Add member`]}),(0,D.jsxs)(`div`,{className:K.membersSectionLabel,children:[`MEMBERS · `,n.length]}),(0,D.jsxs)(`div`,{className:K.membersList,children:[(0,D.jsx)(Wg,{initial:!1,children:n.map(t=>(0,D.jsx)(wB,{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)(A.div,{variants:zy,initial:`hidden`,animate:`visible`,children:[(0,D.jsxs)(`div`,{className:K.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)(kB,{member:r,onUndo:()=>{e.onUndoRemove(r)}},n)})]})]})]})},jB=({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)(gi,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,D.jsx)(gi,{variant:i?`danger`:`primary`,isLoading:t,disabled:e.total===0,onClick:r,children:DB(e)})]})},MB=({conversation:e,open:t,onClose:n})=>{let r=tF(e.id),i=OB(e,t),{data:a}=KP(),o=a?.id??``,s=()=>{if(i.diff.total===0){n();return}if(!EB(i.members,i.adminIds)){j.error(`A group must keep at least one admin`);return}r.mutate({members:i.members,adminIds:i.adminIds},{onSuccess:()=>{j.success(`Members updated`),n()}})},c=i.members.length===1?`member`:`members`,l=i.adminCount===1?`admin`:`admins`;return(0,D.jsx)(Wy,{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)(jB,{diff:i.diff,saving:r.isPending,onCancel:n,onSave:s}),children:i.adding?(0,D.jsx)(SB,{excludeIds:i.members.map(e=>e.id),onAdd:i.addMember,onBack:()=>{i.setAdding(!1)}}):(0,D.jsx)(AB,{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})})},NB=({open:e,canDeleteForEveryone:t,onDeleteForMe:n,onDeleteForEveryone:r,onCancel:i})=>(0,D.jsx)(Wy,{open:e,onOpenChange:e=>{e||i()},title:`Delete message?`,footer:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(gi,{variant:`ghost`,onClick:i,children:`Cancel`}),(0,D.jsx)(gi,{variant:`secondary`,onClick:n,children:`Delete for me`}),t&&(0,D.jsx)(gi,{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.`}),PB=e=>e===1?`typing…`:`${String(e)} people typing…`,FB=({conversationId:e})=>{let t=tP(t=>t.typingUserIds(e,Date.now()).length);return(0,D.jsx)(Wg,{children:t>0&&(0,D.jsxs)(A.div,{className:K.typingRow,variants:Vy,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`span`,{className:K.typingDots,"aria-hidden":!0,children:[(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{})]}),(0,D.jsx)(`span`,{className:K.typingText,children:PB(t)})]})})},IB=()=>{let e=tP(e=>e.status);if(e===`connected`||e===`connecting`)return null;let t=e===`reconnecting`?`Reconnecting…`:`Offline`;return(0,D.jsxs)(`span`,{className:K.connPill,children:[(0,D.jsx)(ai,{size:12}),` `,t]})},LB=20*1024*1024,RB=(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}},zB=()=>{let[e,t]=(0,n.useState)([]),r=(0,n.useRef)([]);return r.current=e,(0,n.useEffect)(()=>()=>{for(let e of r.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl)},[]),{items:e,add:e=>{let n=10-r.current.length;if(n<=0){j.error(`You can attach up to 10 files at once.`);return}let{accepted:i,skippedOversize:a,overflowed:o}=RB(Array.from(e),n,LB);if(a&&j.error(`That file is over the 20 MB limit — please send a smaller file.`),o&&j.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 n=r.current.find(t=>t.id===e);n!==void 0&&n.previewUrl!==null&&URL.revokeObjectURL(n.previewUrl),t(t=>t.filter(t=>t.id!==e))},clear:()=>{for(let e of r.current)e.previewUrl!==null&&URL.revokeObjectURL(e.previewUrl);t([])}}},BB=(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=``)}}},VB=[`👍`,`🎉`,`❤️`,`😂`,`🙌`,`👏`],HB=[`😀`,`😄`,`😁`,`😂`,`😍`,`😎`,`🤝`,`🙏`,`👍`,`👏`,`🙌`,`🔥`,`🎉`,`⭐`,`✅`,`❤️`,`💡`,`📌`,`🚀`,`😢`],UB=({onPick:e})=>{let[t,r]=(0,n.useState)(!1);return(0,D.jsxs)(`div`,{className:K.emojiWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:K.composerIcon,"aria-label":`Insert emoji`,"aria-expanded":t,onClick:()=>{r(e=>!e)},children:(0,D.jsx)(qr,{size:18})}),(0,D.jsx)(Wg,{children:t&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:K.emojiBackdrop,"aria-label":`Close emoji picker`,onClick:()=>{r(!1)}}),(0,D.jsx)(A.div,{className:K.emojiPop,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:HB.map(t=>(0,D.jsx)(`button`,{type:`button`,className:K.emojiBtn,onClick:()=>{e(t),r(!1)},children:t},t))})]})})]})},WB=({replyTo:e,onClear:t})=>(0,D.jsxs)(`div`,{className:K.replyBar,children:[(0,D.jsxs)(`span`,{className:K.replyBarText,children:[`Replying to `,e.authorName,`: `,Wz(e.text)]}),(0,D.jsx)(`button`,{type:`button`,className:K.replyBarClose,"aria-label":`Cancel reply`,onClick:t,children:(0,D.jsx)(oi,{size:16})})]}),GB=({attachments:e,onRemove:t,onAddMore:n})=>(0,D.jsxs)(A.div,{className:K.attachTray,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.16},children:[e.map(e=>(0,D.jsxs)(`div`,{className:K.attachItem,children:[e.previewUrl===null?(0,D.jsxs)(`div`,{className:K.attachFile,children:[(0,D.jsx)(or,{size:20}),(0,D.jsx)(`span`,{className:K.attachFileName,children:e.file.name})]}):(0,D.jsx)(`img`,{className:K.attachThumb,src:e.previewUrl,alt:e.file.name}),(0,D.jsx)(`button`,{type:`button`,className:K.attachRemove,"aria-label":`Remove ${e.file.name}`,onClick:()=>{t(e.id)},children:(0,D.jsx)(oi,{size:13})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:K.attachAdd,"aria-label":`Add more files`,onClick:n,children:(0,D.jsx)(Mr,{size:20})})]}),KB=({fileRef:e,onAttach:t,onFileChange:n})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:e,type:`file`,multiple:!0,className:K.hiddenFileInput,accept:`image/*,video/*,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv,.zip`,onChange:n}),(0,D.jsx)(`button`,{type:`button`,className:K.composerIcon,"aria-label":`Attach files`,onClick:t,children:(0,D.jsx)(Tr,{size:18})})]}),qB=({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=fi(`(max-width: 1024px)`),m=di(e,4e3);return(0,D.jsxs)(`div`,{className:K.composer,children:[(0,D.jsx)(UB,{onPick:t=>{o(e+t)}}),(0,D.jsx)(KB,{fileRef:a,onAttach:u,onFileChange:d}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`},children:[(0,D.jsx)(`textarea`,{className:T(K.composerInput,m.isOverLimit&&K.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:K.sendBtn,"aria-label":n?`Send attachments`:`Send message`,disabled:r||!i||m.isOverLimit,onClick:f,children:(0,D.jsx)(Vr,{size:16})})]})},JB=({editingText:e,onClear:t})=>(0,D.jsxs)(`div`,{className:K.replyBar,children:[(0,D.jsx)(Or,{size:15,style:{marginRight:6}}),(0,D.jsxs)(`span`,{className:K.replyBarText,children:[`Editing message: `,Wz(e)]}),(0,D.jsx)(`button`,{type:`button`,className:K.replyBarClose,"aria-label":`Cancel edit`,onClick:t,children:(0,D.jsx)(oi,{size:16})})]}),YB=({value:e,isSending:t,title:r,replyTo:i,editingMessage:a=null,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})=>{let f=(0,n.useRef)(null),p=zB(),m=p.items.length>0,h=m||e.trim().length>0,{openPicker:g,send:_,handleKeyDown:v,handlePaste:y,onFileChange:b}=BB(p,e,f,{onSubmit:s,onSendMedia:u});return(0,D.jsxs)(D.Fragment,{children:[a!==null&&l!==void 0&&(0,D.jsx)(JB,{editingText:a.text,onClear:l}),i!==null&&(0,D.jsx)(WB,{replyTo:i,onClear:c}),m&&(0,D.jsx)(GB,{attachments:p.items,onRemove:p.remove,onAddMore:g}),(0,D.jsx)(qB,{value:e,title:r,hasAttachments:m,isSending:t,canSend:h,fileRef:f,onChange:o,onTyping:d,onKeyDown:v,onPaste:y,onAttach:g,onFileChange:b,onSend:_})]})},XB=({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)(FB,{conversationId:t}),(0,D.jsx)(YB,{value:n,isSending:a,title:e.title,replyTo:r,editingMessage:i,onChange:o,onSubmit:s,onClearReply:c,onClearEditing:l,onSendMedia:u,onTyping:d})]}),ZB=(e,t,n,r)=>(e[t]?.[n]??0)>=r,QB=(e,t,n)=>ZB(t,e,`read`,n)?`read`:ZB(t,e,`delivered`,n)?`delivered`:`sent`,$B=(e,t,n)=>e.length===0?`sent`:e.every(e=>ZB(t,e,`read`,n))?`read`:e.every(e=>ZB(t,e,`delivered`,n))?`delivered`:`sent`,eV=(e,t)=>t.peerUserId===null?$B(t.otherMemberIds,t.receipts,e.sequence):QB(t.peerUserId,t.receipts,e.sequence),tV=(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)},nV=e=>{let t=e[0];return t===void 0?null:e.reduce((e,t)=>Math.min(e,t.sequence),t.sequence)},rV=e=>{let{getMessagesBefore:t}=bP(),r=HM(),[i,a]=(0,n.useState)(!0),[o,s]=(0,n.useState)(!1),c=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{a(!0),s(!1),c.current=!1},[e]),{loadOlder:(0,n.useCallback)(()=>{if(e===null||c.current||!i)return;let n=WP(e),o=nV(r.getQueryData(n)??[]);o!==null&&(c.current=!0,s(!0),P(t.execute(e,o,50)).then(e=>{r.setQueryData(n,t=>tV(t??[],e)),e.length<50&&a(!1)}).catch(()=>{}).finally(()=>{c.current=!1,s(!1)}))},[e,t,i,r]),hasMore:i,isLoadingOlder:o}},iV=80,aV=60,oV={tailKey:``,headKey:``,count:0,lastFromViewer:!1},sV=e=>{let t=e.at(-1);return{tailKey:t?.id??``,headKey:e[0]?.id??``,count:e.length,lastFromViewer:t?.fromViewer??!1}},cV=(e,t)=>{e!==null&&e.scrollTo({top:e.scrollHeight,behavior:t?`smooth`:`auto`})},lV=(e,t,r)=>{let i=(0,n.useRef)(null),[a,o]=(0,n.useState)(!0),[s,c]=(0,n.useState)(!1),l=(0,n.useRef)(oV),u=(0,n.useRef)(!0),d=(0,n.useRef)(null),f=(0,n.useRef)(r);f.current=r;let p=(0,n.useCallback)(e=>{cV(i.current,e),c(!1)},[]),m=(0,n.useCallback)(()=>{let e=i.current;if(e===null)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<iV;u.current=t,o(t),t&&c(!1),e.scrollTop<aV&&(d.current=e.scrollHeight,f.current())},[]);return(0,n.useLayoutEffect)(()=>{l.current=oV,u.current=!0,d.current=null,o(!0),c(!1)},[e]),(0,n.useLayoutEffect)(()=>{let e=sV(t),n=l.current;l.current=e;let r=i.current;if(e.tailKey===``||r===null)return;if(n.tailKey===``){cV(r,!1);return}let a=e.count>n.count,o=a&&e.tailKey!==n.tailKey;a&&e.headKey!==n.headKey&&d.current!==null&&(r.scrollTop+=r.scrollHeight-d.current,d.current=null),o&&(u.current||e.lastFromViewer)?(cV(r,!0),c(!1)):o&&c(!0)},[t]),(0,n.useEffect)(()=>{m()},[m]),{scrollRef:i,isAtBottom:a,hasNewBelow:s,scrollToBottom:p,onScroll:m}},uV={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`},dV=/\/feed\/posts\/([a-zA-Z0-9-]+)$/,fV=({title:e,body:t,authorName:n,authorInitials:r,authorColor:i,categoryLabel:a,categoryColor:o,link:s})=>{let c=Be();return(0,D.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault();let t=dV.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:uV.card,style:{textAlign:`left`},children:[(0,D.jsxs)(`div`,{className:uV.header,children:[(0,D.jsx)(wr,{size:10}),`Shared from News Feed`]}),(0,D.jsxs)(`div`,{className:uV.body,children:[(0,D.jsxs)(`div`,{className:uV.authorRow,children:[(0,D.jsx)(`span`,{className:uV.avatar,style:E({"--avatar-color":i}),children:r}),(0,D.jsxs)(`div`,{className:uV.authorInfo,children:[(0,D.jsx)(`div`,{className:uV.authorName,children:n}),a!==null&&o!==null&&(0,D.jsxs)(`div`,{className:uV.category,style:E({"--cat-color":o}),children:[(0,D.jsx)(`span`,{className:uV.catDot}),a]})]})]}),(0,D.jsx)(`div`,{className:uV.title,children:e}),(0,D.jsx)(`div`,{className:uV.snippet,children:t}),(0,D.jsx)(`div`,{className:uV.footer,children:`Open in News Feed >`})]})]})},pV=e=>e.startsWith(`blob:`),mV=e=>e.type.length>0?URL.createObjectURL(e):URL.createObjectURL(new Blob([e],{type:`image/jpeg`})),hV=e=>{let{downloadChatMedia:t}=bP(),[r,i]=(0,n.useState)(!1),a=e!==null&&pV(e),o=e!==null&&!a?e:null,s=rN({queryKey:[`chat-media`,o],queryFn:()=>P(t.execute(o??``)),enabled:o!==null&&o.length>0,staleTime:1/0,gcTime:12e4,retry:1}),[c,l]=(0,n.useState)(null);(0,n.useEffect)(()=>{i(!1),l(null)},[e]),(0,n.useEffect)(()=>{let e=s.data;if(e===void 0)return;let t=mV(e);return l(t),()=>{URL.revokeObjectURL(t)}},[s.data]);let u=(0,n.useCallback)(()=>{i(!0)},[]);if(a)return{src:r?null:e,isLoading:!1,isError:r,onImageError:u};let d=s.isPending||s.isFetching;return{src:r?null:c,isLoading:d,isError:s.isError||r,onImageError:u}},gV=TE(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)}))}})),_V=({mediaUrl:e,album:t,index:n=0})=>{let{src:r,isLoading:i,isError:a,onImageError:o}=hV(e),s=gV(e=>e.openViewer);return a?(0,D.jsxs)(`div`,{className:K.msgMediaFallback,children:[(0,D.jsx)(dr,{size:18}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):r===null||i?(0,D.jsx)(`div`,{className:K.msgMediaLoading,children:(0,D.jsx)(mi,{size:`sm`})}):(0,D.jsx)(`button`,{type:`button`,className:T(K.mediaButton,t!==void 0&&K.mediaButtonFill),"aria-label":`Open image preview`,onClick:()=>{s(t??[e],n)},children:(0,D.jsx)(`img`,{className:K.msgMedia,src:r,alt:``,onError:o})})},vV=e=>(e??``).toLowerCase().split(`.`).pop()??``,yV=[`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`svg`,`avif`,`heic`],bV=(e,t)=>e!==null&&e.length>0?e.startsWith(`image/`):yV.includes(vV(t)),xV={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`},SV=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`},CV=(e,t)=>bV(e,t)?`image`:SV(e??``)??xV[vV(t)]??`generic`,wV={image:`Image`,pdf:`PDF Document`,archive:`Archive`,document:`Document`,spreadsheet:`Spreadsheet`,presentation:`Presentation`,audio:`Audio`,video:`Video`,generic:`File`},TV=e=>wV[e],EV={image:rr,pdf:or,archive:tr,document:or,spreadsheet:ar,presentation:Nr,audio:nr,video:ir,generic:sr},DV=(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)},OV=({mediaUrl:e,contentType:t,fileName:r,fromViewer:i})=>{let{downloadChatMedia:a}=bP(),[o,s]=(0,n.useState)(!1),c=CV(t,r),l=EV[c],u=r!==null&&r.length>0?r:`Attachment`,d=(0,n.useCallback)(()=>{s(!0),a.execute(e).then(e=>{s(!1),e.ok?DV(e.value,u):j.error(`Could not download the file.`)})},[a,e,u]);return(0,D.jsxs)(`button`,{type:`button`,className:T(K.fileCard,i?K.fileCardMe:K.fileCardThem),onClick:d,disabled:o,"aria-label":`Download ${u}`,children:[(0,D.jsx)(`span`,{className:K.fileCardIcon,children:(0,D.jsx)(l,{size:22})}),(0,D.jsxs)(`span`,{className:K.fileCardInfo,children:[(0,D.jsx)(`span`,{className:K.fileCardName,children:u}),(0,D.jsx)(`span`,{className:K.fileCardMetaLabel,children:TV(c)})]}),(0,D.jsx)(`span`,{className:K.fileCardDownload,children:o?(0,D.jsx)(mi,{size:`sm`}):(0,D.jsx)($n,{size:16})})]})},kV=({tick:e})=>e===`read`?(0,D.jsx)(`span`,{className:T(K.tick,K.tickRead),"aria-label":`Read`,children:(0,D.jsx)(Hn,{size:13})}):e===`delivered`?(0,D.jsx)(`span`,{className:K.tick,"aria-label":`Delivered`,children:(0,D.jsx)(Hn,{size:13})}):(0,D.jsx)(`span`,{className:K.tick,"aria-label":`Sent`,children:(0,D.jsx)(Un,{size:13})}),AV=({message:e,pending:t,tick:n,onRetry:r})=>t===`sending`?(0,D.jsx)(`span`,{className:K.tick,"aria-label":`Sending`,children:(0,D.jsx)(Zn,{size:13})}):t===`failed`?(0,D.jsxs)(`span`,{className:K.sendFailed,children:[(0,D.jsx)(`span`,{className:K.sendFailedText,children:`Not delivered`}),(0,D.jsx)(`button`,{type:`button`,className:K.retryBtn,onClick:()=>{e.clientMessageId!==null&&r(e.clientMessageId,e.text)},children:`Retry`})]}):n===null?null:(0,D.jsx)(kV,{tick:n}),jV=({initial:e,onSave:t})=>{let[r,i]=(0,n.useState)(e);return(0,D.jsxs)(`span`,{className:K.msgActions,children:[(0,D.jsx)(`input`,{className:K.composerInput,value:r,onChange:e=>{i(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{r.trim().length>0&&t(r.trim())},children:`Save`})]})},MV=({message:e,fromViewer:t,onReply:r,onEdit:i,onDelete:a,resolvedReplyTo:o=null})=>{let[s,c]=(0,n.useState)(!1),l=Gz(e,o);return Zz(e)?(0,D.jsx)(`span`,{className:K.msgActions}):t?s?(0,D.jsx)(jV,{initial:e.text,onSave:t=>{i(e.id,t),c(!1)}}):(0,D.jsxs)(`span`,{className:K.msgActions,children:[(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{r(l)},children:`Reply`}),e.canEdit(Date.now())&&(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{c(!0)},children:`Edit`}),(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{a(e.id)},children:`Delete`})]}):(0,D.jsx)(`span`,{className:K.msgActions,children:(0,D.jsx)(`button`,{type:`button`,className:K.msgActionBtn,onClick:()=>{r(l)},children:`Reply`})})},NV=`This message was deleted`,PV=({message:e})=>{let t=e.mediaUrl;return t===null||t.length===0?null:bV(e.mediaContentType,e.mediaFileName)?(0,D.jsx)(_V,{mediaUrl:t}):(0,D.jsx)(OV,{mediaUrl:t,contentType:e.mediaContentType,fileName:e.mediaFileName,fromViewer:e.fromViewer})},FV=({replyTo:e})=>{let t=Uz(e.text);if(t!==null)return(0,D.jsx)(`div`,{style:{marginBottom:6,display:`block`,width:`100%`},children:(0,D.jsx)(fV,{...t.card})});let n=e.text.trim().length>0;return(0,D.jsxs)(`span`,{className:K.replyPreview,children:[e.authorName.length>0&&(0,D.jsx)(`span`,{className:K.replyPreviewAuthor,children:e.authorName}),(0,D.jsx)(`span`,{className:K.replyPreviewText,children:n?Wz(e.text):`Message`})]})},IV=({message:e,fromViewer:t,deletedForEveryone:n,pending:r,tick:i,onRetry:a})=>{let o=jN();return(0,D.jsxs)(`span`,{className:K.msgMeta,children:[(0,D.jsx)(`span`,{className:K.msgTime,children:hP(e.sentAt,o.display)||e.time}),!n&&e.isEdited&&(0,D.jsx)(`span`,{className:K.editedLabel,children:`edited`}),t&&(e.kind===`text`||e.kind===`media`)&&(0,D.jsx)(AV,{message:e,pending:r,tick:i,onRetry:a})]})},LV=/(https?:\/\/[^\s]+)/g,RV=({text:e})=>e?(0,D.jsx)(D.Fragment,{children:e.split(LV).map((e,t)=>e.match(LV)?(0,D.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:K.msgLink,children:e},t):(0,D.jsx)(n.Fragment,{children:e},t))}):(0,D.jsx)(D.Fragment,{children:e}),zV=({sharedComment:e,sharedCardProps:t})=>(0,D.jsxs)(D.Fragment,{children:[e.length>0&&(0,D.jsx)(`span`,{className:T(K.msgText,K.msgTextWithCard),children:(0,D.jsx)(RV,{text:e})}),(0,D.jsx)(fV,{...t})]}),BV=({messageText:e,deletedForEveryone:t})=>(0,D.jsx)(`span`,{className:T(K.msgText,t&&K.msgTextDeleted),children:t?NV:(0,D.jsx)(RV,{text:e})}),VV=({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:Uz(e.text);return(0,D.jsxs)(`div`,{className:T(K.bubble,i?K.bubbleMe:K.bubbleThem,l&&K.bubbleSelected),onClick:()=>{u!==void 0&&u(e)},children:[n&&(0,D.jsx)(`span`,{className:K.msgAuthor,children:t}),!a&&r!==null&&(0,D.jsx)(FV,{replyTo:r}),!a&&(0,D.jsx)(PV,{message:e}),d===null?(0,D.jsx)(BV,{messageText:e.text,deletedForEveryone:a}):(0,D.jsx)(zV,{sharedComment:d.comment,sharedCardProps:d.card}),(0,D.jsx)(IV,{message:e,fromViewer:i,deletedForEveryone:a,pending:o,tick:s,onRetry:c})]})},HV=({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,_=!Zz(e)&&!g,v=m!==null;return(0,D.jsxs)(D.Fragment,{children:[!h&&(a?(0,D.jsx)(`span`,{className:K.msgAvatar,style:E({"--avatar-color":t.color}),children:t.initials}):(0,D.jsx)(`span`,{className:K.msgAvatarSpacer,"aria-hidden":`true`})),(0,D.jsx)(`div`,{className:T(K.msgCol,v&&K.msgColWithReactions),children:(0,D.jsxs)(`div`,{className:K.msgBubbleWrap,children:[(0,D.jsx)(VV,{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)(MV,{message:e,fromViewer:h,onReply:u,onEdit:d,onDelete:f,resolvedReplyTo:n})]})})]})},UV=e=>e.trim().toLowerCase(),WV=(e,t)=>UV(e)===UV(t),GV=(e,t)=>{if(e.fromViewer)return{name:e.authorName,initials:e.authorInitials,color:e.authorColor};let n=t.members.find(t=>WV(t.id,e.senderId));return n===void 0?t.kind===`dm`&&t.peerUserId!==null&&WV(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}},KV=({align:e,onPick:t})=>{let[r,i]=(0,n.useState)(!1);return(0,D.jsxs)(`div`,{className:K.reactWrap,children:[(0,D.jsx)(`button`,{type:`button`,className:K.reactBtn,"aria-label":`Add reaction`,onClick:()=>{i(e=>!e)},children:(0,D.jsx)(Kr,{size:14})}),(0,D.jsx)(Wg,{children:r&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:K.emojiBackdrop,"aria-label":`Close reaction picker`,onClick:()=>{i(!1)}}),(0,D.jsx)(A.div,{className:T(K.reactPop,e===`right`?K.reactPopRight:K.reactPopLeft),variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:VB.map(e=>(0,D.jsx)(`button`,{type:`button`,className:K.reactPopBtn,onClick:()=>{t(e),i(!1)},children:e},e))})]})})]})},qV=({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:T(K.reactionPill,n?K.reactionsMe:K.reactionsThem,i!==void 0&&K.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:K.reactionEmojis,children:e.reactions.map(e=>e.emoji).join(``)}),r>1&&(0,D.jsx)(`span`,{className:K.reactionCount,children:r})]})},JV=({text:e})=>(0,D.jsx)(A.div,{className:K.systemRow,variants:zy,initial:`hidden`,animate:`visible`,children:(0,D.jsx)(`span`,{className:K.systemPill,children:e})}),YV=(e,t,n)=>!e.deletedForEveryone&&e.reactions.length>0?(0,D.jsx)(qV,{message:e,onReact:n,fromViewer:t}):null,XV=({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)(JV,{text:t.text});let{fromViewer:h}=t,g=GV(t,e),_=T(K.msgRow,h&&K.msgRowMe,r&&K.msgRowGroupStart),v=(0,D.jsx)(HV,{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)(KV,{align:h?`right`:`left`,onPick:e=>{c(t.id,e)}}),reactions:YV(t,h,c)});return n?(0,D.jsx)(`div`,{id:`msg-${t.id}`,className:_,children:v}):(0,D.jsx)(A.div,{id:`msg-${t.id}`,className:_,variants:zy,initial:`hidden`,animate:`visible`,whileHover:{y:-1,scale:1.005},transition:{type:`spring`,stiffness:500,damping:30},children:v})},ZV=()=>void 0,QV=e=>e.find(e=>e.text.trim().length>0)?.text??``,$V=({fromViewer:e,lastOfGroup:t,identity:n})=>e?null:t?(0,D.jsx)(`span`,{className:K.msgAvatar,style:E({"--avatar-color":n.color}),children:n.initials}):(0,D.jsx)(`span`,{className:K.msgAvatarSpacer,"aria-hidden":`true`}),eH=({message:e,onReact:t,onReply:n,onDelete:r})=>(0,D.jsxs)(`div`,{className:K.albumCellActions,children:[(0,D.jsx)(KV,{align:e.fromViewer?`right`:`left`,onPick:n=>{t(e.id,n)}}),(0,D.jsx)(`button`,{type:`button`,className:K.albumActionBtn,"aria-label":`Reply`,onClick:()=>{n(Gz(e))},children:(0,D.jsx)(Rr,{size:13})}),e.fromViewer&&(0,D.jsx)(`button`,{type:`button`,className:K.albumActionBtn,"aria-label":`Delete`,onClick:()=>{r(e.id)},children:(0,D.jsx)(ei,{size:13})})]}),tH=e=>{let{message:t,album:n,index:r}=e,i=!Zz(t)&&!t.deletedForEveryone,a=!t.deletedForEveryone&&t.reactions.length>0;return(0,D.jsxs)(`div`,{id:`msg-${t.id}`,className:K.albumCell,children:[(0,D.jsx)(`div`,{className:K.albumCellMedia,children:t.mediaUrl!==null&&t.mediaUrl.length>0&&(0,D.jsx)(_V,{mediaUrl:t.mediaUrl,album:n,index:r})}),i&&(0,D.jsx)(eH,{...e}),a&&(0,D.jsx)(`div`,{className:K.albumCellReactions,children:(0,D.jsx)(qV,{message:t,onReact:e.onReact,fromViewer:t.fromViewer})})]})},nH=({last:e,fromViewer:t,tick:n,pending:r})=>{let i=jN();return(0,D.jsxs)(`span`,{className:K.msgMeta,children:[(0,D.jsx)(`span`,{className:K.msgTime,children:hP(e.sentAt,i.display)||e.time}),t&&(0,D.jsx)(AV,{message:e,pending:r,tick:n,onRetry:ZV})]})},rH=({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=GV(l,e),p=QV(t),m=n&&e.isGroup,h=t.map(e=>e.mediaUrl??``);return(0,D.jsxs)(`div`,{id:`msg-${u.id}`,className:T(K.msgRow,d&&K.msgRowMe,n&&K.msgRowGroupStart),children:[(0,D.jsx)($V,{fromViewer:d,lastOfGroup:r,identity:f}),(0,D.jsx)(`div`,{className:K.msgCol,children:(0,D.jsx)(`div`,{className:K.msgBubbleWrap,children:(0,D.jsxs)(`div`,{className:T(K.bubble,d?K.bubbleMe:K.bubbleThem),children:[m&&(0,D.jsx)(`span`,{className:K.msgAuthor,children:f.name}),(0,D.jsx)(`div`,{className:K.albumGrid,children:t.map((e,t)=>(0,D.jsx)(tH,{message:e,album:h,index:t,onReact:o,onReply:s,onDelete:c},e.id))}),p.length>0&&(0,D.jsx)(`span`,{className:K.msgText,children:p}),(0,D.jsx)(nH,{last:u,fromViewer:d,tick:i,pending:a})]})})})]})},iH=(e,t)=>{if(e.length===0)return null;let n=fP(e);if(Number.isNaN(n.getTime()))return null;if(t&&t.length>0){let e=SN(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}`},aH=(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`})},oH=(e,t)=>!e.isSystem&&!t.isSystem&&e.senderId===t.senderId,sH=(e,t)=>{let n=[],r=null;return e.forEach((i,a)=>{let o=iH(i.sentAt,t),s=o!==null&&o!==r;s&&n.push({kind:`date`,key:`date:${o}`,label:aH(o,t)}),r=o??r;let c=e[a-1],l=e[a+1],u=s||c===void 0||!oH(c,i),d=l===void 0||!oH(i,l)||iH(l.sentAt,t)!==o;n.push({kind:`message`,key:i.id,row:{message:i,firstOfGroup:u,lastOfGroup:d}})}),n},cH=2,lH=e=>e.kind===`message`&&e.row.message.kind===`media`&&!e.row.message.isSystem&&(e.row.message.mediaUrl??``).length>0&&bV(e.row.message.mediaContentType,e.row.message.mediaFileName),uH=(e,t)=>{let n=e.at(0),r=e.at(e.length-1);if(e.length>=cH&&n!==void 0&&r!==void 0){t.push({kind:`album`,key:`album:${n.row.message.id}`,messages:e.map(e=>e.row.message),firstOfGroup:n.row.firstOfGroup,lastOfGroup:r.row.lastOfGroup});return}t.push(...e)},dH=e=>{let t=[],n=[];for(let r of e){if(lH(r)){let e=n.at(-1);e!==void 0&&e.row.message.senderId!==r.row.message.senderId&&(uH(n,t),n=[]),n.push(r);continue}uH(n,t),n=[],t.push(r)}return uH(n,t),t},fH=(e,t)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||e.clientMessageId===null?null:t[e.clientMessageId]??null,pH=({label:e})=>(0,D.jsx)(`div`,{className:K.dateSep,children:(0,D.jsx)(`span`,{className:K.dateSepPill,children:e})}),mH=({conversation:e,messages:t,pending:r,selectedMessageId:i,onSelectMessage:a,onReact:o,onRetry:s,onReply:c,onEdit:l,onDelete:u,tickFor:d})=>{let f=jN(),p=(0,n.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]);return(0,D.jsx)(D.Fragment,{children:dH(sH(t,f.display)).map(t=>{if(t.kind===`date`)return(0,D.jsx)(pH,{label:t.label},t.key);if(t.kind===`album`){let n=t.messages.at(-1);return(0,D.jsx)(rH,{conversation:e,messages:t.messages,firstOfGroup:t.firstOfGroup,lastOfGroup:t.lastOfGroup,tick:n===void 0?null:d(n),pending:n===void 0?null:fH(n,r),onReact:o,onReply:c,onDelete:u},t.key)}return(0,D.jsx)(XV,{layoutStatic:!0,firstOfGroup:t.row.firstOfGroup,lastOfGroup:t.row.lastOfGroup,conversation:e,message:t.row.message,isSelected:i===t.row.message.id,onSelect:a,replyTo:qz(t.row.message.replyTo,p),onReact:o,pending:fH(t.row.message,r),tick:d(t.row.message),onRetry:s,onReply:c,onEdit:l,onDelete:u},t.key)})})},hH={id:`u-shamim`,name:`Shamim Rahman`,initials:`SR`,color:`#e9445a`},gH=`t-uapp`,_H={id:`u-andreea`,name:`Andreea Cinpoi`,initials:`AN`,color:`#7c3aed`,role:`Sales Manager`},vH={id:`u-laura`,name:`Laura Tomova`,initials:`LA`,color:`#3a7bd5`,role:`Compliance Officer`},yH={id:`s-mahmud`,name:`Mahmud Hasan`,initials:`MH`,color:`#16a34a`,role:`Student`},bH={id:`u-mihadul`,name:`Mihadul Islam`,initials:`MI`,color:`#65a30d`,role:`Admission Officer`},xH={id:`u-nur`,name:`Nur Mohammad`,initials:`NM`,color:`#8b5cf6`,role:`Team Leader`},SH={id:`u-md-shamim`,name:`Md Shamim`,initials:`MS`,color:`#0a6e6f`,role:`Sales Lead`};hH.id,hH.name,hH.initials,hH.color;var CH=(e,t)=>({...t,admin:!1,lastSynced:null,tenantId:gH,categoryId:null,members:[],adminIds:[],data:{},peerUserId:e,memberReceipts:[]});hH.id,yH.id,hH.id,bH.id,xH.id,yH.id,hH.id,SH.id,_H.id,hH.id,_H.id,vH.id,{...CH(`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`})},hH.id,CH(`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`}),CH(`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`}),CH(`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`}),CH(`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 wH=G({id:H(),name:H(),initials:H(),color:H(),role:H()}),TH=G({userId:H(),deliveredUpto:U(),readUpto:U()}),EH=G({id:H(),type:U(),title:H(),subtitle:H(),initials:H(),color:H(),online:NA(),unread:U(),pinned:NA(),favourite:NA(),archived:NA(),unreadCount:U(),admin:NA(),lastMessage:H(),lastTime:H(),lastMessageAt:H().nullable().optional(),lastSyncedAt:H().nullable(),categoryId:H().nullable(),headerFields:RA(H(),H()).optional(),members:W(wH),adminIds:W(H()),peerUserId:H().nullable().optional().default(null),memberReceipts:W(TH).optional().default([])}).passthrough(),DH=G({emoji:H(),count:U(),reacted:NA()}),OH=G({id:H(),conversationId:H(),kind:U(),senderId:H(),authorName:H(),authorInitials:H(),authorColor:H(),text:H(),sentAt:H(),time:H(),sequence:U(),clientMessageId:H().nullable(),fromViewer:NA(),reactions:W(DH),replyToMessageId:H().nullable().optional().default(null),replyToAuthorName:H().optional().default(``),replyToText:H().optional().default(``),mediaUrl:H().nullable().optional().default(null),mediaContentType:H().nullable().optional().default(null),mediaFileName:H().nullable().optional().default(null),editedAt:H().nullable().optional().default(null),isEdited:NA().optional().default(!1),deletedForEveryone:NA().optional().default(!1)}),kH=G({id:H(),name:H(),initials:H(),color:H()}),AH=W(EH),jH=W(wH),MH=G({totalCount:U(),items:AH}),NH=G({unread:U(),favourites:U(),groups:U(),archived:U()}),PH=G({blobName:H(),url:H(),contentType:H().optional().default(`application/octet-stream`),fileName:H().nullable().optional().default(null)}),FH=W(OH),IH=6e4,LH=60*IH,RH=24*LH,zH=(e,t)=>{let n=t.getTime()-e.getTime();return n<IH?`just now`:n<LH?`${String(Math.floor(n/IH))}m`:n<RH?`${String(Math.floor(n/LH))}h`:`${String(Math.floor(n/RH))}d`},BH=e=>e===0?`dm`:`group`,VH=e=>e===1?`system`:e===2?`media`:`text`,HH=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role}),UH=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color}),WH=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},GH=(e,t)=>new mP({id:e.id,kind:BH(e.type),title:e.title,subtitle:e.subtitle,initials:e.initials,color:e.color,online:e.online,unread:e.unreadCount,pinned:e.pinned,favourite:e.favourite,archived:e.archived,admin:e.admin,lastMessage:WH(e.lastMessage),lastTime:e.lastTime,lastMessageAt:e.lastMessageAt??null,lastSynced:e.lastSyncedAt===null?null:zH(new Date(e.lastSyncedAt),t),tenantId:``,categoryId:e.categoryId,members:e.members.map(HH),adminIds:e.adminIds,data:e.headerFields??{},peerUserId:e.peerUserId,memberReceipts:e.memberReceipts.map(e=>({userId:e.userId,deliveredUpto:e.deliveredUpto,readUpto:e.readUpto}))}),KH=e=>{let t=e.replyToMessageId!==null&&e.replyToMessageId.length>0?{messageId:e.replyToMessageId,authorName:e.replyToAuthorName,text:e.replyToText}:null;return new pP({id:e.id,kind:VH(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})},qH=(e,t,n)=>(e.error(`Chat ${t} returned an unexpected shape`,n),N(new rP(n))),JH=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}},YH=e=>{if(Array.isArray(e.validationErrors)){let t=JH(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},XH=e=>{if(!e||typeof e!=`object`||!(`body`in e))return;let t=e.body;if(!t||typeof t!=`object`)return;let n=t;return YH(`error`in n&&n.error&&typeof n.error==`object`?n.error:n)},ZH=(e,t)=>(e.error(`Chat request failed`,t),new rP(t,XH(t))),QH=(e,t,n)=>{let r=FH.safeParse(n);return r.success?M(r.data.map(KH)):qH(e,t,r.error)},$H=(e,t,n,r)=>{let i=EH.safeParse(r);return i.success?M(GH(i.data,t.now())):qH(e,n,i.error)},eU=`/api/app/chat-media/download?blobName=`,tU=e=>`${eU}${encodeURIComponent(decodeURIComponent(e))}`,nU=e=>{if(!e.startsWith(`http://`)&&!e.startsWith(`https://`))return e;try{let t=new URL(e);return`${t.pathname}${t.search}`}catch{return e}},rU=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},iU=e=>{let t=e.trim();if(t.length===0)return t;let n=nU(t),r=rU(n);return r===void 0?n.startsWith(`/`)?n:`/${n}`:tU(r)},aU={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`},oU={afterSequence:`afterSequence`,beforeSequence:`beforeSequence`,skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,scope:`scope`,uptoSequence:`uptoSequence`,favourite:`favourite`,archived:`archived`,pinned:`pinned`},sU=e=>encodeURIComponent(e),cU={conversation:e=>`/api/app/chat/conversation/${sU(e)}`,messages:e=>`/api/app/chat/messages/${sU(e)}`,messagesBefore:e=>`/api/app/chat/messages-before/${sU(e)}`,messagesSince:e=>`/api/app/chat/messages-since/${sU(e)}`,sendMessage:e=>`/api/app/chat/send-message/${sU(e)}`,sendMediaMessage:e=>`/api/app/chat/send-media-message/${sU(e)}`,markDelivered:e=>`/api/app/chat/mark-delivered/${sU(e)}`,markRead:e=>`/api/app/chat/mark-read/${sU(e)}`,reactToMessage:e=>`/api/app/chat/react-to-message/${sU(e)}`,saveMembers:e=>`/api/app/chat/save-members/${sU(e)}`,leaveConversation:e=>`/api/app/chat/leave-conversation/${sU(e)}`,setFavourite:e=>`/api/app/chat/set-favourite/${sU(e)}`,setArchived:e=>`/api/app/chat/set-archived/${sU(e)}`,setPinned:e=>`/api/app/chat/set-pinned/${sU(e)}`,deleteConversation:e=>`/api/app/chat/conversation/${sU(e)}`,refreshPortal:e=>`/api/app/chat/refresh-portal/${sU(e)}`,startDirect:e=>`/api/app/chat/start-direct/${sU(e)}`,editMessage:e=>`/api/app/chat/edit-message/${sU(e)}`,deleteMessage:e=>`/api/app/chat/message/${sU(e)}`,deleteMessageForMe:e=>`/api/app/chat/message-for-me/${sU(e)}`},lU=async(e,t,n,r)=>{try{let i=new FormData;i.append(`file`,n,r);let a=await e.httpClient.post(aU.uploadChatMedia,i,{query:{conversationId:t}}),o=PH.safeParse(a);return o.success?M({mediaId:o.data.blobName,url:o.data.url}):qH(e.logger,`upload-media`,o.error)}catch(t){return N(ZH(e.logger,t))}},uU=async(e,t)=>{try{let n=await lU(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(cU.sendMediaMessage(t.conversationId),r),a=OH.safeParse(i);return a.success?M(KH(a.data)):qH(e.logger,`send-media-message`,a.error)}catch(t){return N(ZH(e.logger,t))}},dU=async(e,t)=>{try{let n=iU(t),r=await e.httpClient.getBlob(n,{headers:{Accept:`image/*,*/*`}});return r.size===0?N(new rP(`Chat media response was empty`)):M(r)}catch(t){return N(ZH(e.logger,t))}},fU=async(e,t,n,r)=>{try{let t=await e.httpClient.post(cU.editMessage(n),{text:r}),i=OH.safeParse(t);return i.success?M(KH(i.data)):qH(e.logger,`edit-message`,i.error)}catch(t){return N(ZH(e.logger,t))}},pU=async(e,t,n)=>{try{return await e.httpClient.delete(cU.deleteMessage(n)),M(void 0)}catch(t){return N(ZH(e.logger,t))}},mU=async(e,t,n)=>{try{return await e.httpClient.delete(cU.deleteMessageForMe(n)),M(void 0)}catch(t){return N(ZH(e.logger,t))}},hU=async(e,t)=>{try{return await e.httpClient.post(aU.subscribePush,{endpoint:t.endpoint,p256dh:t.p256dh,auth:t.auth}),M(void 0)}catch(t){return N(ZH(e.logger,t))}},gU=async(e,t,n,r)=>{try{return await e.post(n,void 0,{query:r}),M(void 0)}catch(e){return N(ZH(t,e))}},_U=async e=>{try{return await e.httpClient.post(e.path,e.body,{query:e.query}),M(void 0)}catch(t){return N(ZH(e.logger,t))}},vU=async(e,t,n)=>{try{return await e.delete(n),M(void 0)}catch(e){return N(ZH(t,e))}},yU=(e,t,n)=>gU(e.httpClient,e.logger,cU.markDelivered(t),{[oU.uptoSequence]:n}),bU=(e,t,n)=>gU(e.httpClient,e.logger,cU.markRead(t),{[oU.uptoSequence]:n}),xU=(e,t,n)=>gU(e.httpClient,e.logger,cU.setFavourite(t),{[oU.favourite]:n}),SU=(e,t,n)=>gU(e.httpClient,e.logger,cU.setArchived(t),{[oU.archived]:n}),CU=(e,t,n)=>gU(e.httpClient,e.logger,cU.setPinned(t),{[oU.pinned]:n}),wU=(e,t)=>gU(e.httpClient,e.logger,cU.leaveConversation(t),{}),TU=(e,t)=>gU(e.httpClient,e.logger,cU.refreshPortal(t),{}),EU=(e,t,n)=>_U({httpClient:e.httpClient,logger:e.logger,path:cU.reactToMessage(t),query:{},body:{emoji:n}}),DU=(e,t,n,r)=>_U({httpClient:e.httpClient,logger:e.logger,path:cU.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]}}),OU=(e,t)=>vU(e.httpClient,e.logger,cU.deleteConversation(t)),kU={all:`All`,unread:`Unread`,favourites:`Favourites`,groups:`Groups`,archive:`Archive`},AU=async(e,t)=>{let n=t.filter?.trim();try{let r=await e.httpClient.get(aU.conversations,{query:{[oU.scope]:kU[t.scope],[oU.filter]:n===void 0||n===``?void 0:n,[oU.skipCount]:t.skipCount,[oU.maxResultCount]:t.maxResultCount}}),i=MH.safeParse(r);if(!i.success)return qH(e.logger,`conversations`,i.error);let a=e.clock.now();return M({items:i.data.items.map(e=>GH(e,a)),totalCount:i.data.totalCount})}catch(t){return N(ZH(e.logger,t))}},jU=async e=>{try{let t=await e.httpClient.get(aU.conversationCounts),n=NH.safeParse(t);return n.success?M(n.data):qH(e.logger,`conversation-counts`,n.error)}catch(t){return N(ZH(e.logger,t))}},MU=async(e,t)=>{try{let n=await e.httpClient.get(cU.conversation(t));return $H(e.logger,e.clock,`conversation`,n)}catch(t){return N(ZH(e.logger,t))}},NU=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.post(aU.listStaff,void 0,{query:{[oU.filter]:n===void 0||n===``?void 0:n}}),r=jH.safeParse(t);return r.success?M(r.data.map(HH)):qH(e.logger,`list-staff`,r.error)}catch(t){return N(ZH(e.logger,t))}},PU=async(e,t)=>{let n=t?.trim();try{let t=await e.httpClient.get(aU.groupMemberPool,{query:{[oU.filter]:n===void 0||n===``?void 0:n}}),r=jH.safeParse(t);return r.success?M(r.data.map(HH)):qH(e.logger,`group-member-pool`,r.error)}catch(t){return N(ZH(e.logger,t))}},FU=async e=>{try{let t=await e.httpClient.get(aU.viewer),n=kH.safeParse(t);return n.success?M(UH(n.data)):qH(e.logger,`viewer`,n.error)}catch(t){return N(ZH(e.logger,t))}},IU=async(e,t,n)=>{try{let r=n===void 0?void 0:{query:{[oU.maxResultCount]:n}},i=await e.httpClient.get(cU.messages(t),r);return QH(e.logger,`messages`,i)}catch(t){return N(ZH(e.logger,t))}},LU=async(e,t,n,r)=>{try{let i=await e.httpClient.get(cU.messagesSince(t),{query:{[oU.afterSequence]:n,[oU.maxResultCount]:r}});return QH(e.logger,`messages-since`,i)}catch(t){return N(ZH(e.logger,t))}},RU=async(e,t,n,r)=>{try{let i=await e.httpClient.get(cU.messagesBefore(t),{query:{[oU.beforeSequence]:n,[oU.maxResultCount]:r}});return QH(e.logger,`messages-before`,i)}catch(t){return N(ZH(e.logger,t))}},zU=async(e,t)=>{try{let n=await e.httpClient.post(cU.startDirect(t),void 0);return $H(e.logger,e.clock,`start-direct`,n)}catch(t){return N(ZH(e.logger,t))}},BU=async(e,t,n)=>{try{let r={title:t,memberIds:[...n]},i=await e.httpClient.post(aU.createGroup,r);return $H(e.logger,e.clock,`group`,i)}catch(t){return N(ZH(e.logger,t))}},VU=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(cU.sendMessage(n),e),s=OH.safeParse(o);return s.success?M(KH(s.data)):qH(t.logger,`send-message`,s.error)}catch(e){return N(ZH(t.logger,e))}},HU=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 AU(this.queryDeps(),e)}getConversationCounts(){return jU(this.deps())}getConversation(e){return MU(this.queryDeps(),e)}listStaff(e){return NU(this.deps(),e)}getGroupMemberPool(e){return PU(this.deps(),e)}getViewer(){return FU(this.deps())}getMessages(e,t){return IU(this.deps(),e,t)}getMessagesSince(e,t,n){return LU(this.deps(),e,t,n)}getMessagesBefore(e,t,n){return RU(this.deps(),e,t,n)}startDirect(e){return zU(this.queryDeps(),e)}createGroup(e,t){return BU(this.queryDeps(),e,t)}sendMessage(e,t,n,r){return VU({deps:this.deps(),conversationId:e,text:t,clientMessageId:n,replyToMessageId:r})}uploadChatMedia(e,t,n){return lU(this.deps(),e,t,n)}sendMediaMessage(e){return uU(this.deps(),e)}downloadMedia(e){return dU(this.deps(),e)}editMessage(e,t,n){return fU(this.deps(),e,t,n)}deleteMessage(e,t){return pU(this.deps(),e,t)}deleteMessageForMe(e,t){return mU(this.deps(),e,t)}subscribePush(e){return hU(this.deps(),e)}markDelivered(e,t){return yU(this.deps(),e,t)}markRead(e,t){return bU(this.deps(),e,t)}setFavourite(e,t){return xU(this.deps(),e,t)}setArchived(e,t){return SU(this.deps(),e,t)}setPinned(e,t){return CU(this.deps(),e,t)}deleteConversation(e){return OU(this.deps(),e)}leaveConversation(e){return wU(this.deps(),e)}refreshPortal(e){return TU(this.deps(),e)}reactToMessage(e,t,n){return EU(this.deps(),t,n)}saveMembers(e,t,n){return DU(this.deps(),e,t,n)}};function UU(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function WU(e,t){let n,r=()=>{if(n)return n;let r=indexedDB.open(e);return r.onupgradeneeded=()=>r.result.createObjectStore(t),n=UU(r),n.then(e=>{e.onclose=()=>n=void 0},()=>{}),n};return(e,n)=>r().then(r=>n(r.transaction(t,e).objectStore(t)))}var GU;function KU(){return GU||=WU(`keyval-store`,`keyval`),GU}function qU(e,t=KU()){return t(`readonly`,t=>UU(t.get(e)))}function JU(e,t,n=KU()){return n(`readwrite`,n=>(n.put(t,e),UU(n.transaction)))}function YU(e,t=KU()){return t(`readwrite`,t=>(t.delete(e),UU(t.transaction)))}function XU(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},UU(e.transaction)}function ZU(e=KU()){return e(`readonly`,e=>{if(e.getAllKeys)return UU(e.getAllKeys());let t=[];return XU(e,e=>t.push(e.key)).then(()=>t)})}var QU=WU(`chat-outbox`,`pending-sends`),$U=e=>`send:${e}`,eW=()=>({put:async e=>{await JU($U(e.clientMessageId),e,QU)},remove:async e=>{await YU($U(e),QU)},listAll:async()=>{let e=await ZU(QU);return(await Promise.all(e.map(async e=>qU(e,QU)))).filter(e=>e!==void 0)},listByConversation:async e=>{let t=await ZU(QU);return(await Promise.all(t.map(async e=>qU(e,QU)))).filter(t=>t?.conversationId===e)}}),tW={MessageReceived:`MessageReceived`,MessageEdited:`MessageEdited`,MessageDeleted:`MessageDeleted`,MessageDelivered:`MessageDelivered`,MessageRead:`MessageRead`,Typing:`Typing`,PresenceChanged:`PresenceChanged`,ReactionToggled:`ReactionToggled`,RemovedFromConversation:`RemovedFromConversation`},nW={MarkRead:`MarkRead`,MarkDelivered:`MarkDelivered`,Typing:`Typing`},rW=G({conversationId:H(),byUserId:H(),uptoSequence:U()}),iW=G({conversationId:H(),userId:H(),isTyping:NA()}),aW=G({userId:H(),online:NA(),lastSeenUtc:H().nullable()}),oW=G({conversationId:H(),messageId:H(),byUserId:H(),emoji:H(),added:NA()}),sW=G({conversationId:H(),messageId:H()}),cW=G({conversationId:H()}),lW=(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},uW=(e,t,n)=>lW(OH,e,t,n),dW=(e,t,n)=>lW(rW,e,t,n),fW=(e,t,n)=>lW(iW,e,t,n),pW=(e,t,n)=>lW(aW,e,t,n),mW=(e,t,n)=>lW(oW,e,t,n),hW=(e,t,n)=>lW(sW,e,t,n),gW=(e,t,n)=>lW(cW,e,t,n),_W=`chat.hidden-messages`,vW=W(H()),yW=()=>{try{let e=window.localStorage.getItem(_W);if(e===null)return[];let t=vW.safeParse(JSON.parse(e));return t.success?t.data:[]}catch{return[]}},bW=e=>{try{window.localStorage.setItem(_W,JSON.stringify(e))}catch{}},xW=TE((e,t)=>({hidden:new Set(yW()),hideForMe:n=>{if(t().hidden.has(n))return;let r=new Set(t().hidden);r.add(n),bW([...r]),e({hidden:r})}})),SW=(e,t)=>t.length>0&&WV(e,t),CW=(e,t)=>{let n=SW(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})},wW=(e,t)=>t.length===0?e:e.map(e=>CW(e,t)),TW=[],EW=({isLoadingOlder:e,hasMessages:t})=>!t||!e?null:(0,D.jsx)(`div`,{className:K.olderRow,children:(0,D.jsx)(mi,{size:`sm`,label:`Loading older messages`})}),DW=(e,t,n,r)=>!(e.fromViewer&&(e.kind===`text`||e.kind===`media`))||Zz(e)?null:eV(e,{peerUserId:t,otherMemberIds:n,receipts:r}),OW=({conversation:e,viewerId:t,messages:r,selectedMessageId:i,onSelectMessage:a,onReact:o,onRetry:s,onReply:c,onEdit:l,onDelete:u})=>{let d=e.id,f=xW(e=>e.hidden),p=(0,n.useMemo)(()=>wW(r.data??TW,t).filter(e=>!f.has(e.id)),[r.data,t,f]),m=tP(e=>e.receipts[d]),h=tP(e=>e.pending),g=e.members.map(e=>e.id).filter(e=>e!==t),_=rV(d),v=lV(d,p,_.loadOlder);return(0,D.jsxs)(`div`,{className:K.threadWrap,children:[(0,D.jsx)(`div`,{className:K.messages,ref:v.scrollRef,onScroll:v.onScroll,children:(0,D.jsxs)(`div`,{className:K.thread,children:[(0,D.jsx)(EW,{isLoadingOlder:_.isLoadingOlder,hasMessages:p.length>0}),r.isPending&&(0,D.jsx)(`div`,{className:K.center,children:(0,D.jsx)(mi,{label:`Loading messages`})}),r.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load messages`,children:r.error.message}),p.length>0&&(0,D.jsx)(mH,{conversation:e,messages:p,pending:h,selectedMessageId:i,onSelectMessage:a,tickFor:t=>DW(t,e.peerUserId,g,m??{}),onReact:o,onRetry:s,onReply:c,onEdit:l,onDelete:u})]})}),v.hasNewBelow&&(0,D.jsxs)(`button`,{type:`button`,className:T(K.newPill),onClick:()=>{v.scrollToBottom(!0)},children:[(0,D.jsx)(Wn,{size:14}),`New messages`]})]})},kW=e=>(0,D.jsx)(OW,{...e}),AW=(e,t,r,i)=>{let[a,o]=(0,n.useState)(null),s=()=>{o(null)};return{requestDelete:t=>{o(e.find(e=>e.id===t)??null)},dialogProps:{open:a!==null,canDeleteForEveryone:a?.canDeleteForEveryone(i.now().getTime())??!1,onDeleteForMe:()=>{a!==null&&r(a.id),s()},onDeleteForEveryone:()=>{a!==null&&t(a.id),s()},onCancel:s}}},jW=`now`,MW=(e,t,n)=>{e.outbox.put({clientMessageId:t.clientMessageId,conversationId:e.conversationId,text:t.text,failedAt:n})},NW=(e,t,n)=>{e.queryClient.setQueryData(WP(e.conversationId),r=>nB(r,eB({viewer:t,text:n.text,clientMessageId:n.clientMessageId,sequence:Qz(r??[])+1,timeLabel:jW,sentAt:e.clock.now().toISOString(),replyTo:n.replyTo??null}))),e.store.getState().markSending(n.clientMessageId),MW(e,n,null)},PW=(e,t,n)=>{e.queryClient.setQueryData(WP(e.conversationId),e=>rB(e,t)),e.store.getState().clearPending(n),e.outbox.remove(n),kP(e.queryClient)},FW=(e,t,n)=>P(t.execute(e.conversationId,n.text,n.clientMessageId,n.replyToMessageId)),IW=e=>{let{sendMessage:t,outbox:r,clock:i}=bP(),a=HM(),o=eP(),s=KP().data??null,c={queryClient:a,store:o,outbox:r,conversationId:e,clock:i},l=iN({mutationFn:e=>FW(c,t,e),onMutate:e=>{s!==null&&NW(c,s,e)},onSuccess:(e,t)=>{PW(c,e,t.clientMessageId)},onError:(e,t)=>{j.error(e instanceof Error?e.message:`Failed to send message`),o.getState().markFailed(t.clientMessageId),MW(c,t,c.clock.now().toISOString()),j.error(e.message)}}),u=(0,n.useCallback)(()=>{r.listByConversation(e).then(e=>{for(let t of e)t.failedAt!==null&&(o.getState().markSending(t.clientMessageId),l.mutate({text:t.text,clientMessageId:t.clientMessageId}))})},[e,l,r,o]);return(0,n.useEffect)(()=>{let e=()=>{u()};return window.addEventListener(`online`,e),()=>{window.removeEventListener(`online`,e)}},[u]),{send:(0,n.useCallback)((e,t=null)=>{l.mutate({text:e,clientMessageId:crypto.randomUUID(),replyToMessageId:t?.messageId??null,replyTo:t})},[l]),retry:(0,n.useCallback)((e,t)=>{o.getState().markSending(e),l.mutate({text:t,clientMessageId:e})},[l,o]),isSending:l.isPending}},LW=(e,t)=>{let n=e.then(t,t);return{run:n,next:n.then(()=>void 0,()=>void 0)}},RW=(e,t)=>{let n=e.get(t);n!==void 0&&(e.delete(t),globalThis.setTimeout(()=>{URL.revokeObjectURL(n)},250))},zW=(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(WP(e.conversationId),e=>nB(e,tB({viewer:n,fileUrl:r,caption:t.caption??``,clientMessageId:t.clientMessageId,sequence:Qz(e??[])+1,sentAt:i,contentType:t.file.type,fileName:t.fileName}))),e.store.getState().markSending(t.clientMessageId)},BW=(e,t,n)=>{e.queryClient.setQueryData(WP(e.conversationId),e=>rB(e,t)),e.store.getState().clearPending(n),RW(e.urls,n),kP(e.queryClient)},VW=(e,t)=>{let n=Xz(t.clientMessageId);e.queryClient.setQueryData(WP(e.conversationId),e=>e?.filter(e=>e.id!==n)??[]),e.store.getState().clearPending(t.clientMessageId),RW(e.urls,t.clientMessageId),j.error(`Couldn't send ${t.fileName}.`)},HW=e=>{let{sendMediaMessage:t,clock:r}=bP(),i=HM(),a=eP(),o=KP().data??null,s=(0,n.useRef)(new Map),c=(0,n.useRef)(Promise.resolve()),l={queryClient:i,store:a,viewer:o,conversationId:e,nowIso:()=>r.now().toISOString(),urls:s.current},u=iN({mutationFn:e=>{let{run:n,next:r}=LW(c.current,()=>P(t.execute(e)));return c.current=r,n},onMutate:e=>{zW(l,e)},onSuccess:(e,t)=>{BW(l,e,t.clientMessageId)},onError:(e,t)=>{VW(l,t)}});return{sendMedia:(0,n.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}};u.mutate(i)},[e,u]),isSending:u.isPending}},UW=(e,t)=>{let r=VP(),i=(0,n.useRef)({conversationId:null,upto:0,acknowledge:(e,t)=>{}});i.current.acknowledge=(e,t)=>{r.mutate({conversationId:e,uptoSequence:t})},(0,n.useEffect)(()=>{if(e===null||t===void 0||t.length===0)return;let n=$z(t),r=i.current;r.conversationId===e&&n<=r.upto||(r.conversationId=e,r.upto=n,r.acknowledge(e,n))},[e,t])},WW=2e3,GW=3e3,KW=e=>{let{realtime:t,logger:r}=bP(),i=tP(e=>e.status===`connected`),a=(0,n.useRef)(0),o=(0,n.useRef)(!1),s=(0,n.useRef)(null),c=(0,n.useCallback)(n=>{e===null||!i||t.invoke(nW.Typing,e,n).catch(()=>{r.debug(`Typing signal dropped (best-effort)`)})},[e,i,t,r]),l=(0,n.useCallback)(()=>{s.current!==null&&(clearTimeout(s.current),s.current=null)},[]),u=(0,n.useCallback)(()=>{l(),o.current&&(o.current=!1,a.current=0,c(!1))},[l,c]),d=(0,n.useCallback)(()=>{let e=Date.now();(!o.current||e-a.current>WW)&&(o.current=!0,a.current=e,c(!0)),l(),s.current=setTimeout(u,GW)},[l,c,u]);return(0,n.useEffect)(()=>u,[e,u]),{onInput:d,stop:u}},qW=e=>{let{subscribePush:t}=bP();(0,n.useEffect)(()=>{!e||!(`serviceWorker`in navigator)||`PushManager`in window},[e,t])},JW=()=>{let[e,t]=(0,n.useState)(``),[r,i]=(0,n.useState)(null),[a,o]=(0,n.useState)(null);return{text:e,setText:t,replyTo:r,setReplyTo:i,editingMessage:a,setEditingMessage:o}},YW=({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}),XW=e=>{let t=qP(e),n=IW(e),r=HW(e),i=iF(e),a=aF(e),o=oF(e),s=sF(e),c=xW(e=>e.hideForMe),l=KW(e),u=JW();return qW(!0),UW(e,t.data),YW({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}})},ZW=()=>(0,D.jsxs)(`div`,{className:K.removedComposer,children:[(0,D.jsx)(Nn,{size:15}),(0,D.jsx)(`span`,{children:`You can no longer send messages here — you’re no longer a member of this group.`})]}),QW=({conversation:e,conversationId:t,active:n,removed:r})=>r?(0,D.jsx)(ZW,{}):(0,D.jsx)(XB,{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}),$W=({conversation:e,conversationId:t,actions:r,onRequestDelete:i,onRequestLeave:a})=>{let o=GL(),s=KP(),{clock:c}=bP(),l=XW(t),u=AW(l.messages.data??[],l.onDelete,l.onDeleteForMe,c),d=tP(e=>e.isRemovedFromConversation(t)),[f,p]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null);return(0,n.useEffect)(()=>{h(null)},[t]),(0,D.jsxs)(`div`,{className:K.view,children:[(0,D.jsx)(xB,{conversation:e,categories:o.data??[],actions:r,statusPill:(0,D.jsx)(IB,{}),onManageMembers:()=>{p(!0)},onRequestDelete:i,onRequestLeave:a,selectedMessage:m,onClearSelection:()=>{h(null)},onReply:l.setReplyTo,onStartEdit:l.startEdit,onDelete:u.requestDelete}),(0,D.jsx)(kW,{conversation:e,viewerId:s.data?.id??``,messages:l.messages,selectedMessageId:m?.id??null,onSelectMessage:e=>{h(t=>t?.id===e.id?null:e)},onReact:l.onReact,onRetry:l.send.retry,onReply:l.setReplyTo,onEdit:l.onEdit,onDelete:u.requestDelete}),(0,D.jsx)(QW,{conversation:e,conversationId:t,active:l,removed:d}),e.isGroup&&(0,D.jsx)(MB,{conversation:e,open:f,onClose:()=>{p(!1)}}),(0,D.jsx)(NB,{...u.dialogProps})]})},eG=()=>(0,D.jsxs)(`div`,{className:K.viewEmpty,children:[(0,D.jsx)(`div`,{className:K.emptyIconWrap,children:(0,D.jsx)(Nn,{size:32})}),(0,D.jsx)(`h3`,{className:K.emptyTitle,children:`No longer available`}),(0,D.jsx)(`p`,{className:K.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.`})]}),tG=()=>{let e=jy(0),t=jy(0),n=Ry(e,{stiffness:60,damping:20}),r=Ry(t,{stiffness:60,damping:20}),i=Py(n,[-1,1],[-25,25]),a=Py(r,[-1,1],[-25,25]),o=Py(n,[-1,1],[20,-20]),s=Py(r,[-1,1],[-15,15]),c=Py(n,[-1,1],[-15,15]),l=Py(r,[-1,1],[20,-20]);return(0,D.jsxs)(`div`,{className:K.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)(A.div,{className:K.emptyFloating1,style:{x:i,y:a},children:(0,D.jsx)(xr,{size:24})}),(0,D.jsx)(A.div,{className:K.emptyFloating2,style:{x:o,y:s},children:(0,D.jsx)(Jr,{size:20})}),(0,D.jsx)(A.div,{className:K.emptyFloating3,style:{x:c,y:l},children:(0,D.jsx)(Vr,{size:16})}),(0,D.jsx)(`div`,{className:K.emptyIconWrap,children:(0,D.jsx)(br,{size:32})}),(0,D.jsx)(`h3`,{className:K.emptyTitle,children:`Your Messages`}),(0,D.jsx)(`p`,{className:K.emptyText,children:`Select a conversation from the sidebar or start a new chat.`})]})},nG=({conversation:e,conversationId:t,lostAccess:r,actions:i,onRequestDelete:a,onRequestLeave:o})=>{let s=eP();return(0,n.useEffect)(()=>(s.getState().setActiveConversationId(t),()=>{s.getState().setActiveConversationId(null)}),[t,s]),e===void 0||t===null?r?(0,D.jsx)(eG,{}):(0,D.jsx)(tG,{}):(0,D.jsx)(A.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-12},transition:{type:`spring`,stiffness:350,damping:28},className:K.viewPaneWrapper,children:(0,D.jsx)($W,{conversation:e,conversationId:t,actions:i,onRequestDelete:a,onRequestLeave:o})},t)},rG=({mediaUrl:e})=>{let{src:t,isLoading:n,isError:r,onImageError:i}=hV(e);return r?(0,D.jsxs)(`div`,{className:K.viewerFallback,children:[(0,D.jsx)(dr,{size:30}),(0,D.jsx)(`span`,{children:`Image unavailable`})]}):t===null||n?(0,D.jsx)(mi,{label:`Loading image`}):(0,D.jsx)(`img`,{className:K.viewerImg,src:t,alt:``,onError:i})},iG=(e,t,r,i)=>{(0,n.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`?t():e.key===`ArrowRight`?r():e.key===`ArrowLeft`&&i()};return window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,n)}},[e,t,r,i])},aG=()=>{let e=gV(e=>e.open),t=gV(e=>e.urls),n=gV(e=>e.index),r=gV(e=>e.close),a=gV(e=>e.next),o=gV(e=>e.prev);iG(e,r,a,o);let s=t[n];if(!e||s===void 0)return null;let c=t.length>1;return(0,i.createPortal)((0,D.jsxs)(`div`,{className:K.viewerBackdrop,role:`dialog`,"aria-modal":`true`,"aria-label":`Image preview`,children:[(0,D.jsx)(`button`,{type:`button`,className:K.viewerScrim,"aria-label":`Close preview`,onClick:r}),(0,D.jsx)(`button`,{type:`button`,className:K.viewerClose,"aria-label":`Close preview`,onClick:r,children:(0,D.jsx)(oi,{size:22})}),c&&(0,D.jsx)(`button`,{type:`button`,className:T(K.viewerNav,K.viewerNavPrev),"aria-label":`Previous image`,disabled:n===0,onClick:o,children:(0,D.jsx)(Gn,{size:26})}),(0,D.jsx)(`div`,{className:K.viewerStage,children:(0,D.jsx)(rG,{mediaUrl:s})}),c&&(0,D.jsx)(`button`,{type:`button`,className:T(K.viewerNav,K.viewerNavNext),"aria-label":`Next image`,disabled:n===t.length-1,onClick:a,children:(0,D.jsx)(Kn,{size:26})}),c&&(0,D.jsxs)(`span`,{className:K.viewerCount,children:[n+1,` / `,t.length]})]}),document.body)},oG=()=>{let e=YP(),t=ZP(),n=XP(),r=QP(),i=$P(),a=eF();return{toggleFavourite:t=>{e.mutate({id:t.id,value:!t.favourite},{onSuccess:()=>{j.success(t.favourite?`Removed from Favourites`:`Added to Favourites`)}})},togglePin:e=>{t.mutate({id:e.id,value:!e.pinned},{onSuccess:()=>{j.success(e.pinned?`Unpinned`:`Pinned to top`)}})},toggleArchive:e=>{n.mutate({id:e.id,value:!e.archived},{onSuccess:()=>{j.success(e.archived?`Chat unarchived`:`Chat archived`)}})},remove:e=>{r.mutate(e,{onSuccess:()=>{j.success(`Chat deleted`)}})},leave:e=>{i.mutate(e.id,{onSuccess:()=>{j.success(`You left "${e.title}"`)}})},refresh:e=>{a.mutate(e.id,{onSuccess:()=>{j.success(`Portal data refreshed`)}})}}},sG=e=>{let t=eP();(0,n.useEffect)(()=>{let{seedReceipts:n}=t.getState();for(let t of e)n(t.id,t.memberReceipts)},[t,e])},cG=[],lG=(e,t,n)=>{let r=TP(e,t),i=TP(e,``),a=EP(),o=r.data??cG,s=i.data??cG,c=n??s[0]?.id??o[0]?.id??null,l=OP(c);return sG(o),{conversations:r,counts:a.data,list:o,activeId:c,active:l.data??o.find(e=>e.id===c),lostAccess:n!==null&&l.isError}},uG=`/comms/chats`,dG=(e,t,r)=>{let[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)(null);return{pendingDelete:i,pendingLeave:o,requestDelete:a,requestLeave:s,confirmDelete:()=>{i!==null&&(e.remove(i.id),i.id===t&&r(uG)),a(null)},confirmLeave:()=>{o!==null&&(e.leave(o),o.id===t&&r(uG)),s(null)},cancelDelete:()=>{a(null)},cancelLeave:()=>{s(null)}}},fG=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,pG=`--`,mG=e=>e.replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``),hG=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return t+`=`.repeat((4-t.length%4)%4)},gG=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 mG(btoa(n))},_G=e=>{let t;try{t=atob(hG(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)}`},vG=e=>fG.test(e)?gG(e):`~${mG(btoa(e))}`,yG=e=>{if(e.startsWith(`~`))try{return atob(hG(e.slice(1)))}catch{return null}return _G(e)},bG=e=>{let t=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,40);return t.length>0?t:`chat`},xG=(e,t)=>`/comms/chats/${bG(t)}${pG}${vG(e)}`,SG=e=>{let t=e.indexOf(pG),n=t>=0?e.slice(t+2):e;return fG.test(n)?n:yG(n)},CG=()=>{let e=Ue(),[t,r]=(0,n.useState)(`all`),[i,a]=(0,n.useState)(``),o=uF(i,250),{conversationId:s}=We(),c=s===void 0?null:SG(s),{conversations:l,counts:u,list:d,activeId:f,active:p,lostAccess:m}=lG(t,o,c),h=oG(),g=Be(),_=dG(h,c,g);return l.isPending?(0,D.jsx)(OF,{}):l.isSuccess?(0,D.jsxs)(`div`,{className:T(K.root,c!==null&&K.hasActiveChat),children:[(0,D.jsx)(EF,{conversations:d,activeId:f,actions:h,filter:{tab:t,onTabChange:r,search:i,onSearchChange:a,counts:u},hasNextPage:l.hasNextPage,isFetchingNextPage:l.isFetchingNextPage,onLoadMore:l.fetchNextPage,onRequestDelete:_.requestDelete,onSelect:e=>{g(xG(e,d.find(t=>t.id===e)?.title??``))}}),(0,D.jsx)(nG,{conversation:p,conversationId:f,lostAccess:m,actions:h,onRequestDelete:_.requestDelete,onRequestLeave:_.requestLeave}),(0,D.jsx)(ZE,{pendingDelete:_.pendingDelete,pendingLeave:_.pendingLeave,onConfirmDelete:_.confirmDelete,onConfirmLeave:_.confirmLeave,onCancelDelete:_.cancelDelete,onCancelLeave:_.cancelLeave}),(0,D.jsx)(aG,{}),e]}):(0,D.jsx)(`div`,{className:K.fullCenter,children:(0,D.jsx)(vi,{tone:`error`,title:`Could not load chats`,children:l.error?.message??`Please try again.`})})},wG=`/comms/chats`,TG=()=>(0,D.jsxs)(St,{children:[(0,D.jsxs)(bt,{path:wG,element:(0,D.jsx)(CG,{}),children:[(0,D.jsx)(bt,{index:!0,element:null}),(0,D.jsx)(bt,{path:`:conversationId`,element:null})]}),(0,D.jsx)(bt,{path:`*`,element:(0,D.jsx)(yt,{to:wG,replace:!0})})]}),EG=e.n((e=>{var t=require("react-dom");if(process.env.NODE_ENV===`production`)e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot;else{var n=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;e.createRoot=function(e,r){n.usingClientEntryPoint=!0;try{return t.createRoot(e,r)}finally{n.usingClientEntryPoint=!1}},e.hydrateRoot=function(e,r,i){n.usingClientEntryPoint=!0;try{return t.hydrateRoot(e,r,i)}finally{n.usingClientEntryPoint=!1}}}}))(),DG=`__COMMHUB_SDK_CSS__`,OG,kG=()=>{let e=globalThis[DG];return typeof e==`string`?e:``},AG=()=>typeof CSSStyleSheet==`function`&&typeof CSSStyleSheet.prototype.replaceSync==`function`,jG=()=>{let e=kG();if(e===``||!AG())return[];if(OG===void 0)try{let t=new CSSStyleSheet;t.replaceSync(e),OG=t}catch{OG=null}return OG===null?[]:[OG]},MG=()=>{let e=kG();if(e===``)return null;let t=document.createElement(`style`);return t.textContent=e,t},NG=`commhub-widget-root`;function PG(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=jG();if(t.length>0)e.adoptedStyleSheets=[...t];else{let t=MG();t!==null&&e.appendChild(t)}this.mountPoint=document.createElement(`div`),this.mountPoint.className=NG,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,EG.createRoot)(this.mountPoint),this.reactRoot.render(t(this)))}}customElements.define(e,r)}var FG={notice:`_notice_184jj_6`,title:`_title_184jj_23`,detail:`_detail_184jj_29`},IG=({tagName:e,detail:t})=>(0,D.jsxs)(`div`,{className:FG.notice,role:`alert`,children:[(0,D.jsxs)(`strong`,{className:FG.title,children:[`<`,e,`> could not start: invalid configuration`]}),(0,D.jsx)(`span`,{className:FG.detail,children:t})]}),LG=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)}},RG=e=>{let t=new lz({storage:new LG,logger:e.logger,namespace:e.storageNamespace});return uz({completeSsoLoginUseCase:new VR({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),logoutUseCase:new HR({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),restoreSessionUseCase:new UR({authGateway:e.authGateway,sessionStore:t,clock:e.clock,logger:e.logger}),refreshSessionUseCase:new WR({authGateway:e.authGateway,sessionStore:t,logger:e.logger}),setAccessToken:e.setAccessToken,loginUrl:``})},zG=`sdk_signed`,BG=`assertion`,VG=`CommunicationHub`,HG=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=[VG,...e.modules].join(` `)}exchangeSsoSecret(e){return e.trim().length===0||this.clientKey.trim().length===0?Promise.resolve(N(new IR)):this.requestToken({grant_type:zG,client_id:this.clientKey,[BG]:e,scope:this.scope})}refresh(e){return Promise.resolve(N(new LR(`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(QR,e,{anonymous:!0}),n=GR.safeParse(t);return n.success?ZR(n.data,this.clock.now()):(this.logger.error(`Token endpoint returned an unexpected shape`,n.error),N(new LR(n.error)))}catch(e){return e instanceof WO&&e.isClientError()?(this.logger.warn(`Signed assertion was rejected`,{status:e.status}),N(new IR)):(this.logger.error(`Failed to exchange signed assertion`,{error:e}),N(new LR(e)))}}},UG=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(N(new IR));try{let t=YR(e);if(CD(t))return this.logger.error(`Invalid JWT token provided by host`,t.error),Promise.resolve(N(new LR(`Invalid host token provided.`)));let n=t.value.exp;if(typeof n!=`number`)return Promise.resolve(N(new LR(`Host token missing or invalid exp claim.`)));let r=n-Math.floor(this.clock.now().getTime()/1e3);return r<=0?Promise.resolve(N(new LR(`Host token is already expired.`))):Promise.resolve(ZR({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(N(new LR(e)))}}refresh(e){return Promise.resolve(N(new LR(`host-token does not support traditional refresh tokens.`)))}signOut(e){return Promise.resolve()}},WG={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`},GG=class extends ci{},KG=class extends GG{code=`MODULE_ACCESS_UNAVAILABLE`;constructor(e){super(`Your menu access could not be loaded. Please try again.`,{cause:e})}},qG=[`commhub.chat`,`commhub.bookings`,`commhub.schedule`,`commhub.feed`],JG={"commhub.chat":WG.chat,"commhub.feed":WG.feed,"commhub.schedule":WG.schedule,"commhub.bookings":WG.meetings},YG=e=>Object.hasOwn(JG,e),XG=e=>qG.filter(t=>e.has(JG[t])),ZG=(e,t)=>e.filter(e=>!t.has(JG[e])),QG=1e4,$G=1e3,eK=6e4,tK=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:XG(t)}});let n=ZG(this.deps.requestedModules,t);n.length>0&&this.deps.emit({type:`scope-denied`,payload:{required:[...n],granted:XG(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(eK,$G*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-QG))}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())})}},nK=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()}}},rK=class extends Error{constructor(e,t){let n=new.target.prototype;super(`${e}: Status code '${t}'`),this.statusCode=t,this.__proto__=n}},iK=class extends Error{constructor(e=`A timeout occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},aK=class extends Error{constructor(e=`An abort occurred.`){let t=new.target.prototype;super(e),this.__proto__=t}},oK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`UnsupportedTransportError`,this.__proto__=n}},sK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`DisabledTransportError`,this.__proto__=n}},cK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.transport=t,this.errorType=`FailedToStartTransportError`,this.__proto__=n}},lK=class extends Error{constructor(e){let t=new.target.prototype;super(e),this.errorType=`FailedToNegotiateWithServerError`,this.__proto__=t}},uK=class extends Error{constructor(e,t){let n=new.target.prototype;super(e),this.innerErrors=t,this.__proto__=n}},dK=class{constructor(e,t,n){this.statusCode=e,this.statusText=t,this.content=n}},fK=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``}},J;(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`})(J||={});var pK=class{constructor(){}log(e,t){}};pK.instance=new pK;var mK=`10.0.0`,hK=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}.`)}},gK=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 _K(e,t){let n=``;return yK(e)?(n=`Binary data of length ${e.byteLength}`,t&&(n+=`. Content: '${vK(e)}'`)):typeof e==`string`&&(n=`String data of length ${e.length}`,t&&(n+=`. Content: '${e}'`)),n}function vK(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 yK(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor&&e.constructor.name===`ArrayBuffer`)}async function bK(e,t,n,r,i,a){let o={},[s,c]=wK();o[s]=c,e.log(J.Trace,`(${t} transport) sending data. ${_K(i,a.logMessageContent)}.`);let l=yK(i)?`arraybuffer`:`text`,u=await n.post(r,{content:i,headers:{...o,...a.headers},responseType:l,timeout:a.timeout,withCredentials:a.withCredentials});e.log(J.Trace,`(${t} transport) request complete. Response status: ${u.statusCode}.`)}function xK(e){return e===void 0?new CK(J.Information):e===null?pK.instance:e.log===void 0?new CK(e):e}var SK=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=>{})}},CK=class{constructor(e){this._minLevel=e,this.out=console}log(e,t){if(e>=this._minLevel){let n=`[${new Date().toISOString()}] ${J[e]}: ${t}`;switch(e){case J.Critical:case J.Error:this.out.error(n);break;case J.Warning:this.out.warn(n);break;case J.Information:this.out.info(n);break;default:this.out.log(n);break}}}};function wK(){let e=`X-SignalR-User-Agent`;return gK.isNode&&(e=`User-Agent`),[e,TK(mK,EK(),OK(),DK())]}function TK(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 EK(){if(gK.isNode)switch(process.platform){case`win32`:return`Windows NT`;case`darwin`:return`macOS`;case`linux`:return`Linux`;default:return process.platform}else return``}function DK(){if(gK.isNode)return process.versions.node}function OK(){return gK.isNode?`NodeJS`:`Browser`}function kK(e){return e.stack?e.stack:e.message?e.message:`${e}`}function AK(){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 jK=class extends fK{constructor(e){if(super(),this._logger=e,typeof fetch>`u`||gK.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(AK());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 aK;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 aK});let r=null;if(e.timeout){let i=e.timeout;r=setTimeout(()=>{t.abort(),this._logger.log(J.Warning,`Timeout from HTTP request.`),n=new iK},i)}e.content===``&&(e.content=void 0),e.content&&(e.headers=e.headers||{},yK(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(J.Warning,`Error from HTTP request. ${e}.`),e)}finally{r&&clearTimeout(r),e.abortSignal&&(e.abortSignal.onabort=null)}if(!i.ok)throw new rK(await MK(i,`text`)||i.statusText,i.status);let a=await MK(i,e.responseType);return new dK(i.status,i.statusText,a)}getCookieString(e){let t=``;return gK.isNode&&this._jar&&this._jar.getCookies(e,(e,n)=>t=n.join(`; `)),t}};function MK(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 NK=class extends fK{constructor(e){super(),this._logger=e}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new aK):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&&(yK(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 aK)}),e.timeout&&(r.timeout=e.timeout),r.onload=()=>{e.abortSignal&&(e.abortSignal.onabort=null),r.status>=200&&r.status<300?t(new dK(r.status,r.statusText,r.response||r.responseText)):n(new rK(r.response||r.responseText||r.statusText,r.status))},r.onerror=()=>{this._logger.log(J.Warning,`Error from HTTP request. ${r.status}: ${r.statusText}.`),n(new rK(r.statusText,r.status))},r.ontimeout=()=>{this._logger.log(J.Warning,`Timeout from HTTP request.`),n(new iK)},r.send(e.content)}):Promise.reject(Error(`No url defined.`)):Promise.reject(Error(`No method defined.`))}},PK=class extends fK{constructor(e){if(super(),typeof fetch<`u`||gK.isNode)this._httpClient=new jK(e);else if(typeof XMLHttpRequest<`u`)this._httpClient=new NK(e);else throw Error(`No usable HttpClient found.`)}send(e){return e.abortSignal&&e.abortSignal.aborted?Promise.reject(new aK):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)}},FK=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}};FK.RecordSeparatorCode=30,FK.RecordSeparator=String.fromCharCode(FK.RecordSeparatorCode);var IK=class{writeHandshakeRequest(e){return FK.write(JSON.stringify(e))}parseHandshakeResponse(e){let t,n;if(yK(e)){let r=new Uint8Array(e),i=r.indexOf(FK.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(FK.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=FK.parse(t),i=JSON.parse(r[0]);if(i.type)throw Error(`Expected a handshake response from the server.`);return[n,i]}},LK;(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`})(LK||={});var RK=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 SK(this,e)}},zK=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=()=>{};yK(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 BK(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,yK(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===LK.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:LK.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 LK.Invocation:case LK.StreamItem:case LK.Completion:case LK.StreamInvocation:case LK.CancelInvocation:return!0;case LK.Close:case LK.Sequence:case LK.Ping:case LK.Ack:return!1}}_ackTimer(){this._ackTimerHandle===void 0&&(this._ackTimerHandle=setTimeout(async()=>{try{this._reconnectInProgress||await this._connection.send(this._protocol.writeMessage({type:LK.Ack,sequenceId:this._latestReceivedSequenceId}))}catch{}clearTimeout(this._ackTimerHandle),this._ackTimerHandle=void 0},1e3))}},BK=class{constructor(e,t,n,r){this._message=e,this._id=t,this._resolver=n,this._rejector=r}},VK=30*1e3,HK=15*1e3,UK=1e5,WK;(function(e){e.Disconnected=`Disconnected`,e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Reconnecting=`Reconnecting`})(WK||={});var GK=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(J.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`)},hK.isRequired(e,`connection`),hK.isRequired(t,`logger`),hK.isRequired(n,`protocol`),this.serverTimeoutInMilliseconds=i??VK,this.keepAliveIntervalInMilliseconds=a??HK,this._statefulReconnectBufferSize=o??UK,this._logger=t,this._protocol=n,this.connection=e,this._reconnectPolicy=r,this._handshakeProtocol=new IK,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=WK.Disconnected,this._connectionStarted=!1,this._cachedPingMessage=this._protocol.writeMessage({type:LK.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!==WK.Disconnected&&this._connectionState!==WK.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!==WK.Disconnected)return Promise.reject(Error(`Cannot start a HubConnection that is not in the 'Disconnected' state.`));this._connectionState=WK.Connecting,this._logger.log(J.Debug,`Starting HubConnection.`);try{await this._startInternal(),gK.isBrowser&&window.document.addEventListener(`freeze`,this._freezeEventListener),this._connectionState=WK.Connected,this._connectionStarted=!0,this._logger.log(J.Debug,`HubConnection connected successfully.`)}catch(e){return this._connectionState=WK.Disconnected,this._logger.log(J.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(J.Debug,`Sending handshake request.`),await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(n)),this._logger.log(J.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 zK(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(J.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===WK.Disconnected)return this._logger.log(J.Debug,`Call to HubConnection.stop(${e}) ignored because it is already in the disconnected state.`),Promise.resolve();if(this._connectionState===WK.Disconnecting)return this._logger.log(J.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=WK.Disconnecting,this._logger.log(J.Debug,`Stopping HubConnection.`),this._reconnectDelayHandle?(this._logger.log(J.Debug,`Connection stopped during reconnect delay. Done reconnecting.`),clearTimeout(this._reconnectDelayHandle),this._reconnectDelayHandle=void 0,this._completeClose(),Promise.resolve()):(t===WK.Connected&&this._sendCloseMessage(),this._cleanupTimeout(),this._cleanupPingTimer(),this._stopDuringStartError=e||new aK(`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 RK;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===LK.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===LK.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 LK.Invocation:this._invokeClientMethod(e).catch(e=>{this._logger.log(J.Error,`Invoke client method threw error: ${kK(e)}`)});break;case LK.StreamItem:case LK.Completion:{let t=this._callbacks[e.invocationId];if(t){e.type===LK.Completion&&delete this._callbacks[e.invocationId];try{t(e)}catch(e){this._logger.log(J.Error,`Stream callback threw error: ${kK(e)}`)}}break}case LK.Ping:break;case LK.Close:{this._logger.log(J.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 LK.Ack:this._messageBuffer&&this._messageBuffer._ack(e);break;case LK.Sequence:this._messageBuffer&&this._messageBuffer._resetSequence(e);break;default:this._logger.log(J.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(J.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(J.Error,e);let n=Error(e);throw this._handshakeRejecter(n),n}else this._logger.log(J.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===WK.Connected&&this._trySendPingMessage();return}this._pingServerHandle===void 0&&(e<0&&(e=0),this._pingServerHandle=setTimeout(async()=>{this._connectionState===WK.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(J.Warning,`No client method with the name '${t}' found.`),e.invocationId&&(this._logger.log(J.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(J.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(J.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(J.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(J.Error,`Result given for '${t}' method but server is not expecting a result.`)}_connectionClosed(e){this._logger.log(J.Debug,`HubConnection.connectionClosed(${e}) called while in state ${this._connectionState}.`),this._stopDuringStartError=this._stopDuringStartError||e||new aK(`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===WK.Disconnecting?this._completeClose(e):this._connectionState===WK.Connected&&this._reconnectPolicy?this._reconnect(e):this._connectionState===WK.Connected&&this._completeClose(e)}_completeClose(e){if(this._connectionStarted){this._connectionState=WK.Disconnected,this._connectionStarted=!1,this._messageBuffer&&=(this._messageBuffer._dispose(e??Error(`Connection closed.`)),void 0),gK.isBrowser&&window.document.removeEventListener(`freeze`,this._freezeEventListener);try{this._closedCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(J.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(J.Debug,`Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.`),this._completeClose(e);return}if(this._connectionState=WK.Reconnecting,e?this._logger.log(J.Information,`Connection reconnecting because of error '${e}'.`):this._logger.log(J.Information,`Connection reconnecting.`),this._reconnectingCallbacks.length!==0){try{this._reconnectingCallbacks.forEach(t=>t.apply(this,[e]))}catch(t){this._logger.log(J.Error,`An onreconnecting callback called with error '${e}' threw error '${t}'.`)}if(this._connectionState!==WK.Reconnecting){this._logger.log(J.Debug,`Connection left the reconnecting state in onreconnecting callback. Done reconnecting.`);return}}for(;i!==null;){if(this._logger.log(J.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!==WK.Reconnecting){this._logger.log(J.Debug,`Connection left the reconnecting state during reconnect delay. Done reconnecting.`);return}try{if(await this._startInternal(),this._connectionState=WK.Connected,this._logger.log(J.Information,`HubConnection reconnected successfully.`),this._reconnectedCallbacks.length!==0)try{this._reconnectedCallbacks.forEach(e=>e.apply(this,[this.connection.connectionId]))}catch(e){this._logger.log(J.Error,`An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`)}return}catch(e){if(this._logger.log(J.Information,`Reconnect attempt failed because of error '${e}'.`),this._connectionState!==WK.Reconnecting){this._logger.log(J.Debug,`Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`),this._connectionState===WK.Disconnecting&&this._completeClose();return}n++,r=e instanceof Error?e:Error(e.toString()),i=this._getNextRetryDelay(n,Date.now()-t,r)}}this._logger.log(J.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(J.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(J.Error,`Stream 'error' callback called with '${e}' threw error: ${kK(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:LK.Invocation}:{target:e,arguments:t,streamIds:r,type:LK.Invocation};{let n=this._invocationId;return this._invocationId++,r.length===0?{target:e,arguments:t,invocationId:n.toString(),type:LK.Invocation}:{target:e,arguments:t,invocationId:n.toString(),streamIds:r,type:LK.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:LK.StreamInvocation}:{target:e,arguments:t,invocationId:r.toString(),streamIds:n,type:LK.StreamInvocation}}_createCancelInvocation(e){return{invocationId:e,type:LK.CancelInvocation}}_createStreamItemMessage(e,t){return{invocationId:e,item:t,type:LK.StreamItem}}_createCompletionMessage(e,t,n){return t?{error:t,invocationId:e,type:LK.Completion}:{invocationId:e,result:n,type:LK.Completion}}_createCloseMessage(){return{type:LK.Close}}async _trySendPingMessage(){try{await this._sendMessage(this._cachedPingMessage)}catch{this._cleanupPingTimer()}}},KK=[0,2e3,1e4,3e4,null],qK=class{constructor(e){this._retryDelays=e===void 0?KK:[...e,null]}nextRetryDelayInMilliseconds(e){return this._retryDelays[e.previousRetryCount]}},JK=class{};JK.Authorization=`Authorization`,JK.Cookie=`Cookie`;var YK=class extends fK{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[JK.Authorization]=`Bearer ${this._accessToken}`:this._accessTokenFactory&&e.headers[JK.Authorization]&&delete e.headers[JK.Authorization]}getCookieString(e){return this._innerClient.getCookieString(e)}},XK;(function(e){e[e.None=0]=`None`,e[e.WebSockets=1]=`WebSockets`,e[e.ServerSentEvents=2]=`ServerSentEvents`,e[e.LongPolling=4]=`LongPolling`})(XK||={});var ZK;(function(e){e[e.Text=1]=`Text`,e[e.Binary=2]=`Binary`})(ZK||={});var QK=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}},$K=class{get pollAborted(){return this._pollAbort.aborted}constructor(e,t,n){this._httpClient=e,this._logger=t,this._pollAbort=new QK,this._options=n,this._running=!1,this.onreceive=null,this.onclose=null}async connect(e,t){if(hK.isRequired(e,`url`),hK.isRequired(t,`transferFormat`),hK.isIn(t,ZK,`transferFormat`),this._url=e,this._logger.log(J.Trace,`(LongPolling transport) Connecting.`),t===ZK.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]=wK(),i={[n]:r,...this._options.headers},a={abortSignal:this._pollAbort.signal,headers:i,timeout:1e5,withCredentials:this._options.withCredentials};t===ZK.Binary&&(a.responseType=`arraybuffer`);let o=`${e}&_=${Date.now()}`;this._logger.log(J.Trace,`(LongPolling transport) polling: ${o}.`);let s=await this._httpClient.get(o,a);s.statusCode===200?this._running=!0:(this._logger.log(J.Error,`(LongPolling transport) Unexpected response code: ${s.statusCode}.`),this._closeError=new rK(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(J.Trace,`(LongPolling transport) polling: ${n}.`);let r=await this._httpClient.get(n,t);r.statusCode===204?(this._logger.log(J.Information,`(LongPolling transport) Poll terminated by server.`),this._running=!1):r.statusCode===200?r.content?(this._logger.log(J.Trace,`(LongPolling transport) data received. ${_K(r.content,this._options.logMessageContent)}.`),this.onreceive&&this.onreceive(r.content)):this._logger.log(J.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._logger.log(J.Error,`(LongPolling transport) Unexpected response code: ${r.statusCode}.`),this._closeError=new rK(r.statusText||``,r.statusCode),this._running=!1)}catch(e){this._running?e instanceof iK?this._logger.log(J.Trace,`(LongPolling transport) Poll timed out, reissuing.`):(this._closeError=e,this._running=!1):this._logger.log(J.Trace,`(LongPolling transport) Poll errored after shutdown: ${e.message}`)}}finally{this._logger.log(J.Trace,`(LongPolling transport) Polling complete.`),this.pollAborted||this._raiseOnClose()}}async send(e){return this._running?bK(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(J.Trace,`(LongPolling transport) Stopping polling.`),this._running=!1,this._pollAbort.abort();try{await this._receiving,this._logger.log(J.Trace,`(LongPolling transport) sending DELETE request to ${this._url}.`);let e={},[t,n]=wK();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 rK&&(i.statusCode===404?this._logger.log(J.Trace,`(LongPolling transport) A 404 response was returned from sending a DELETE request.`):this._logger.log(J.Trace,`(LongPolling transport) Error sending a DELETE request: ${i}`)):this._logger.log(J.Trace,`(LongPolling transport) DELETE request accepted.`)}finally{this._logger.log(J.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(J.Trace,e),this.onclose(this._closeError)}}},eq=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 hK.isRequired(e,`url`),hK.isRequired(t,`transferFormat`),hK.isIn(t,ZK,`transferFormat`),this._logger.log(J.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!==ZK.Text){r(Error(`The Server-Sent Events transport only supports the 'Text' transfer format`));return}let a;if(gK.isBrowser||gK.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]=wK();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(J.Trace,`(SSE transport) data received. ${_K(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(J.Information,`SSE connected to ${this._url}`),this._eventSource=a,i=!0,n()}}catch(e){r(e);return}})}async send(e){return this._eventSource?bK(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))}},tq=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){hK.isRequired(e,`url`),hK.isRequired(t,`transferFormat`),hK.isIn(t,ZK,`transferFormat`),this._logger.log(J.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(gK.isNode||gK.isReactNative){let t={},[r,i]=wK();t[r]=i,n&&(t[JK.Authorization]=`Bearer ${n}`),o&&(t[JK.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===ZK.Binary&&(a.binaryType=`arraybuffer`),a.onopen=t=>{this._logger.log(J.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(J.Information,`(WebSockets transport) ${t}.`)},a.onmessage=e=>{if(this._logger.log(J.Trace,`(WebSockets transport) data received. ${_K(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(J.Trace,`(WebSockets transport) sending data. ${_K(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(J.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`}},nq=100,rq=class{constructor(e,t={}){if(this._stopPromiseResolver=()=>{},this.features={},this._negotiateVersion=1,hK.isRequired(e,`url`),this._logger=xK(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(gK.isNode&&typeof require<`u`){let e=typeof __webpack_require__==`function`?__non_webpack_require__:require;n=e(`ws`),r=e(`eventsource`)}!gK.isNode&&typeof WebSocket<`u`&&!t.WebSocket?t.WebSocket=WebSocket:gK.isNode&&!t.WebSocket&&n&&(t.WebSocket=n),!gK.isNode&&typeof EventSource<`u`&&!t.EventSource?t.EventSource=EventSource:gK.isNode&&!t.EventSource&&r!==void 0&&(t.EventSource=r),this._httpClient=new YK(t.httpClient||new PK(this._logger),t.accessTokenFactory),this._connectionState=`Disconnected`,this._connectionStarted=!1,this._options=t,this.onreceive=null,this.onclose=null}async start(e){if(e||=ZK.Binary,hK.isIn(e,ZK,`transferFormat`),this._logger.log(J.Debug,`Starting connection with transfer format '${ZK[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(J.Error,e),await this._stopPromise,Promise.reject(new aK(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(J.Error,e),Promise.reject(new aK(e))}this._connectionStarted=!0}send(e){return this._connectionState===`Connected`?(this._sendQueue||=new aq(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(J.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(J.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(J.Error,`HttpConnection.transport.stop() threw error '${e}'.`),this._stopConnection()}this.transport=void 0}else this._logger.log(J.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===XK.WebSockets)this.transport=this._constructTransport(XK.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 aK(`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<nq);if(r===nq&&n.url)throw Error(`Negotiate redirection limit exceeded.`);await this._createTransport(t,this._options.transport,n,e)}this.transport instanceof $K&&(this.features.inherentKeepAlive=!0),this._connectionState===`Connecting`&&(this._logger.log(J.Debug,`The HttpConnection connected successfully.`),this._connectionState=`Connected`)}catch(e){return this._logger.log(J.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]=wK();t[n]=r;let i=this._resolveNegotiateUrl(e);this._logger.log(J.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 lK(`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 rK&&e.statusCode===404&&(t+=` Either this is not a SignalR endpoint or there is a proxy blocking the connection.`),this._logger.log(J.Error,t),Promise.reject(new lK(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(J.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(J.Error,`Failed to start the transport '${n.transport}': ${e}`),s=void 0,a.push(new cK(`${n.transport} failed: ${e}`,XK[n.transport])),this._connectionState!==`Connecting`){let e=`Failed to select transport before stop() was called.`;return this._logger.log(J.Debug,e),Promise.reject(new aK(e))}}}}return a.length>0?Promise.reject(new uK(`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 XK.WebSockets:if(!this._options.WebSocket)throw Error(`'WebSocket' is not supported in your environment.`);return new tq(this._httpClient,this._accessTokenFactory,this._logger,this._options.logMessageContent,this._options.WebSocket,this._options.headers||{});case XK.ServerSentEvents:if(!this._options.EventSource)throw Error(`'EventSource' is not supported in your environment.`);return new eq(this._httpClient,this._httpClient._accessToken,this._logger,this._options);case XK.LongPolling:return new $K(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=XK[e.transport];if(i==null)return this._logger.log(J.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(iq(t,i))if(e.transferFormats.map(e=>ZK[e]).indexOf(n)>=0){if(i===XK.WebSockets&&!this._options.WebSocket||i===XK.ServerSentEvents&&!this._options.EventSource)return this._logger.log(J.Debug,`Skipping transport '${XK[i]}' because it is not supported in your environment.'`),new oK(`'${XK[i]}' is not supported in your environment.`,i);this._logger.log(J.Debug,`Selecting transport '${XK[i]}'.`);try{return this.features.reconnect=i===XK.WebSockets?r:void 0,this._constructTransport(i)}catch(e){return e}}else return this._logger.log(J.Debug,`Skipping transport '${XK[i]}' because it does not support the requested transfer format '${ZK[n]}'.`),Error(`'${XK[i]}' does not support ${ZK[n]}.`);else return this._logger.log(J.Debug,`Skipping transport '${XK[i]}' because it was disabled by the client.`),new sK(`'${XK[i]}' is disabled by the client.`,i)}_isITransport(e){return e&&typeof e==`object`&&`connect`in e}_stopConnection(e){if(this._logger.log(J.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(J.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(J.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(J.Error,`Connection disconnected with error '${e}'.`):this._logger.log(J.Information,`Connection disconnected.`),this._sendQueue&&=(this._sendQueue.stop().catch(e=>{this._logger.log(J.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(J.Error,`HttpConnection.onclose(${e}) threw error '${t}'.`)}}}_resolveUrl(e){if(e.lastIndexOf(`https://`,0)===0||e.lastIndexOf(`http://`,0)===0)return e;if(!gK.isBrowser)throw Error(`Cannot resolve '${e}'.`);let t=window.document.createElement(`a`);return t.href=e,this._logger.log(J.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 iq(e,t){return!e||(t&e)!==0}var aq=class e{constructor(e){this._transport=e,this._buffer=[],this._executing=!0,this._sendBufferedData=new oq,this._transportResult=new oq,this._sendLoopPromise=this._sendLoop()}send(e){return this._bufferData(e),this._transportResult||=new oq,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 oq;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}},oq=class{constructor(){this.promise=new Promise((e,t)=>[this._resolver,this._rejecter]=[e,t])}resolve(){this._resolver()}reject(e){this._rejecter(e)}},sq=`json`,cq=class{constructor(){this.name=sq,this.version=2,this.transferFormat=ZK.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=pK.instance);let n=FK.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 LK.Invocation:this._isInvocationMessage(n);break;case LK.StreamItem:this._isStreamItemMessage(n);break;case LK.Completion:this._isCompletionMessage(n);break;case LK.Ping:break;case LK.Close:break;case LK.Ack:this._isAckMessage(n);break;case LK.Sequence:this._isSequenceMessage(n);break;default:t.log(J.Information,`Unknown message type '`+n.type+`' ignored.`);continue}r.push(n)}return r}writeMessage(e){return FK.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)}},lq={trace:J.Trace,debug:J.Debug,info:J.Information,information:J.Information,warn:J.Warning,warning:J.Warning,error:J.Error,critical:J.Critical,none:J.None};function uq(e){let t=lq[e.toLowerCase()];if(t!==void 0)return t;throw Error(`Unknown log level: ${e}`)}var dq=class{configureLogging(e){if(hK.isRequired(e,`logging`),fq(e))this.logger=e;else if(typeof e==`string`){let t=uq(e);this.logger=new CK(t)}else this.logger=new CK(e);return this}withUrl(e,t){return hK.isRequired(e,`url`),hK.isNotEmpty(e,`url`),this.url=e,typeof t==`object`?this.httpConnectionOptions={...this.httpConnectionOptions,...t}:this.httpConnectionOptions={...this.httpConnectionOptions,transport:t},this}withHubProtocol(e){return hK.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 qK(e):this.reconnectPolicy=e:this.reconnectPolicy=new qK,this}withServerTimeout(e){return hK.isRequired(e,`milliseconds`),this._serverTimeoutInMilliseconds=e,this}withKeepAliveInterval(e){return hK.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 rq(this.url,e);return GK.create(t,this.logger||pK.instance,this.protocol||new cq,this.reconnectPolicy,this._serverTimeoutInMilliseconds,this._keepAliveIntervalInMilliseconds,this._statefulReconnectBufferSize)}};function fq(e){return e.log!==void 0}var pq=15e3,mq=5,hq=(e,t=Math.random)=>{let n=Math.min(pq,1e3*2**Math.min(Math.max(e,0),mq));return Math.round(t()*n)},gq=class{nextRetryDelayInMilliseconds(e){return hq(e.previousRetryCount)}},_q=e=>({log(t,n){t>=J.Error?e.error(n):t>=J.Warning?e.warn(n):e.debug(n)}}),vq=e=>{switch(e){case WK.Connected:return`connected`;case WK.Connecting:return`connecting`;case WK.Reconnecting:return`reconnecting`;case WK.Disconnected:case WK.Disconnecting:return`disconnected`;default:return`disconnected`}},yq=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 dq().withUrl(e.url,{accessTokenFactory:()=>e.accessTokenProvider()??``}).withAutomaticReconnect(new gq).configureLogging(_q(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 vq(this.connection.state)}async start(){if(this.intentionallyStopped=!1,this.clearReconnectTimer(),this.connection.state===WK.Disconnecting)for(;this.connection.state===WK.Disconnecting;)await new Promise(e=>setTimeout(e,50));if(this.connection.state===WK.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=hq(this.reconnectAttempt);this.reconnectAttempt+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectNow()},e)}async reconnectNow(){if(this.reconnectTimer=null,!(this.intentionallyStopped||this.connection.state!==WK.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)}},bq=class{logger;constructor(e){this.logger=e.logger}create(e){return new yq(e,this.logger)}},xq=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()=>{}}},Sq=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}},Cq=`/api/app/sdk-capabilities`,wq=G({apiVersion:H(),modules:W(H())}),Tq=e=>{let t=new Set;for(let n of e.modules)YG(n)&&t.add(JG[n]);return{grantedModules:t,grantedPolicies:new Set,canManageUserAccess:!1}},Eq=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(Cq)}catch(e){return this.logger.error(`Failed to fetch SDK capabilities`,{error:e}),N(new KG(e))}let t=wq.safeParse(e);return t.success?M(Tq(t.data)):(this.logger.error(`Malformed capabilities response`,{error:t.error}),N(new KG(t.error)))}},Dq=e=>({getModuleAccess:new Sq({moduleAccessGateway:new Eq({httpClient:e.httpClient,logger:e.logger}),logger:e.logger}),gateMode:`fail-closed`}),Oq=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}},kq=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}},Aq=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}},jq=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}},Mq=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}},Nq=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}},Pq=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}},Fq=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}},Iq=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}},Lq=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`),N(new cP)):this.chatGateway.startDirect(t)}},Rq=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`),N(new oP)):t.length===0?(this.logger.warn(`Rejected group with no members`),N(new sP)):this.chatGateway.createGroup(n,t)}},zq=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}),N(new iP)):i.length>4e3?(this.logger.warn(`Rejected oversized message`,{conversationId:e}),N(new aP(4e3))):this.chatGateway.sendMessage(e,i,n,r)}},Bq=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)}},Vq=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)}},Hq=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)}},Uq=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)}},Wq=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)}},Gq=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)}},Kq=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)}},qq=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)}},Jq=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}),N(new rP)):this.chatGateway.reactToMessage(e,t,n)}},Yq=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)}},Xq=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}},Zq=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}},Qq=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}},$q=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}},eJ=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}},tJ=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}},nJ=e=>{let t={chatGateway:new HU({httpClient:e.httpClient,clock:e.clock,logger:e.logger}),logger:e.logger},n=eW();return{listConversations:new Oq(t),getConversation:new kq(t),getConversationCounts:new Aq(t),listStaff:new jq(t),getGroupMemberPool:new Mq(t),getViewer:new Nq(t),getMessages:new Pq(t),getMessagesSince:new Fq(t),getMessagesBefore:new Iq(t),startDirect:new Lq(t),createGroup:new Rq(t),sendMessage:new zq(t),sendMediaMessage:new $q(t),downloadChatMedia:new eJ(t),editMessage:new Xq(t),deleteMessage:new Zq(t),deleteMessageForMe:new Qq(t),subscribePush:new tJ(t),markDelivered:new Bq(t),markRead:new Vq(t),setFavourite:new Hq(t),setArchived:new Uq(t),setPinned:new Wq(t),deleteConversation:new Gq(t),leaveConversation:new Kq(t),refreshPortal:new qq(t),reactToMessage:new Jq(t),saveMembers:new Yq(t),clock:e.clock,realtime:e.realtime,realtimeStore:QN(),logger:e.logger.child(`chat-realtime`),outbox:n}},rJ=({module:e,children:t})=>(0,D.jsx)(yP.Provider,{value:e,children:(0,D.jsx)($N.Provider,{value:e.realtimeStore,children:t})}),iJ=e=>e.connection.on(tW.MessageReceived,t=>{let n=uW(t,tW.MessageReceived,e.logger);if(n===null)return;let r=e.viewerId()??``,i=CW(KH(n),r);e.queryClient.setQueryData(WP(n.conversationId),e=>Jz(e??[],i)),kP(e.queryClient)}),aJ=(e,t,n)=>e.connection.on(t,r=>{let i=dW(r,t,e.logger);i===null||i.byUserId===e.viewerId()||e.store.getState().applyReceipt(i.conversationId,i.byUserId,n,i.uptoSequence)}),oJ=e=>e.connection.on(tW.Typing,t=>{let n=fW(t,tW.Typing,e.logger);n===null||n.userId===e.viewerId()||e.store.getState().applyTyping(n.conversationId,n.userId,n.isTyping,Date.now())}),sJ=e=>e.connection.on(tW.ReactionToggled,t=>{let n=mW(t,tW.ReactionToggled,e.logger),r=e.viewerId();n===null||n.byUserId===r||e.queryClient.setQueryData(WP(n.conversationId),e=>e?.map(e=>e.id===n.messageId?IP(e,n,r??``):e))}),cJ=e=>e.connection.on(tW.MessageEdited,t=>{let n=uW(t,tW.MessageEdited,e.logger);if(n===null)return;let r=e.viewerId()??``,i=CW(KH(n),r);e.queryClient.setQueryData(WP(n.conversationId),e=>e?.map(e=>e.id===i.id?i:e)??[i])}),lJ=e=>e.connection.on(tW.MessageDeleted,t=>{let n=hW(t,tW.MessageDeleted,e.logger);n!==null&&(e.queryClient.setQueryData(WP(n.conversationId),e=>e?.map(e=>e.id===n.messageId?e.asDeletedForEveryone():e)??[]),kP(e.queryClient))}),uJ=e=>e.connection.on(tW.RemovedFromConversation,t=>{let n=gW(t,tW.RemovedFromConversation,e.logger);n!==null&&e.store.getState().markRemovedFromConversation(n.conversationId)}),dJ=e=>e.connection.on(tW.PresenceChanged,t=>{let n=pW(t,tW.PresenceChanged,e.logger);n!==null&&e.store.getState().applyPresence(n.userId,n.online,n.lastSeenUtc)}),fJ=e=>{let t=[iJ(e),cJ(e),lJ(e),aJ(e,tW.MessageDelivered,`delivered`),aJ(e,tW.MessageRead,`read`),oJ(e),dJ(e),sJ(e),uJ(e)];return()=>{for(let e of t)e()}},pJ=(e,t,n)=>{n.length!==0&&e.setQueryData(WP(t),e=>n.reduce((e,t)=>Jz(e,t),e??[]))},mJ=async(e,t,n,r)=>{let i=e.getState().activeConversationId;if(i===null){AP(t);return}let a=$z(t.getQueryData(WP(i))??[]);try{pJ(t,i,await P(n.execute(i,a,50)))}catch{r.warn(`Reconnect sync failed; conversation list will still refresh`)}AP(t)},hJ=()=>{let{realtime:e,getMessagesSince:t,logger:r}=bP(),i=eP(),a=HM();(0,n.useEffect)(()=>{let n=e.status;return e.onStatusChange(e=>{e===`connected`&&n!==`connected`&&mJ(i,a,t,r),n=e})},[e,i,a,t,r])},gJ=()=>{let{isAuthenticated:e}=mz(),{realtime:t,logger:r}=bP(),i=eP(),a=HM(),o=KP();hJ();let s=(0,n.useRef)(null);s.current=o.data?.id??null,(0,n.useEffect)(()=>t.onStatusChange(e=>{i.getState().setStatus(e)}),[t,i]),(0,n.useEffect)(()=>fJ({connection:t,store:i,queryClient:a,viewerId:()=>s.current,logger:r}),[t,i,a,r]),(0,n.useEffect)(()=>{if(!e){t.stop(),i.getState().clear();return}return t.start().catch(()=>{}),()=>{t.stop()}},[e,t,i])},_J=({children:e})=>(gJ(),(0,D.jsx)(D.Fragment,{children:e})),vJ=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}},yJ=class extends ci{},bJ=class extends yJ{code=`FEED_UNAVAILABLE`;constructor(e){super(`The news feed is currently unavailable. Please try again.`,{cause:e})}},xJ=class extends yJ{code=`FEED_EMPTY_POST`;constructor(){super(`Write something before posting.`)}},SJ=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;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}get totalReactions(){return this.reactions.like+this.reactions.insightful+this.reactions.celebrate}get needsAcknowledgement(){return this.mustAcknowledge&&!this.acknowledged}},CJ=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`),N(new xJ)):this.feedGateway.createPost({...e,body:e.body.trim()})}},wJ=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`),N(new xJ)):this.feedGateway.updatePost(e,{...t,body:t.body.trim()})}},TJ=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}},EJ=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}},DJ=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}},OJ=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}),N(new bJ);let n=await this.feedGateway.addComment(e,t.trim());return n.ok||this.logger.warn(`Adding comment failed`,{code:n.error.code}),n}},kJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listCategories()}},AJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listAudiences()}},jJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.listFeelings()}},MJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.searchUsers(e)}},NJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.detectLocation()}},PJ=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)}},FJ=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}},IJ=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}},LJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(){return this.feedGateway.getNotifications()}},RJ=class{feedGateway;constructor(e){this.feedGateway=e.feedGateway}async execute(e){return this.feedGateway.markNotificationAsRead(e)}};function zJ(e){return e.replace(/\s+(division|province|district|state|region)$/i,``).trim()}function BJ(e){let t=zJ(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 VJ(){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 HJ(e){try{let t=await fetch(`/ip-geolocation`);if(t.ok){let e=BJ(await t.json());if(e!==null)return M(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 M(VJ())}var UJ=G({type:U(),count:U(),reacted:NA()}),WJ=G({id:H(),authorUserId:H(),authorName:H(),authorInitials:H(),authorColor:H(),text:H(),createdAt:H(),time:H()}),GJ=G({id:H(),authorUserId:H(),authorName:H(),authorInitials:H(),authorColor:H(),authorRole:H(),department:H().nullable().optional(),categoryLabel:H(),categoryColor:H(),audienceLabel:H(),createdAt:H(),timestamp:H(),pinned:NA(),mustAcknowledge:NA(),acknowledged:NA(),title:H().nullable(),body:H(),reactions:W(UJ),myReaction:U().nullable().optional(),commentCount:U(),comments:W(WJ),seenCount:U(),bookmarked:NA(),audienceId:H(),taggedUserIds:W(H()).optional(),scheduledAt:H().nullable().optional(),isRecurring:NA().optional(),recurrenceFrequency:H().nullable().optional(),nextOccurrenceTime:H().nullable().optional(),feelingId:H().nullable().optional(),feelingLabel:H().nullable().optional(),feelingEmoji:H().nullable().optional(),locationLabel:H().nullable().optional(),imageUrls:W(H()).optional()}).passthrough();W(GJ);var KJ=G({totalCount:U(),items:W(GJ)}),qJ=W(G({id:H(),name:H(),email:H(),userName:H(),role:H(),initials:H(),color:H()})),JJ=W(G({id:H(),key:H().optional(),label:H(),color:H(),templateIds:W(H()).optional(),webhookId:H().nullable().optional()})),YJ=W(G({key:H(),label:H()})),XJ=W(G({id:H(),label:H(),emoji:H()})),ZJ=e=>e===1?`insightful`:e===2?`celebrate`:`like`,QJ=e=>{let t={like:0,insightful:0,celebrate:0};for(let n of e){let e=ZJ(n.type);t[e]=n.count}return t},$J=e=>({id:e.id,authorName:e.authorName,authorInitials:e.authorInitials,authorColor:e.authorColor,text:e.text,time:e.time,createdAt:e.createdAt}),eY=e=>new SJ({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:QJ(e.reactions),myReaction:e.myReaction!==null&&e.myReaction!==void 0?ZJ(e.myReaction):null,commentCount:e.commentCount,comments:e.comments.map($J),seenCount:e.seenCount,bookmarked:e.bookmarked,taggedUserIds:e.taggedUserIds??[],locationLabel:e.locationLabel??null,imageUrls:e.imageUrls??[],department:e.department??null,audienceId:e.audienceId,feelingId:e.feelingId??null,feelingLabel:e.feelingLabel??null,feelingEmoji:e.feelingEmoji??null}),tY=e=>({id:e.key??e.id,label:e.label,color:e.color,categoryKey:e.key??e.id,templateIds:e.templateIds??[],webhookId:e.webhookId??void 0}),nY=e=>({id:e.key,label:e.label}),rY=e=>({id:e.id,label:e.label,emoji:e.emoji}),iY=(e,t,n)=>(e.error(`Feed ${t} returned an unexpected shape`,n),N(new bJ(n))),aY=(e,t)=>(e.error(`Feed request failed`,t),new bJ(t)),oY=(e,t,n)=>{let r=KJ.safeParse(n);return r.success?M({totalCount:r.data.totalCount,items:r.data.items.map(eY)}):iY(e,t,r.error)},sY=(e,t,n)=>{let r=GJ.safeParse(n);return r.success?M(eY(r.data)):iY(e,t,r.error)},cY=(e,t,n)=>{let r=JJ.safeParse(n);return r.success?M(r.data.map(tY)):iY(e,t,r.error)},lY=(e,t,n)=>{let r=YJ.safeParse(n);return r.success?M(r.data.map(nY)):iY(e,t,r.error)},uY=(e,t,n)=>{let r=XJ.safeParse(n);return r.success?M(r.data.map(rY)):iY(e,t,r.error)},dY=(e,t,n)=>{let r=qJ.safeParse(n);return r.success?M(r.data):iY(e,t,r.error)},fY=W(G({id:H(),userId:H(),kind:BA([`meeting`,`group`,`feed`,`member`]),actorName:H(),initials:H(),color:H(),message:H(),detail:H().nullable().optional(),postId:H().nullable().optional(),isRead:NA(),creationTime:H()})),pY={for_you:0,team:1,company:2,saved:3},mY={like:0,insightful:1,celebrate:2},hY=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=pY[e],i=await this.httpClient.get(`/api/app/feed/posts`,{query:{scope:r,...t!==void 0&&{skipCount:t},...n!==void 0&&{maxResultCount:n}}});return oY(this.logger,`listPosts`,i)}catch(e){return N(aY(this.logger,e))}}async createPost(e){try{let t=await this.httpClient.post(`/api/app/feed/post`,e);return sY(this.logger,`createPost`,t)}catch(e){return N(aY(this.logger,e))}}async updatePost(e,t){try{let n=await this.httpClient.put(`/api/app/feed/post/${e}`,t);return sY(this.logger,`updatePost`,n)}catch(e){return N(aY(this.logger,e))}}async react(e,t){try{let n=await this.httpClient.post(`/api/app/feed/react-to-post/${e}`,{type:mY[t]});return sY(this.logger,`react`,n)}catch(e){return N(aY(this.logger,e))}}async toggleBookmark(e){try{let t=await this.httpClient.post(`/api/app/feed/toggle-bookmark/${e}`,void 0);return sY(this.logger,`toggleBookmark`,t)}catch(e){return N(aY(this.logger,e))}}async setPinned(e,t){try{let n=await this.httpClient.post(`/api/app/feed/set-pinned/${e}`,{pinned:t});return sY(this.logger,`setPinned`,n)}catch(e){return N(aY(this.logger,e))}}async acknowledge(e){try{let t=await this.httpClient.post(`/api/app/feed/acknowledge/${e}`,void 0);return sY(this.logger,`acknowledge`,t)}catch(e){return N(aY(this.logger,e))}}async markSeen(e){try{let t=await this.httpClient.post(`/api/app/feed/mark-seen/${e}`,void 0);return sY(this.logger,`markSeen`,t)}catch(e){return N(aY(this.logger,e))}}async addComment(e,t){try{let n=await this.httpClient.post(`/api/app/feed/comment/${e}`,{text:t});return sY(this.logger,`addComment`,n)}catch(e){return N(aY(this.logger,e))}}async listCategories(){try{let e=await this.httpClient.get(`/api/app/feed/feed-categories`);return cY(this.logger,`listCategories`,e)}catch(e){return N(aY(this.logger,e))}}async listAudiences(){try{let e=await this.httpClient.get(`/api/app/feed/feed-audiences`);return lY(this.logger,`listAudiences`,e)}catch(e){return N(aY(this.logger,e))}}async listFeelings(){try{let e=await this.httpClient.get(`/api/app/feed/feed-feelings`);return uY(this.logger,`listFeelings`,e)}catch(e){return N(aY(this.logger,e))}}async searchUsers(e){try{let t=await this.httpClient.get(`/api/app/feed/search-users`,{query:{filter:e}});return dY(this.logger,`searchUsers`,t)}catch(e){return N(aY(this.logger,e))}}async detectLocation(){return HJ(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`?M(n.id):N(new bJ(`Invalid response shape`))}catch(e){return N(aY(this.logger,e))}}async getNotifications(){try{let e=await this.httpClient.get(`/api/app/notification`);return M(fY.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 N(aY(this.logger,e))}}async markNotificationAsRead(e){try{return await this.httpClient.post(`/api/app/notification/${e}/mark-as-read`,void 0),M(void 0)}catch(e){return N(aY(this.logger,e))}}async deleteNotification(e){try{return await this.httpClient.delete(`/api/app/notification/${e}`),M(void 0)}catch(e){return N(aY(this.logger,e))}}},gY=e=>{let t={feedGateway:new hY({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listFeed:new vJ(t),createPost:new CJ(t),updatePost:new wJ(t),reactToPost:new TJ(t),toggleBookmark:new EJ(t),acknowledgePost:new DJ(t),addComment:new OJ(t),listFeedCategories:new kJ(t),listFeedAudiences:new AJ(t),listFeedFeelings:new jJ(t),searchFeedUsers:new MJ(t),detectLocation:new NJ(t),uploadFeedImage:new PJ(t),setPostPinned:new IJ(t),markSeen:new FJ(t),getNotifications:new LJ(t),markNotificationRead:new RJ(t),notificationRealtime:e.notificationRealtime,logger:e.logger}},_Y=(0,n.createContext)(null),vY=({module:e,children:t})=>(0,D.jsx)(_Y.Provider,{value:e,children:t}),yY=()=>{let e=(0,n.useContext)(_Y);if(e===null)throw Error(`Feed hooks must be used within <FeedModuleProvider>.`);return e},bY=e=>[`feed`,e],xY=e=>{e.invalidateQueries({queryKey:[`feed`]})},SY=(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)}))})},CY=e=>{let{listFeed:t}=yY();return aN({queryKey:bY(e),queryFn:({pageParam:n})=>P(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}})},wY=()=>{let{createPost:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{xY(t)}})},TY=()=>{let{updatePost:e}=yY(),t=HM();return iN({mutationFn:({postId:t,input:n})=>P(e.execute(t,n)),onSuccess:e=>{SY(t,e)}})},EY=()=>{let{reactToPost:e}=yY(),t=HM();return iN({mutationFn:({postId:t,type:n})=>P(e.execute(t,n)),onSuccess:e=>{SY(t,e)}})},DY=()=>{let{toggleBookmark:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},OY=()=>{let{acknowledgePost:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},kY=()=>{let{markSeen:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},AY=()=>{let{addComment:e}=yY(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{SY(t,e)}})},jY=()=>{let{setPostPinned:e}=yY(),t=HM();return iN({mutationFn:({postId:t,pinned:n})=>P(e.execute(t,n)),onSuccess:e=>{SY(t,e)}})},MY=()=>{let{listFeedCategories:e}=yY();return rN({queryKey:[`feed-categories`],queryFn:()=>P(e.execute())})},NY=()=>{let{listFeedAudiences:e}=yY();return rN({queryKey:[`feed-audiences`],queryFn:()=>P(e.execute())})},PY=()=>{let{listFeedFeelings:e}=yY();return rN({queryKey:[`feed-feelings`],queryFn:()=>P(e.execute())})},FY=e=>{let{searchFeedUsers:t}=yY();return rN({queryKey:[`feed-search-users`,e],queryFn:()=>P(t.execute(e)),enabled:e.trim().length>0})},IY=()=>{let{uploadFeedImage:e}=yY();return iN({mutationFn:t=>P(e.execute(t))})},LY=e=>{let{data:t=[]}=MY(),n=t.find(t=>t.id===e.department);return{categoryLabel:n?.label??e.categoryLabel,categoryColor:n?.color??e.categoryColor}},RY=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}]},zY=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)},BY=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}`},VY=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],HY=(e,t)=>e.year===t.year&&e.month===t.month&&e.day===t.day,UY=(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},WY=(e,t,n=new Date)=>{let r=zY(e);if(Number.isNaN(r.getTime()))return`now`;let i=UY(e,r,n),a=60*1e3,o=60*a,s=24*o;if(i<a)return`now`;if(i<o){let e=Math.floor(i/a);return`${String(e)}m ago`}if(i<s){let e=Math.floor(i/o);return`${String(e)} ${e===1?`hour`:`hours`} ago`}let c=SN(r,t);return HY(c,SN(new Date(n.getTime()-s),t))?`Yesterday at ${BY(c)}`:`${VY[c.month-1]??``} ${String(c.day)} at ${BY(c)}`},GY=(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`})}},KY=(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)}});G({id:H(),kind:BA([`meeting`,`group`,`feed`,`member`]),initials:H(),color:H(),actor:H(),time:H(),message:H().nullable().optional(),detail:H().nullable().optional(),postId:H().nullable().optional()});var qY=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}},JY=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}},YY=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}},XY=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}},ZY=class extends ci{},QY=class extends ZY{code=`MEETINGS_UNAVAILABLE`;constructor(e){super(`Meetings are currently unavailable. Please try again.`,{cause:e})}},$Y=class extends ZY{code=`MEETINGS_INCOMPLETE_BOOKING`;constructor(){super(`Pick a person, a date, and a time slot to book a meeting.`)}},eX=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}},tX=[{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`}],nX={id:`Europe/London`,city:`London`,offset:`GMT+1`};nX.id;var rX=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`},iX=e=>{let t=tX.find(t=>t.id===e);if(t)return t;try{let t=rX(e),n=e.split(`/`);return{id:e,city:(n[n.length-1]??``).replace(/_/g,` `),offset:t}}catch{return nX}},aX=e=>iX(e),oX=(e,t,n)=>{let r=new Date(n.start).getTime(),i=new Date(n.end).getTime();return e.getTime()<i&&t.getTime()>r},sX=(e,t,n)=>e.userId===t||t===n&&n!==``&&e.userId===void 0,cX=(e,t)=>e.allBlocks.filter(t=>sX(t,e.userId,e.selfUserId)&&t.status!==`available`).flatMap(e=>gO(e,t.start,t.end)),lX=(e,t)=>e.allBlocks.filter(t=>sX(t,e.userId,e.selfUserId)&&t.status===`available`).flatMap(e=>gO(e,t.start,t.end)).map(e=>({start:new Date(e.start),end:new Date(e.end)})),uX=(e,t,n)=>t.getTime()>=e.start.getTime()&&n.getTime()<=e.end.getTime(),dX=e=>{let t={start:e.rangeStart,end:e.rangeEnd},n={userId:e.userId,selfUserId:e.selfUserId,allBlocks:e.allBlocks},r=e.workWindows.some(t=>uX(t,e.slotStart,e.slotEnd)),i=lX(n,t).some(t=>uX(t,e.slotStart,e.slotEnd));return!r&&!i?`ooh`:cX(n,t).some(t=>oX(e.slotStart,e.slotEnd,t))?`busy`:`available`},fX=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`),N(new $Y)):this.meetingGateway.book(e)}},pX=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}},mX=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}},hX=`Online — link generated automatically`,gX=null;gX??=[{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:hX,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:hX,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:hX,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:hX,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:hX,isOrganizer:!0,myStatus:`accepted`,bucket:`canceled`}];var _X=encodeURIComponent,vX={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/${_X(e)}/respond`,cancel:e=>`/api/app/meeting/${_X(e)}/cancel`},yX=G({id:H(),organizerUserId:H(),title:H(),withName:H(),withInitials:H(),withColor:H(),dateLabel:H(),start:H(),end:H(),location:H(),isOrganizer:NA(),myStatus:U(),bucket:U(),awaitingResponse:NA().optional(),isGroup:NA(),attendeeIds:W(H()),description:H()}).passthrough(),bX=W(yX),xX=W(G({id:H(),name:H(),initials:H(),color:H(),role:H()}).passthrough()),SX=W(G({label:H(),startUtc:H(),endUtc:H(),conflicts:W(H())}).passthrough()),CX=W(G({userId:H(),busy:W(G({startUtc:H(),endUtc:H()}))}).passthrough()),wX={0:`pending`,1:`accepted`,2:`rejected`},TX={0:`upcoming`,1:`passed`,2:`canceled`},EX=/[zZ]|[+-]\d{2}:?\d{2}$/,DX=e=>EX.test(e)?e:`${e}Z`,OX=e=>new eX({id:e.id,title:e.title,withName:e.withName,withInitials:e.withInitials,withColor:e.withColor,dateLabel:e.dateLabel,startUtc:DX(e.start),endUtc:DX(e.end),location:e.location,isOrganizer:e.isOrganizer,myStatus:wX[e.myStatus]??`pending`,bucket:TX[e.bucket]??`upcoming`,isGroup:e.isGroup,attendeeIds:e.attendeeIds,description:e.description,awaitingResponse:e.awaitingResponse??!1}),kX=e=>({id:e.id,name:e.name,initials:e.initials,color:e.color,role:e.role}),AX=e=>({label:e.label,startUtc:e.startUtc,endUtc:e.endUtc,conflicts:e.conflicts}),jX=e=>({userId:e.userId,busy:e.busy.map(e=>({startUtc:e.startUtc,endUtc:e.endUtc}))}),MX=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}),NX=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(vX.contacts,void 0,{query:{search:t===void 0||t===``?void 0:t}}),r=xX.safeParse(n);return r.success?M(r.data.map(kX)):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(vX.availableSlots,{isoDate:e.isoDate,timeZone:e.timeZone??void 0,isGroup:e.isGroup,contactId:e.contactId??void 0,attendeeIds:e.attendeeIds}),n=SX.safeParse(t);return n.success?M(n.data.map(AX)):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(vX.attendeeAvailability,{isoDate:e.isoDate,attendeeIds:e.attendeeIds}),n=CX.safeParse(t);return n.success?M(n.data.map(jX)):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(vX.list),t=bX.safeParse(e);return t.success?M(t.data.map(OX)):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(vX.book,MX(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(vX.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(vX.cancel(e));return this.parseMeeting(t,`Cancel meeting`)}catch(e){return this.fail(`Cancel meeting failed`,e)}}parseMeeting(e,t){let n=yX.safeParse(e);return n.success?M(OX(n.data)):this.fail(`${t} returned an unexpected shape`,n.error)}fail(e,t){return this.logger.error(e,t),N(new QY(t))}},PX=e=>{let t={meetingGateway:new NX({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listContacts:new qY(t),listAvailableSlots:new JY(t),listAttendeeAvailability:new YY(t),listMeetings:new XY(t),bookMeeting:new fX(t),respondToMeeting:new pX(t),cancelMeeting:new mX(t)}},FX=(0,n.createContext)(null),IX=({module:e,children:t})=>(0,D.jsx)(FX.Provider,{value:e,children:t}),LX=()=>{let e=(0,n.useContext)(FX);if(e===null)throw Error(`Meetings hooks must be used within <MeetingsModuleProvider>.`);return e},RX=[`meetings`,`list`],zX=[`meetings`,`contacts`],BX=[`meetings`,`available-slots`],VX=[`meetings`,`attendee-availability`],HX=(e,t)=>{e.setQueryData(RX,e=>e===void 0?[t]:e.map(e=>e.id===t.id?t:e))},UX=e=>{let{listContacts:t}=LX(),n=e?.trim()??``;return rN({queryKey:[...zX,n],queryFn:()=>P(t.execute(n||void 0)),placeholderData:$j})},WX=()=>{let{listMeetings:e}=LX();return rN({queryKey:RX,queryFn:()=>P(e.execute())})},GX=e=>{let{listAvailableSlots:t}=LX();return rN({queryKey:[...BX,e],queryFn:()=>e===null?Promise.resolve([]):P(t.execute(e)),enabled:e!==null,staleTime:0,refetchOnWindowFocus:!0})},KX=(e,t)=>{let{listAttendeeAvailability:n}=LX(),r=t!==null&&e.length>0;return rN({queryKey:[...VX,t,[...e].sort()],queryFn:()=>r?P(n.execute({isoDate:t,attendeeIds:e})):Promise.resolve([]),enabled:r,staleTime:0,refetchOnWindowFocus:!0})},qX=()=>{let{bookMeeting:e}=LX(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:()=>{t.invalidateQueries({queryKey:RX})}})},JX=()=>{let{respondToMeeting:e}=LX(),t=HM();return iN({mutationFn:({meetingId:t,accept:n})=>P(e.execute(t,n)),onSuccess:e=>{HX(t,e)}})},YX=()=>{let{cancelMeeting:e}=LX(),t=HM();return iN({mutationFn:t=>P(e.execute(t)),onSuccess:e=>{HX(t,e)}})},XX=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}},ZX=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?M({departments:e.value,accessRoles:t.value,branches:n.value}):(this.logger.warn(`Loading directory facets failed`,{code:n.error.code}),N(n.error)):(this.logger.warn(`Loading directory facets failed`,{code:t.error.code}),N(t.error)):(this.logger.warn(`Loading directory facets failed`,{code:e.error.code}),N(e.error))}},QX=class extends ci{},$X=class extends QX{code=`USERS_UNAVAILABLE`;constructor(e){super(`The users directory is currently unavailable. Please try again.`,{cause:e})}},eZ=class{id;fullName;email;roleName;department;branchKey;branchName;level;online;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.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}},tZ=G({id:H(),fullName:H(),email:H(),roleName:H(),department:H(),branchKey:H().nullish(),branchName:H().nullish(),level:U(),online:NA(),hasAccount:NA().nullish(),initials:H(),color:H(),permissionSetName:H().nullish(),permissionSetColor:H().nullish()}),nZ=G({totalCount:U(),items:W(tZ)}),rZ=(e,t)=>(e.error(`Users request failed`,t),new $X(t)),iZ={staffMembers:`/api/app/staff-member`,departments:`/api/app/staff-member/departments`,accessRoles:`/api/app/staff-member/access-roles`,branches:`/api/app/staff-member/branches`},aZ={skipCount:`skipCount`,maxResultCount:`maxResultCount`,filter:`filter`,department:`department`,accessRole:`accessRole`,branch:`branch`,online:`online`},oZ=e=>new eZ({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,hasAccount:e.hasAccount??!0,initials:e.initials,color:e.color,permissionSetName:e.permissionSetName??void 0,permissionSetColor:e.permissionSetColor??void 0}),sZ=W(H()),cZ=W(G({key:H(),name:H()})),lZ=class{httpClient;logger;constructor(e){this.httpClient=e.httpClient,this.logger=e.logger}async list(e){try{let t={[aZ.skipCount]:(e.page-1)*e.pageSize,[aZ.maxResultCount]:e.pageSize};e.filter!==``&&(t[aZ.filter]=e.filter),e.department!==``&&(t[aZ.department]=e.department),e.accessRole!==``&&(t[aZ.accessRole]=e.accessRole),e.branch!==``&&(t[aZ.branch]=e.branch),e.status!==`all`&&(t[aZ.online]=e.status===`online`);let n=await this.httpClient.get(iZ.staffMembers,{query:t}),r=nZ.safeParse(n);if(!r.success)throw this.logger.error(`Users staff-member list returned an unexpected shape`,r.error),new $X(r.error);return M({users:r.data.items.map(oZ),totalCount:r.data.totalCount})}catch(e){return N(rZ(this.logger,e))}}async getDepartments(){return this.getStringList(iZ.departments,`departments`)}async getAccessRoles(){return this.getStringList(iZ.accessRoles,`access roles`)}async getBranches(){try{let e=await this.httpClient.get(iZ.branches),t=cZ.safeParse(e);if(!t.success)throw this.logger.error(`Users branches returned an unexpected shape`,t.error),new $X(t.error);return M(t.data)}catch(e){return N(rZ(this.logger,e))}}async getStringList(e,t){try{let n=await this.httpClient.get(e),r=sZ.safeParse(n);if(!r.success)throw this.logger.error(`Users ${t} returned an unexpected shape`,r.error),new $X(r.error);return M(r.data)}catch(e){return N(rZ(this.logger,e))}}},uZ=e=>{let t={userGateway:new lZ({httpClient:e.httpClient,logger:e.logger}),logger:e.logger};return{listUsers:new XX(t),listDirectoryFacets:new ZX(t)}},dZ=(0,n.createContext)(null),fZ=({module:e,children:t})=>(0,D.jsx)(dZ.Provider,{value:e,children:t}),pZ=()=>{let e=(0,n.useContext)(dZ);if(e===null)throw Error(`Users hooks must be used within <UsersModuleProvider>.`);return e},mZ=[`users`],hZ=e=>{let{listUsers:t}=pZ();return rN({queryKey:[...mZ,e],queryFn:()=>P(t.execute(e)),placeholderData:$j,staleTime:3e4})},gZ=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}},_Z=class extends ci{},vZ=class extends _Z{code=`MEETING_VIDEO_UNAVAILABLE`;constructor(e){super(`This meeting could not be joined right now. Please try again.`,{cause:e})}},yZ=G({token:H(),providerType:H(),roomId:H(),participantName:H(),title:H().nullish()}).passthrough(),bZ=encodeURIComponent,xZ={join:e=>`/api/app/meeting-video/${bZ(e)}/join`},SZ=e=>({token:e.token,providerType:e.providerType,roomId:e.roomId,participantName:e.participantName,title:e.title??``}),CZ=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(xZ.join(e)),n=yZ.safeParse(t);return n.success?M(SZ(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),N(new vZ(t))}},wZ=e=>({joinMeetingVideo:new gZ({meetingVideoGateway:new CZ({httpClient:e.httpClient,logger:e.logger}),logger:e.logger})}),TZ=(0,n.createContext)(null),EZ=({module:e,children:t})=>(0,D.jsx)(TZ.Provider,{value:e,children:t}),DZ=TE(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})}})),OZ=15e3,kZ=5*6e4,AZ=(e,t,n)=>{let r=new bq({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 xq,calls:i(`commhub.chat`)?r.create({url:`${e.apiBaseUrl}/signalr/calls`,accessTokenProvider:n}):new xq,notifications:i(`commhub.feed`)?r.create({url:`${e.apiBaseUrl}/signalr/notifications`,accessTokenProvider:n}):new xq}},jZ=e=>{let t=e.logger??new tk(`info`),n=new bN,r=e.authStore,i=r.getState().session?.accessToken??null,a=r.subscribe(e=>{i=e.session?.accessToken??null}),o=()=>i??void 0,s=new $O(new QO(new JO(new KO({logger:t,baseUrl:e.apiBaseUrl,getAuthToken:o}),{timeoutMs:OZ,logger:t}),{logger:t}),{logger:t,refresh:()=>r.getState().refreshSession()}),c=new BM({defaultOptions:{queries:{staleTime:kZ,retry:1,refetchOnWindowFocus:!0}}}),l=AZ(e,t,o);return{logger:t,authStore:r,moduleAccessModule:Dq({httpClient:s,logger:t}),chatModule:nJ({logger:t,httpClient:s,realtime:l.chat,clock:n}),feedModule:gY({logger:t,httpClient:s,notificationRealtime:l.notifications}),meetingsModule:PX({logger:t,httpClient:s}),meetingVideoModule:wZ({logger:t,httpClient:s}),scheduleModule:Tj({logger:t,httpClient:s,clock:n}),settingsModule:IL({logger:t,httpClient:s}),usersModule:uZ({logger:t,httpClient:s}),callsModule:MR({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()])}}},MZ=new Map,NZ=e=>`${e.apiBaseUrl}|${e.clientKey}|${e.authKind}`,PZ=(e,t,n)=>{let r=MZ.get(e);if(r===void 0){let n=t();r={composition:n.composition,handshake:n.handshake,refCount:0},MZ.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)&&(MZ.get(e)===a&&MZ.delete(e),a.handshake.dispose(),a.composition.dispose().catch(e=>{n?.warn(`Disposing the shared SDK runtime failed`,{error:e})})))}}},FZ=`*`,IZ=e=>{switch(e.kind){case`sso`:return e.getSecret();case`signed`:return e.getAssertion();case`host-token`:return e.getToken()}},LZ=e=>{let t=new bN,n=new KO({logger:e.logger,baseUrl:e.apiBaseUrl,getAuthToken:()=>void 0});switch(e.kind){case`sso`:return new iz({httpClient:n,clock:t,logger:e.logger});case`signed`:return new HG({httpClient:n,clock:t,logger:e.logger,clientKey:e.clientKey,modules:e.modules});case`host-token`:return new UG({clock:t,logger:e.logger})}},RZ=e=>{let{apiBaseUrl:t,clientKey:r,authKind:i}=e,a=e.modules===void 0?FZ:e.modules.join(`,`),o=(0,n.useRef)(e.logger);o.current=e.logger;let s=(0,n.useMemo)(()=>a===FZ?void 0:zZ(a),[a]),c=(0,n.useRef)(e.requestCredential);c.current=e.requestCredential;let l=NZ({apiBaseUrl:t,clientKey:r,authKind:i}),[u]=(0,n.useState)(()=>PZ(l,()=>{let e=o.current??new tk(`info`,`commhub-sdk`),n=LZ({kind:i,clientKey:r,apiBaseUrl:t,logger:e,modules:s??[]}),a=jZ({apiBaseUrl:t,authStore:RG({clock:new bN,logger:e,storageNamespace:`sdk:${r}`,authGateway:n,setAccessToken:()=>{}}),modules:s,logger:e});return{composition:a,handshake:new nK(t=>new tK({authStore:a.authStore,moduleAccessModule:a.moduleAccessModule,requestCredential:()=>c.current(),requestedModules:s??[],emit:t,logger:e,renewable:i!==`sso`}))}},o.current));return(0,n.useEffect)(()=>()=>{u.release()},[u]),{composition:u.composition,handshake:u.handshake}},zZ=e=>e===``?[]:e.split(`,`),BZ=({handshake:e,auth:t,onEvent:r})=>{let i=(0,n.useRef)(r);i.current=r;let a=(0,n.useRef)(t);return a.current=t,(0,n.useEffect)(()=>e.attach(e=>{i.current?.(e)}),[e]),(0,n.useSyncExternalStore)(t=>e.subscribeStatus(t),()=>e.status,()=>e.status)},VZ=e=>Math.min(100,Math.max(0,e)),HZ=([e,t,n],r=0)=>`hsl(${String(e)} ${String(VZ(t))}% ${String(VZ(n+r))}%)`,UZ=([e,t,n],r)=>`hsl(${String(e)} ${String(VZ(t))}% ${String(VZ(n))}% / ${String(r)})`,WZ=60,GZ=e=>e[2]>WZ?`#0f172a`:`#ffffff`,KZ={a30:.18,a20:.12,a10:.06,a05:.035,border:.22},qZ=e=>`${String(Math.max(0,Math.round(e)))}px`,JZ=e=>({"--color-primary":HZ(e),"--color-primary-strong":HZ(e,-12),"--color-primary-light":HZ(e,12),"--color-primary-30":UZ(e,KZ.a30),"--color-primary-20":UZ(e,KZ.a20),"--color-primary-10":UZ(e,KZ.a10),"--color-primary-05":UZ(e,KZ.a05),"--color-primary-border":UZ(e,KZ.border),"--color-on-primary":GZ(e)}),YZ=e=>({"--color-secondary":HZ(e),"--color-secondary-strong":HZ(e,-12),"--color-secondary-30":UZ(e,.3),"--color-secondary-20":UZ(e,KZ.a20),"--color-secondary-10":UZ(e,.07),"--color-secondary-border":UZ(e,.3)}),XZ=e=>({"--radius-sm":qZ(e-4),"--radius-md":qZ(e),"--radius-lg":qZ(e+4),"--radius-xl":qZ(e+6)}),ZZ=[4,6,9,12,15,18,24],QZ=()=>{let e={"--height-btn":qZ(32),"--height-input":qZ(34),"--height-row":qZ(44),"--height-nav":qZ(36)};return ZZ.forEach((t,n)=>{e[`--space-${String(n+1)}`]=qZ(t)}),e},$Z=e=>e?{...e.brand?JZ(e.brand):{},...e.accent?YZ(e.accent):{},...e.radius===void 0?{}:XZ(e.radius),...e.font===void 0?{}:{"--font-sans":e.font},...e.density===`compact`?QZ():{}}:{},eQ=e=>{let t=e?.mode??`system`;return t===`system`?null:t},tQ=`data-theme`,nQ=e=>{let t=e.getRootNode();return t instanceof ShadowRoot?t.host:e},rQ=e=>{let t=(0,n.useRef)(null),r=JSON.stringify(e??null),i=(0,n.useMemo)(()=>JSON.parse(r),[r]);return(0,n.useEffect)(()=>{let e=t.current;if(e===null)return;let n=nQ(e),r=$Z(i??void 0),a=eQ(i??void 0);for(let[e,t]of Object.entries(r))n.style.setProperty(e,t);return a===null?n.removeAttribute(tQ):n.setAttribute(tQ,a),()=>{for(let e of Object.keys(r))n.style.removeProperty(e);n.removeAttribute(tQ)}},[i]),t},iQ=e=>{if(e)return e;try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;if(e)return e}catch{}return`UTC`},aQ=class extends n.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)(vi,{tone:`error`,title:`This widget could not be displayed`,children:`Something went wrong inside the Communication Hub widget. Reloading the page usually fixes it.`})}};G({grantedModules:W(H()).nullish(),grantedPolicies:W(H()).nullish(),canManageUserAccess:NA().nullish()});var oQ=(0,n.createContext)(null),sQ=({module:e,children:t})=>(0,D.jsx)(oQ.Provider,{value:e,children:t}),cQ=({composition:e,children:t})=>(0,D.jsx)(UM,{client:e.queryClient,children:(0,D.jsx)(a_,{reducedMotion:`user`,children:(0,D.jsx)(yE,{children:(0,D.jsx)(fz,{store:e.authStore,children:(0,D.jsx)(sQ,{module:e.moduleAccessModule,children:(0,D.jsx)(rJ,{module:e.chatModule,children:(0,D.jsx)(_J,{children:(0,D.jsx)(vY,{module:e.feedModule,children:(0,D.jsx)(IX,{module:e.meetingsModule,children:(0,D.jsx)(EZ,{module:e.meetingVideoModule,children:(0,D.jsx)(Dj,{module:e.scheduleModule,children:(0,D.jsx)(RL,{module:e.settingsModule,children:(0,D.jsx)(fZ,{module:e.usersModule,children:(0,D.jsx)(PR,{module:e.callsModule,children:(0,D.jsxs)(bz,{children:[t,(0,D.jsx)(Lz,{}),(0,D.jsx)(AE,{})]})})})})})})})})})})})})})})}),lQ={scope:`_scope_p8b6f_6`},uQ=e=>{let{auth:t,apiBaseUrl:r,clientKey:i,modules:a,theme:o,timezone:s,logger:c,onEvent:l}=e,{composition:u,handshake:d}=RZ({apiBaseUrl:r,clientKey:i,authKind:t.kind,modules:a,logger:c,requestCredential:()=>IZ(t)}),f=BZ({handshake:d,auth:t,onEvent:l}),p=rQ(o),[m,h]=(0,n.useState)(null);return(0,D.jsx)(`div`,{ref:e=>{p.current=e,h(e)},className:lQ.scope,"data-timezone":iQ(s),"data-handshake":f,children:(0,D.jsx)(XE,{container:m,children:(0,D.jsx)(aQ,{logger:u.logger,onEvent:l,children:f===`ready`?(0,D.jsx)(cQ,{composition:u,children:e.children}):null})})})},dQ=({children:e,initialRoute:t,...n})=>(0,D.jsx)(uQ,{...n,children:(0,D.jsx)(vt,{initialEntries:[t??`/`],children:e})}),fQ=class extends si{code=`SDK_WIDGET_CONFIG_INVALID`},pQ=()=>MA(e=>typeof e==`function`,{message:`Expected a function`}),mQ=IA(`kind`,[G({kind:zA(`signed`),getAssertion:pQ()})]),hQ=LA([U(),U(),U()]),gQ=G({brand:hQ.optional(),accent:hQ.optional(),radius:U().optional(),font:H().optional(),density:BA([`comfortable`,`compact`]).optional(),mode:BA([`light`,`dark`,`system`]).optional()}),_Q=G({apiBaseUrl:H().url(),clientKey:H().min(1),auth:mQ,modules:W(BA(qG)).optional(),theme:gQ.optional(),timezone:H().optional(),locale:H().optional(),logger:MA().optional(),onEvent:pQ().optional()}),vQ=e=>{let t=_Q.safeParse(e);return t.success?M(t.data):N(new fQ(t.error.issues.map(e=>`${e.path.join(`.`)||`(root)`}: ${e.message}`).join(`; `)))},yQ=`route`,bQ=(e,t,n=[])=>{PG(e,n=>{let r=vQ(n.config);if(!r.ok)return(0,D.jsx)(IG,{tagName:e,detail:r.error.message});let i=n.getAttribute(yQ);return(0,D.jsx)(dQ,{...r.value,...i===null?{}:{initialRoute:i},children:t()})},[yQ,...n])},xQ=()=>{bQ(`uapp-chat`,()=>(0,D.jsx)(TG,{}))},SQ={date:``,time:``,recurring:!1,frequency:`weekly`},CQ=[{value:`now`,label:`Post now`},{value:`schedule`,label:`Schedule`}],wQ=[{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],Y={screen:`_screen_1htxc_1`,toolbar:`_toolbar_1htxc_8`,toolbarContainer:`_toolbarContainer_1htxc_14`,search:`_search_1htxc_23`,toolbarRailSpacer:`_toolbarRailSpacer_1htxc_31`,searchIcon:`_searchIcon_1htxc_36`,searchInput:`_searchInput_1htxc_44`,textareaError:`_textareaError_1htxc_59`,commentComposerError:`_commentComposerError_1htxc_60`,shareCommentError:`_shareCommentError_1htxc_61`,wrapper:`_wrapper_1htxc_70`,column:`_column_1htxc_80`,rail:`_rail_1htxc_91`,railHead:`_railHead_1htxc_102`,railHeadTitle:`_railHeadTitle_1htxc_109`,railSeeAll:`_railSeeAll_1htxc_123`,railList:`_railList_1htxc_132`,cardBody:`_cardBody_1htxc_142`,seeMoreBtn:`_seeMoreBtn_1htxc_151`,railFoot:`_railFoot_1htxc_166`,missed:`_missed_1htxc_177`,missedHead:`_missedHead_1htxc_184`,missedSpark:`_missedSpark_1htxc_192`,missedTitle:`_missedTitle_1htxc_196`,missedBadge:`_missedBadge_1htxc_203`,missedScroller:`_missedScroller_1htxc_212`,missedScrollerFade:`_missedScrollerFade_1htxc_217`,missedTrack:`_missedTrack_1htxc_217`,missedNav:`_missedNav_1htxc_229`,missedNavLeft:`_missedNavLeft_1htxc_264`,missedNavRight:`_missedNavRight_1htxc_268`,missedCard:`_missedCard_1htxc_272`,missedCardTop:`_missedCardTop_1htxc_282`,missedDot:`_missedDot_1htxc_289`,missedCat:`_missedCat_1htxc_297`,missedTime:`_missedTime_1htxc_304`,missedSummary:`_missedSummary_1htxc_311`,missedFoot:`_missedFoot_1htxc_323`,missedCta:`_missedCta_1htxc_329`,missedPriority:`_missedPriority_1htxc_338`,compChips:`_compChips_1htxc_354`,compChip:`_compChip_1htxc_354`,actionBar:`_actionBar_1htxc_374`,actionBarLabel:`_actionBarLabel_1htxc_386`,actionBarBtns:`_actionBarBtns_1htxc_392`,actionIcon:`_actionIcon_1htxc_397`,actionIconActive:`_actionIconActive_1htxc_414`,sheet:`_sheet_1htxc_419`,sheetHead:`_sheetHead_1htxc_427`,sheetLabel:`_sheetLabel_1htxc_435`,sheetClose:`_sheetClose_1htxc_443`,sheetChips:`_sheetChips_1htxc_465`,catChip:`_catChip_1htxc_471`,catChipOn:`_catChipOn_1htxc_483`,feelGrid:`_feelGrid_1htxc_488`,feelBtn:`_feelBtn_1htxc_494`,feelBtnOn:`_feelBtnOn_1htxc_509`,feelEmoji:`_feelEmoji_1htxc_515`,photoInput:`_photoInput_1htxc_519`,photoZone:`_photoZone_1htxc_523`,photoZoneDrag:`_photoZoneDrag_1htxc_528`,dropzone:`_dropzone_1htxc_533`,dropIcon:`_dropIcon_1htxc_554`,dropTitle:`_dropTitle_1htxc_566`,dropHint:`_dropHint_1htxc_572`,photoGrid:`_photoGrid_1htxc_577`,photoThumb:`_photoThumb_1htxc_584`,photoImg:`_photoImg_1htxc_592`,photoRemove:`_photoRemove_1htxc_599`,photoAddMore:`_photoAddMore_1htxc_619`,mobilePromoTrigger:`_mobilePromoTrigger_1htxc_642`,promoPulseGlow:`_promoPulseGlow_1htxc_1`,mobilePromoTriggerBarHidden:`_mobilePromoTriggerBarHidden_1htxc_732`,mobilePromoExpanded:`_mobilePromoExpanded_1htxc_738`,promoShimmerSweep:`_promoShimmerSweep_1htxc_751`,promoShimmer:`_promoShimmer_1htxc_751`,promoIconWrap:`_promoIconWrap_1htxc_767`,sparkleIcon:`_sparkleIcon_1htxc_780`,sparkleTwinkle:`_sparkleTwinkle_1htxc_1`,promoBtnText:`_promoBtnText_1htxc_784`,mobilePromoBadge:`_mobilePromoBadge_1htxc_803`,promoPopoverOverlay:`_promoPopoverOverlay_1htxc_820`,promoPopoverCard:`_promoPopoverCard_1htxc_832`,popoverHeader:`_popoverHeader_1htxc_846`,popoverCloseX:`_popoverCloseX_1htxc_855`,popoverBadgeIcon:`_popoverBadgeIcon_1htxc_876`,popoverTitleRow:`_popoverTitleRow_1htxc_888`,popoverTitle:`_popoverTitle_1htxc_888`,popoverSeeAllBtn:`_popoverSeeAllBtn_1htxc_904`,popoverSub:`_popoverSub_1htxc_920`,popoverContent:`_popoverContent_1htxc_927`,popoverEmpty:`_popoverEmpty_1htxc_936`,missedClose:`_missedClose_1htxc_985`,missedRead:`_missedRead_1htxc_1022`,comments:`_comments_1htxc_1048`,commentRow:`_commentRow_1htxc_1057`,commentAvatar:`_commentAvatar_1htxc_1062`,commentBubble:`_commentBubble_1htxc_1076`,commentAuthor:`_commentAuthor_1htxc_1084`,commentTime:`_commentTime_1htxc_1090`,commentText:`_commentText_1htxc_1095`,commentComposer:`_commentComposer_1htxc_60`,commentInput:`_commentInput_1htxc_1116`,commentSend:`_commentSend_1htxc_1126`,sharePreviewWrap:`_sharePreviewWrap_1htxc_1147`,sharePreview:`_sharePreview_1htxc_1147`,sharePreviewAvatar:`_sharePreviewAvatar_1htxc_1163`,sharePreviewBody:`_sharePreviewBody_1htxc_1177`,sharePreviewMeta:`_sharePreviewMeta_1htxc_1182`,sharePreviewCat:`_sharePreviewCat_1htxc_1188`,sharePreviewTitle:`_sharePreviewTitle_1htxc_1193`,shareField:`_shareField_1htxc_1203`,shareComment:`_shareComment_1htxc_61`,shareSearchWrap:`_shareSearchWrap_1htxc_1227`,shareSearch:`_shareSearch_1htxc_1227`,shareSearchInput:`_shareSearchInput_1htxc_1243`,shareList:`_shareList_1htxc_1260`,shareSectionLabel:`_shareSectionLabel_1htxc_1267`,shareRow:`_shareRow_1htxc_1276`,shareRowOn:`_shareRowOn_1htxc_1294`,shareAvatar:`_shareAvatar_1htxc_1300`,shareAvatarSquare:`_shareAvatarSquare_1htxc_1314`,shareRowBody:`_shareRowBody_1htxc_1318`,shareRowName:`_shareRowName_1htxc_1325`,shareRowSub:`_shareRowSub_1htxc_1331`,shareCheck:`_shareCheck_1htxc_1336`,shareCheckOn:`_shareCheckOn_1htxc_1349`,shareEmpty:`_shareEmpty_1htxc_1354`,shareFootText:`_shareFootText_1htxc_1362`,shareFootBtns:`_shareFootBtns_1htxc_1367`,shareCancelBtn:`_shareCancelBtn_1htxc_1372`,shareSendBtn:`_shareSendBtn_1htxc_1387`,shareRoot:`_shareRoot_1htxc_1408`,shareBackdrop:`_shareBackdrop_1htxc_1418`,shareFade:`_shareFade_1htxc_1`,shareModal:`_shareModal_1htxc_1428`,shareIn:`_shareIn_1htxc_1`,shareHead:`_shareHead_1htxc_1462`,shareHeadIcon:`_shareHeadIcon_1htxc_1470`,shareHeadText:`_shareHeadText_1htxc_1482`,shareTitle:`_shareTitle_1htxc_1487`,shareDesc:`_shareDesc_1htxc_1494`,shareCloseBtn:`_shareCloseBtn_1htxc_1500`,shareFooter:`_shareFooter_1htxc_1519`,ppRoot:`_ppRoot_1htxc_1530`,ppOverlay:`_ppOverlay_1htxc_1538`,ppFade:`_ppFade_1htxc_1`,ppPanel:`_ppPanel_1htxc_1548`,ppSlide:`_ppSlide_1htxc_1`,ppHead:`_ppHead_1htxc_1580`,ppHeadIcon:`_ppHeadIcon_1htxc_1589`,ppHeadText:`_ppHeadText_1htxc_1600`,ppTitle:`_ppTitle_1htxc_1605`,ppSubtitle:`_ppSubtitle_1htxc_1622`,ppManaged:`_ppManaged_1htxc_1628`,ppClose:`_ppClose_1htxc_1633`,ppTabs:`_ppTabs_1htxc_1653`,ppTab:`_ppTab_1htxc_1653`,ppTabActive:`_ppTabActive_1htxc_1678`,ppTabBg:`_ppTabBg_1htxc_1682`,ppTabLabel:`_ppTabLabel_1htxc_1690`,ppSearch:`_ppSearch_1htxc_1695`,ppSearchIcon:`_ppSearchIcon_1htxc_1700`,ppSearchInput:`_ppSearchInput_1htxc_1708`,ppList:`_ppList_1htxc_1727`,ppListInner:`_ppListInner_1htxc_1735`,ppEmpty:`_ppEmpty_1htxc_1750`,emptyState:`_emptyState_1htxc_1764`,emptyIconWrap:`_emptyIconWrap_1htxc_1776`,emptyTitle:`_emptyTitle_1htxc_1788`,emptyText:`_emptyText_1htxc_1795`,tabs:`_tabs_1htxc_1804`,tab:`_tab_1htxc_1804`,tabActive:`_tabActive_1htxc_1826`,tabBadge:`_tabBadge_1htxc_1832`,composerCollapsed:`_composerCollapsed_1htxc_1840`,ccAvatar:`_ccAvatar_1htxc_1850`,compAvatar:`_compAvatar_1htxc_1851`,avatar:`_avatar_1htxc_1852`,ccInput:`_ccInput_1htxc_1869`,composer:`_composer_1htxc_1840`,compHead:`_compHead_1htxc_1895`,compAvatarWrapper:`_compAvatarWrapper_1htxc_1902`,statusDot:`_statusDot_1htxc_1907`,compHeaderTagline:`_compHeaderTagline_1htxc_1924`,compMutedText:`_compMutedText_1htxc_1930`,taggedTagline:`_taggedTagline_1htxc_1935`,audiencePill:`_audiencePill_1htxc_1947`,audienceSection:`_audienceSection_1htxc_1966`,audienceLabel:`_audienceLabel_1htxc_1977`,audienceRow:`_audienceRow_1htxc_1985`,audienceBtn:`_audienceBtn_1htxc_1991`,audienceBtnActive:`_audienceBtnActive_1htxc_2009`,compClose:`_compClose_1htxc_2015`,titleInput:`_titleInput_1htxc_2034`,textarea:`_textarea_1htxc_59`,compOption:`_compOption_1htxc_2067`,compOptionLabel:`_compOptionLabel_1htxc_2079`,compFooter:`_compFooter_1htxc_2092`,submitRight:`_submitRight_1htxc_2101`,modeToggle:`_modeToggle_1htxc_2107`,cancelBtn:`_cancelBtn_1htxc_2111`,postBtn:`_postBtn_1htxc_2126`,card:`_card_1htxc_142`,urgentStripe:`_urgentStripe_1htxc_2160`,pinnedRow:`_pinnedRow_1htxc_2171`,pin:`_pin_1htxc_2171`,cardHead:`_cardHead_1htxc_2186`,cardAuthor:`_cardAuthor_1htxc_2198`,authorName:`_authorName_1htxc_2203`,metaRow:`_metaRow_1htxc_2213`,cardRight:`_cardRight_1htxc_2223`,badge:`_badge_1htxc_2231`,badgeDot:`_badgeDot_1htxc_2244`,bookmarkBtn:`_bookmarkBtn_1htxc_2251`,bookmarkActive:`_bookmarkActive_1htxc_2269`,pinBtn:`_pinBtn_1htxc_2274`,pinActive:`_pinActive_1htxc_2292`,editBtn:`_editBtn_1htxc_2297`,cardActions:`_cardActions_1htxc_2315`,cardTitle:`_cardTitle_1htxc_2321`,ackBanner:`_ackBanner_1htxc_2341`,ackBtn:`_ackBtn_1htxc_2356`,ackDone:`_ackDone_1htxc_2368`,summary:`_summary_1htxc_2382`,summaryLeft:`_summaryLeft_1htxc_2392`,summaryIcons:`_summaryIcons_1htxc_2398`,summaryDot:`_summaryDot_1htxc_2403`,summaryCount:`_summaryCount_1htxc_2419`,summaryComments:`_summaryComments_1htxc_2424`,summaryCommentsClickable:`_summaryCommentsClickable_1htxc_2428`,postBar:`_postBar_1htxc_2438`,reactWrap:`_reactWrap_1htxc_2446`,actionBtn:`_actionBtn_1htxc_2452`,actionActive:`_actionActive_1htxc_2476`,picker:`_picker_1htxc_2493`,pickerVisible:`_pickerVisible_1htxc_2525`,pickerBtn:`_pickerBtn_1htxc_2531`,pickerActive:`_pickerActive_1htxc_2553`,schedule:`_schedule_1htxc_2596`,scheduleHead:`_scheduleHead_1htxc_2607`,scheduleGrid:`_scheduleGrid_1htxc_2621`,scheduleField:`_scheduleField_1htxc_2627`,scheduleLabel:`_scheduleLabel_1htxc_2633`,scheduleInput:`_scheduleInput_1htxc_2639`,scheduleRow:`_scheduleRow_1htxc_2656`,scheduleRowLabel:`_scheduleRowLabel_1htxc_2666`,switch:`_switch_1htxc_2679`,switchOn:`_switchOn_1htxc_2691`,switchKnob:`_switchKnob_1htxc_2695`,scheduleFreq:`_scheduleFreq_1htxc_2710`,scheduleTz:`_scheduleTz_1htxc_2714`,tagSearch:`_tagSearch_1htxc_2728`,tagSearchInput:`_tagSearchInput_1htxc_2739`,tagList:`_tagList_1htxc_2748`,tagRow:`_tagRow_1htxc_2756`,tagRowActive:`_tagRowActive_1htxc_2773`,tagRowContent:`_tagRowContent_1htxc_2778`,tagAvatar:`_tagAvatar_1htxc_2784`,tagInfo:`_tagInfo_1htxc_2797`,tagName:`_tagName_1htxc_2802`,tagRole:`_tagRole_1htxc_2808`,tagCheckbox:`_tagCheckbox_1htxc_2813`,tagCheckboxActive:`_tagCheckboxActive_1htxc_2824`,postImagesGrid:`_postImagesGrid_1htxc_2831`,grid1:`_grid1_1htxc_2850`,grid2:`_grid2_1htxc_2853`,grid3:`_grid3_1htxc_2856`,grid4:`_grid4_1htxc_2860`,gridImageWrap:`_gridImageWrap_1htxc_2865`,gridImage:`_gridImage_1htxc_2865`,moreImagesOverlay:`_moreImagesOverlay_1htxc_2891`,lightboxOverlay:`_lightboxOverlay_1htxc_2914`,lightboxContainer:`_lightboxContainer_1htxc_2929`,lightboxLeft:`_lightboxLeft_1htxc_2942`,lightboxRight:`_lightboxRight_1htxc_2952`,lightboxScrollableContent:`_lightboxScrollableContent_1htxc_2962`,lightboxDivider:`_lightboxDivider_1htxc_2973`,lightboxClose:`_lightboxClose_1htxc_2997`,lightboxImage:`_lightboxImage_1htxc_3010`,lightboxArrow:`_lightboxArrow_1htxc_3045`,lightboxArrowLeft:`_lightboxArrowLeft_1htxc_3067`,lightboxArrowRight:`_lightboxArrowRight_1htxc_3075`,lightboxCounter:`_lightboxCounter_1htxc_3083`,templateSheet:`_templateSheet_1htxc_3101`,templateSheetHeader:`_templateSheetHeader_1htxc_3107`,templateBackBtn:`_templateBackBtn_1htxc_3115`,templateSheetTitle:`_templateSheetTitle_1htxc_3138`,templateSheetMeta:`_templateSheetMeta_1htxc_3147`,templateSearch:`_templateSearch_1htxc_3159`,templateSearchIcon:`_templateSearchIcon_1htxc_3165`,templateSearchInput:`_templateSearchInput_1htxc_3174`,templateList:`_templateList_1htxc_3191`,templateItem:`_templateItem_1htxc_3198`,templateItemBody:`_templateItemBody_1htxc_3222`,templateItemTitle:`_templateItemTitle_1htxc_3230`,templateItemSub:`_templateItemSub_1htxc_3239`,templateUseBtn:`_templateUseBtn_1htxc_3247`,templateEmpty:`_templateEmpty_1htxc_3268`,itemIconContainer:`_itemIconContainer_1htxc_3275`,itemBadge:`_itemBadge_1htxc_3287`,itemMetaRow:`_itemMetaRow_1htxc_3297`},TQ=({on:e,label:t,onToggle:n})=>(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":t,className:T(Y.switch,e&&Y.switchOn),onClick:n,children:(0,D.jsx)(`span`,{className:Y.switchKnob})}),EQ=({value:e,onChange:t,timezone:n})=>{let r=new Date,i=r.toLocaleDateString(`en-CA`),a=e.date===i,o=`${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}`;return(0,D.jsxs)(`div`,{className:Y.schedule,children:[(0,D.jsxs)(`div`,{className:Y.scheduleHead,children:[(0,D.jsx)(Rn,{size:13}),` SCHEDULE THIS POST`]}),(0,D.jsxs)(`div`,{className:Y.scheduleGrid,children:[(0,D.jsxs)(`label`,{className:Y.scheduleField,children:[(0,D.jsx)(`span`,{className:Y.scheduleLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:Y.scheduleInput,value:e.date,min:new Date().toLocaleDateString(`en-CA`),onChange:n=>{t({...e,date:n.target.value})}})]}),(0,D.jsxs)(`label`,{className:Y.scheduleField,children:[(0,D.jsx)(`span`,{className:Y.scheduleLabel,children:`Time`}),(0,D.jsx)(`input`,{type:`time`,className:Y.scheduleInput,value:e.time,min:a?o:void 0,onChange:n=>{t({...e,time:n.target.value})}})]})]}),(0,D.jsxs)(`div`,{className:Y.scheduleRow,children:[(0,D.jsxs)(`span`,{className:Y.scheduleRowLabel,children:[(0,D.jsx)(zr,{size:13}),` Recurring`]}),(0,D.jsx)(TQ,{on:e.recurring,label:`Repeat this post`,onToggle:()=>{t({...e,recurring:!e.recurring})}})]}),e.recurring&&(0,D.jsx)(zE,{ariaLabel:`Repeat frequency`,className:Y.scheduleFreq??``,options:wQ,value:e.frequency,onChange:n=>{t({...e,frequency:n})}}),(0,D.jsxs)(`div`,{className:Y.scheduleTz,children:[(0,D.jsx)(cr,{size:12}),` Timezone: `,(0,D.jsx)(`strong`,{children:n})]})]})},DQ=({mode:e,disabled:t,onMode:n,onCancel:r,onSubmit:i})=>(0,D.jsxs)(`div`,{className:Y.compFooter,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.cancelBtn,onClick:r,children:`Cancel`}),(0,D.jsxs)(`div`,{className:Y.submitRight,children:[(0,D.jsx)(zE,{ariaLabel:`Publish timing`,className:Y.modeToggle??``,options:CQ,value:e,onChange:n}),(0,D.jsx)(`button`,{type:`button`,className:Y.postBtn,disabled:t,onClick:i,children:e===`schedule`?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Zn,{size:12}),` Schedule post`]}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(Vr,{size:12}),` Post now`]})})]})]});function OQ(e,t,n){if(e===`schedule`)return DN(t.date,t.time,n)}function kQ(){let[e,t]=(0,n.useState)(``),[r,i]=(0,n.useState)(``),[a,o]=(0,n.useState)(!1),[s,c]=(0,n.useState)(`general`),[l,u]=(0,n.useState)(`all`),[d,f]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),[_,v]=(0,n.useState)(`now`),[y,b]=(0,n.useState)(SQ),[x,S]=(0,n.useState)([]),[C,ee]=(0,n.useState)([]),[te,ne]=(0,n.useState)(null);return{body:e,setBody:t,title:r,setTitle:i,mustRead:a,setMustRead:o,categoryId:s,setCategoryId:c,audienceId:l,setAudienceId:u,feeling:d,setFeeling:f,location:p,setLocation:m,sheet:h,setSheet:g,mode:_,setMode:v,schedule:y,setSchedule:b,taggedUsers:x,setTaggedUsers:S,photos:C,setPhotos:ee,selectedItem:te,setSelectedItem:ne}}function AQ(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 jQ(e,t,n){let r=wY(),i=IY(),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=OQ(e.mode,e.schedule,n),s=AQ(e,o);if(s){j.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`&&j.success(`Post scheduled for ${e.schedule.date} at ${e.schedule.time}`),t()},onError:()=>{j.error(`Failed to publish post. Please try again.`)}})}catch{j.error(`Invalid schedule date or time, or image upload failed.`)}}}}function MQ(e,t){let n=kQ(),r=jN().display,{submitDisabled:i,submit:a}=jQ(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)};return{...n,category:t.find(e=>e.id===n.categoryId),timezone:r,submitDisabled:i,toggleTag:o,applyTemplate:s,submit:a}}var NQ={all:ri,sales:In,admission:lr,leadership:Yr},PQ=e=>NQ[e]??ri,FQ=({audienceId:e,onChange:t})=>{let{data:n=[]}=NY(),r=n.find(t=>t.id===e)??n[0],i=PQ(r?.id??`all`);return(0,D.jsx)(ET,{align:`start`,trigger:(0,D.jsxs)(`button`,{type:`button`,className:Y.audiencePill,"aria-label":`Audience`,children:[(0,D.jsx)(i,{size:12}),` `,r?.label??`Everyone`,(0,D.jsx)(Wn,{size:12})]}),items:n.map(e=>{let n=PQ(e.id);return{label:e.label,icon:(0,D.jsx)(n,{size:14}),onSelect:()=>{t(e.id)}}})})},IQ=({audienceId:e,onChange:t})=>{let{data:n=[]}=NY();return(0,D.jsxs)(`div`,{className:Y.audienceSection,children:[(0,D.jsx)(`span`,{className:Y.audienceLabel,children:`Who can see this post?`}),(0,D.jsx)(`div`,{className:Y.audienceRow,children:n.map(n=>{let r=PQ(n.id),i=n.id===e;return(0,D.jsxs)(`button`,{type:`button`,className:T(Y.audienceBtn,i&&Y.audienceBtnActive),"aria-pressed":i,onClick:()=>{t(n.id)},children:[(0,D.jsx)(r,{size:14}),` `,n.label,i&&(0,D.jsx)(Un,{size:13})]},n.id)})})]})},LQ=({user:e,isSelected:t,onToggleTag:n})=>(0,D.jsxs)(`button`,{type:`button`,className:T(Y.tagRow,t&&Y.tagRowActive),onClick:()=>{n(e)},children:[(0,D.jsxs)(`div`,{className:Y.tagRowContent,children:[(0,D.jsx)(`span`,{className:Y.tagAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`div`,{className:Y.tagInfo,children:[(0,D.jsx)(`span`,{className:Y.tagName,children:e.name}),(0,D.jsx)(`span`,{className:Y.tagRole,children:e.role})]})]}),(0,D.jsx)(`div`,{className:T(Y.tagCheckbox,t&&Y.tagCheckboxActive),children:(0,D.jsx)(Un,{size:12})})]}),RQ=({isSearching:e,isPending:t,search:n,activeList:r,taggedUserIds:i,onToggleTag:a})=>e?t?(0,D.jsx)(`span`,{className:Y.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Searching...`}):r.length===0?(0,D.jsxs)(`span`,{className:Y.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)(LQ,{user:e,isSelected:i.includes(e.id),onToggleTag:a},e.id))}):(0,D.jsx)(`span`,{className:Y.actionBarLabel,style:{display:`block`,textAlign:`center`,padding:`20px 0`},children:`Type a name or email to search teammates.`}),zQ=({taggedUserIds:e,onToggleTag:t})=>{let[r,i]=(0,n.useState)(``),a=FY(r),o=r.trim().length>0,s=a.data??[];return(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:Y.tagSearch,children:[(0,D.jsx)(Br,{size:14,className:Y.actionBarLabel}),(0,D.jsx)(`input`,{type:`text`,className:Y.tagSearchInput,placeholder:`Search teammates`,value:r,onChange:e=>{i(e.target.value)}}),r&&(0,D.jsx)(`button`,{type:`button`,onClick:()=>{i(``)},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)(oi,{size:14})})]}),(0,D.jsx)(`div`,{className:Y.tagList,children:(0,D.jsx)(RQ,{isSearching:o,isPending:a.isPending,search:r,activeList:s,taggedUserIds:e,onToggleTag:t})})]})},BQ=(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()]??``)},VQ=e=>e.length>120?`${e.slice(0,120)}…`:e,HQ=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},UQ=({item:e,templates:t,onSelect:n})=>{let r=HQ(t),i=Object.entries(e.values).filter(([e,t])=>(r.size===0||r.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(0,D.jsxs)(`button`,{type:`button`,className:Y.templateItem,onClick:()=>{n(e)},children:[(0,D.jsx)(`div`,{className:Y.itemIconContainer,children:(0,D.jsx)(or,{size:16})}),(0,D.jsxs)(`div`,{className:Y.templateItemBody,children:[(0,D.jsx)(`span`,{className:Y.templateItemTitle,children:e.label}),e.sublabel!==``&&(0,D.jsx)(`span`,{className:Y.templateItemSub,children:e.sublabel}),i.length>0&&(0,D.jsx)(`div`,{className:Y.itemMetaRow,children:i.map(([e,t])=>(0,D.jsxs)(`span`,{className:Y.itemBadge,children:[e.replace(/_/g,` `),`: `,t]},e))})]}),(0,D.jsx)(`span`,{className:Y.templateUseBtn,children:`SELECT`})]})},WQ=({category:e,items:t,templates:r,searchQuery:i,onSearchQuery:a,isLoading:o,onBack:s,onSelectItem:c})=>{let[l,u]=(0,n.useState)(``),d=a!==void 0,f=d?i??``:l,p=d?a:u,m=d||f.trim()===``?t:t.filter(e=>[e.label,e.sublabel,e.id].join(` `).toLowerCase().includes(f.toLowerCase()));return(0,D.jsxs)(`div`,{className:Y.templateSheet,children:[(0,D.jsxs)(`div`,{className:Y.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.templateBackBtn,onClick:s,children:(0,D.jsx)(jn,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:Y.templateSheetTitle,children:`Select Item`}),(0,D.jsxs)(`span`,{className:Y.templateSheetMeta,children:[`Showing items for `,(0,D.jsx)(`strong`,{children:e.label})]})]})]}),(0,D.jsxs)(`div`,{className:Y.templateSearch,children:[(0,D.jsx)(Br,{size:13,className:Y.templateSearchIcon}),(0,D.jsx)(`input`,{type:`text`,className:Y.templateSearchInput,placeholder:`Search items…`,value:f,onChange:e=>{p(e.target.value)}}),o&&m.length>0&&(0,D.jsx)(`div`,{style:{marginLeft:`8px`,display:`flex`,alignItems:`center`},children:(0,D.jsx)(mi,{size:`sm`})})]}),(0,D.jsx)(`div`,{className:Y.templateList,children:o&&m.length===0?(0,D.jsx)(`div`,{style:{padding:`2rem`,display:`flex`,justifyContent:`center`},children:(0,D.jsx)(mi,{})}):m.length===0?(0,D.jsx)(`p`,{className:Y.templateEmpty,children:`No items found.`}):m.map(e=>(0,D.jsx)(UQ,{item:e,templates:r,onSelect:c},e.id))})]})},GQ=({selectedItem:e,templates:t,onBack:n,onUse:r})=>(0,D.jsxs)(`div`,{className:Y.templateSheet,children:[(0,D.jsxs)(`div`,{className:Y.templateSheetHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.templateBackBtn,onClick:n,children:(0,D.jsx)(jn,{size:14})}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`span`,{className:Y.templateSheetTitle,children:`Choose Template`}),(0,D.jsxs)(`span`,{className:Y.templateSheetMeta,children:[e.label,` · `,(0,D.jsx)(`strong`,{children:e.sublabel})]})]})]}),(0,D.jsx)(`div`,{className:Y.templateList,children:t.length===0?(0,D.jsx)(`p`,{className:Y.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=BQ(t.postBody,i),o=BQ(t.postTitle,i);return(0,D.jsxs)(`button`,{type:`button`,className:Y.templateItem,onClick:()=>{r(o,a)},children:[(0,D.jsxs)(`div`,{className:Y.templateItemBody,children:[(0,D.jsx)(`span`,{className:Y.templateItemTitle,children:t.name}),(0,D.jsx)(`span`,{className:Y.templateItemSub,children:VQ(a)})]}),(0,D.jsxs)(`span`,{className:Y.templateUseBtn,children:[(0,D.jsx)(Un,{size:11}),`USE`]})]},t.id)})})]}),KQ=({category:e})=>e===void 0?null:(0,D.jsx)(`div`,{className:Y.compChips,children:(0,D.jsxs)(`span`,{className:Y.compChip,children:[`🏷️ `,e.label]})}),qQ=({sheet:e,location:t,onSheet:n,onToggleLocation:r,showPhoto:i=!0})=>(0,D.jsxs)(`div`,{className:Y.actionBar,children:[(0,D.jsx)(`span`,{className:Y.actionBarLabel,children:`Add to your post`}),(0,D.jsxs)(`div`,{className:Y.actionBarBtns,children:[i&&(0,D.jsx)(`button`,{type:`button`,title:`Photo/video`,className:T(Y.actionIcon,e===`photo`&&Y.actionIconActive),onClick:()=>{n(`photo`)},children:(0,D.jsx)(pr,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Tag people`,className:T(Y.actionIcon,e===`tag`&&Y.actionIconActive),onClick:()=>{n(`tag`)},children:(0,D.jsx)(ni,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Feeling/activity`,className:T(Y.actionIcon,e===`feeling`&&Y.actionIconActive),onClick:()=>{n(`feeling`)},children:(0,D.jsx)(qr,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Location`,className:T(Y.actionIcon,t!==null&&Y.actionIconActive),onClick:r,children:(0,D.jsx)(vr,{size:15})}),(0,D.jsx)(`button`,{type:`button`,title:`Category`,className:T(Y.actionIcon,(e===`category`||e===`item`||e===`template`)&&Y.actionIconActive),onClick:()=>{n(`category`)},children:(0,D.jsx)(Xr,{size:15})})]})]}),JQ=({categoryId:e,onCategory:t})=>{let{data:n=[]}=MY();return(0,D.jsx)(`div`,{className:Y.sheetChips,children:n.map(n=>(0,D.jsx)(`button`,{type:`button`,className:T(Y.catChip,e===n.id&&Y.catChipOn),style:E({"--chip":n.color}),onClick:()=>{t(n)},children:n.label},n.id))})},YQ=({feeling:e,onFeeling:t})=>{let{data:n=[]}=PY();return(0,D.jsx)(`div`,{className:Y.feelGrid,children:n.map(n=>(0,D.jsxs)(`button`,{type:`button`,className:T(Y.feelBtn,e===n.id&&Y.feelBtnOn),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:Y.feelEmoji,children:n.emoji}),n.label]},n.id))})},XQ={photo:`Add photos`,tag:`Tag people`,feeling:`How are you feeling?`,category:`POST CATEGORY`,item:`Select Item`,template:`Choose Template`},ZQ=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)(JQ,{categoryId:n,onCategory:e=>{l(e),e.templateIds.length>0?h(`item`):m()}});case`feeling`:return(0,D.jsx)(YQ,{feeling:r,onFeeling:u});case`tag`:return(0,D.jsx)(zQ,{taggedUserIds:i,onToggleTag:d});case`item`:return c===void 0?null:(0,D.jsx)(WQ,{category:c,items:o,templates:s,searchQuery:g,onSearchQuery:_,isLoading:v,onBack:()=>{h(`category`)},onSelectItem:e=>{f(e),h(`template`)}});case`template`:return a===null?null:(0,D.jsx)(GQ,{selectedItem:a,templates:s,onBack:()=>{h(`item`)},onUse:p});case null:case`photo`:return null;default:return null}},QQ=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:Y.sheet,children:[r&&(0,D.jsxs)(`div`,{className:Y.sheetHead,children:[(0,D.jsx)(`span`,{className:Y.sheetLabel,children:XQ[t]}),(0,D.jsx)(`button`,{type:`button`,className:Y.sheetClose,"aria-label":`Close`,onClick:n,children:(0,D.jsx)(oi,{size:14})})]}),(0,D.jsx)(ZQ,{...e})]})},$Q=e=>e.map(e=>({url:URL.createObjectURL(e),name:e.name,size:e.size,file:e})),e$=({onOpen:e})=>(0,D.jsxs)(`button`,{type:`button`,className:Y.dropzone,onClick:e,children:[(0,D.jsx)(`span`,{className:Y.dropIcon,children:(0,D.jsx)(Qn,{size:20})}),(0,D.jsx)(`span`,{className:Y.dropTitle,children:`Click to upload or drag & drop`}),(0,D.jsx)(`span`,{className:Y.dropHint,children:`Supported image formats: PNG, JPG, JPEG, GIF, WEBP, HEIC (Max 10MB)`})]}),t$=({photos:e,onOpen:t,onRemove:n})=>(0,D.jsxs)(`div`,{className:Y.photoGrid,children:[e.map(e=>(0,D.jsxs)(`div`,{className:Y.photoThumb,children:[(0,D.jsx)(`img`,{src:e.url,alt:e.name,className:Y.photoImg}),(0,D.jsx)(`button`,{type:`button`,className:Y.photoRemove,"aria-label":`Remove ${e.name}`,onClick:()=>{n(e.id)},children:(0,D.jsx)(oi,{size:12})})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:Y.photoAddMore,"aria-label":`Add more photos`,onClick:t,children:(0,D.jsx)(fr,{size:18})})]}),n$=(e,t)=>$Q(e).map((e,n)=>({id:`${e.name}-${String(e.size)}-${String(t+n)}`,url:e.url,name:e.name,file:e.file})),r$=async e=>{if(e.files===null)return;let t=5-e.currentCount;if(t<=0){j.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))&&j.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&&j.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&&j.error(`Only the first ${String(t)} images were added. Maximum limit is 5.`);let c=n$(await Promise.all(s.map(e=>KY(e))),e.existingPicked.length);if(c.length===0)return;let l=[...e.existingPicked,...c];e.onResult(l,l.map(e=>e.file))},i$=({photos:e,setPhotos:t})=>{let[r,i]=(0,n.useState)([]),[a,o]=(0,n.useState)(!1),s=(0,n.useRef)(null),c=(0,n.useRef)([]);c.current=r,(0,n.useEffect)(()=>()=>{for(let e of c.current)URL.revokeObjectURL(e.url)},[]);let l=n=>{r$({files:n,currentCount:e.length,existingPicked:r,onResult:(e,n)=>{i(e),t(n)}})};return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,multiple:!0,className:Y.photoInput,onChange:e=>{l(e.target.files),s.current!==null&&(s.current.value=``)}}),(0,D.jsx)(`div`,{className:T(Y.photoZone,a&&Y.photoZoneDrag),onDragOver:e=>{e.preventDefault(),o(!0)},onDragLeave:()=>{o(!1)},onDrop:e=>{e.preventDefault(),o(!1),l(e.dataTransfer.files)},children:r.length===0?(0,D.jsx)(e$,{onOpen:()=>s.current?.click()}):(0,D.jsx)(t$,{photos:r,onOpen:()=>s.current?.click(),onRemove:e=>{i(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})}})})]})},a$=({value:e,onChange:t,className:n})=>(0,D.jsx)(`input`,{className:T(Y.titleInput,n),placeholder:`Add a headline (optional)`,value:e,onChange:e=>{t(e.target.value)}}),o$=({on:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:Y.compOption,children:[(0,D.jsxs)(`span`,{className:Y.compOptionLabel,children:[(0,D.jsx)(Yn,{size:14}),` Must-read — require acknowledgement`]}),(0,D.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":`Require acknowledgement`,className:T(Y.switch,e&&Y.switchOn),onClick:t,children:(0,D.jsx)(`span`,{className:Y.switchKnob})})]}),s$=(e,t)=>{let{detectLocation:n}=yY();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)})}},c$=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:ee}=e,te=s$(r,p);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(KQ,{category:t}),C?ee:(i===`photo`||x.length>0)&&(0,D.jsx)(i$,{photos:x,setPhotos:S}),(0,D.jsx)(qQ,{sheet:i,location:r,onSheet:e=>{f(t=>t===e?null:e)},onToggleLocation:te,showPhoto:!C||ee===void 0||i===`photo`}),(0,D.jsx)(QQ,{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)(IQ,{audienceId:o,onChange:g}),(0,D.jsx)(o$,{on:s,onToggle:()=>{_(e=>!e)}})]})},l$=({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]}),u$=e=>{let{title:t,setTitle:n,body:r,setBody:i,bodyPlaceholder:a,isEditMode:o=!1,editImagesNode:s}=e,c=di(t,300,250),l=di(r,8e3,7e3);return(0,D.jsxs)(D.Fragment,{children:[o?(0,D.jsx)(`input`,{type:`text`,className:T(Y.titleInput,c.isOverLimit&&Y.textareaError),value:t,placeholder:`Add a headline (optional)...`,onChange:e=>{n(e.target.value)},style:{width:`100%`}}):(0,D.jsx)(a$,{value:t,onChange:n,className:c.isOverLimit?Y.textareaError:void 0}),c.showCounter&&(0,D.jsx)(l$,{length:c.length,limit:300,color:c.counterColor,fontSize:`11px`,padding:`2px 16px 4px`}),(0,D.jsx)(`textarea`,{className:T(Y.textarea,l.isOverLimit&&Y.textareaError),placeholder:a,value:r,onChange:e=>{i(e.target.value)},style:o?{width:`100%`,minHeight:`100px`}:void 0}),l.showCounter&&(0,D.jsx)(l$,{length:l.length,limit:8e3,color:l.counterColor,fontSize:`12px`,padding:`2px 16px 6px`}),(0,D.jsx)(c$,{...e,isEditMode:o,...s===void 0?{}:{editImagesNode:s}})]})},d$=({authorInfo:e,audienceId:t,taggedUsers:n,feeling:r,location:i,onAudience:a,onClose:o})=>{let{data:s=[]}=PY(),c=s.find(e=>e.id===r);return(0,D.jsxs)(`div`,{className:Y.compHead,style:o?void 0:{borderBottom:`none`,padding:`0 0 10px`},children:[(0,D.jsxs)(`div`,{className:Y.compAvatarWrapper,children:[(0,D.jsx)(`span`,{className:Y.compAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),o&&(0,D.jsx)(`span`,{className:Y.statusDot})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:Y.compHeaderTagline,children:[(0,D.jsx)(`strong`,{children:e.name}),c&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:Y.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:Y.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:Y.taggedTagline,children:RY(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)(FQ,{audienceId:t,onChange:a})]}),o&&(0,D.jsx)(`button`,{type:`button`,className:Y.compClose,"aria-label":`Close`,onClick:o,children:(0,D.jsx)(oi,{size:16})})]})},f$=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}},p$=(e,t)=>e===void 0?[]:t.filter(t=>e.templateIds.includes(t.id)),m$=(e,t)=>{let n=!!e?.webhookId,r=JL(n?void 0:e?.categoryKey),i=YL(e?.categoryKey??``,t,n),a=n?i:r;return{rawItems:a.data??[],isLoadingItems:a.isPending,hasWebhook:n}};function h$({profile:e,onClose:t}){let{data:r=[]}=MY(),i=MQ(t,r),a=i.category,[o,s]=(0,n.useState)(``),{rawItems:c,isLoadingItems:l,hasWebhook:u}=m$(a,o),{data:d=[]}=qL(),f=p$(a,d),p=c.map(f$);return(0,D.jsxs)(`div`,{className:Y.composer,children:[(0,D.jsx)(d$,{authorInfo:e,audienceId:i.audienceId,taggedUsers:i.taggedUsers,feeling:i.feeling,location:i.location,onAudience:i.setAudienceId,onClose:t}),(0,D.jsx)(u$,{title:i.title,setTitle:i.setTitle,body:i.body,setBody:i.setBody,bodyPlaceholder:`What's on your mind, ${e.name.split(` `)[0]??``}?`,category:i.category,feeling:i.feeling,location:i.location,sheet:i.sheet,categoryId:i.categoryId,audienceId:i.audienceId,mustRead:i.mustRead,taggedUserIds:i.taggedUsers.map(e=>e.id),selectedItem:i.selectedItem,categoryItems:p,categoryTemplates:f,setSheet:i.setSheet,setLocation:i.setLocation,setCategoryId:e=>{s(``),i.setCategoryId(e.id)},setFeeling:i.setFeeling,setAudienceId:i.setAudienceId,setMustRead:i.setMustRead,onToggleTag:i.toggleTag,onSelectItem:i.setSelectedItem,onApplyTemplate:i.applyTemplate,photos:i.photos,setPhotos:i.setPhotos,isEditMode:!1,searchQuery:o,onSearchQuery:u?s:void 0,isLoadingItems:l}),i.mode===`schedule`&&(0,D.jsx)(EQ,{value:i.schedule,onChange:i.setSchedule,timezone:i.timezone}),(0,D.jsx)(DQ,{mode:i.mode,disabled:i.submitDisabled,onMode:i.setMode,onCancel:t,onSubmit:()=>{i.submit()}})]})}var g$=e=>e.split(/[\s_-]+/).filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `),_$=e=>g$((e.split(`@`)[0]??e).replace(/[._-]+/g,` `)),v$=(e,t)=>{let n=e.length>0?e:t;return n.includes(`@`)?_$(n):n},y$=(e,t,n)=>{let r=e.length>0?e:t;return r.length===0||r.includes(`@`)?v$(t,n):r},b$=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?li(n):`?`,x$=(e,t,n)=>e!==void 0&&e.trim().length>0?e:t?ui(n):`#6b7280`,S$=(e,t)=>{if(!t)return{name:``,initials:`?`,color:`#6b7280`};let n=y$(e?e.name:``,t.fullName,t.email.value);return{name:n,initials:b$(e?e.initials:void 0,!0,n),color:x$(e?e.color:void 0,!0,t.id)}},C$=()=>{let[e,t]=(0,n.useState)(!1),{user:r}=mz(),i=S$(KP().data,r);if(!e){let e=i.name.split(` `)[0]??``;return(0,D.jsxs)(`div`,{className:Y.composerCollapsed,children:[(0,D.jsx)(`span`,{className:Y.ccAvatar,style:E({"--avatar-color":i.color}),children:i.initials}),(0,D.jsxs)(`button`,{type:`button`,className:Y.ccInput,onClick:()=>{t(!0)},children:[`What's on your mind, `,e,`?`]})]})}return(0,D.jsx)(h$,{profile:i,onClose:()=>{t(!1)}})},w$=()=>(0,D.jsxs)(`div`,{className:Y.emptyState,children:[(0,D.jsx)(`div`,{className:Y.emptyIconWrap,children:(0,D.jsx)(mr,{size:32})}),(0,D.jsx)(`h3`,{className:Y.emptyTitle,children:`It's quiet in here`}),(0,D.jsx)(`p`,{className:Y.emptyText,children:`There are no posts in this feed yet. Be the first to share an update!`})]}),T$=({post:e,taggedUsers:t})=>(0,D.jsxs)(`div`,{className:Y.compHeaderTagline,style:{display:`block`,fontSize:`14px`,lineHeight:`1.4`},children:[(0,D.jsx)(`span`,{className:Y.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:` `}),RY(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})]})]}),E$=({post:e,taggedUsers:t})=>{let n=jN().display;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:Y.avatar,style:E({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:Y.cardAuthor,children:[(0,D.jsx)(T$,{post:e,taggedUsers:t}),(0,D.jsxs)(`div`,{className:Y.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:WY(e.createdAt,n)}),(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`]})]})]})]})},D$=e=>{let t=hZ({page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`}).data;return t?t.users.filter(t=>e.includes(t.id)):[]},O$=({post:e,onBookmark:t,onPin:n,showPinButton:r,onEdit:i,showEditButton:a})=>{let o=D$(e.taggedUserIds),{categoryLabel:s,categoryColor:c}=LY(e);return(0,D.jsxs)(`header`,{className:Y.cardHead,children:[(0,D.jsx)(E$,{post:e,taggedUsers:o}),(0,D.jsxs)(`div`,{className:Y.cardRight,children:[(0,D.jsxs)(`span`,{className:Y.badge,style:E({"--badge-color":c}),children:[(0,D.jsx)(`span`,{className:Y.badgeDot}),s]}),(0,D.jsxs)(`div`,{className:Y.cardActions,children:[(0,D.jsx)(`button`,{type:`button`,className:T(Y.bookmarkBtn,e.bookmarked&&Y.bookmarkActive),"aria-label":e.bookmarked?`Remove bookmark`:`Save post`,onClick:t,children:(0,D.jsx)(Fn,{size:15,fill:e.bookmarked?`currentColor`:`none`})}),r&&n&&(0,D.jsx)(`button`,{type:`button`,className:T(Y.pinBtn,e.pinned&&Y.pinActive),"aria-label":e.pinned?`Unpin post`:`Pin post`,onClick:n,children:(0,D.jsx)(jr,{size:15,fill:e.pinned?`currentColor`:`none`})}),a&&i&&(0,D.jsx)(`button`,{type:`button`,className:Y.editBtn,"aria-label":`Edit post`,onClick:i,children:(0,D.jsx)(Or,{size:15})})]})]})]})},k$=({url:e,onRemove:t})=>(0,D.jsxs)(`div`,{className:Y.photoThumb,children:[(0,D.jsx)(`img`,{src:e,alt:`thumbnail`,className:Y.photoImg}),(0,D.jsx)(`button`,{type:`button`,onClick:t,className:Y.photoRemove,children:(0,D.jsx)(oi,{size:12})})]}),A$=({file:e,onRemove:t})=>{let[r,i]=(0,n.useState)(``);return(0,n.useEffect)(()=>{let t=URL.createObjectURL(e);return i(t),()=>{URL.revokeObjectURL(t)}},[e]),r?(0,D.jsx)(k$,{url:r,onRemove:t}):null},j$=({existingImages:e,newPhotos:t,onAddPhotos:r,onRemoveExisting:i,onRemoveNew:a})=>{let o=(0,n.useRef)(null);return e.length===0&&t.length===0?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`input`,{ref:o,type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&r(e.target.files)},style:{display:`none`}}),(0,D.jsx)(e$,{onOpen:()=>o.current?.click()})]}):(0,D.jsxs)(`div`,{className:Y.photoGrid,children:[e.map(e=>(0,D.jsx)(k$,{url:e,onRemove:()=>{i(e)}},e)),t.map((e,t)=>(0,D.jsx)(A$,{file:e,onRemove:()=>{a(t)}},t)),(0,D.jsxs)(`label`,{className:Y.photoAddMore,children:[(0,D.jsx)(fr,{size:18}),(0,D.jsx)(`input`,{type:`file`,multiple:!0,accept:`image/*`,onChange:e=>{e.target.files!==null&&e.target.files.length>0&&r(e.target.files)},style:{display:`none`}})]})]})},M$=e=>({id:e.id,name:e.fullName,email:e.email,userName:e.fullName,role:e.roleName,initials:e.initials,color:e.color}),N$=e=>{let[t,r]=(0,n.useState)(e),[i,a]=(0,n.useState)([]);return{existingImages:t,setExistingImages:r,newPhotos:i,setNewPhotos:a,handleAddPhotos:async e=>{let n=5-(t.length+i.length);if(n<=0){j.error(`You can only have a maximum of 5 images.`);return}let r=Array.from(e).filter(e=>e.type.startsWith(`image/`)||e.name.toLowerCase().endsWith(`.heic`)||e.name.toLowerCase().endsWith(`.heif`)),o=10*1024*1024;r.filter(e=>e.size>o).length>0&&j.error(`Some images exceed the 10MB limit and were skipped.`);let s=r.filter(e=>e.size<=o),c=s.slice(0,n);s.length>n&&j.error(`Only the first ${String(n)} images were added. Maximum limit is 5.`);let l=await Promise.all(c.map(e=>KY(e)));a(e=>[...e,...l])},handleRemoveExisting:e=>{r(t=>t.filter(t=>t!==e))},handleRemoveNew:e=>{a(t=>t.filter((t,n)=>n!==e))}}},P$=(e,t,r)=>{let[i,a]=(0,n.useState)(e.department??`general`),[o,s]=(0,n.useState)(e.audienceId),[c,l]=(0,n.useState)(e.feelingId),[u,d]=(0,n.useState)(e.locationLabel),[f,p]=(0,n.useState)(e.mustAcknowledge),[m,h]=(0,n.useState)(null),[g,_]=(0,n.useState)(t.filter(t=>e.taggedUserIds.includes(t.id)).map(M$));return{categoryId:i,setCategoryId:a,audienceId:o,setAudienceId:s,feeling:c,setFeeling:l,location:u,setLocation:d,mustRead:f,setMustRead:p,taggedUsers:g,setTaggedUsers:_,sheet:m,setSheet:h,toggleTag:e=>{_(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...`),r.execute().then(e=>{d(t=>t===`Detecting location...`?e.ok?e.value:`London Office`:t)})}}},F$=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},I$=e=>e.map(e=>F$(e)).filter(e=>e!==null),L$=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&&j.error(`${String(i)} image${i>1?`s`:``} failed to upload.`),r},R$=async({post:e,editTitle:t,editBody:n,photosState:r,composerState:i,updatePostMutation:a,uploadImageMutation:o,setIsEditing:s})=>{if(t.trim().length>300){j.error(`Post title cannot exceed 300 characters.`);return}if(n.trim().length>8e3){j.error(`Post body cannot exceed 8000 characters.`);return}try{let c=await L$(r.newPhotos,e=>o.mutateAsync(e)),l=I$(r.existingImages);a.mutate({postId:e.id,input:{title:t.trim()||null,body:n,imageIds:[...l,...c],categoryId:i.categoryId,audienceId:i.audienceId,mustAcknowledge:i.mustRead,taggedUserIds:i.taggedUsers.map(e=>e.id),feelingId:i.feeling,locationLabel:i.location}},{onSuccess:()=>{s(!1),r.setNewPhotos([])},onError:()=>{j.error(`Failed to update the post. Please try again.`)}})}catch{j.error(`Failed to process post images. Please try again.`)}},z$=({post:e,setTitle:t,setBody:n,photos:r,composer:i,allUsers:a})=>{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.setTaggedUsers(a.filter(t=>e.taggedUserIds.includes(t.id)).map(M$))},B$=()=>{let[e,t]=(0,n.useState)(!1),[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(null),[s,c]=(0,n.useState)(!1);return{commentsOpen:e,setCommentsOpen:t,shareOpen:r,setShareOpen:i,lightboxIndex:a,setLightboxIndex:o,isEditing:s,setIsEditing:c}},V$={page:1,pageSize:1e3,filter:``,department:``,accessRole:``,branch:``,status:`all`},H$=e=>{let t=B$(),[r,i]=(0,n.useState)(e.title??``),[a,o]=(0,n.useState)(e.body),s=hZ(V$).data?.users??[],{detectLocation:c}=yY(),l=N$(e.imageUrls),u=P$(e,s,c),d=TY(),f=IY();return(0,n.useEffect)(()=>{t.isEditing||z$({post:e,setTitle:i,setBody:o,photos:l,composer:u,allUsers:s})},[t.isEditing,e,s]),{...t,editTitle:r,setEditTitle:i,editBody:a,setEditBody:o,existingImages:l.existingImages,newPhotos:l.newPhotos,isPending:d.isPending||f.isPending,handleAddPhotos:e=>{l.handleAddPhotos(e)},handleRemoveExisting:l.handleRemoveExisting,handleRemoveNew:l.handleRemoveNew,handleSave:()=>{R$({post:e,editTitle:r,editBody:a,photosState:l,composerState:u,updatePostMutation:d,uploadImageMutation:f,setIsEditing:t.setIsEditing})},handleCancel:()=>{z$({post:e,setTitle:i,setBody:o,photos:l,composer:u,allUsers:s}),t.setIsEditing(!1)},categoryId:u.categoryId,setCategoryId:u.setCategoryId,audienceId:u.audienceId,setAudienceId:u.setAudienceId,feeling:u.feeling,setFeeling:u.setFeeling,location:u.location,setLocation:u.setLocation,mustRead:u.mustRead,setMustRead:u.setMustRead,taggedUsers:u.taggedUsers,sheet:u.sheet,setSheet:u.setSheet,toggleTag:u.toggleTag,handleToggleLocation:u.handleToggleLocation}},U$=()=>{},W$=({isPending:e,body:t,onSave:n,onCancel:r})=>(0,D.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:`8px`},children:[(0,D.jsx)(`button`,{type:`button`,onClick:r,style:{padding:`6px 12px`,borderRadius:`6px`,border:`1px solid var(--color-border)`,background:`transparent`,color:`var(--color-text-soft)`,cursor:`pointer`},children:`Cancel`}),(0,D.jsx)(`button`,{type:`button`,disabled:e||!t.trim(),onClick:n,style:{padding:`6px 12px`,borderRadius:`6px`,border:`none`,background:`var(--color-primary)`,color:`white`,cursor:`pointer`,opacity:e||!t.trim()?.6:1},children:e?`Saving...`:`Save`})]}),G$=({post:e,state:t})=>{let{data:n=[]}=MY(),r=n.find(e=>e.id===t.categoryId);return(0,D.jsxs)(`div`,{style:{padding:`20px`,display:`flex`,flexDirection:`column`,gap:`12px`},children:[(0,D.jsx)(d$,{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)(u$,{title:t.editTitle,setTitle:t.setEditTitle,body:t.editBody,setBody:t.setEditBody,bodyPlaceholder:`What's on your mind?`,category:r,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:e=>{t.setCategoryId(e.id)},selectedItem:null,categoryItems:[],categoryTemplates:[],onSelectItem:U$,onApplyTemplate:(e,n)=>{t.setEditTitle(e),t.setEditBody(n)},setFeeling:t.setFeeling,setAudienceId:t.setAudienceId,setMustRead:t.setMustRead,onToggleTag:t.toggleTag,photos:[],setPhotos:U$,isEditMode:!0,editImagesNode:t.existingImages.length>0||t.newPhotos.length>0||t.sheet===`photo`?(0,D.jsx)(j$,{existingImages:t.existingImages,newPhotos:t.newPhotos,onAddPhotos:e=>{t.handleAddPhotos(e)},onRemoveExisting:t.handleRemoveExisting,onRemoveNew:t.handleRemoveNew}):void 0}),(0,D.jsx)(W$,{isPending:t.isPending,body:t.editBody,onSave:t.handleSave,onCancel:t.handleCancel})]})},K$=({comment:e,displayZone:t})=>(0,D.jsxs)(`div`,{className:Y.commentRow,children:[(0,D.jsx)(`span`,{className:Y.commentAvatar,style:E({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:Y.commentBubble,children:[(0,D.jsxs)(`div`,{className:Y.commentAuthor,children:[e.authorName,` `,(0,D.jsxs)(`span`,{className:Y.commentTime,children:[`· `,WY(e.createdAt,t)]})]}),(0,D.jsx)(`div`,{className:Y.commentText,children:e.text})]})]}),q$=({comments:e,pending:t,onAdd:r})=>{let[i,a]=(0,n.useState)(``),{user:o}=mz(),s=jN().display,c=di(i,4e3),l={initials:o?li(o.fullName):`?`,color:o?ui(o.id):`#6b7280`},u=()=>{i.trim()!==``&&(r(i.trim()),a(``))};return(0,D.jsxs)(`div`,{className:Y.comments,children:[e.map(e=>(0,D.jsx)(K$,{comment:e,displayZone:s},e.id)),(0,D.jsxs)(`div`,{className:Y.commentRow,children:[(0,D.jsx)(`span`,{className:Y.commentAvatar,style:E({"--avatar-color":l.color}),children:l.initials}),(0,D.jsxs)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsxs)(`div`,{className:T(Y.commentComposer,c.isOverLimit&&Y.commentComposerError),children:[(0,D.jsx)(`input`,{className:Y.commentInput,placeholder:`Write a comment…`,value:i,onChange:e=>{a(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&!c.isOverLimit&&u()}}),(0,D.jsx)(`button`,{type:`button`,className:Y.commentSend,disabled:i.trim()===``||t||c.isOverLimit,onClick:u,children:(0,D.jsx)(Vr,{size:13})})]}),c.showCounter&&(0,D.jsxs)(`div`,{style:{alignSelf:`flex-end`,fontSize:`10px`,color:c.counterColor===`danger`?`var(--color-danger)`:`var(--color-text-soft)`,marginRight:`8px`,fontWeight:500},children:[c.length,` / 4000`]})]})]})]})},J$=({url:e,alt:t,className:n})=>(0,D.jsx)(`img`,{src:e,alt:t,className:n,loading:`lazy`}),Y$=({urls:e,onImageClick:t})=>{let n=e.length;if(n===0)return null;let r=Y.grid1;n===2&&(r=Y.grid2),n===3&&(r=Y.grid3),n>=4&&(r=Y.grid4);let i=n>4?e.slice(0,4):e;return(0,D.jsx)(`div`,{className:T(Y.postImagesGrid,r),children:i.map((e,r)=>{let i=r===3&&n>4;return(0,D.jsx)(`div`,{className:T(Y.gridImageWrap,i&&Y.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)(J$,{url:e,alt:`Attached`,className:Y.gridImage})},r)})})},X$=({onClose:e})=>(0,D.jsxs)(`div`,{className:Y.shareHead,children:[(0,D.jsx)(`div`,{className:Y.shareHeadIcon,children:(0,D.jsx)(Ir,{size:15})}),(0,D.jsxs)(`div`,{className:Y.shareHeadText,children:[(0,D.jsx)(`h3`,{className:Y.shareTitle,children:`Share Post`}),(0,D.jsx)(`p`,{className:Y.shareDesc,children:`Share this post to chat conversations`})]}),(0,D.jsx)(`button`,{type:`button`,className:Y.shareCloseBtn,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(oi,{size:18})})]}),Z$=({count:e,disabled:t,onCancel:n,onSend:r})=>(0,D.jsxs)(`div`,{className:Y.shareFooter,children:[(0,D.jsx)(`span`,{className:Y.shareFootText,children:e===0?`Select at least one chat`:`${String(e)} ${e===1?`chat`:`chats`} selected`}),(0,D.jsxs)(`div`,{className:Y.shareFootBtns,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.shareCancelBtn,onClick:n,children:`Cancel`}),(0,D.jsxs)(`button`,{type:`button`,className:Y.shareSendBtn,disabled:e===0||t,onClick:r,children:[(0,D.jsx)(Vr,{size:12}),` Send`]})]})]}),Q$=({post:e})=>(0,D.jsx)(`div`,{className:Y.sharePreviewWrap,children:(0,D.jsxs)(`div`,{className:Y.sharePreview,children:[(0,D.jsx)(`span`,{className:Y.sharePreviewAvatar,style:E({"--avatar-color":e.authorColor}),children:e.authorInitials}),(0,D.jsxs)(`div`,{className:Y.sharePreviewBody,children:[(0,D.jsxs)(`div`,{className:Y.sharePreviewMeta,children:[e.authorName,` ·`,` `,(0,D.jsx)(`span`,{className:Y.sharePreviewCat,style:E({"--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:Y.sharePreviewTitle,children:e.title})]})]})}),$$=({target:e,selected:t,onToggle:n})=>(0,D.jsxs)(`button`,{type:`button`,className:T(Y.shareRow,t&&Y.shareRowOn),"aria-pressed":t,onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:T(Y.shareAvatar,e.square&&Y.shareAvatarSquare),style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:Y.shareRowBody,children:[(0,D.jsx)(`span`,{className:Y.shareRowName,children:e.name}),(0,D.jsx)(`span`,{className:Y.shareRowSub,children:e.subtitle})]}),(0,D.jsx)(`span`,{className:T(Y.shareCheck,t&&Y.shareCheckOn),children:t&&(0,D.jsx)(Un,{size:11,strokeWidth:3})})]}),e1=({label:e,targets:t,selected:n,onToggle:r})=>t.length===0?null:(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:Y.shareSectionLabel,children:e}),t.map(e=>(0,D.jsx)($$,{target:e,selected:n.has(e.id),onToggle:r},e.id))]}),t1=(e,t,n)=>e===``||t.toLowerCase().includes(e)||n.toLowerCase().includes(e),n1=({comment:e,query:t,onComment:n,onQuery:r})=>{let i=di(e,1e3);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:Y.shareField,style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,D.jsx)(`input`,{className:T(Y.shareComment,i.isOverLimit&&Y.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:Y.shareSearchWrap,children:(0,D.jsxs)(`div`,{className:Y.shareSearch,children:[(0,D.jsx)(Br,{size:13}),(0,D.jsx)(`input`,{className:Y.shareSearchInput,placeholder:`Search people or groups…`,value:t,onChange:e=>{r(e.target.value)}})]})})]})},r1=e=>({id: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`}),i1=({groups:e,dms:t,selected:n,onToggle:r})=>(0,D.jsxs)(`div`,{className:Y.shareList,children:[(0,D.jsx)(e1,{label:`Groups`,targets:e,selected:n,onToggle:r}),(0,D.jsx)(e1,{label:`Direct messages`,targets:t,selected:n,onToggle:r}),e.length===0&&t.length===0&&(0,D.jsx)(`div`,{className:Y.shareEmpty,children:`No matches.`})]}),a1=({post:e,comment:t,selected:n,sendMessage:r,setIsSending:i,close:a,count:o})=>{i(!0);let s=`${window.location.origin}/feed/posts/${e.postId}`,c={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:s}},l=`__UAPP_SHARED_CARD__::${JSON.stringify(c)}`,u=Array.from(n).map(e=>r.execute(e,l,crypto.randomUUID()));Promise.allSettled(u).then(()=>{j.success(`Shared to ${String(o)} ${o===1?`chat`:`chats`}`),a()}).catch(()=>{j.error(`Failed to share post`),i(!1)})},o1=(e,t)=>{let[r,i]=(0,n.useState)(``),[a,o]=(0,n.useState)(``),[s,c]=(0,n.useState)(()=>new Set),[l,u]=(0,n.useState)(!1),{sendMessage:d}=bP(),{data:f=[]}=TP(`all`,``),p=a.trim().toLowerCase(),m=f.filter(e=>e.kind===`dm`).map(r1).filter(e=>t1(p,e.name,e.subtitle)),h=f.filter(e=>e.kind===`group`).map(r1).filter(e=>t1(p,e.name,e.subtitle)),g=s.size,_=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=()=>{i(``),o(``),c(new Set),u(!1),t()};return{comment:r,setComment:i,query:a,setQuery:o,selected:s,isSending:l,dms:m,groups:h,count:g,toggle:_,close:v,send:()=>{g===0||l||r.length>1e3||a1({post:e,comment:r,selected:s,sendMessage:d,setIsSending:u,close:v,count:g})}}},s1=({open:e,post:t,onClose:n})=>{let r=o1(t,n);return e?(0,i.createPortal)((0,D.jsxs)(`div`,{className:Y.shareRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.shareBackdrop,"aria-label":`Close`,onClick:r.close}),(0,D.jsxs)(`div`,{className:Y.shareModal,role:`dialog`,"aria-label":`Share post`,children:[(0,D.jsx)(X$,{onClose:r.close}),(0,D.jsx)(Q$,{post:t}),(0,D.jsx)(n1,{comment:r.comment,query:r.query,onComment:r.setComment,onQuery:r.setQuery}),(0,D.jsx)(i1,{groups:r.groups,dms:r.dms,selected:r.selected,onToggle:r.toggle}),(0,D.jsx)(Z$,{count:r.count,disabled:r.comment.length>1e3,onCancel:r.close,onSend:r.send})]})]}),document.body):null},c1=[{id:`like`,label:`Like`,Icon:$r,color:`#2563eb`},{id:`insightful`,label:`Insightful`,Icon:gr,color:`#f59e0b`},{id:`celebrate`,label:`Celebrate`,Icon:Er,color:`#ec4899`}],l1=({post:e,onCommentClick:t})=>{if(e.totalReactions===0&&e.commentCount===0)return null;let n=c1.filter(t=>e.reactions[t.id]>0).slice(0,3);return(0,D.jsxs)(`div`,{className:Y.summary,children:[(0,D.jsxs)(`div`,{className:Y.summaryLeft,children:[n.length>0&&(0,D.jsx)(`span`,{className:Y.summaryIcons,children:n.map(({id:e,Icon:t,color:n})=>(0,D.jsx)(`span`,{className:Y.summaryDot,style:E({"--react-color":n}),children:(0,D.jsx)(t,{size:10})},e))}),e.totalReactions>0&&(0,D.jsx)(`span`,{className:Y.summaryCount,children:e.totalReactions})]}),e.commentCount>0&&(0,D.jsxs)(`span`,{className:T(Y.summaryComments,t!==void 0&&Y.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`]})]})},u1=({post:e,commentsOpen:t,onReact:r,onComment:i,onShare:a})=>{let[o,s]=(0,n.useState)(!1),c=c1.find(t=>t.id===e.myReaction),l=c?.Icon??$r;return(0,D.jsxs)(`div`,{className:Y.postBar,children:[(0,D.jsxs)(`div`,{className:Y.reactWrap,onMouseEnter:()=>{s(!0)},onMouseLeave:()=>{s(!1)},children:[(0,D.jsxs)(`button`,{type:`button`,className:T(Y.actionBtn,c!==void 0&&Y.actionActive),style:c===void 0?void 0:E({"--react-color":c.color}),onClick:()=>{r(e.myReaction??`like`),s(!1)},children:[(0,D.jsx)(l,{size:16}),` `,c?.label??`Like`]}),(0,D.jsx)(`div`,{className:T(Y.picker,o&&Y.pickerVisible),children:c1.map(({id:t,label:n,Icon:i,color:a})=>(0,D.jsx)(`button`,{type:`button`,className:T(Y.pickerBtn,e.myReaction===t&&Y.pickerActive),style:E({"--react-color":a}),title:n,onClick:()=>{r(t),s(!1)},children:(0,D.jsx)(i,{size:18})},t))})]}),(0,D.jsxs)(`button`,{type:`button`,className:T(Y.actionBtn,t&&Y.actionActive),onClick:i,children:[(0,D.jsx)(xr,{size:16}),` Comment`]}),(0,D.jsxs)(`button`,{type:`button`,className:Y.actionBtn,onClick:a,children:[(0,D.jsx)(Hr,{size:16}),` Share`]})]})},d1=({post:e,onAcknowledge:t})=>e.mustAcknowledge?e.acknowledged?(0,D.jsx)(`div`,{className:Y.ackDone,children:`✓ You acknowledged this`}):(0,D.jsxs)(`div`,{className:Y.ackBanner,children:[(0,D.jsx)(`span`,{children:`Must read — please confirm you have seen this.`}),(0,D.jsx)(`button`,{type:`button`,className:Y.ackBtn,onClick:t,children:`Acknowledge`})]}):null,f1={lightboxOverlay:`_lightboxOverlay_18fqf_5`,lightboxContainer:`_lightboxContainer_18fqf_20`,lightboxLeft:`_lightboxLeft_18fqf_33`,lightboxRight:`_lightboxRight_18fqf_43`,lightboxScrollableContent:`_lightboxScrollableContent_18fqf_53`,lightboxDivider:`_lightboxDivider_18fqf_64`,lightboxClose:`_lightboxClose_18fqf_88`,lightboxImage:`_lightboxImage_18fqf_101`,lightboxArrow:`_lightboxArrow_18fqf_136`,lightboxArrowLeft:`_lightboxArrowLeft_18fqf_158`,lightboxArrowRight:`_lightboxArrowRight_18fqf_166`,lightboxCounter:`_lightboxCounter_18fqf_174`},p1=({urls:e,index:t,onPrev:n,onNext:r})=>(0,D.jsxs)(`div`,{className:f1.lightboxLeft,children:[e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:T(f1.lightboxArrow,f1.lightboxArrowLeft),onClick:n,"aria-label":`Previous image`,children:(0,D.jsx)(Gn,{size:24})}),(0,D.jsx)(J$,{url:e[t]??``,alt:`Fullscreen view`,className:f1.lightboxImage}),e.length>1&&(0,D.jsx)(`button`,{type:`button`,className:T(f1.lightboxArrow,f1.lightboxArrowRight),onClick:r,"aria-label":`Next image`,children:(0,D.jsx)(Kn,{size:24})}),(0,D.jsxs)(`div`,{className:f1.lightboxCounter,children:[t+1,` / `,e.length]})]}),m1=({post:e,commentPending:t,onReact:n,onBookmark:r,onAcknowledge:i,onAddComment:a,onShare:o})=>(0,D.jsx)(`div`,{className:f1.lightboxRight,children:(0,D.jsxs)(`div`,{className:f1.lightboxScrollableContent,children:[(0,D.jsx)(O$,{post:e,onBookmark:r}),e.title!==null&&(0,D.jsx)(`h2`,{className:Y.cardTitle,children:e.title}),(0,D.jsx)(`p`,{className:Y.cardBody,children:e.body}),(0,D.jsx)(d1,{post:e,onAcknowledge:i}),(0,D.jsx)(`div`,{className:f1.lightboxDivider}),(0,D.jsx)(l1,{post:e}),(0,D.jsx)(u1,{post:e,commentsOpen:!0,onReact:n,onComment:()=>{},onShare:o}),(0,D.jsx)(`div`,{className:f1.lightboxDivider}),(0,D.jsx)(q$,{comments:e.comments,pending:t,onAdd:a})]})}),h1=({urls:e,index:t,onClose:r,onChange:a,post:o,commentPending:s,onReact:c,onBookmark:l,onAcknowledge:u,onAddComment:d,onShare:f})=>((0,n.useEffect)(()=>{let n=n=>{n.key===`Escape`&&r(),n.key===`ArrowLeft`&&a((t-1+e.length)%e.length),n.key===`ArrowRight`&&a((t+1)%e.length)};return window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,n)}},[t,r,a,e.length]),(0,i.createPortal)((0,D.jsx)(`div`,{className:f1.lightboxOverlay,onClick:r,role:`presentation`,children:(0,D.jsxs)(`div`,{className:f1.lightboxContainer,onClick:e=>{e.stopPropagation()},role:`presentation`,children:[(0,D.jsx)(`button`,{type:`button`,className:f1.lightboxClose,onClick:r,"aria-label":`Close lightbox`,children:(0,D.jsx)(oi,{size:20})}),(0,D.jsx)(p1,{urls:e,index:t,onPrev:()=>{a((t-1+e.length)%e.length)},onNext:()=>{a((t+1)%e.length)}}),(0,D.jsx)(m1,{post:o,commentPending:s,onReact:c,onBookmark:l,onAcknowledge:u,onAddComment:d,onShare:f})]})}),document.body)),g1=({open:e,post:t,onClose:n})=>{let{categoryLabel:r,categoryColor:i}=LY(t);return(0,D.jsx)(s1,{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})},_1=({index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l})=>e===null?null:(0,D.jsx)(h1,{urls:t.imageUrls,index:e,post:t,commentPending:n,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o,onShare:s,onClose:c,onChange:l}),v1=({body:e,onSeeMore:t})=>{let[r,i]=(0,n.useState)(!1),a=e.length>200;return(0,D.jsxs)(`p`,{className:Y.cardBody,children:[a&&!r?`${e.slice(0,200)}...`:e,a&&(0,D.jsx)(`button`,{type:`button`,className:Y.seeMoreBtn,onClick:()=>{r||t(),i(e=>!e)},children:r?` See less`:` See more`})]})},y1=({post:e,commentsOpen:t,commentPending:n,shareOpen:r,lightboxIndex:i,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,toggleComments:l,setShareOpen:u,setLightboxIndex:d})=>{let f=kY(),p=()=>{u(!0),f.mutate(e.id)};return(0,D.jsxs)(D.Fragment,{children:[e.title!==null&&(0,D.jsx)(`h2`,{className:Y.cardTitle,children:e.title}),(0,D.jsx)(v1,{body:e.body,onSeeMore:()=>{f.mutate(e.id)}}),(0,D.jsx)(Y$,{urls:e.imageUrls,onImageClick:t=>{d(t),t!==null&&f.mutate(e.id)}}),(0,D.jsx)(d1,{post:e,onAcknowledge:s}),(0,D.jsx)(l1,{post:e,onCommentClick:l}),(0,D.jsx)(u1,{post:e,commentsOpen:t,onReact:a,onComment:l,onShare:p}),t&&(0,D.jsx)(q$,{comments:e.comments,pending:n,onAdd:c}),(0,D.jsx)(g1,{open:r,post:e,onClose:()=>{u(!1)}}),(0,D.jsx)(_1,{index:i,post:e,commentPending:n,onReact:a,onBookmark:o,onAcknowledge:s,onAddComment:c,onShare:p,onClose:()=>{d(null)},onChange:d})]})},b1=e=>{let t=(0,n.useRef)(null);(0,n.useEffect)(()=>{t.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:r}=Ay({target:e,container:t,offset:[`start end`,`end start`]});return Py(r,[0,1],[-12,12])},x1=({post:e,state:t})=>(0,D.jsx)(G$,{post:e,state:t}),S1=({post:e,isAuthor:t,commentPending:n,onBookmark:r,onPin:i,showPinButton:a,onReact:o,onAcknowledge:s,onAddComment:c,state:l,cardY:u,elementRef:d})=>(0,D.jsxs)(A.article,{id:`feed-post-${e.id}`,ref:d,style:{y:u},className:Y.card,children:[e.needsAcknowledgement&&(0,D.jsx)(`span`,{className:Y.urgentStripe}),e.pinned&&(0,D.jsxs)(`div`,{className:Y.pinnedRow,children:[(0,D.jsx)(jr,{size:10,className:Y.pin}),` Pinned`]}),!l.isEditing&&(0,D.jsx)(O$,{post:e,onBookmark:r,onPin:i,showPinButton:a,showEditButton:t,onEdit:()=>{l.setIsEditing(!0)}}),l.isEditing?(0,D.jsx)(x1,{post:e,state:l}):(0,D.jsx)(y1,{post:e,commentsOpen:l.commentsOpen,commentPending:n,shareOpen:l.shareOpen,lightboxIndex:l.lightboxIndex,onReact:o,onBookmark:r,onAcknowledge:s,onAddComment:c,toggleComments:()=>{l.setCommentsOpen(e=>!e)},setShareOpen:l.setShareOpen,setLightboxIndex:l.setLightboxIndex})]}),C1=({post:e,commentPending:t,onReact:r,onBookmark:i,onAcknowledge:a,onAddComment:o})=>{let s=H$(e),{user:c}=mz(),l=e.authorUserId===c?.id,u=jY(),d=c!==null&&(c.hasRole(`admin`)||c.hasRole(`system-admin`)||c.hasRole(`FullAccess`)),f=()=>{u.mutateAsync({postId:e.id,pinned:!e.pinned})},p=(0,n.useRef)(null);return(0,D.jsx)(S1,{post:e,isAuthor:l,commentPending:t,onBookmark:i,onPin:f,showPinButton:d,onReact:r,onAcknowledge:a,onAddComment:o,state:s,cardY:b1(p),elementRef:p})},w1=({posts:e})=>{let t=EY(),n=DY(),r=OY(),i=AY();return(0,D.jsx)(D.Fragment,{children:e.map(e=>(0,D.jsx)(C1,{post:e,commentPending:i.isPending,onReact:n=>{t.mutate({postId:e.id,type:n})},onBookmark:()=>{n.mutate(e.id),j.success(e.bookmarked?`Bookmark removed`:`Post saved to bookmarks`)},onAcknowledge:()=>{r.mutate(e.id),j.success(`Post acknowledged`)},onAddComment:t=>{i.mutate({postId:e.id,text:t})}},e.id))})},T1=2,E1=e=>[...e].filter(e=>e.active).sort((e,t)=>e.priority-t.priority),D1=(e,t)=>e.find(e=>e.id===t.templateId),O1=(e,t,n)=>E1(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:D1(n,e),items:r.slice(0,T1)}}).filter(e=>e.count>0),k1=e=>[{id:`all`,label:`All`},...E1(e).map(e=>({id:e.id,label:e.name}))],A1=e=>Object.values(e.values).join(` `).toLowerCase(),j1=(e,t,n)=>{let r=[];for(let i of E1(e.categories)){if(t!==`all`&&i.id!==t)continue;let a=D1(e.templates,i);if(a===void 0)continue;let o=e.promotions.filter(e=>e.categoryId===i.id),s=n===``?o:o.filter(e=>A1(e).includes(n));s.length>0&&r.push({category:i,template:a,items:s,count:o.length})}return r},M1=({onClose:e})=>(0,D.jsxs)(`div`,{className:Y.ppHead,children:[(0,D.jsx)(`span`,{className:Y.ppHeadIcon,children:(0,D.jsx)(yr,{size:18})}),(0,D.jsxs)(`div`,{className:Y.ppHeadText,children:[(0,D.jsx)(`h2`,{className:Y.ppTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`p`,{className:Y.ppSubtitle,children:`Latest campaigns, university updates, intake alerts and events.`}),(0,D.jsx)(`span`,{className:Y.ppManaged,children:`Read-only · Managed by System Admin`})]}),(0,D.jsx)(`button`,{type:`button`,className:Y.ppClose,"aria-label":`Close`,onClick:e,children:(0,D.jsx)(oi,{size:18})})]}),N1=({tabs:e,active:t,onSelect:n})=>(0,D.jsx)(`div`,{className:Y.ppTabs,children:e.map(e=>{let r=e.id===t;return(0,D.jsxs)(`button`,{type:`button`,className:T(Y.ppTab,r&&Y.ppTabActive),onClick:()=>{n(e.id)},children:[r&&(0,D.jsx)(A.span,{layoutId:`ppTabBg`,className:Y.ppTabBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:Y.ppTabLabel,children:e.label})]},e.id)})}),P1=({categories:e,promotions:t,templates:r,initialTab:i,onClose:a})=>{let[o,s]=(0,n.useState)(i),[c,l]=(0,n.useState)(``),u=k1(e),d=j1({categories:e,promotions:t,templates:r},o,c.trim().toLowerCase());return(0,D.jsxs)(`div`,{className:Y.ppRoot,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.ppOverlay,"aria-label":`Close promotions`,onClick:a}),(0,D.jsxs)(`div`,{className:Y.ppPanel,role:`dialog`,"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(M1,{onClose:a}),(0,D.jsx)(N1,{tabs:u,active:o,onSelect:s}),(0,D.jsxs)(`div`,{className:Y.ppSearch,children:[(0,D.jsx)(Br,{size:14,className:Y.ppSearchIcon}),(0,D.jsx)(`input`,{type:`search`,className:Y.ppSearchInput,placeholder:`Search promotions…`,value:c,onChange:e=>{l(e.target.value)}})]}),(0,D.jsx)(`div`,{className:Y.ppList,children:(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(A.div,{className:Y.ppListInner,initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.18,ease:`easeOut`},children:d.length===0?(0,D.jsx)(`p`,{className:Y.ppEmpty,children:`No promotions match.`}):d.map(e=>(0,D.jsx)($L,{template:e.template,color:e.category.color,name:e.category.name,count:e.count,items:e.items},e.category.id))},o)})})]})]})},F1=({sections:e,onClose:t,onSeeAll:n,onSelectTab:r})=>(0,D.jsx)(A.div,{className:Y.promoPopoverOverlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,D.jsxs)(A.div,{className:Y.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:Y.popoverHeader,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.popoverCloseX,onClick:t,"aria-label":`Close promotions modal`,children:(0,D.jsx)(oi,{size:18})}),(0,D.jsx)(`div`,{className:Y.popoverBadgeIcon,children:(0,D.jsx)(yr,{size:24})}),(0,D.jsxs)(`div`,{className:Y.popoverTitleRow,children:[(0,D.jsx)(`h3`,{className:Y.popoverTitle,children:`Promotions & Campaigns`}),(0,D.jsx)(`button`,{type:`button`,className:Y.popoverSeeAllBtn,onClick:()=>{t(),n()},children:`See all`})]}),(0,D.jsx)(`p`,{className:Y.popoverSub,children:`Stay updated with active promotions and university campaigns`})]}),(0,D.jsx)(`div`,{className:Y.popoverContent,children:e.length===0?(0,D.jsx)(`p`,{className:Y.popoverEmpty,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)($L,{template:e.template,color:e.color,name:e.name,count:e.count,items:e.items,onViewAll:()=>{t(),r(e.id)}},e.id))})]})}),I1=({sections:e,onSeeAll:t,onSelectTab:n})=>(0,D.jsxs)(`aside`,{className:Y.rail,children:[(0,D.jsxs)(`div`,{className:Y.railHead,children:[(0,D.jsxs)(`span`,{className:Y.railHeadTitle,children:[(0,D.jsx)(yr,{size:11}),` PROMOTIONS & CAMPAIGNS`]}),(0,D.jsx)(`button`,{type:`button`,className:Y.railSeeAll,onClick:t,children:`See all`})]}),(0,D.jsx)(`div`,{className:Y.railList,children:e.length===0?(0,D.jsx)(`p`,{className:Y.railFoot,children:`No active promotions right now.`}):e.map(e=>e.template===void 0?null:(0,D.jsx)($L,{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:Y.railFoot,children:`Managed by System Admin`})]}),L1=({onOpen:e})=>{let[t,r]=(0,n.useState)(!1),[i,a]=(0,n.useState)(!1),o=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let e=document.getElementById(`app-scroll-container`);if(!e)return;let t=()=>{let t=e.scrollTop;t<=4||t<o.current?a(!1):a(!0),o.current=t};return e.addEventListener(`scroll`,t,{passive:!0}),()=>{e.removeEventListener(`scroll`,t)}},[]),(0,n.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>{r(!1)},4e3);return()=>{clearTimeout(e)}},[t]),(0,D.jsxs)(`button`,{type:`button`,className:T(Y.mobilePromoTrigger,t&&Y.mobilePromoExpanded,i&&Y.mobilePromoTriggerBarHidden),onClick:()=>{t?(r(!1),e()):r(!0)},"aria-label":`Promotions & Campaigns`,children:[(0,D.jsx)(`span`,{className:Y.promoShimmerSweep}),(0,D.jsx)(`span`,{className:Y.promoIconWrap,children:(0,D.jsx)(yr,{size:15,className:Y.sparkleIcon})}),(0,D.jsx)(`span`,{className:Y.promoBtnText,children:`Promotions & Campaigns`})]})},R1=()=>{let e=VL(),t=UL(),r=HL(),[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)(!1),c=e.data??[],l=t.data??[],u=r.data??[],d=O1(c,l,u);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(I1,{sections:d,onSeeAll:()=>{a(`all`)},onSelectTab:e=>{a(e)}}),(0,D.jsx)(L1,{onOpen:()=>{s(!0)}}),(0,D.jsx)(Wg,{children:o&&(0,D.jsx)(F1,{sections:d,onClose:()=>{s(!1)},onSeeAll:()=>{a(`all`)},onSelectTab:e=>{a(e)}})}),i!==null&&(0,D.jsx)(P1,{categories:c,promotions:l,templates:u,initialTab:i,onClose:()=>{a(null)}})]})},z1=[{id:`for_you`,label:`For You`},{id:`team`,label:`Team Updates`},{id:`company`,label:`Company Wide`},{id:`saved`,label:`Saved Posts`,icon:Fn}],B1=({scope:e,onChange:t})=>{let n=CY(`saved`).data?.pages[0]?.totalCount;return(0,D.jsx)(`div`,{className:Y.tabs,children:z1.map(r=>{let i=r.icon;return(0,D.jsxs)(`button`,{type:`button`,className:T(Y.tab,e===r.id&&Y.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:Y.tabBadge,children:n})]},r.id)})})},V1={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`},H1=({count:e=3})=>(0,D.jsx)(D.Fragment,{children:Array.from({length:e}).map((e,t)=>(0,D.jsxs)(`div`,{className:V1.skeletonCard,children:[(0,D.jsxs)(`div`,{className:V1.skeletonHeader,children:[(0,D.jsx)(`div`,{className:V1.skeletonAvatar}),(0,D.jsxs)(`div`,{className:V1.skeletonMeta,children:[(0,D.jsx)(`div`,{className:T(V1.skeletonLine,V1.medium)}),(0,D.jsx)(`div`,{className:T(V1.skeletonLine,V1.short)})]})]}),(0,D.jsxs)(`div`,{className:V1.skeletonBody,children:[(0,D.jsx)(`div`,{className:T(V1.skeletonLine,V1.full)}),(0,D.jsx)(`div`,{className:T(V1.skeletonLine,V1.full)}),(0,D.jsx)(`div`,{className:T(V1.skeletonLine,V1.medium)})]})]},t))}),U1=e=>{GY(`feed-post-${e}`,`app-scroll-container`,`start`)},W1=({post:e,onView:t,onDismiss:n,displayZone:r})=>{let{categoryLabel:i,categoryColor:a}=LY(e);return(0,D.jsxs)(`div`,{className:Y.missedCard,children:[(0,D.jsx)(`button`,{type:`button`,className:Y.missedClose,"aria-label":`Dismiss`,onClick:n,children:(0,D.jsx)(oi,{size:11,strokeWidth:2.5})}),(0,D.jsxs)(`div`,{className:Y.missedCardTop,children:[(0,D.jsx)(`span`,{className:Y.missedDot,style:E({"--dot":a})}),(0,D.jsx)(`span`,{className:Y.missedCat,children:i}),(0,D.jsx)(`span`,{className:Y.missedTime,children:WY(e.createdAt,r)})]}),(0,D.jsx)(`p`,{className:Y.missedSummary,children:e.title??e.body}),(0,D.jsxs)(`div`,{className:Y.missedFoot,children:[(0,D.jsxs)(`button`,{type:`button`,className:Y.missedCta,onClick:t,children:[`View post `,(0,D.jsx)(Kn,{size:10,strokeWidth:3})]}),e.mustAcknowledge&&(0,D.jsxs)(`span`,{className:Y.missedPriority,children:[(0,D.jsx)(Jn,{size:8}),` Priority`]})]})]})},G1=({posts:e})=>{let[t,r]=(0,n.useState)(new Set),[i,a]=(0,n.useState)(!1),o=(0,n.useRef)(null),s=jN().display,c=e.filter(e=>e.mustAcknowledge&&!t.has(e.id)&&!e.acknowledged);if(i||c.length===0)return null;let l=e=>{o.current?.scrollBy({left:e*300,behavior:`smooth`})},u=c.length>2;return(0,D.jsxs)(`div`,{className:Y.missed,children:[(0,D.jsxs)(`div`,{className:Y.missedHead,children:[(0,D.jsx)(Jr,{size:12,className:Y.missedSpark}),(0,D.jsx)(`span`,{className:Y.missedTitle,children:`WHAT YOU MISSED`}),(0,D.jsx)(`span`,{className:Y.missedBadge,children:c.length}),(0,D.jsx)(`button`,{type:`button`,className:Y.missedRead,onClick:()=>{a(!0)},children:`Mark all read`})]}),(0,D.jsxs)(`div`,{className:T(Y.missedScroller,u&&Y.missedScrollerFade),children:[u&&(0,D.jsx)(`button`,{type:`button`,className:T(Y.missedNav,Y.missedNavLeft),"aria-label":`Scroll left`,onClick:()=>{l(-1)},children:(0,D.jsx)(Gn,{size:16})}),(0,D.jsx)(`div`,{className:Y.missedTrack,ref:o,children:c.map(e=>(0,D.jsx)(W1,{post:e,displayZone:s,onView:()=>{U1(e.id)},onDismiss:()=>{r(t=>new Set(t).add(e.id))}},e.id))}),u&&(0,D.jsx)(`button`,{type:`button`,className:T(Y.missedNav,Y.missedNavRight),"aria-label":`Scroll right`,onClick:()=>{l(1)},children:(0,D.jsx)(Kn,{size:16})})]})]})},K1=e=>{let{isSuccess:t,posts:r,hasNextPage:i,isFetchingNextPage:a,fetchNextPage:o}=e,[s,c]=ln(),l=s.get(`postId`),u=HM();(0,n.useEffect)(()=>{l!==null&&u.invalidateQueries({queryKey:[`feed`]})},[l,u]),(0,n.useEffect)(()=>{!t||l===null||a||!r.some(e=>e.id===l)&&i&&o()},[t,l,r,i,a,o]),(0,n.useEffect)(()=>{if(!t||l===null)return;let e,n=0,r=setInterval(()=>{if(document.getElementById(`feed-post-${l}`)){clearInterval(r);let t=document.getElementById(`app-scroll-container`);t&&(t.style.paddingBottom=`80vh`),GY(`feed-post-${l}`,`app-scroll-container`,`center`),e=setTimeout(()=>{t&&(t.style.paddingBottom=``);let e=new URLSearchParams(window.location.search);e.has(`postId`)&&(e.delete(`postId`),c(e,{replace:!0}))},1e3)}else n++,n>=100&&clearInterval(r)},50);return()=>{clearInterval(r),e&&clearTimeout(e)}},[t,l,s,c])},q1=(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))},J1=(e,t,r)=>{let i=(0,n.useRef)(null),a=(0,n.useCallback)(n=>{n[0]?.isIntersecting&&e&&!t&&r()},[e,t,r]);return(0,n.useEffect)(()=>{let e=i.current;if(!e)return;let t=new IntersectionObserver(a,{rootMargin:`2000px`});return t.observe(e),()=>{t.disconnect()}},[a]),i},Y1=()=>{let[e,t]=(0,n.useState)(`for_you`),[r,i]=(0,n.useState)(``),a=CY(e),{hasNextPage:o,isFetchingNextPage:s,fetchNextPage:c}=a,l=a.data?a.data.pages.flatMap(e=>e.items):[],u=q1(l,r);K1({isSuccess:a.isSuccess,posts:l,hasNextPage:o,isFetchingNextPage:s,fetchNextPage:c});let d=J1(o,s,c);return(0,D.jsxs)(`div`,{className:Y.screen,children:[(0,D.jsx)(`div`,{className:Y.toolbar,children:(0,D.jsxs)(`div`,{className:Y.toolbarContainer,children:[(0,D.jsxs)(`div`,{className:Y.search,children:[(0,D.jsx)(Br,{size:14,className:Y.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:Y.searchInput,placeholder:`Search posts by keyword, student, university…`,value:r,onChange:e=>{i(e.target.value)}})]}),(0,D.jsx)(`div`,{className:Y.toolbarRailSpacer})]})}),(0,D.jsxs)(`div`,{className:Y.wrapper,children:[(0,D.jsxs)(`div`,{className:Y.column,children:[(0,D.jsx)(B1,{scope:e,onChange:e=>{t(e)}}),(0,D.jsx)(G1,{posts:u}),(0,D.jsx)(C$,{}),a.isPending&&(0,D.jsx)(H1,{count:3}),a.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load the feed`,children:a.error.message}),a.isSuccess&&u.length===0&&(0,D.jsx)(w$,{}),(0,D.jsx)(w1,{posts:u}),(0,D.jsx)(`div`,{ref:d,style:{height:`20px`,width:`100%`},children:a.isFetchingNextPage&&(0,D.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:`1rem`},children:(0,D.jsx)(mi,{})})})]}),(0,D.jsx)(R1,{})]})]})},X1=({path:e,children:t})=>(0,D.jsxs)(St,{children:[(0,D.jsx)(bt,{path:e,element:(0,D.jsx)(D.Fragment,{children:t})}),(0,D.jsx)(bt,{path:`*`,element:(0,D.jsx)(yt,{to:e,replace:!0})})]}),Z1=()=>{bQ(`uapp-feed`,()=>(0,D.jsx)(X1,{path:`/comms/feed`,children:(0,D.jsx)(Y1,{})}))},Q1=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()},$1=()=>{let{user:e}=mz(),t=e?.fullName??``;return{id:e?.id??``,name:t,initials:Q1(t),color:`#0f1f1f`,role:`Organizer`}},e0=(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)},t0=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},n0=(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}`},r0=(e,t)=>new Date(e).toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,hour12:!1,timeZone:t}),i0=(e,t,n)=>!e||!t?``:`${r0(e,n)} – ${r0(t,n)}`,a0=(e,t)=>e?new Date(e).toLocaleDateString(`en-US`,{weekday:`short`,day:`numeric`,month:`short`,timeZone:t}):``,o0=(e,t)=>t.id!==``&&e===t.id,s0=(e,t,n)=>{if(o0(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]??``},c0=(e,t,n)=>{if(o0(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`}},X={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`},l0=({spanKey:e,name:t,dateLabel:n,formattedSlot:r})=>(0,D.jsxs)(A.span,{className:X.bookSummary,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(`span`,{className:X.bookSummaryName,children:t}),` · `,n,` ·`,` `,(0,D.jsx)(`span`,{className:X.bookSummarySlot,children:r})]},e),u0=({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)(l0,{spanKey:`summary`,name:t.name,dateLabel:n,formattedSlot:o}):null:i.length>0&&n!==``&&r!==null?(0,D.jsx)(l0,{spanKey:`group-summary`,name:`${a||`Group Meeting`} (${String(i.length)} guests)`,dateLabel:n,formattedSlot:o}):null,d0=({success:e,meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,selectedSlot:s,tzId:c})=>{if(e)return(0,D.jsxs)(A.span,{className:X.bookedNote,initial:{opacity:0,x:-6},animate:{opacity:1,x:0},exit:{opacity:0},children:[(0,D.jsx)(Un,{size:14,strokeWidth:3}),` Meeting booked — see the Scheduled tab.`]},`done`);let l=u0({meetingType:t,contact:n,dateLabel:r,slot:i,selectedContactIds:a,groupTitle:o,formattedSlot:s?i0(s.startUtc,s.endUtc,c):``});return l===null?(0,D.jsx)(`span`,{className:X.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},f0=({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:X.bookBar,children:[(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(d0,{success:i,meetingType:a,contact:e,dateLabel:t,slot:n,selectedContactIds:o,groupTitle:s,selectedSlot:l,tzId:u})}),(0,D.jsxs)(A.button,{type:`button`,className:X.bookBtn,disabled:!r,...r?{whileTap:{scale:.97}}:{},onClick:()=>{c()},children:[`Confirm booking `,(0,D.jsx)(Mn,{size:15})]})]}),p0=[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],m0=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],h0=e=>e.toLocaleDateString(`en-GB`,{weekday:`short`,day:`2-digit`,month:`short`}),g0=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),_0=(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:g0(i,n)})}return o},v0={col:`_col_18ut1_6`,colTitle:`_colTitle_18ut1_13`,stepDot:`_stepDot_18ut1_22`},y0=({cell:e,selected:t,onPick:n})=>(0,D.jsx)(A.button,{type:`button`,disabled:e.past,...e.past?{}:{whileHover:{scale:1.12},whileTap:{scale:.9}},className:T(X.calCell,e.past&&X.calCellPast,e.today&&X.calCellToday,t?.toDateString()===e.date.toDateString()&&X.calCellSelected),onClick:()=>{n(e.date)},children:e.day}),b0=({view:e,today:t,selected:n,onShift:r,onPick:i})=>(0,D.jsxs)(`div`,{className:X.colCalendar,children:[(0,D.jsxs)(`div`,{className:v0.colTitle,children:[(0,D.jsx)(`span`,{className:v0.stepDot,children:`2`}),` Pick a date`]}),(0,D.jsxs)(`div`,{className:X.calHead,children:[(0,D.jsxs)(`span`,{className:X.calMonth,children:[m0[e.month],` `,e.year]}),(0,D.jsxs)(`div`,{className:X.calNav,children:[(0,D.jsx)(A.button,{type:`button`,"aria-label":`Previous month`,className:X.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(-1)},children:(0,D.jsx)(Gn,{size:15})}),(0,D.jsx)(A.button,{type:`button`,"aria-label":`Next month`,className:X.calNavBtn,whileTap:{scale:.88},onClick:()=>{r(1)},children:(0,D.jsx)(Kn,{size:15})})]})]}),(0,D.jsx)(`div`,{className:X.calDays,children:p0.map(e=>(0,D.jsx)(`span`,{className:X.calDayLabel,children:e},e))}),(0,D.jsx)(A.div,{className:X.calGrid,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.18,ease:[.22,1,.36,1]},children:_0(e.year,e.month,t).map((e,t)=>e===null?(0,D.jsx)(`span`,{className:X.calCellBlank},`blank-${String(t)}`):(0,D.jsx)(y0,{cell:e,selected:n,onPick:i},e.day))},`${String(e.year)}-${String(e.month)}`)]}),x0={hidden:{},visible:{transition:{staggerChildren:.05,delayChildren:.05}}},S0={hidden:{opacity:0,x:-8},visible:{opacity:1,x:0,transition:{duration:.18,ease:`easeOut`}}},C0=({icon:e,label:t,value:n})=>(0,D.jsxs)(A.div,{className:X.confirmRow,variants:S0,children:[(0,D.jsx)(`span`,{className:X.confirmRowIcon,children:e}),(0,D.jsx)(`span`,{className:X.confirmRowLabel,children:t}),(0,D.jsx)(`span`,{className:X.confirmRowValue,children:n})]}),w0=({open:e,contact:t,dateLabel:n,slot:r,zone:i,pending:a,onConfirm:o,onClose:s,selectedSlot:c,tzId:l})=>{let u=i0(c?.startUtc,c?.endUtc,l);return(0,D.jsx)(Wy,{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)(gi,{variant:`ghost`,onClick:s,children:`Back`}),(0,D.jsx)(gi,{isLoading:a,onClick:o,children:`Confirm booking`})]}),children:t!==null&&r!==null?(0,D.jsxs)(`div`,{className:X.confirmBody,children:[(0,D.jsxs)(`div`,{className:X.confirmWho,children:[(0,D.jsx)(`span`,{className:X.confirmAvatar,style:E({"--avatar-color":t.color}),children:t.initials}),(0,D.jsxs)(`span`,{className:X.confirmWhoText,children:[(0,D.jsx)(`span`,{className:X.confirmName,children:t.name}),(0,D.jsx)(`span`,{className:X.confirmRole,children:t.role})]})]}),(0,D.jsxs)(A.div,{className:X.confirmRows,variants:x0,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(C0,{icon:(0,D.jsx)(zn,{size:15}),label:`Date`,value:n}),(0,D.jsx)(C0,{icon:(0,D.jsx)(Zn,{size:15}),label:`Time`,value:u}),(0,D.jsx)(C0,{icon:(0,D.jsx)(cr,{size:15}),label:`Timezone`,value:`${i.city} · ${i.offset}`}),(0,D.jsx)(C0,{icon:(0,D.jsx)(ii,{size:15}),label:`Location`,value:`Online — link generated automatically`})]})]}):null})},T0={titleWrap:`_titleWrap_18nb9_3`,titleInput:`_titleInput_18nb9_7`},E0={hidden:{},visible:{transition:{staggerChildren:.04}}},D0=({contact:e,active:t,onSelect:n})=>(0,D.jsxs)(A.button,{type:`button`,layout:!0,variants:zy,whileHover:{x:3},whileTap:{scale:.985},transition:{type:`spring`,stiffness:500,damping:34},className:T(X.contactRow,t&&X.contactActive),onClick:n,children:[(0,D.jsx)(`span`,{className:X.contactAvatar,style:E({"--avatar-color":e.color}),children:e.initials}),(0,D.jsxs)(`span`,{className:X.contactText,children:[(0,D.jsx)(`span`,{className:X.contactName,children:e.name}),(0,D.jsx)(`span`,{className:X.contactRole,children:e.role})]}),(0,D.jsx)(`span`,{className:T(X.contactCheck,t&&X.contactCheckOn),children:(0,D.jsx)(Wg,{children:t&&(0,D.jsx)(A.span,{className:X.contactCheckIcon,initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Un,{size:11,strokeWidth:3})})})})]}),O0=({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:v0.col,children:[(0,D.jsxs)(`div`,{className:v0.colTitle,children:[(0,D.jsx)(`span`,{className:v0.stepDot,children:`1`}),` `,a===`group`?`Configure Group Event`:`Choose a person`]}),a===`group`&&l&&(0,D.jsx)(`div`,{className:T0.titleWrap,children:(0,D.jsx)(`input`,{type:`text`,className:T(X.searchInput,T0.titleInput),placeholder:`Group Event Title (e.g. Team Sync)`,value:c,onChange:e=>{l(e.target.value)}})}),(0,D.jsxs)(`div`,{className:X.search,children:[(0,D.jsx)(Br,{size:14,className:X.searchIcon}),(0,D.jsx)(`input`,{type:`search`,className:X.searchInput,placeholder:`Search people…`,value:n,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(A.div,{className:X.contactList,variants:E0,initial:`hidden`,animate:`visible`,children:[(0,D.jsx)(Wg,{initial:!1,children:e.map(e=>(0,D.jsx)(D0,{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:X.contactEmpty,children:`No people match.`})]})]}),Z={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`},k0={titleVal:`_titleVal_195yt_3`,inlineIcon:`_inlineIcon_195yt_8`,agendaVal:`_agendaVal_195yt_13`,lastRow:`_lastRow_195yt_17`,guestList:`_guestList_195yt_21`},A0=({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?i0(e.selectedSlot.startUtc,e.selectedSlot.endUtc,e.tzId):`No time selected`,i=e.selectedSlot?a0(e.selectedSlot.startUtc,e.tzId):e.dateLabel;return(0,D.jsxs)(`div`,{className:Z.wizardConfirmContainer,children:[(0,D.jsx)(`h3`,{className:Z.confirmHeading,children:`Review group meeting`}),(0,D.jsx)(`p`,{className:Z.confirmSub,children:`Ensure everything is correct before sending invitations.`}),(0,D.jsxs)(`div`,{className:Z.confirmCard,children:[(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Title`}),(0,D.jsx)(`span`,{className:T(Z.confirmVal,k0.titleVal),children:n})]}),(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:Z.confirmVal,children:[i,` @ `,r,` (`,e.zone.offset,`)`]})]}),(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Location`}),(0,D.jsxs)(`span`,{className:Z.confirmVal,children:[(0,D.jsx)(vr,{size:13,className:k0.inlineIcon}),e.groupLocation]})]}),e.groupDescription.trim()&&(0,D.jsxs)(`div`,{className:Z.confirmRow,children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:T(Z.confirmVal,k0.agendaVal),children:e.groupDescription})]}),(0,D.jsxs)(`div`,{className:T(Z.confirmRow,k0.lastRow),children:[(0,D.jsx)(`span`,{className:Z.confirmLabel,children:`Invited Guests`}),(0,D.jsx)(`div`,{className:T(Z.confirmVal,k0.guestList),children:t.map(e=>e===void 0?null:(0,D.jsxs)(`span`,{className:Z.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:Z.avatarTiny,style:{backgroundColor:e.color},children:e.initials}),e.name]},e.id))})]})]})]})},j0={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`},M0=({d:e})=>(0,D.jsxs)(`div`,{className:j0.wizardDetailsForm,children:[(0,D.jsx)(`h3`,{className:j0.detailsHeading,children:`Meeting details`}),(0,D.jsx)(`p`,{className:j0.detailsSub,children:`Add context to the invite so attendees know what to expect.`}),(0,D.jsxs)(`div`,{className:j0.formGroup,children:[(0,D.jsx)(`label`,{className:j0.formLabel,children:`MEETING TITLE *`}),(0,D.jsx)(`input`,{type:`text`,className:j0.formInput,placeholder:`e.g. Weekly Admissions Alignment`,value:e.groupTitle,onChange:t=>{e.setGroupTitle(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:j0.formGroup,children:[(0,D.jsx)(`label`,{className:j0.formLabel,children:`LOCATION / TYPE *`}),(0,D.jsx)(`input`,{type:`text`,className:j0.formInput,placeholder:`e.g. Google Meet, Room 402`,value:e.groupLocation,onChange:t=>{e.setGroupLocation(t.target.value)}})]}),(0,D.jsxs)(`div`,{className:j0.formGroup,children:[(0,D.jsx)(`label`,{className:j0.formLabel,children:`AGENDA / DESCRIPTION`}),(0,D.jsx)(`textarea`,{className:j0.formTextarea,rows:5,placeholder:`What will you cover in this meeting? (optional)`,value:e.groupDescription,onChange:t=>{e.setGroupDescription(t.target.value)}})]})]}),N0={searchWrap:`_searchWrap_3i51q_3`,contactMeta:`_contactMeta_3i51q_7`,selectedMeta:`_selectedMeta_3i51q_13`},P0=({d:e,isSelected:t,onToggle:n})=>(0,D.jsxs)(`div`,{className:Z.wizardPanelLeft,children:[(0,D.jsxs)(`div`,{className:N0.searchWrap,children:[(0,D.jsx)(`h3`,{className:Z.panelHeading,children:`Add participants`}),(0,D.jsx)(`input`,{type:`text`,className:Z.wizardSearch,placeholder:`Search by name, role or department...`,value:e.search,onChange:t=>{e.setSearch(t.target.value)}})]}),(0,D.jsx)(`div`,{className:Z.wizardList,children:e.searchResults.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:T(Z.wizardListBtn,t(e.id)&&Z.wizardListBtnActive),onClick:()=>{n(e.id)},children:[(0,D.jsx)(`span`,{className:Z.avatar,style:{backgroundColor:e.color},children:e.initials}),(0,D.jsxs)(`div`,{className:N0.contactMeta,children:[(0,D.jsx)(`div`,{className:Z.contactName,children:e.name}),(0,D.jsx)(`div`,{className:Z.contactRole,children:e.role})]}),(0,D.jsx)(`div`,{className:T(Z.checkbox,t(e.id)&&Z.checkboxActive),children:t(e.id)&&(0,D.jsx)(Un,{size:10,strokeWidth:3})})]},e.id))})]}),F0=({d:e,onToggle:t})=>(0,D.jsxs)(`div`,{className:Z.wizardPanelRight,children:[(0,D.jsxs)(`div`,{className:Z.panelHeader,children:[(0,D.jsx)(`span`,{children:`SELECTED`}),(0,D.jsxs)(`span`,{className:Z.badge,children:[String(e.selectedContactIds.length),` guests`]})]}),(0,D.jsx)(`div`,{className:Z.selectedGrid,children:(0,D.jsx)(Wg,{initial:!1,children:e.selectedContactIds.length===0?(0,D.jsxs)(A.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:Z.selectedEmpty,children:[(0,D.jsx)(ri,{size:22,className:Z.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)(A.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:Z.selectedItemCard,children:[(0,D.jsx)(`span`,{className:Z.avatarSmall,style:{backgroundColor:r.color},children:r.initials}),(0,D.jsxs)(`div`,{className:N0.selectedMeta,children:[(0,D.jsx)(`div`,{className:Z.cardName,children:r.name}),(0,D.jsx)(`div`,{className:Z.cardRole,children:r.role})]}),(0,D.jsx)(`button`,{type:`button`,className:Z.removeBtn,onClick:()=>{t(n)},children:(0,D.jsx)(ei,{size:13})})]},n)})})})]}),I0=({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:Z.wizardRow,children:[(0,D.jsx)(P0,{d:e,isSelected:t,onToggle:n}),(0,D.jsx)(F0,{d:e,onToggle:n})]})},L0={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`},R0={start:`00:00`,end:`24:00`},z0=30,B0=(e,t,n)=>{let r=new Date(DN(e,`00:00`,t)),i=n?.active?n.slots.map(n=>({start:new Date(DN(e,n.from,t)),end:new Date(DN(e,n.to,t))})):[];return{rangeStart:r,rangeEnd:new Date(DN(e,`23:59`,t)),workWindows:i}},V0=(e,t,n)=>{let r=DN(t,e.start,n);return{startUtc:r,endUtc:new Date(new Date(r).getTime()+z0*6e4).toISOString()}},H0=(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:[]})},U0=({id:e,slotItem:t,d:n,allBlocks:r,serverBusy:i,rowInstants:a,selfBounds:o,isSelected:s,hoverCell:c,setHoverCell:l})=>{let u=i.get(e),d=u===void 0?n.selected===null?`ooh`:dX({userId:e,selfUserId:n.viewer.id,slotStart:new Date(a.startUtc),slotEnd:new Date(a.endUtc),allBlocks:r,rangeStart:o.rangeStart,rangeEnd:o.rangeEnd,workWindows:o.workWindows}):e0(a.startUtc,a.endUtc,u)?`busy`:`available`,f=c!==null&&c.userId===e&&c.slotLabel===t.label;return(0,D.jsx)(`div`,{className:T(L0.timelineCell,d===`available`&&L0.cellAvail,d===`busy`&&L0.cellBusy,d===`ooh`&&L0.cellOoh,s&&L0.cellSelected),onClick:()=>{H0(n,t.label,a)},onMouseEnter:()=>{l({userId:e,slotLabel:t.label})},onMouseLeave:()=>{l(null)},children:f&&(0,D.jsxs)(`div`,{className:L0.gridTooltip,children:[(0,D.jsx)(`strong`,{children:s0(e,n.list,n.viewer)}),` ·`,` `,d.toUpperCase()]})})},W0=({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=V0(e,a,o),f=AN.from({pick:o}).formatTime(d.startUtc);return(0,D.jsxs)(`div`,{className:L0.timelineRow,children:[(0,D.jsx)(`button`,{type:`button`,className:T(L0.timelineTimeCell,u&&L0.timelineTimeCellActive),onClick:()=>{H0(t,e.label,d)},children:f}),n.map(n=>(0,D.jsx)(U0,{id:n,slotItem:e,d:t,allBlocks:r,serverBusy:i,rowInstants:d,selfBounds:s,isSelected:u,hoverCell:c,setHoverCell:l},n+`-`+e.label))]})},G0=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>{let s=e.tzId,c=t0(R0),l=B0(i,s,e.hostDayWindow);return(0,D.jsxs)(`div`,{className:L0.timelineContainer,children:[(0,D.jsxs)(`div`,{className:L0.timelineHeaderRow,children:[(0,D.jsx)(`div`,{className:L0.timelineTimeCell}),t.map(t=>(0,D.jsx)(`div`,{className:L0.timelineHeaderCell,children:s0(t,e.list,e.viewer)},t))]}),(0,D.jsx)(`div`,{className:L0.timelineBody,children:c.map(c=>(0,D.jsx)(W0,{slotItem:c,d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,displayZone:s,selfBounds:l,hoverCell:a,setHoverCell:o},c.label))})]})},K0={header:`_header_1afpk_3`,slotNote:`_slotNote_1afpk_7`,cardMeta:`_cardMeta_1afpk_12`},q0=({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(DN(a,e.from,i)),end:new Date(DN(a,e.to,i))})):[];return dX({userId:e,selfUserId:t,slotStart:new Date(DN(a,n,i)),slotEnd:new Date(DN(a,r,i)),allBlocks:o,rangeStart:new Date(DN(a,`00:00`,i)),rangeEnd:new Date(DN(a,`23:59`,i)),workWindows:c})},J0=(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);return u===void 0?q0({userId:r,selfUserId:i.viewer.id,startStr:t,endStr:n,anchorTzId:s,isoDate:c,allBlocks:a,dayWindow:l}):e0(DN(c,t,s),DN(c,n,s),u)?`busy`:`available`},Y0=e=>{let{id:t,d:n,curSlot:r}=e,i=c0(t,n.list,n.viewer),[a,o]=r?r.split(` – `):[null,null],s=a&&o?J0(e,a,o):`available`;return(0,D.jsxs)(`div`,{className:Z.attendeeStatusItem,children:[(0,D.jsx)(`span`,{className:Z.avatarSmall,style:{backgroundColor:i.color},children:i.initials}),(0,D.jsxs)(`div`,{className:K0.cardMeta,children:[(0,D.jsx)(`div`,{className:Z.cardName,children:i.name}),(0,D.jsx)(`div`,{className:Z.cardRole,children:i.role})]}),(0,D.jsx)(`span`,{className:T(Z.statusIndicator,s===`available`&&Z.statusIndicatorAvail,s===`busy`&&Z.statusIndicatorBusy,s===`ooh`&&Z.statusIndicatorOoh)})]})},X0=({d:e,activeAttendees:t,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o})=>(0,D.jsxs)(`div`,{className:T(Z.wizardPanelLeft,Z.timePanelLeft),children:[(0,D.jsxs)(`div`,{className:K0.header,children:[(0,D.jsx)(`h3`,{className:Z.panelHeading,children:`Attendees Availability`}),(0,D.jsxs)(`span`,{className:K0.slotNote,children:[`For selected slot: `,n??`None`]})]}),(0,D.jsx)(`div`,{className:Z.wizardList,children:t.map(t=>(0,D.jsx)(Y0,{id:t,d:e,curSlot:n,allBlocks:r,serverBusy:i,anchorTzId:a,isoDate:o},t))})]}),Z0={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`},Q0=({suggestedOptions:e,slot:t,activeAttendeesCount:n,setSlot:r,tzId:i})=>(0,D.jsxs)(`div`,{className:Z.suggestedRow,children:[e.map(e=>{let a=t===e.label,o=n-e.conflicts.length,s=i0(e.startUtc,e.endUtc,i);return(0,D.jsxs)(`button`,{type:`button`,className:T(Z.suggestedCard,a&&Z.suggestedCardActive,e.conflicts.length===0&&Z.suggestedCardFree),onClick:()=>{r(e.label)},children:[(0,D.jsx)(`div`,{className:Z0.freeBadge,children:e.conflicts.length===0?`ALL FREE`:`${String(o)}/${String(n)} FREE`}),(0,D.jsx)(`div`,{className:Z0.slotTime,children:s})]},e.label)}),e.length===0&&(0,D.jsx)(`div`,{className:Z0.noSlots,children:`No suggested slots found.`})]}),$0=({d:e})=>(0,D.jsxs)(`div`,{className:Z.gridToolbar,children:[(0,D.jsxs)(`div`,{className:Z0.toolbarGroup,children:[(0,D.jsx)(zn,{size:14,color:`var(--color-primary)`}),(0,D.jsx)(`input`,{type:`date`,className:Z.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:Z0.toolbarGroup,children:[(0,D.jsx)(`span`,{className:Z0.toolbarLabel,children:`DURATION`}),(0,D.jsx)(`div`,{className:Z.durationSelector,children:[30,60,90,120].map(t=>(0,D.jsx)(`button`,{type:`button`,className:T(Z.durBtn,e.groupDuration===t&&Z.durBtnActive),onClick:()=>{e.setGroupDuration(t)},children:t<60?`${String(t)}m`:`${String(t/60)}h`},t))})]}),(0,D.jsxs)(`div`,{className:Z.legend,children:[(0,D.jsxs)(`span`,{className:Z.legendItem,children:[(0,D.jsx)(`span`,{className:Z.dotAvail}),` Free`]}),(0,D.jsxs)(`span`,{className:Z.legendItem,children:[(0,D.jsx)(`span`,{className:Z.dotBusy}),` Busy`]}),(0,D.jsxs)(`span`,{className:Z.legendItem,children:[(0,D.jsx)(`span`,{className:Z.dotOoh}),` Out of hours`]})]})]}),e2=({d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o})=>e.selected===null?(0,D.jsxs)(`div`,{className:Z.gridEmpty,children:[(0,D.jsx)(Zn,{size:28,className:Z0.emptyIcon}),(0,D.jsx)(`span`,{children:`Select a date above to display the availability grid.`})]}):(0,D.jsx)(G0,{d:e,activeAttendees:t,allBlocks:n,serverBusy:r,isoDate:i,hoverCell:a,setHoverCell:o}),t2=e=>{let t=mN().data??[],r=jN().anchor,i=e.selected===null?null:n0(e.selected,e.today),a=KX(e.selectedContactIds,i);return{allBlocks:t,anchorTzId:r,isoDate:i,serverBusy:(0,n.useMemo)(()=>{let e=new Map;for(let t of a.data??[])e.set(t.userId,t.busy);return e},[a.data]),activeAttendees:e.viewer.id===``?[...e.selectedContactIds]:[e.viewer.id,...e.selectedContactIds],curSlot:e.slot}},n2=({d:e})=>{let{allBlocks:t,anchorTzId:r,isoDate:i,serverBusy:a,activeAttendees:o,curSlot:s}=t2(e),[c,l]=(0,n.useState)(null);return(0,D.jsxs)(`div`,{className:Z.wizardRow,children:[(0,D.jsx)(X0,{d:e,activeAttendees:o,curSlot:s,allBlocks:t,serverBusy:a,anchorTzId:r,isoDate:i??``}),(0,D.jsxs)(`div`,{className:T(Z.wizardPanelRight,Z.timePanelRight),children:[(0,D.jsx)($0,{d:e}),(0,D.jsxs)(`div`,{className:Z.suggestedStrip,children:[(0,D.jsxs)(`div`,{className:Z0.suggestedHeader,children:[(0,D.jsx)(Jr,{size:12,color:`var(--color-secondary)`}),(0,D.jsx)(`span`,{className:Z0.suggestedTitle,children:`SUGGESTED TIMESLOTS`})]}),(0,D.jsx)(Q0,{suggestedOptions:e.availableSlots.slice(0,4),slot:e.slot,activeAttendeesCount:o.length,setSlot:e.setSlot,tzId:e.tzId})]}),(0,D.jsx)(e2,{d:e,activeAttendees:o,allBlocks:t,serverBusy:a,isoDate:i??``,hoverCell:c,setHoverCell:l})]})]})},r2=()=>{let[e,t]=(0,n.useState)(`participants`),[r,i]=(0,n.useState)(30),[a,o]=(0,n.useState)(`Online Meeting`),[s,c]=(0,n.useState)(``);return{groupStep:e,groupDuration:r,groupLocation:a,groupDescription:s,setGroupStep:t,setGroupDuration:i,setGroupLocation:o,setGroupDescription:c,resetGroupWizardState:()=>{t(`participants`),i(30),o(`Online Meeting`),c(``)}}},i2=(e,t,n,r)=>{let i=e.s.meetingType===`group`;return{contactId:i?e.s.selectedContactIds[0]??``:e.s.contactId??``,dateLabel:h0(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:n0(t,e.today),startUtc:r?.startUtc,endUtc:r?.endUtc}},a2=e=>e.s.pickedSlot??(e.s.slot===null?null:e.availableSlots.find(t=>t.label===e.s.slot)??null),o2=e=>()=>{if(e.s.slot===null||e.s.selected===null)return;let t=a2(e);e.book.mutate(i2(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=>{j.error(e.message)}})},s2=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:o2(e)}),c2=e=>{let t=s2(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:a2(e),bookedSlot:e.s.bookedSlot,confirmOpen:e.s.confirmOpen,list:e.list,searchResults:e.searchResults,contact:e.contact,dateLabel:e.s.selected===null?``:h0(e.s.selected),zone:aX(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}},l2=(e,t)=>{let[r,i]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let n=setTimeout(()=>{i(e)},t);return()=>{clearTimeout(n)}},[e,t]),r},u2=e=>`${String(e.getFullYear())}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,d2=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},f2=(e,t)=>e.selected===null?null:e.meetingType===`group`?e.selectedContactIds.length===0?null:{isoDate:u2(e.selected),timeZone:t,isGroup:!0,contactId:void 0,attendeeIds:[...e.selectedContactIds].sort()}:e.contactId===null?null:{isoDate:u2(e.selected),timeZone:t,isGroup:!1,contactId:e.contactId,attendeeIds:void 0},p2=e=>{let[t,r]=(0,n.useState)(`1:1`),[i,a]=(0,n.useState)(null),[o,s]=(0,n.useState)([]),[c,l]=(0,n.useState)(``),[u,d]=(0,n.useState)(``),[f,p]=(0,n.useState)(``),[m,h]=(0,n.useState)({year:e.getFullYear(),month:e.getMonth()}),[g,_]=(0,n.useState)(null),[v,y]=(0,n.useState)(null),[b,x]=(0,n.useState)(null),[S,C]=(0,n.useState)(null),[ee,te]=(0,n.useState)(!1);return{meetingType:t,setMeetingType:r,contactId:i,setContactId:a,selectedContactIds:o,setSelectedContactIds:s,groupTitle:c,setGroupTitle:l,search:u,setSearch:d,tzId:f,setTzIdState:p,view:m,setView:h,selected:g,setSelected:_,slot:v,setSlot:y,pickedSlot:b,setPickedSlot:x,bookedSlot:S,setBookedSlot:C,confirmOpen:ee,setConfirmOpen:te}},m2=()=>{let e=qX(),t=$1(),n=new Date,r=r2(),i=p2(n),a=l2(i.search,250),o=UX(),s=UX(a),c=vN(),l=dN(),u=KL(),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=AN.from({pick:i.tzId,personal:h.timezone,anchor:h.availabilityTimezone}).display,_=u.data?d2(dI(u.data,h.branchId)):null,v=JD(l.data??null,_),y=i.selected===null?null:YD(v,i.selected);return c2({today:n,viewer:t,s:i,gw:r,book:e,list:f,searchResults:p,contact:m,availableSlots:GX(f2(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()}})},h2={wizardContentClip:`_wizardContentClip_14i7n_3`,wizardStep:`_wizardStep_14i7n_8`},g2=({currentStep:e})=>{let t=[{id:`participants`,label:`Participants`},{id:`time`,label:`Find a time`},{id:`details`,label:`Details`},{id:`confirm`,label:`Confirm`}],r=(e=>t.findIndex(t=>t.id===e))(e);return(0,D.jsx)(`div`,{className:Z.stepper,children:t.map((e,t)=>{let i=t<r,a=t===r;return(0,D.jsxs)(n.Fragment,{children:[t>0&&(0,D.jsx)(`div`,{className:T(Z.stepLine,t<=r&&Z.stepLineActive)}),(0,D.jsxs)(`div`,{className:Z.stepItem,children:[(0,D.jsx)(`div`,{className:T(Z.stepCircle,a&&Z.stepCircleActive,i&&Z.stepCircleDone),children:i?(0,D.jsx)(Un,{size:12,strokeWidth:3}):t+1}),(0,D.jsx)(`span`,{className:T(Z.stepText,a&&Z.stepTextActive),children:e.label})]})]},e.id)})})},_2=e=>e===`participants`?`time`:e===`time`?`details`:e===`details`?`confirm`:null,v2=e=>e===`time`?`participants`:e===`details`?`time`:e===`confirm`?`details`:null,y2=({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,b2=e=>e===`participants`?`Next: Find a time`:e===`time`?`Next: Details`:e===`details`?`Next: Confirm`:`Confirm Booking`,x2=({d:e})=>{let t=()=>{let t=v2(e.groupStep);t?e.setGroupStep(t):e.setMeetingType(`1:1`)},n=()=>{let t=_2(e.groupStep);t?e.setGroupStep(t):e.confirm()},r=y2({step:e.groupStep,selectedContactIds:e.selectedContactIds,slot:e.slot,title:e.groupTitle,location:e.groupLocation,pending:e.pending}),i=b2(e.groupStep);return(0,D.jsxs)(`div`,{className:Z.wizardContainer,children:[(0,D.jsx)(g2,{currentStep:e.groupStep}),(0,D.jsx)(`div`,{className:T(Z.wizardContent,h2.wizardContentClip),children:(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsxs)(A.div,{initial:{opacity:0,x:15},animate:{opacity:1,x:0},exit:{opacity:0,x:-15},transition:{duration:.18,ease:`easeInOut`},className:h2.wizardStep,children:[e.groupStep===`participants`&&(0,D.jsx)(I0,{d:e}),e.groupStep===`time`&&(0,D.jsx)(n2,{d:e}),e.groupStep===`details`&&(0,D.jsx)(M0,{d:e}),e.groupStep===`confirm`&&(0,D.jsx)(A0,{d:e})]},e.groupStep)})}),(0,D.jsxs)(`div`,{className:Z.wizardFooter,children:[(0,D.jsxs)(`button`,{type:`button`,className:Z.wizardBackBtn,onClick:t,disabled:e.pending,children:[(0,D.jsx)(Gn,{size:16}),` Back`]}),e.groupStep===`time`&&e.slot&&(0,D.jsxs)(`div`,{className:Z.selectedStatusAlert,children:[(0,D.jsx)(Jn,{size:14,color:`var(--color-primary)`}),(0,D.jsxs)(`span`,{children:[`Selected: `,e.slot]})]}),(0,D.jsxs)(`button`,{type:`button`,className:Z.wizardNextBtn,disabled:r||e.pending,onClick:n,children:[e.pending?`Booking...`:i,!e.pending&&(0,D.jsx)(Kn,{size:16})]})]})]})},S2={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`},C2={hidden:{},visible:{transition:{staggerChildren:.03}}},w2=`You're not available at this time — you can still book.`,T2=({option:e,isSelected:t,onSlot:n,contactsList:r,viewer:i,tzId:a})=>{let o=i0(e.startUtc,e.endUtc,a),s=e.conflicts.length>0,c=e.conflicts.includes(i.id);return(0,D.jsxs)(A.button,{type:`button`,variants:zy,whileTap:{scale:.97},className:T(S2.slot,t&&S2.slotActive,s&&!t&&S2.slotWithConflicts),title:c?w2:void 0,onClick:()=>{n(e.label)},children:[(0,D.jsxs)(`div`,{className:S2.slotMain,children:[(0,D.jsx)(`span`,{children:o}),t&&(0,D.jsx)(Un,{size:14,strokeWidth:3})]}),s&&(0,D.jsxs)(`div`,{className:S2.slotConflictList,children:[(0,D.jsx)(`span`,{className:S2.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:S2.conflictAvatar,title:t?w2:`${n?.name??``} is busy / unavailable`,children:t?i.initials||`YOU`:n?.initials??``},e)})]})]})},E2=({dateLabel:e,slot:t,offset:n,onSlot:r,slots:i,contactsList:a,viewer:o,tzId:s})=>(0,D.jsxs)(`div`,{className:v0.col,children:[(0,D.jsxs)(`div`,{className:v0.colTitle,children:[(0,D.jsx)(`span`,{className:v0.stepDot,children:`3`}),` Available times`]}),e===``?(0,D.jsxs)(`div`,{className:S2.slotsEmpty,children:[(0,D.jsx)(`span`,{className:S2.slotsEmptyIcon,children:(0,D.jsx)(Zn,{size:28})}),(0,D.jsx)(`span`,{className:S2.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:S2.slotsDate,children:[e,` · times in `,n]}),(0,D.jsxs)(A.div,{className:S2.slotList,variants:C2,initial:`hidden`,animate:`visible`,children:[i.map(e=>(0,D.jsx)(T2,{option:e,isSelected:t===e.label,onSlot:r,contactsList:a,viewer:o,tzId:s},e.label)),i.length===0&&(0,D.jsx)(`div`,{className:S2.noSlots,children:`No available timeslots found for this day.`})]})]})]}),D2={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`},O2=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(A.div,{className:D2.tzPop,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:D2.tzSearch,children:[(0,D.jsx)(Br,{size:13}),(0,D.jsx)(`input`,{className:D2.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:D2.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:T(D2.tzRow,e.id===n&&D2.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:D2.tzCity,children:e.city}),(0,D.jsx)(`span`,{className:D2.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Un,{size:13,className:D2.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:D2.tzEmpty,children:`No timezones match.`})]})]}),k2=({value:e,onChange:t})=>{let[r,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(``),s=aX(e),c=a.trim().toLowerCase(),l=(tX.some(e=>e.id===s.id)?tX:[s,...tX]).filter(e=>c===``||e.city.toLowerCase().includes(c)||e.offset.toLowerCase().includes(c)||e.id.toLowerCase().includes(c));return(0,D.jsxs)(`div`,{className:D2.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:D2.tzBtn,"aria-expanded":r,"aria-label":`Change timezone`,onClick:()=>{i(e=>!e)},children:[(0,D.jsx)(cr,{size:13}),(0,D.jsx)(`span`,{className:D2.tzBtnCity,children:s.city}),(0,D.jsx)(`span`,{className:D2.tzBtnOffset,children:s.offset}),(0,D.jsx)(Wn,{size:13,className:D2.tzChevron})]}),(0,D.jsx)(Wg,{children:r&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:D2.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{i(!1)}}),(0,D.jsx)(O2,{search:a,list:l,value:e,onSearch:o,onPick:e=>{t(e),o(``),i(!1)}})]})})]})},A2={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`},j2=()=>(0,D.jsxs)(`div`,{className:Z.successHeader,children:[(0,D.jsx)(`div`,{className:A2.badgeWrap,children:(0,D.jsx)(A.div,{initial:{scale:0},animate:{scale:1},transition:{type:`spring`,stiffness:260,damping:20},className:A2.badgeCircle,children:(0,D.jsx)(A.div,{initial:{scale:0,rotate:-45},animate:{scale:1,rotate:0},transition:{delay:.2,type:`spring`,stiffness:200,damping:15},children:(0,D.jsx)(Un,{size:32,color:`var(--color-success)`,strokeWidth:3})})})}),(0,D.jsx)(`h2`,{className:Z.successTitle,children:`Booking Confirmed!`}),(0,D.jsx)(`p`,{className:Z.successSub,children:`A calendar invite has been sent to all participants.`})]}),M2=({d:e})=>{let t=e.meetingType===`group`;return(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:t?`Invited Guests`:`Attendee`}),(0,D.jsx)(`div`,{className:T(Z.successVal,A2.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:Z.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:Z.avatarTiny,style:{backgroundColor:n.color},children:n.initials}),n.name]},n.id)}):e.contact?(0,D.jsxs)(`span`,{className:Z.confirmAttendeeBadge,children:[(0,D.jsx)(`span`,{className:Z.avatarTiny,style:{backgroundColor:e.contact.color},children:e.contact.initials}),e.contact.name]}):`None`})]})},N2=({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=i0(e.bookedSlot?.startUtc,e.bookedSlot?.endUtc,e.tzId);return(0,D.jsxs)(A.div,{className:Z.successCard,initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{delay:.3,duration:.25,ease:`easeOut`},children:[(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Event`}),(0,D.jsx)(`span`,{className:T(Z.successVal,A2.eventVal),children:n})]}),(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Date & Time`}),(0,D.jsxs)(`span`,{className:Z.successVal,children:[(0,D.jsxs)(`span`,{className:A2.iconRow,children:[(0,D.jsx)(zn,{size:14,color:`var(--color-primary)`}),e.dateLabel]}),(0,D.jsxs)(`span`,{className:A2.iconRowMuted,children:[(0,D.jsx)(Zn,{size:14}),a,` (`,e.zone.offset,`)`]})]})]}),(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Location`}),(0,D.jsx)(`span`,{className:Z.successVal,children:(0,D.jsxs)(`span`,{className:A2.iconRow,children:[(0,D.jsx)(vr,{size:14,color:`var(--color-primary)`}),r]})})]}),(0,D.jsx)(M2,{d:e}),t&&i.trim()!==``&&(0,D.jsxs)(`div`,{className:Z.successRow,children:[(0,D.jsx)(`span`,{className:Z.successLabel,children:`Agenda`}),(0,D.jsx)(`span`,{className:T(Z.successVal,A2.agendaVal),children:(0,D.jsxs)(`span`,{className:A2.iconRowTop,children:[(0,D.jsx)(Qr,{size:14,className:A2.iconTop}),i]})})]})]})},P2=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:Z.successActions,children:[(0,D.jsx)(`button`,{type:`button`,className:T(Z.successBtn,Z.successBtnPrimary),onClick:()=>{t!==void 0&&t()},children:`View Scheduled Meetings`}),(0,D.jsx)(`button`,{type:`button`,className:T(Z.successBtn,Z.successBtnSecondary),onClick:()=>{e.reset()},children:`Book Another Meeting`})]}),F2=({d:e,onViewScheduled:t})=>(0,D.jsxs)(`div`,{className:Z.successContainer,children:[(0,D.jsx)(j2,{}),(0,D.jsx)(N2,{d:e}),(0,D.jsx)(P2,{d:e,onViewScheduled:t})]}),I2=({d:e})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:X.bookGrid,children:[(0,D.jsx)(O0,{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)(b0,{view:e.view,today:e.today,selected:e.selected,onShift:t=>{e.shift(t)},onPick:t=>{e.pickDate(t)}}),(0,D.jsx)(E2,{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)(f0,{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)(w0,{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})]}),L2=({onViewScheduled:e})=>{let t=m2();return t.success?(0,D.jsx)(F2,{d:t,onViewScheduled:e}):(0,D.jsxs)(`div`,{className:X.bookCard,children:[(0,D.jsxs)(`div`,{className:X.bookTopBar,children:[(0,D.jsxs)(`div`,{className:X.typeSelector,children:[(0,D.jsx)(`button`,{type:`button`,className:T(X.typeBtn,t.meetingType===`1:1`&&X.typeBtnActive),onClick:()=>{t.setMeetingType(`1:1`)},children:`1:1 Meeting`}),(0,D.jsx)(`button`,{type:`button`,className:T(X.typeBtn,t.meetingType===`group`&&X.typeBtnActive),onClick:()=>{t.setMeetingType(`group`)},children:`Group Meeting (1:Many)`})]}),(0,D.jsx)(k2,{value:t.tzId,onChange:e=>{t.setTzId(e)}})]}),t.meetingType===`group`?(0,D.jsx)(x2,{d:t}):(0,D.jsx)(I2,{d:t})]})},R2={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`},z2=e=>e===`accepted`?`Accepted`:e===`rejected`?`Declined`:`Pending`,B2=1800*1e3,V2=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`},H2=({onRespond:e})=>(0,D.jsxs)(`div`,{className:R2.meetingActions,children:[(0,D.jsxs)(`button`,{type:`button`,className:R2.acceptBtn,onClick:()=>{e(!0)},children:[(0,D.jsx)(Un,{size:12,strokeWidth:3}),` Accept`]}),(0,D.jsx)(`button`,{type:`button`,className:R2.declineBtn,onClick:()=>{e(!1)},children:`Decline`})]}),U2=e=>e===`accepted`?R2.statusAccepted??!1:e===`rejected`?R2.statusRejected??!1:R2.statusPending??!1,W2=({meeting:e,onCancel:t,onJoin:n,canJoin:r,joinHint:i})=>{let a=DZ(e=>e.activeMeeting),o=DZ(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:R2.meetingActions,children:[(0,D.jsx)(`span`,{className:T(R2.statusPill,U2(e.myStatus)),children:z2(e.myStatus)}),s&&(0,D.jsx)(vE,{label:l,side:`top`,children:(0,D.jsxs)(`button`,{type:`button`,className:T(R2.joinBtn,c&&R2.joinBtnDisabled),disabled:c,"aria-label":l,onClick:n,children:[(0,D.jsx)(ii,{size:13}),` `,o?`Joined`:`Join`]})}),e.isOrganizer&&(0,D.jsx)(vE,{label:u,side:`top`,children:(0,D.jsx)(`button`,{type:`button`,className:T(R2.cancelBtn,o&&R2.cancelBtnDisabled),disabled:o,"aria-label":u,onClick:t,children:`Cancel`})})]})},G2=e=>{let{meeting:t,onRespond:n}=e;return t.awaitingResponse?(0,D.jsx)(H2,{onRespond:n}):t.bucket===`canceled`?(0,D.jsx)(`span`,{className:T(R2.statusPill,R2.statusCanceled),children:`Canceled`}):t.bucket===`passed`?(0,D.jsx)(`span`,{className:T(R2.statusPill,R2.statusCompleted),children:`Completed`}):(0,D.jsx)(W2,{...e})},K2=(e,t)=>({month:e.toLocaleDateString(`en-US`,{month:`short`,timeZone:t}).toUpperCase(),day:e.toLocaleDateString(`en-US`,{day:`numeric`,timeZone:t})}),q2=(e,t)=>{let[r,i]=(0,n.useState)(()=>Date.now());(0,n.useEffect)(()=>{let e=setInterval(()=>{i(Date.now())},3e4);return()=>{clearInterval(e)}},[]);let a=r>=e-B2&&r<=t;return{canJoin:a,joinHint:a?`Join the meeting`:r>t?`This meeting has ended`:`Join opens 30 min before — starts ${V2(e-r)}`}},J2=e=>{let{meeting:t}=e,r=jN(),i=new Date(t.startUtc),a=new Date(t.endUtc),o=r.formatTime(t.startUtc),s=r.formatTime(t.endUtc),c=K2(i,r.display),l=` (${aX(r.display).offset})`,{canJoin:u,joinHint:d}=q2(i.getTime(),a.getTime()),f=(0,n.useRef)(null),p=(0,n.useRef)(null);(0,n.useEffect)(()=>{p.current=document.getElementById(`app-scroll-container`)},[]);let{scrollYProgress:m}=Ay({target:f,container:p,offset:[`start end`,`end start`]}),h=Py(m,[0,1],[-8,8]);return(0,D.jsxs)(A.article,{ref:f,style:{y:h},className:R2.meeting,variants:zy,whileHover:{y:-2},transition:{type:`spring`,stiffness:400,damping:30},children:[(0,D.jsxs)(`div`,{className:T(R2.datePlate,t.bucket===`passed`&&R2.datePlatePassed,t.bucket===`canceled`&&R2.datePlateCanceled),children:[(0,D.jsx)(`span`,{className:R2.datePlateMonth,children:c.month}),(0,D.jsx)(`span`,{className:R2.datePlateDay,children:c.day})]}),(0,D.jsx)(`span`,{className:R2.meetingAvatar,style:E({"--avatar-color":t.withColor}),children:t.withInitials}),(0,D.jsxs)(`div`,{className:R2.meetingBody,children:[(0,D.jsxs)(`span`,{className:R2.meetingTitle,children:[t.title,` · `,t.withName]}),(0,D.jsxs)(`div`,{className:R2.meetingMeta,children:[(0,D.jsxs)(`span`,{className:R2.meetingMetaItem,children:[(0,D.jsx)(Zn,{size:11}),` `,o,`–`,s,l]}),(0,D.jsxs)(`span`,{className:R2.meetingMetaItem,children:[(0,D.jsx)(vr,{size:11}),` `,t.location]})]})]}),(0,D.jsx)(G2,{...e,canJoin:u,joinHint:d})]})},Y2={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`},X2=()=>(0,D.jsx)(`div`,{className:Y2.list,children:Array.from({length:3}).map((e,t)=>(0,D.jsxs)(`div`,{className:Y2.meeting,children:[(0,D.jsx)(`div`,{className:Y2.datePlate}),(0,D.jsx)(`div`,{className:Y2.avatar}),(0,D.jsxs)(`div`,{className:Y2.body,children:[(0,D.jsx)(`div`,{className:Y2.title}),(0,D.jsx)(`div`,{className:Y2.meta})]}),(0,D.jsxs)(`div`,{className:Y2.actions,children:[(0,D.jsx)(`div`,{className:Y2.btn}),(0,D.jsx)(`div`,{className:Y2.btn})]})]},`skel-${String(t)}`))}),Z2=[{id:`upcoming`,label:`Upcoming`},{id:`passed`,label:`Past`},{id:`canceled`,label:`Canceled`}],Q2={type:`spring`,stiffness:420,damping:34},$2={hidden:{},visible:{transition:{staggerChildren:.05}}},e4=({bucket:e,counts:t,onSelect:n})=>(0,D.jsx)(`div`,{className:R2.bucketTabs,children:Z2.map(r=>{let i=e===r.id;return(0,D.jsxs)(`button`,{type:`button`,className:T(R2.bucketTab,i&&R2.bucketTabActive),onClick:()=>{n(r.id)},children:[i&&(0,D.jsx)(A.span,{layoutId:`bucketBg`,className:R2.bucketBg,transition:Q2}),(0,D.jsx)(`span`,{className:R2.bucketLabel,children:r.label}),(0,D.jsx)(`span`,{className:R2.bucketCount,children:t[r.id]})]},r.id)})}),t4=()=>{let e=Be(),t=WX(),r=JX(),i=YX(),[a,o]=(0,n.useState)(`upcoming`),s=t.data??[],c=s.filter(e=>e.bucket===a),l={upcoming:s.filter(e=>e.bucket===`upcoming`).length,passed:s.filter(e=>e.bucket===`passed`).length,canceled:s.filter(e=>e.bucket===`canceled`).length};return(0,D.jsxs)(`div`,{className:R2.schedWrap,children:[(0,D.jsx)(e4,{bucket:a,counts:l,onSelect:o}),t.isPending?(0,D.jsx)(X2,{}):null,t.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load meetings`,children:t.error.message}),t.isSuccess&&c.length===0?(0,D.jsxs)(`div`,{className:R2.empty,children:[(0,D.jsx)(`div`,{className:R2.emptyIconWrap,children:(0,D.jsx)(Bn,{size:32})}),(0,D.jsxs)(`span`,{className:R2.emptyTitle,children:[`No `,a,` meetings`]}),(0,D.jsx)(`span`,{className:R2.emptyText,children:`Nothing scheduled here yet.`})]}):null,t.isSuccess&&c.length>0?(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(A.div,{className:R2.meetingList,variants:$2,initial:`hidden`,animate:`visible`,children:c.map(t=>(0,D.jsx)(J2,{meeting:t,onRespond:e=>{r.mutate({meetingId:t.id,accept:e})},onCancel:()=>{i.mutate(t.id)},onJoin:()=>{e(`/comms/meetings/${t.id}/room`)}},t.id))},a)}):null]})},n4={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`},r4=()=>{let[e,t]=(0,n.useState)(`scheduled`),r=(WX().data??[]).filter(e=>e.bucket===`upcoming`).length;return(0,D.jsxs)(`div`,{className:n4.screen,children:[(0,D.jsxs)(`header`,{className:n4.head,children:[(0,D.jsxs)(`div`,{className:n4.headTop,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h1`,{className:n4.title,children:`Meetings`}),(0,D.jsx)(`p`,{className:n4.subtitle,children:`Book 1:1 meetings and manage your invitations.`})]}),(0,D.jsxs)(`div`,{className:n4.headBadge,children:[(0,D.jsx)(`span`,{className:n4.headBadgeNum,children:r}),(0,D.jsx)(`span`,{className:n4.headBadgeLabel,children:`upcoming`})]})]}),(0,D.jsxs)(`div`,{className:n4.tabs,children:[(0,D.jsxs)(`button`,{type:`button`,className:T(n4.tab,e===`book`&&n4.tabActive),onClick:()=>{t(`book`)},children:[(0,D.jsx)(zn,{size:15}),` Book a Meeting`,e===`book`&&(0,D.jsx)(A.span,{layoutId:`bookTabUnderline`,className:n4.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]}),(0,D.jsxs)(`button`,{type:`button`,className:T(n4.tab,e===`scheduled`&&n4.tabActive),onClick:()=>{t(`scheduled`)},children:[(0,D.jsx)(Zn,{size:15}),` Scheduled`,e===`scheduled`&&(0,D.jsx)(A.span,{layoutId:`bookTabUnderline`,className:n4.tabUnderline,transition:{type:`spring`,stiffness:420,damping:34}})]})]})]}),(0,D.jsx)(`div`,{className:n4.body,children:(0,D.jsx)(Wg,{mode:`wait`,children:(0,D.jsx)(A.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2,ease:`easeOut`},className:n4.tabContent,children:e===`book`?(0,D.jsx)(L2,{onViewScheduled:()=>{t(`scheduled`)}}):(0,D.jsx)(t4,{})},e)})})]})},i4=()=>{let{meetingId:e}=We(),t=DZ(e=>e.setRequestedMeetingId);return(0,n.useEffect)(()=>{e!==void 0&&t(e)},[e,t]),(0,D.jsx)(D.Fragment,{})},a4=`/comms/bookings`,o4=`/comms/meetings/:meetingId/room`,s4=()=>(0,D.jsxs)(St,{children:[(0,D.jsx)(bt,{path:a4,element:(0,D.jsx)(r4,{})}),(0,D.jsx)(bt,{path:o4,element:(0,D.jsx)(i4,{})}),(0,D.jsx)(bt,{path:`*`,element:(0,D.jsx)(yt,{to:a4,replace:!0})})]}),c4=()=>{bQ(`uapp-bookings`,()=>(0,D.jsx)(s4,{}))},l4=(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})},u4=(e,t)=>{let n=UD(e);return l4(e,t).map(e=>({date:e,dayNumber:e.getDate(),isToday:UD(e)===n}))},d4=(e,t)=>e.toLocaleDateString(void 0,t),f4=(e,t)=>{let n=l4(e,t),r=n[0]??e,i=n[6]??e,a=r.getFullYear()===i.getFullYear();return a&&r.getMonth()===i.getMonth()?`${String(r.getDate())} – ${d4(i,{day:`numeric`,month:`long`,year:`numeric`})}`:a?`${d4(r,{day:`numeric`,month:`short`})} – ${d4(i,{day:`numeric`,month:`short`,year:`numeric`})}`:`${d4(r,{day:`numeric`,month:`short`,year:`numeric`})} – ${d4(i,{day:`numeric`,month:`short`,year:`numeric`})}`},p4=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),m4=(e,t)=>p4(e,t).toLocaleDateString(void 0,{month:`long`,year:`numeric`}),h4=(e,t)=>{let n=p4(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})},g4=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`},_4=e=>{let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`},v4=e=>new Date(e).toLocaleDateString(void 0,{weekday:`short`,day:`numeric`,month:`short`}),y4=e=>UD(e),b4=e=>_4(e),x4=(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()},S4={available:{label:`Available`,color:`#22c55e`,Icon:Un},busy:{label:`Busy`,color:`#ef4444`,Icon:Nn},meeting:{label:`Meeting`,color:`#3b82f6`,Icon:ii},focus:{label:`Focus`,color:`#8b5cf6`,Icon:Zr},away:{label:`Away`,color:`#94a3b8`,Icon:Zn}},C4=e=>e===0||e===24?`12 AM`:e===12?`12 PM`:e<12?`${String(e)} AM`:`${String(e-12)} PM`,w4=(e,t)=>{let n=zD(e),r=zD(t);return r<=n?1440:r},T4=(e,t)=>{let n=IO(t);return n<=IO(e)?1440:n},E4=(e,t,n)=>{let r=IO(n)<=IO(t)?0:Math.max(0,Math.floor(IO(t)/60)-1),i=Math.min(24,Math.ceil(T4(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(zD(t.start)/60)),i=Math.max(i,Math.ceil(w4(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}},D4=e=>Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n),O4=e=>(e.endHour-e.startHour)*52,k4=(e,t,n)=>{let r=zD(e),i=w4(e,t);return{top:(r-n.startHour*60)*52/60,height:Math.max(20,(i-r)*52/60-2)}},A4=(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}},j4=(e,t,n)=>e?t.flatMap(e=>{let t=IO(e.from),r=IO(e.to);if(r<=t)return[A4(t,1440,n),A4(0,r,n)].filter(e=>e!==null);let i=A4(t,r,n);return i===null?[]:[i]}):[],M4=(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},N4=(e,t,n,r=90)=>((IO(t)<=IO(e)?0:IO(e))-n*60)*52/60-r*52/60,P4=(e,t,n=90)=>(e.getHours()*60+e.getMinutes()-t*60)*52/60-n*52/60,F4=e=>{let t=[...e].sort((e,t)=>zD(e.start)-zD(t.start)||w4(e.start,e.end)-w4(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=zD(e.start),n=w4(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},I4=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},L4=e=>e.reduce((e,t)=>e+(t.end-t.start),0),R4=(e,t,n)=>{let r=UD(t),i=e.filter(e=>e.date===r&&!e.block.allDay),a=I4([...n.map(e=>{let t=IO(e.from),n=IO(e.to);return{start:t,end:n<=t?1440:n}}),...i.filter(e=>e.block.status===`available`).map(e=>({start:zD(e.start),end:w4(e.start,e.end)}))]),o=i.filter(e=>e.block.status!==`available`).map(e=>({start:zD(e.start),end:w4(e.start,e.end)})),s=0;for(let e of a){let t=I4(o.map(t=>({start:Math.max(e.start,t.start),end:Math.min(e.end,t.end)})));s+=e.end-e.start-L4(t)}return Math.max(0,Math.round(s/60))},z4=(e,t)=>new Date(new Date(e).getTime()+t*6e4).toISOString(),B4=(e,t)=>{let n=new Date(e),r=CN(t,n)-CN(xN(),n);return r===0?e:new Date(n.getTime()-r*6e4).toISOString()},V4=(e,t)=>{let n=new Date(e),r=CN(t,n)-CN(xN(),n);return r===0?e:new Date(n.getTime()+r*6e4).toISOString()},H4=(e,t)=>({...e,start:B4(e.start,t),end:B4(e.end,t)}),U4=e=>{if(e.mode===`edit`){let{block:t}=e;return{title:t.title,status:t.status,start:t.start,end:t.allDay?t.end:x4(y4(t.start),b4(t.end)),allDay:t.allDay,notes:t.notes,recurrence:t.recurrence}}let t=e.start,n=e.end??z4(t,60),r=null,i=UD(t);if(i!==UD(n)){n=x4(i,b4(n));let a=new Date(t),o=new Date(e.end??n),s=[],c=new Date(a),l=0;for(;UD(c)<=UD(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:UD(o),exceptions:[]}}return{title:e.title??``,status:e.status??`available`,start:t,end:n,allDay:!1,notes:``,recurrence:r}},W4=e=>({...e,recurrence:e.recurrence===null?lO(e.start):null}),G4=(e,t)=>({...e,recurrence:t}),K4=(e,t)=>({...e,start:x4(t,b4(e.start)),end:x4(t,b4(e.end))}),q4=(e,t)=>{let n=x4(y4(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()}},J4=(e,t)=>({...e,end:x4(y4(e.start),t)}),Y4=(e,t)=>{let n=y4(e.start);return t?{...e,allDay:!0,start:x4(n,`00:00`),end:x4(n,`23:59`)}:{...e,allDay:!1,start:x4(n,`09:00`),end:x4(n,`10:00`)}},Q={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`},X4={center:`_center_10cfo_6`,field:`_field_10cfo_12`,dash:`_dash_10cfo_18`},Z4={timeInput:`_timeInput_ik08d_4`},Q4=[{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`}],$4=({slot:e,index:t,dayMeta:n,dayName:r,showTrash:i,onUpdateStart:a,onUpdateEnd:o,onAdd:s,onRemove:c})=>(0,D.jsxs)(`div`,{className:Q.differentTimeRowItem,children:[t===0?(0,D.jsx)(`span`,{className:Q.differentTimeDayLabel,children:n?.longLabel??r}):(0,D.jsx)(`span`,{className:Q.differentTimeDayLabelSpacer}),(0,D.jsx)(`input`,{type:`time`,className:T(Q.recurDate,Z4.timeInput),value:e.start,onChange:e=>{a(e.target.value)}}),(0,D.jsx)(`span`,{className:X4.dash,children:`–`}),(0,D.jsx)(`input`,{type:`time`,className:T(Q.recurDate,Z4.timeInput),value:e.end,onChange:e=>{o(e.target.value)}}),(0,D.jsx)(`button`,{type:`button`,className:Q.slotActionBtn,onClick:s,children:(0,D.jsx)(Mr,{size:14})}),i&&(0,D.jsx)(`button`,{type:`button`,className:Q.slotActionBtnTrash,onClick:c,children:(0,D.jsx)(ei,{size:12})})]}),e3=({dayMeta:e,dayName:t,slots:n,startIso:r,endIso:i,onChangeSlots:a})=>{let o=n.length>0?n:[{start:b4(r),end:b4(i??r)}];return(0,D.jsx)(`div`,{className:Q.differentTimeRowGroup,children:o.map((n,r)=>(0,D.jsx)($4,{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,{start:e?.end??`09:00`,end:e?.end??`17:00`}])},onRemove:()=>{a(o.filter((e,t)=>t!==r))}},r))})},t3=({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:Q.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:Q.differentTimeList,children:[e.weekdays.map(i=>{let a=Q4.find(e=>e.wd===i);return(0,D.jsx)(e3,{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:Q.differentTimeNote,children:`Defaults to the base event time when not overridden. Use + to add multiple slots per day.`})]})]}),n3=({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=gO({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:Q.upcomingCard,children:[(0,D.jsxs)(`div`,{className:Q.upcomingHeader,children:[(0,D.jsx)(Vn,{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=`${_4(e.start)} – ${_4(e.end)}`;return(0,D.jsxs)(`div`,{className:Q.upcomingRow,children:[(0,D.jsx)(`span`,{className:Q.upcomingRowDate,children:n}),(0,D.jsx)(`span`,{className:Q.upcomingRowTime,children:r})]},t)})}),s.length>5&&(0,D.jsx)(`div`,{className:Q.upcomingMore,children:`...and more beyond`})]})},r3=[{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`}],i3={daily:`day`,weekly:`week`,monthly:`month`,yearly:`year`},a3=[{id:`dayOfMonth`,label:`Day of month`},{id:`nthWeekday`,label:`Day of week`}],o3=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:Q.recurChips,children:oO.map(n=>(0,D.jsx)(`button`,{type:`button`,className:T(Q.recurChip,e.freq===n.id&&Q.recurChipActive),"aria-pressed":e.freq===n.id,onClick:()=>{t({...e,freq:n.id})},children:n.label},n.id))}),s3=({rec:e,onChange:t})=>(0,D.jsxs)(`label`,{className:Q.recurInline,children:[(0,D.jsx)(`span`,{className:Q.recurInlineLabel,children:`Every`}),(0,D.jsx)(`input`,{type:`number`,min:1,max:99,className:Q.recurNumber,value:e.interval,onChange:n=>{t({...e,interval:Math.max(1,Number(n.target.value)||1)})}}),(0,D.jsxs)(`span`,{className:Q.recurInlineLabel,children:[i3[e.freq],e.interval>1?`s`:``]})]}),c3=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:Q.recurWeekdays,children:r3.map(({wd:n,label:r})=>{let i=e.weekdays.includes(n);return(0,D.jsx)(`button`,{type:`button`,className:T(Q.recurDay,i&&Q.recurDayActive),"aria-pressed":i,onClick:()=>{t({...e,weekdays:i?e.weekdays.filter(e=>e!==n):[...e.weekdays,n]})},children:r},n)})}),l3=({rec:e,onChange:t})=>(0,D.jsx)(`div`,{className:Q.recurChips,children:a3.map(n=>(0,D.jsx)(`button`,{type:`button`,className:T(Q.recurChip,e.monthlyMode===n.id&&Q.recurChipActive),onClick:()=>{t({...e,monthlyMode:n.id})},children:n.label},n.id))}),u3=({rec:e,startIso:t,onChange:n})=>(0,D.jsxs)(`div`,{className:Q.recurEnds,children:[(0,D.jsxs)(`label`,{className:Q.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:Q.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:Q.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:Q.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:Q.recurDate,min:t.slice(0,10),value:e.endDate,disabled:e.endType!==`on`,onChange:t=>{n({...e,endType:`on`,endDate:t.target.value})}})]})]}),d3=({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:Q.recurBuilder,children:[(0,D.jsx)(o3,{rec:e,onChange:r}),(0,D.jsx)(s3,{rec:e,onChange:r}),i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(c3,{rec:e,onChange:r}),(0,D.jsx)(t3,{rec:e,onChange:r,startIso:t,endIso:n})]}),a&&(0,D.jsx)(l3,{rec:e,onChange:r}),(0,D.jsx)(u3,{rec:e,startIso:t,onChange:r}),(0,D.jsx)(`div`,{className:Q.recurSummaryBox,children:xO(e,t)}),(0,D.jsx)(n3,{recurrence:e,startIso:t,endIso:n})]})},f3=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Status`}),(0,D.jsx)(`div`,{className:Q.statusPills,children:DO.map(n=>{let r=S4[n.id],i=e.status===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:T(Q.statusPill,i&&Q.statusPillActive),style:E({"--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)})})]}),p3=({draft:e,onChange:t})=>(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`div`,{className:e.allDay?X4.field:Q.dtGrid,children:[(0,D.jsxs)(`label`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Date`}),(0,D.jsx)(`input`,{type:`date`,className:Q.panelInput,value:y4(e.start),onChange:n=>{t(K4(e,n.target.value))}})]}),!e.allDay&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Start`}),(0,D.jsx)(YE,{value:b4(e.start),onChange:n=>{t(q4(e,n))}})]}),(0,D.jsxs)(`label`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`End`}),(0,D.jsx)(YE,{align:`end`,value:b4(e.end),onChange:n=>{t(J4(e,n))}})]})]})]}),(0,D.jsxs)(`label`,{className:Q.checkRow,children:[(0,D.jsx)(`input`,{type:`checkbox`,className:Q.checkbox,checked:e.allDay,onChange:n=>{t(Y4(e,n.target.checked))}}),(0,D.jsx)(`span`,{children:`All-day`})]})]}),m3=({draft:e,onChange:t})=>{let n=e.recurrence!==null;return(0,D.jsxs)(`div`,{className:Q.recurSection,children:[(0,D.jsxs)(`button`,{type:`button`,className:T(Q.recurToggle,n&&Q.recurToggleOn),"aria-pressed":n,onClick:()=>{t(W4(e))},children:[(0,D.jsxs)(`span`,{className:Q.recurToggleLabel,children:[(0,D.jsx)(zr,{size:13}),` Recurring`]}),(0,D.jsx)(`span`,{className:T(Q.recurSwitch,n&&Q.recurSwitchOn),children:(0,D.jsx)(`span`,{className:Q.recurKnob})})]}),e.recurrence!==null&&(0,D.jsx)(d3,{recurrence:e.recurrence,startIso:e.start,endIso:e.end,onChange:n=>{t(G4(e,n))}})]})},h3=({draft:e,onChange:t})=>(0,D.jsxs)(`div`,{className:Q.panelForm,children:[(0,D.jsxs)(`label`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Title`}),(0,D.jsx)(`input`,{type:`text`,className:T(Q.panelInput,e.title.length>200&&Q.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:Q.fieldError,children:`The field Title must be a string with a maximum length of 200.`})]}),(0,D.jsx)(f3,{draft:e,onChange:t}),(0,D.jsx)(p3,{draft:e,onChange:t}),(0,D.jsx)(m3,{draft:e,onChange:t}),(0,D.jsxs)(`label`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:Q.microLabel,children:`Notes`}),(0,D.jsx)(`textarea`,{className:Q.notesInput,rows:3,value:e.notes,placeholder:`Optional notes`,onChange:n=>{t({...e,notes:n.target.value})}})]})]}),g3=(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},_3=(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},v3=(e,t)=>{let n=e.block.status===`available`&&t.block.status===`available`,r=e.block.status!==`available`&&t.block.status!==`available`;return(n||r)&&_3(e,t)},y3=(e,t,n)=>{let r=FO([new SO({id:`draft`,...e})],n),i=FO(t,n),a=[];for(let e of i)r.some(t=>v3(t,e))&&a.push(e);return a},b3=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}),x3=(e,t,n)=>({...b3(e),start:t,end:n,recurrence:null}),S3=(e,t)=>{let n=e.recurrence;if(n===null)return b3(e);let r=Array.from(new Set([...n.exceptions,...t]));return{...b3(e),recurrence:{...n,exceptions:r}}},C3=(e,t,n)=>n.type===`delete`?[]:n.type===`update`?[x3(e,n.start,n.end)]:[x3(e,t.start,n.updateEnd),x3(e,n.createStart,n.createEnd)],w3=(e,t,n)=>{let r=g3(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:x3(e,r.start,r.end)}]:[{kind:`update`,blockId:e.id,draft:x3(e,t.start,r.updateEnd)},{kind:`create`,draft:x3(e,r.createStart,r.createEnd)}]},T3=(e,t,n)=>{let r=[],i=[];for(let a of t){let t=g3(n.start,n.end,a.start,a.end);if(t!==null){r.push(a.date);for(let n of C3(e,a,t))i.push({kind:`create`,draft:n})}}return r.length===0?[]:[{kind:`update`,blockId:e.id,draft:S3(e,r)},...i]},E3=(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?w3(n.block,n,e):T3(n.block,t,e);r.push(...i)}return r},D3=(e,t)=>e.filter(e=>t.mode!==`edit`||e.id!==t.block.id),O3=(e,t,n)=>{let r=new Map;for(let i of y3(e,t,n))r.set(i.block.id,i.block);return[...r.values()]},k3=(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(!VD(e.start,e.end))return{error:`End time must be after start time.`,code:`invalid_time`};let i=H4(e,r);if(n.mode!==`edit`&&new Date(i.start).getTime()<Date.now()-300*1e3)return{error:`Cannot create an event in the past.`,code:`invalid_time`};let a=l4(new Date(i.start),0),o=O3(i,D3(t,n),a);if(o.length>0){let t=o[0],n=o.some(e=>e.status===`meeting`);if(t!==void 0)return e.status===`available`&&t.status===`available`?{error:`This block overlaps with an existing availability.`,code:`overlap_availability`,hasMeetingConflict:n}:{error:n?`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:n}}return{error:null}},A3=(e,t,n)=>{let r=hN(),i=gN(),a=_N(),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=H4(e,n),s=l4(new Date(a.start),0),c=E3(a,y3(a,D3(r,t),s));try{await Promise.all(c.map(o)),j.success(`Conflicts resolved successfully!`),i()}catch(e){let t=e instanceof Error?e.message:String(e);j.error(`Failed to resolve conflicts: ${t}`)}}}},j3={errorStack:`_errorStack_q9qoj_4`,errorLine:`_errorLine_q9qoj_11`},M3=` · `,N3=` – `,P3=e=>{let t=UD(e.start)===UD(e.end)?v4(e.start):`${v4(e.start)}${N3}${v4(e.end)}`,n=e.recurrence===null?``:`${M3}${xO(e.recurrence,e.start)}`;return e.allDay?`${t}${M3}All day${n}`:`${t}${M3}${`${_4(e.start)}${N3}${_4(e.end)}`}${M3}${g4(BD(e.start,e.end))}${n}`},F3=({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:Q.panelFooter,children:[(0,D.jsx)(`div`,{className:T(Q.panelSummary,r!==null&&Q.panelSummaryError),children:r===null?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(zn,{size:14}),` `,a]}):(0,D.jsxs)(`div`,{className:j3.errorStack,children:[(0,D.jsxs)(`span`,{className:j3.errorLine,children:[(0,D.jsx)(Jn,{size:14}),` `,r]}),i&&(0,D.jsxs)(`button`,{type:`button`,className:Q.resolveConflictBtn,onClick:l,disabled:t,children:[(0,D.jsx)(Fr,{size:11}),` Auto-adjust blocks to fit`]})]})}),(0,D.jsxs)(`div`,{className:Q.panelActions,children:[e&&(0,D.jsxs)(gi,{variant:`ghost`,onClick:s,disabled:t,children:[(0,D.jsx)(ei,{size:15}),` Delete`]}),(0,D.jsx)(`span`,{className:Q.actionSpacer}),(0,D.jsx)(gi,{variant:`secondary`,onClick:c,disabled:t,children:`Cancel`}),n?(0,D.jsx)(gi,{onClick:o,isLoading:t,children:e?`Save changes`:`Create`}):(0,D.jsx)(vE,{label:r??`Cannot save`,side:`top`,children:(0,D.jsx)(`span`,{className:Q.disabledButtonWrapper,children:(0,D.jsx)(gi,{onClick:o,isLoading:t,disabled:!0,children:e?`Save changes`:`Create`})})})]})]}),I3=(e,t,n,r)=>{let i=hN(),a=gN(),o=_N();return{busy:i.isPending||a.isPending||o.isPending,onSave:()=>{let o=H4(t,n),s=e=>{j.success(e),r()};if(e.mode===`edit`){a.mutate({id:e.block.id,draft:o},{onSuccess:()=>{s(`Event updated`)},onError:e=>{j.error(e.message)}});return}i.mutate(o,{onSuccess:()=>{s(`Event added`)},onError:e=>{j.error(e.message)}})},onDelete:()=>{e.mode===`edit`&&o.mutate(e.block.id,{onSuccess:()=>{j.success(`Event removed`),r()},onError:e=>{j.error(e.message)}})}}},L3=({state:e,timezone:t,onClose:r})=>{let[i,a]=(0,n.useState)(()=>U4(e)),{busy:o,onSave:s,onDelete:c}=I3(e,i,t,r),{data:l=[]}=mN(),u=A3(i,e,t),d=e.mode===`edit`,f=k3(i,l,e,t),p=f.code===`title_too_long`?null:f.error,m=f.error===null,h=(f.code===`overlap_availability`||f.code===`overlap_event`)&&!f.hasMeetingConflict;return(0,D.jsxs)(Jy,{open:!0,side:`right`,title:d?`Edit Event`:`New Event`,onOpenChange:e=>{e||r()},footer:(0,D.jsx)(F3,{isEdit:d,busy:o,canSave:m,validationError:p,isConflict:h,summary:P3(i),onSave:s,onDelete:c,onCancel:r,onResolveConflicts:()=>{u.resolve(l,s)}}),children:[(0,D.jsxs)(`header`,{className:Q.panelHead,children:[(0,D.jsx)(`span`,{className:Q.panelTitle,children:d?`Edit Event`:`New Event`}),(0,D.jsx)(wi,{label:`Close`,onClick:r,children:(0,D.jsx)(oi,{size:18})})]}),(0,D.jsx)(h3,{draft:i,onChange:a})]})},R3=()=>{let e=Intl.supportedValuesOf;return typeof e==`function`?e(`timeZone`):EO},z3=(e,t,n,r)=>({...e,slots:e.slots.map(e=>({...e,from:EN(e.from,t,n,r),to:EN(e.to,t,n,r)}))}),B3=(e,t,n,r)=>WD({mon:z3(e.mon,t,n,r),tue:z3(e.tue,t,n,r),wed:z3(e.wed,t,n,r),thu:z3(e.thu,t,n,r),fri:z3(e.fri,t,n,r),sat:z3(e.sat,t,n,r),sun:z3(e.sun,t,n,r)}),V3=(e,t)=>{let n=R3();return(n.includes(t)?n:[t,...n]).map(t=>({id:t,offset:ON(CN(t,e))}))},H3={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`},U3=(e,t)=>t===``||e.id.toLowerCase().includes(t)||e.offset.toLowerCase().includes(t),W3=({search:e,list:t,value:n,onSearch:r,onPick:i})=>(0,D.jsxs)(A.div,{className:H3.tzPop,variants:By,initial:`hidden`,animate:`visible`,exit:`exit`,children:[(0,D.jsxs)(`div`,{className:H3.tzSearch,children:[(0,D.jsx)(Br,{size:13}),(0,D.jsx)(`input`,{className:H3.tzSearchInput,placeholder:`Search timezones…`,value:e,onChange:e=>{r(e.target.value)}})]}),(0,D.jsxs)(`div`,{className:H3.tzList,children:[t.map(e=>(0,D.jsxs)(`button`,{type:`button`,className:T(H3.tzRow,e.id===n&&H3.tzRowActive),onClick:()=>{i(e.id)},children:[(0,D.jsx)(`span`,{className:H3.tzRowLabel,children:e.id}),(0,D.jsx)(`span`,{className:H3.tzRowOffset,children:e.offset}),e.id===n&&(0,D.jsx)(Un,{size:13,className:H3.tzCheck})]},e.id)),t.length===0&&(0,D.jsx)(`p`,{className:H3.tzEmpty,children:`No timezones match.`})]})]}),G3=({value:e,now:t,onChange:r})=>{let[i,a]=(0,n.useState)(!1),[o,s]=(0,n.useState)(``),c=(0,n.useMemo)(()=>V3(t,e),[t,e]),l=c.find(t=>t.id===e)??{id:e,offset:``},u=o.trim().toLowerCase(),d=c.filter(e=>U3(e,u));return(0,D.jsxs)(`div`,{className:H3.tzWrap,children:[(0,D.jsxs)(`button`,{type:`button`,className:H3.tzTrigger,"aria-expanded":i,"aria-label":`Change timezone`,onClick:()=>{a(e=>!e)},children:[(0,D.jsx)(cr,{size:14,className:H3.tzGlobe}),(0,D.jsx)(`span`,{className:H3.tzTriggerLabel,children:l.id}),(0,D.jsx)(`span`,{className:H3.tzTriggerOffset,children:l.offset}),(0,D.jsx)(Wn,{size:15,className:H3.tzChevron})]}),(0,D.jsx)(Wg,{children:i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`button`,{type:`button`,className:H3.tzBackdrop,"aria-label":`Close timezone picker`,onClick:()=>{a(!1)}}),(0,D.jsx)(W3,{search:o,list:d,value:e,onSearch:s,onPick:e=>{r(e),s(``),a(!1)}})]})})]})},$={gridScroll:`_gridScroll_156z1_7`,gridInner:`_gridInner_156z1_33`,gutter:`_gutter_156z1_38`,gutterHead:`_gutterHead_156z1_44`,gutterAllDay:`_gutterAllDay_156z1_48`,gutterHour:`_gutterHour_156z1_62`,dayCol:`_dayCol_156z1_73`,dayHeader:`_dayHeader_156z1_79`,colDay:`_colDay_156z1_93`,colDayToday:`_colDayToday_156z1_101`,dayNum:`_dayNum_156z1_105`,dayNumToday:`_dayNumToday_156z1_125`,dayCount:`_dayCount_156z1_131`,allDayBand:`_allDayBand_156z1_137`,allDayChip:`_allDayChip_156z1_148`,hoursWrap:`_hoursWrap_156z1_168`,workBand:`_workBand_156z1_174`,hourRow:`_hourRow_156z1_184`,nowLine:`_nowLine_156z1_203`,nowDot:`_nowDot_156z1_214`,block:`_block_156z1_224`,blockTitle:`_blockTitle_156z1_261`,blockTime:`_blockTime_156z1_279`,monthScroll:`_monthScroll_156z1_293`,monthHead:`_monthHead_156z1_302`,monthHeadCell:`_monthHeadCell_156z1_309`,monthGrid:`_monthGrid_156z1_319`,monthCell:`_monthCell_156z1_326`,monthCellOff:`_monthCellOff_156z1_347`,monthDayNum:`_monthDayNum_156z1_351`,monthCellToday:`_monthCellToday_156z1_355`,monthDayNumToday:`_monthDayNumToday_156z1_366`,monthChip:`_monthChip_156z1_379`,monthMore:`_monthMore_156z1_402`,agendaScroll:`_agendaScroll_156z1_410`,agendaGroup:`_agendaGroup_156z1_418`,agendaDay:`_agendaDay_156z1_422`,agendaItems:`_agendaItems_156z1_432`,agendaRow:`_agendaRow_156z1_438`,agendaAccent:`_agendaAccent_156z1_459`,agendaBody:`_agendaBody_156z1_467`,agendaTitle:`_agendaTitle_156z1_475`,agendaMeta:`_agendaMeta_156z1_484`,agendaPill:`_agendaPill_156z1_493`,agendaEmpty:`_agendaEmpty_156z1_506`,agendaEmptyIcon:`_agendaEmptyIcon_156z1_517`,agendaEmptyTitle:`_agendaEmptyTitle_156z1_522`,agendaEmptyText:`_agendaEmptyText_156z1_528`,agendaEmptyBtn:`_agendaEmptyBtn_156z1_533`,availabilityBand:`_availabilityBand_156z1_546`,availabilityBandLabel:`_availabilityBandLabel_156z1_579`,availabilityBandEditBtn:`_availabilityBandEditBtn_156z1_589`,dragSelectionHighlight:`_dragSelectionHighlight_156z1_612`,dragSelectionLabel:`_dragSelectionLabel_156z1_631`},K3={hidden:{},visible:{transition:{staggerChildren:.04}}},q3=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()]},J3=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=S4[n.status],i=n.allDay?`All day`:`${_4(e.start)} – ${_4(e.end)}`;return(0,D.jsxs)(A.button,{type:`button`,variants:zy,whileHover:{x:3},className:$.agendaRow,style:E({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(`span`,{className:$.agendaAccent}),(0,D.jsxs)(`span`,{className:$.agendaBody,children:[(0,D.jsx)(`span`,{className:$.agendaTitle,children:n.title}),(0,D.jsxs)(`span`,{className:$.agendaMeta,children:[i,n.recurrence!==null&&(0,D.jsxs)(D.Fragment,{children:[` · `,(0,D.jsx)(Lr,{size:10}),` Recurring`]})]})]}),(0,D.jsxs)(`span`,{className:$.agendaPill,children:[(0,D.jsx)(r.Icon,{size:10}),` `,r.label]})]})},Y3=({occurrences:e,onSelectBlock:t,onCreate:n})=>{let r=q3(e);return r.length===0?(0,D.jsxs)(`div`,{className:$.agendaEmpty,children:[(0,D.jsx)(`span`,{className:$.agendaEmptyIcon,children:(0,D.jsx)(Bn,{size:30})}),(0,D.jsx)(`span`,{className:$.agendaEmptyTitle,children:`Nothing scheduled this month`}),(0,D.jsx)(`span`,{className:$.agendaEmptyText,children:`Create a block to fill your week.`}),(0,D.jsx)(`button`,{type:`button`,className:$.agendaEmptyBtn,onClick:n,children:`Create New Event`})]}):(0,D.jsx)(`div`,{className:$.agendaScroll,children:r.map(e=>(0,D.jsxs)(`div`,{className:$.agendaGroup,children:[(0,D.jsx)(`div`,{className:$.agendaDay,children:e.label}),(0,D.jsx)(A.div,{className:$.agendaItems,variants:K3,initial:`hidden`,animate:`visible`,children:e.items.map(e=>(0,D.jsx)(J3,{occurrence:e,onSelect:t},e.key))})]},e.key))})},X3=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],Z3=3,Q3=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},$3=e=>{let{date:t,inMonth:n,isToday:r,occs:i}=e,a=i.length-Z3;return(0,D.jsxs)(`div`,{className:T($.monthCell,!n&&$.monthCellOff,r&&$.monthCellToday),onClick:()=>{e.onSelectSlot(x4(UD(t),`09:00`))},children:[(0,D.jsx)(`span`,{className:T($.monthDayNum,r&&$.monthDayNumToday),children:t.getDate()}),i.slice(0,Z3).map(t=>(0,D.jsx)(`button`,{type:`button`,className:$.monthChip,style:E({"--status-color":S4[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:$.monthMore,children:[`+`,a,` more`]})]})},e6=({dates:e,anchor:t,occurrences:n,today:r,onSelectBlock:i,onSelectSlot:a})=>{let o=Q3(n),s=UD(r);return(0,D.jsxs)(`div`,{className:$.monthScroll,children:[(0,D.jsx)(`div`,{className:$.monthHead,children:X3.map(e=>(0,D.jsx)(`span`,{className:$.monthHeadCell,children:e},e))}),(0,D.jsx)(A.div,{className:$.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=UD(e);return(0,D.jsx)($3,{date:e,inMonth:e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear(),isToday:n===s,occs:o.get(n)??[],onSelectBlock:i,onSelectSlot:a},n)})})]})},t6={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`},n6={hidden:{},visible:{transition:{staggerChildren:.05}}},r6=({occurrences:e,today:t,availability:n})=>{let r=AO(e,t),i=OD[(t.getDay()+6)%7]?.id??`mon`,a=n?.[i],o=a?.active?a.slots:[],s=[{label:`Free`,value:`${String(R4(e,t,o))}h`,color:`var(--color-primary)`,Icon:Zn},{label:`Busy`,value:`${String(r.busyHours)}h`,color:S4.busy.color,Icon:S4.busy.Icon},{label:`Meetings`,value:String(r.meetingCount),color:S4.meeting.color,Icon:S4.meeting.Icon},{label:`Focus`,value:`${String(r.focusHours)}h`,color:S4.focus.color,Icon:S4.focus.Icon}];return(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:t6.sideHeader,children:`Today`}),(0,D.jsx)(A.div,{className:t6.summaryGrid,variants:n6,initial:`hidden`,animate:`visible`,children:s.map(e=>(0,D.jsxs)(A.div,{className:t6.summaryCard,style:E({"--v":e.color}),variants:zy,whileHover:{y:-2},children:[(0,D.jsxs)(`span`,{className:t6.summaryTop,children:[(0,D.jsx)(e.Icon,{size:12,strokeWidth:2.4,className:t6.summaryTopIcon}),(0,D.jsx)(`span`,{className:t6.summaryLabel,children:e.label})]}),(0,D.jsx)(`span`,{className:t6.summaryValue,children:e.value})]},e.label))})]})},i6=({onQuickAdd:e})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:t6.sideHeader,children:`Quick add`}),(0,D.jsx)(`div`,{className:t6.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=S4[t.status];return(0,D.jsxs)(A.button,{type:`button`,whileTap:{scale:.96},className:t6.quickBtn,style:E({"--status-color":n.color}),onClick:()=>{e(t.status,t.minutes,t.title)},children:[(0,D.jsx)(n.Icon,{size:11}),` `,t.label]},t.label)})})]}),a6=({activeStatuses:e,onToggleStatus:t})=>(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:t6.sideHeader,children:`Status legend`}),(0,D.jsx)(`div`,{className:t6.legend,children:DO.map(n=>{let r=S4[n.id],i=e.has(n.id);return(0,D.jsxs)(A.button,{type:`button`,whileTap:{scale:.97},className:T(t6.legendItem,i?t6.legendItemOn:t6.legendOff),style:E({"--status-color":r.color}),onClick:()=>{t(n.id)},children:[(0,D.jsx)(`span`,{className:T(t6.legendSwatch,!i&&t6.legendSwatchOff),children:(0,D.jsx)(Wg,{children:i&&(0,D.jsx)(A.span,{initial:{scale:0},animate:{scale:1},exit:{scale:0},transition:{type:`spring`,stiffness:500,damping:28},children:(0,D.jsx)(Un,{size:11,strokeWidth:3})})})}),(0,D.jsx)(r.Icon,{size:12,className:t6.legendIcon}),n.label]},n.id)})})]}),o6=e=>(0,D.jsxs)(`aside`,{className:t6.sidebar,children:[e.onClose!==void 0&&(0,D.jsxs)(`div`,{className:t6.drawerHeader,children:[(0,D.jsx)(`span`,{className:t6.drawerTitle,children:`Schedule Settings`}),(0,D.jsx)(`button`,{type:`button`,className:t6.drawerCloseBtn,onClick:e.onClose,"aria-label":`Close schedule settings`,children:(0,D.jsx)(oi,{size:16})})]}),(0,D.jsx)(r6,{occurrences:e.occurrences,today:e.today,availability:e.availability}),(0,D.jsx)(i6,{onQuickAdd:e.onQuickAdd}),(0,D.jsx)(a6,{activeStatuses:e.activeStatuses,onToggleStatus:e.onToggleStatus})]}),s6=(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}},c6=({item:e,range:t,onSelect:n})=>{let{occurrence:r}=e,{block:i}=r,a=S4[i.status],o=k4(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)(A.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:$.block,style:{...E({"--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:$.blockTitle,children:[s&&(0,D.jsx)(qn,{size:10,"aria-hidden":!0}),` `,(0,D.jsx)(a.Icon,{size:10}),` `,i.title]}),o.height>=30&&(0,D.jsxs)(`span`,{className:$.blockTime,children:[_4(r.start),` – `,_4(r.end),c&&(0,D.jsx)(Wn,{size:10,"aria-hidden":!0})]})]})},l6=({occurrence:e,onSelect:t})=>{let{block:n}=e,r=S4[n.status];return(0,D.jsxs)(`button`,{type:`button`,className:$.allDayChip,style:E({"--status-color":r.color}),onClick:()=>{t(n)},children:[(0,D.jsx)(r.Icon,{size:10}),` `,n.title]})},u6=e=>`${String(e).padStart(2,`0`)}:00`,d6=({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:O4(t)}:k4(e.start,e.end,t);return(0,D.jsxs)(`div`,{className:$.availabilityBand,style:E({"--top":`${String(i.top)}px`,"--h":`${String(i.height)}px`}),onClick:()=>{n(e.start,e.end)},children:[(0,D.jsxs)(`span`,{className:$.availabilityBandLabel,children:[(0,D.jsx)(Un,{size:11,strokeWidth:3}),` Available`]}),(0,D.jsx)(`button`,{type:`button`,className:$.availabilityBandEditBtn,onClick:t=>{t.stopPropagation(),r(e.block)},children:`Edit`})]},e.key)})}),f6=({day:e,cell:t,dayIndex:n,range:r,onDragSelectStart:i,onDragSelectEnter:a,onDropBlock:o,onSelectSlot:s})=>(0,D.jsx)(D.Fragment,{children:D4(r).map(r=>(0,D.jsx)(`button`,{type:`button`,className:$.hourRow,"aria-label":`Add a block on ${e.long} at ${C4(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,x4(UD(t.date),u6(r)))},onClick:()=>{s(x4(UD(t.date),u6(r)))}},r))}),p6=e=>e===0?``:e===1?`1 event`:`${String(e)} events`,m6=({day:e,cell:t,count:n,off:r})=>(0,D.jsxs)(`div`,{className:$.dayHeader,children:[(0,D.jsx)(`span`,{className:T($.colDay,t.isToday&&$.colDayToday),children:e.short}),(0,D.jsx)(`span`,{className:T($.dayNum,t.isToday&&$.dayNumToday),children:t.dayNumber}),(0,D.jsx)(`span`,{className:$.dayCount,children:r?`Day off`:p6(n)})]}),h6=({allDay:e,onSelectBlock:t})=>(0,D.jsx)(`div`,{className:$.allDayBand,children:e.map(e=>(0,D.jsx)(l6,{occurrence:e,onSelect:t},e.key))}),g6=({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:$.dragSelectionHighlight,style:E({"--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:$.dragSelectionLabel,children:[C4(Math.min(t.startHour,t.endHour)),` –`,` `,C4(Math.max(t.startHour,t.endHour))]})}),_6=(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:F4(n.filter(e=>!e.block.allDay&&e.block.status!==`available`))}},v6=({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=j4(e,t,n),g=r.isToday?M4(o,n):null;return(0,D.jsxs)(`div`,{className:$.hoursWrap,style:E({"--grid-h":`${String(O4(n))}px`}),children:[h.map(e=>(0,D.jsx)(`div`,{className:$.workBand,style:E({"--top":`${String(e.top)}px`,"--h":`${String(e.height)}px`})},e.top)),(0,D.jsx)(d6,{bands:s,range:n,onSelectSlot:p,onSelectBlock:m}),(0,D.jsx)(f6,{day:i,cell:r,dayIndex:a,range:n,onDragSelectStart:u,onDragSelectEnter:d,onDropBlock:f,onSelectSlot:p}),(0,D.jsx)(g6,{dayIndex:a,dragSelect:l,rangeStartHour:n.startHour}),g!==null&&(0,D.jsx)(`div`,{className:$.nowLine,style:E({"--top":`${String(g)}px`}),children:(0,D.jsx)(`span`,{className:$.nowDot})}),c.map(e=>(0,D.jsx)(c6,{item:e,range:n,onSelect:m},e.occurrence.key))]})},y6=e=>{let{day:t,cell:n,dayIndex:r,occurrences:i,onSelectBlock:a,active:o}=e,{dayOccs:s,allDay:c,availabilityBands:l,laid:u}=_6(i,r),d=!o;return(0,D.jsxs)(`div`,{className:T($.dayCol,n.isToday&&$.dayColToday),children:[(0,D.jsx)(m6,{day:t,cell:n,count:s.length,off:d}),(0,D.jsx)(h6,{allDay:c,onSelectBlock:a}),(0,D.jsx)(v6,{...e,availabilityBands:l,laid:u})]})},b6=({range:e})=>(0,D.jsxs)(`div`,{className:$.gutter,children:[(0,D.jsx)(`div`,{className:$.gutterHead}),(0,D.jsx)(`div`,{className:$.gutterAllDay,children:`all-day`}),Array.from({length:e.endHour-e.startHour},(t,n)=>e.startHour+n).map(e=>(0,D.jsx)(`div`,{className:$.gutterHour,children:C4(e)},e))]}),x6=(e,t)=>{let[r,i]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let n=()=>{if(r!==null){let{firstDayIdx:n,lastDayIdx:a,startHour:o,endHour:s}=s6(r.startDayIndex,r.endDayIndex,r.startHour,r.endHour),c=e[n],l=e[a];c&&l&&t(x4(UD(c.date),`${String(o).padStart(2,`0`)}:00`),x4(UD(l.date),`${String(s).padStart(2,`0`)}:00`)),i(null)}};return window.addEventListener(`mouseup`,n),()=>{window.removeEventListener(`mouseup`,n)}},[r,e,t]),{dragSelect:r,startDrag:(e,t)=>{i({startDayIndex:e,endDayIndex:e,startHour:t,endHour:t+1})},enterDrag:(e,t,n)=>{if(r!==null){if(n!==1){i(null);return}i({...r,endDayIndex:e,endHour:t+1})}}}},S6=e=>{let t=gN();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}})}}},C6=e=>({active:e?e.active:!0,slots:e?.slots??[{from:`09:00`,to:`17:00`}]}),w6=({days:e,cells:t,occurrences:r,availability:i,workStart:a,workEnd:o,range:s,now:c,onSelectBlock:l,onSelectSlot:u})=>{let d=(0,n.useRef)(null),{dragSelect:f,startDrag:p,enterDrag:m}=x6(t,u),{dropBlock:h}=S6(r),g=(0,n.useRef)(c);g.current=c;let{startHour:_,endHour:v}=s,y=c.getHours()*60+c.getMinutes(),b=t.some(e=>e.isToday)&&y>=_*60&&y<=v*60;(0,n.useEffect)(()=>{let e=d.current;if(e===null)return;let t=b?P4(g.current,_):N4(a,o,_);e.scrollTo({top:Math.max(0,Math.min(t,e.scrollHeight-e.clientHeight))})},[_,a,o,b]);let x=Math.max(1,...e.map(e=>{let t=OD.findIndex(t=>t.id===e.id);return r.filter(e=>e.dayIndex===t&&e.block.allDay).length}));return(0,D.jsx)(`div`,{className:$.gridScroll,ref:d,children:(0,D.jsxs)(`div`,{className:$.gridInner,style:E({"--all-day-rows":x}),children:[(0,D.jsx)(b6,{range:s}),e.map(e=>{let n=OD.findIndex(t=>t.id===e.id),a=t[n]??t[0];if(a===void 0)return null;let{active:o,slots:d}=C6(i?i[e.id]:null);return(0,D.jsx)(y6,{day:e,cell:a,dayIndex:n,active:o,slots:d,range:s,now:c,occurrences:r,dragSelect:f,onDragSelectStart:p,onDragSelectEnter:m,onDropBlock:h,onSelectBlock:l,onSelectSlot:u},e.id)})]})})},T6=[{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`}],E6=e=>e===`month`||e===`agenda`,D6=(e,t)=>{let n=new Set(e);return t===`agenda`?n.delete(`available`):t!==`hours`&&n.add(`available`),n},O6=(e,t)=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n},k6=()=>{let[e,t]=(0,n.useState)(`week`),[r,i]=(0,n.useState)(0),[a,o]=(0,n.useState)(0),[s,c]=(0,n.useState)(null),[l,u]=(0,n.useState)(()=>new Set(DO.map(e=>e.id))),[d,f]=(0,n.useState)(``),p=jN(d).display;return{view:e,setView:e=>{t(e),u(t=>D6(t,e))},weekOffset:r,monthOffset:a,goPrev:()=>{E6(e)?o(e=>e-1):i(e=>e-1)},goNext:()=>{E6(e)?o(e=>e+1):i(e=>e+1)},goToday:()=>{i(0),o(0)},active:l,toggle:e=>{u(t=>O6(t,e))},editor:s,openCreate:(e,t)=>{c({mode:`create`,start:e,...t===void 0?{}:{end:t}})},openQuick:(e,t,n)=>{let r=new Date(V4(new Date().toISOString(),p));r.setSeconds(0,0),r.setMinutes(Math.ceil(r.getMinutes()/5)*5);let i=new Date(r.getTime()+t*6e4);c({mode:`create`,start:r.toISOString(),end:i.toISOString(),status:e,title:n})},openEdit:e=>{c({mode:`edit`,block:e})},closeEditor:()=>{c(null)},timezone:p,setTimezone:f}},A6={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`},j6=e=>e.view===`month`?(0,D.jsx)(e6,{dates:e.monthDates,anchor:e.monthAnchor,occurrences:e.monthOccurrences,today:e.today,onSelectBlock:e.onSelectBlock,onSelectSlot:e.onSelectSlot}):e.view===`agenda`?(0,D.jsx)(Y3,{occurrences:e.monthOccurrences,onSelectBlock:e.onSelectBlock,onCreate:e.onCreate}):(0,D.jsx)(w6,{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}),M6=e=>{let t=fi(`(max-width: 1024px)`);return(0,D.jsxs)(`div`,{className:A6.main,children:[(0,D.jsxs)(`div`,{className:A6.calArea,children:[e.query.isPending&&(0,D.jsx)(`div`,{className:X4.center,children:(0,D.jsx)(mi,{label:`Loading schedule`})}),e.query.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not load schedule`,children:e.query.error.message}),e.query.isSuccess&&j6(e)]}),!t&&(0,D.jsx)(o6,{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)(Jy,{open:e.isSidebarOpen??!1,onOpenChange:t=>{!t&&e.onCloseSidebar!==void 0&&e.onCloseSidebar()},title:`Schedule Settings`,side:`right`,children:(0,D.jsx)(o6,{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})})]})},N6=(e,t)=>e.meetingDuration!==t.meetingDuration||e.bufferMinutes!==t.bufferMinutes,P6=(e,t,n)=>{let r=AN.from({personal:t.timezone,anchor:t.availabilityTimezone});return{anchorZone:r.anchor,initialTimezone:r.display,initialInZone:B3(e,r.anchor,r.display,n)}},F6=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},I6=(e,t,r)=>{let i=pN(),a=yN(),[o]=(0,n.useState)(()=>r.now()),[{anchorZone:s,initialTimezone:c,initialInZone:l}]=(0,n.useState)(()=>P6(e,t,o)),[u,d]=(0,n.useState)(l),[f,p]=(0,n.useState)(c),[m,h]=(0,n.useState)(t.meetingDuration),[g,_]=(0,n.useState)(t.bufferMinutes),v=B3(u,f,s,o),y=JSON.stringify(F6(v))!==JSON.stringify(F6(e)),b=N6({meetingDuration:m,bufferMinutes:g},t);return(0,n.useEffect)(()=>{i.isSuccess&&d(B3(e,s,f,o))},[e,i.isSuccess,s,f,o]),(0,n.useEffect)(()=>{a.isSuccess&&(h(t.meetingDuration),_(t.bufferMinutes))},[t,a.isSuccess]),{draft:u,timezone:f,meetingDuration:m,bufferMinutes:g,now:o,dirty:y||b,isSaving:i.isPending||a.isPending,isSuccess:i.isSuccess||a.isSuccess,isError:i.isError||a.isError,errorMsg:i.error?.message??a.error?.message??``,setMeetingDuration:h,setBufferMinutes:_,patchDay:(e,t)=>{i.reset(),a.reset(),d(n=>({...n,[e]:{...n[e],...t}}))},changeTimezone:e=>{i.reset(),a.reset(),d(t=>B3(t,f,e,o)),p(e)},reset:()=>{i.mutate(null,{onSuccess:()=>{j.success(`Reverted to your branch default hours.`)},onError:()=>{j.error(`Could not revert to branch defaults. Please try again.`)}})},onSave:()=>{i.reset(),a.reset(),y&&i.mutate(v),b&&a.mutate({...t,meetingDuration:m,bufferMinutes:g})}}},L6={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`},R6=({name:e,options:t,selected:n,onSelect:r})=>(0,D.jsx)(`div`,{className:L6.chips,children:t.map(t=>{let i=n===t;return(0,D.jsxs)(`button`,{type:`button`,className:T(L6.chipBtn,i&&L6.chipBtnActive),onClick:()=>{r(t)},children:[i&&(0,D.jsx)(A.span,{layoutId:`chip-${e}`,className:L6.chipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsxs)(`span`,{className:L6.chipLabel,children:[t,`m`]})]},t)})}),z6=({meetingDuration:e,bufferMinutes:t,onDurationChange:n,onBufferChange:r})=>(0,D.jsxs)(`div`,{className:L6.settingsGrid,children:[(0,D.jsxs)(`div`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:L6.fieldLabel,children:`Meeting duration`}),(0,D.jsx)(R6,{name:`duration`,options:wO,selected:e,onSelect:n})]}),(0,D.jsxs)(`div`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:L6.fieldLabel,children:`Buffer between meetings`}),(0,D.jsx)(R6,{name:`buffer`,options:TO,selected:t,onSelect:r})]})]}),B6=({day:e,value:t,onChange:n})=>(0,D.jsxs)(`div`,{className:L6.dayRow,children:[(0,D.jsx)(`button`,{type:`button`,className:T(L6.toggle,t.active&&L6.toggleOn),"aria-pressed":t.active,onClick:()=>{n({active:!t.active})},children:(0,D.jsx)(`span`,{className:L6.toggleKnob})}),(0,D.jsx)(`span`,{className:L6.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.jsxs)(`div`,{className:L6.dayTimes,children:[(0,D.jsx)(YE,{value:e.from,disabled:!t.active,onChange:i=>{let a=[...t.slots];a[r]={...e,from:i},n({slots:a})}}),(0,D.jsx)(`span`,{className:X4.dash,children:`–`}),(0,D.jsx)(YE,{value:e.to,disabled:!t.active,align:`end`,onChange:i=>{let a=[...t.slots];a[r]={...e,to:i},n({slots:a})}}),(0,D.jsx)(`button`,{type:`button`,className:L6.resetBtn,disabled:!t.active||t.slots.length===1,onClick:()=>{n({slots:t.slots.filter((e,t)=>t!==r)})},children:`Delete`})]},e.id)),(0,D.jsx)(`button`,{type:`button`,className:L6.resetBtn,style:{alignSelf:`flex-start`,margin:0},disabled:!t.active,onClick:()=>{n({slots:[...t.slots,{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]})},children:`+ Add Time`})]}),(0,D.jsxs)(`button`,{type:`button`,className:L6.resetBtn,onClick:()=>{n({active:!0,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]})},children:[(0,D.jsx)(Pr,{size:13}),` Reset`]})]}),V6=({timezone:e,branchName:t,now:n,onTimezoneChange:r})=>(0,D.jsxs)(`div`,{className:L6.settingsGrid,children:[(0,D.jsxs)(`div`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:L6.fieldLabel,children:`Timezone`}),(0,D.jsx)(G3,{value:e,now:n,onChange:r}),(0,D.jsx)(`span`,{className:L6.fieldHint,children:`Preview only — set your saved timezone in Profile`})]}),(0,D.jsxs)(`div`,{className:X4.field,children:[(0,D.jsx)(`span`,{className:L6.fieldLabel,children:`Home Branch`}),(0,D.jsx)(`div`,{className:L6.readonlyField,children:t}),(0,D.jsx)(`span`,{className:L6.fieldHint,children:`Assigned from your UAPP account`})]})]}),H6=({isOverride:e,branchName:t,onReset:n})=>(0,D.jsx)(`div`,{className:L6.inheritedBanner,children:e?(0,D.jsxs)(`div`,{className:L6.customBadge,children:[(0,D.jsxs)(`span`,{className:L6.customBadgeText,children:[`Customized Working Hours (overrides `,t,`)`]}),(0,D.jsxs)(`button`,{type:`button`,className:L6.resetToBranchBtn,onClick:n,children:[(0,D.jsx)(ti,{size:13}),` Use Branch Defaults`]})]}):(0,D.jsxs)(`div`,{className:L6.inheritedBadge,children:[(0,D.jsxs)(`span`,{children:[`Inheriting default hours from `,(0,D.jsx)(`strong`,{children:t})]}),(0,D.jsx)(`span`,{className:L6.badgeSub,children:`Modifying the hours below will create a personal override.`})]})}),U6=({statusText:e,disabled:t,onClick:n})=>(0,D.jsxs)(`div`,{className:L6.formFooter,children:[(0,D.jsx)(`span`,{className:L6.formStatus,children:e}),(0,D.jsx)(`button`,{type:`button`,className:L6.saveBtn,disabled:t,onClick:n,children:`Save changes`})]}),W6=(e,t)=>e?`Unsaved changes`:t?`Saved`:``,G6=({initial:e,isOverride:t,branchName:n,prefs:r})=>{let{clock:i}=oN(),a=I6(e,r,i),o=W6(a.dirty,a.isSuccess);return(0,D.jsxs)(`div`,{className:L6.hours,children:[(0,D.jsx)(V6,{timezone:a.timezone,branchName:n,now:a.now,onTimezoneChange:a.changeTimezone}),(0,D.jsx)(z6,{meetingDuration:a.meetingDuration,bufferMinutes:a.bufferMinutes,onDurationChange:a.setMeetingDuration,onBufferChange:a.setBufferMinutes}),(0,D.jsx)(H6,{isOverride:t,branchName:n,onReset:a.reset}),OD.map(e=>(0,D.jsx)(B6,{day:e,value:a.draft[e.id],onChange:t=>{a.patchDay(e.id,t)}},e.id)),a.isError&&(0,D.jsx)(vi,{tone:`error`,title:`Could not save`,children:a.errorMsg}),(0,D.jsx)(U6,{statusText:o,disabled:!a.dirty||a.isSaving,onClick:a.onSave})]})},K6=(e,t,n)=>e?.message??t?.message??n?.message??`Unknown error`,q6=(e,t)=>e?.branches.find(e=>e.id===t)?.name??`your branch`,J6=()=>{let e=fN(),t=KL(),n=vN();if(e.isPending||t.isPending||n.isPending)return(0,D.jsx)(`div`,{className:X4.center,children:(0,D.jsx)(mi,{label:`Loading working hours`})});if(e.isError||t.isError||n.isError)return(0,D.jsx)(vi,{tone:`error`,title:`Could not load working hours`,children:K6(e.error,t.error,n.error)});let r=q6(t.data,n.data.branchId);return(0,D.jsx)(G6,{initial:e.data.weekly,isOverride:e.data.isOverride,branchName:r,prefs:n.data},`${String(e.data.isOverride)}:${e.data.source}`)},Y6={workStart:`09:00`,workEnd:`17:00`,branchId:`uk`},X6=(e,t)=>e===`day`?OD.slice(t,t+1):e===`workweek`?OD.slice(0,5):OD,Z6=e=>{let[t]=e.split(`:`);return Number(t??`0`)},Q6=(e,t,n)=>{if(e!==null)return e;if(t){let e=dI(t,n),r={};for(let t of OD){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 OD)r[e.id]={active:e.id!==`sat`&&e.id!==`sun`,slots:[{id:crypto.randomUUID(),from:`09:00`,to:`17:00`}]};return r},$6=(e,t,n,r)=>t!==``&&t!==n?B3(e,t,n,r):e,e8=e=>{let t=Object.values(e).filter(e=>e.active).flatMap(e=>e.slots),n=t.length>0?Math.min(...t.map(e=>Z6(e.from))):9,r=t.length>0?Math.max(...t.map(e=>Z6(e.to))):17;return{workStart:`${String(Math.max(0,n)).padStart(2,`0`)}:00`,workEnd:`${String(Math.min(24,r)).padStart(2,`0`)}:00`}},t8=e=>{let t=mN(),r=dN().data??null,i=vN().data,a=i??Y6,o=KL(),s=new Date,c=CN(e.timezone,s)-CN(xN(),s),l=new Date(s.getTime()+c*6e4),u=e.view===`month`||e.view===`agenda`,d=t=>e.active.has(t.block.status),f=a.branchId,p=$6((0,n.useMemo)(()=>Q6(r,o.data,f),[r,o.data,f]),i?.availabilityTimezone??``,e.timezone,s),{workStart:m,workEnd:h}=e8(p),g=e.timezone,_=t.data,v=(0,n.useMemo)(()=>{let e=_??[],t=xN();if(g===t)return e;let n=e=>{let n=new Date(e),r=CN(g,n)-CN(t,n);return r===0?e:new Date(n.getTime()+r*6e4).toISOString()};return e.map(e=>new SO({id:e.id,userId:e.userId,title:e.title,status:e.status,start:n(e.start),end:n(e.end),allDay:e.allDay,notes:e.notes,recurrence:e.recurrence}))},[_,g]),y=l4(l,e.weekOffset),b=FO(v,y),x=h4(l,e.monthOffset),S=PO(x[0]??l,x[x.length-1]??l,v);return{query:t,today:l,days:X6(e.view,(l.getDay()+6)%7),cells:u4(l,e.weekOffset),weekOccurrences:b.filter(d),availability:p,workStart:m,workEnd:h,range:E4(b,m,h),monthDates:x,monthAnchor:p4(l,e.monthOffset),monthOccurrences:S.filter(d),summary:u?S:b,rangeText:u?m4(l,e.monthOffset):f4(l,e.weekOffset),defaultStart:x4(UD(y[0]??l),`09:00`)}},n8=({view:e,onView:t})=>(0,D.jsx)(`div`,{className:A6.viewChips,children:T6.map(n=>{let r=e===n.id;return(0,D.jsxs)(`button`,{type:`button`,className:T(A6.viewChip,r&&A6.viewChipActive),onClick:()=>{t(n.id)},children:[r&&(0,D.jsx)(A.span,{layoutId:`schedViewBg`,className:A6.viewChipBg,transition:{type:`spring`,stiffness:420,damping:34}}),(0,D.jsx)(`span`,{className:A6.viewChipLabel,children:n.label})]},n.id)})}),r8=({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:A6.toolbar,children:[(0,D.jsx)(`select`,{className:A6.scheduleSelect,"aria-label":`Calendar`,defaultValue:`my`,children:(0,D.jsx)(`option`,{value:`my`,children:`My Schedule`})}),e!==`hours`&&(0,D.jsx)(G3,{value:c,onChange:l,now:u}),r&&(0,D.jsxs)(`div`,{className:A6.weekNav,children:[(0,D.jsx)(`button`,{type:`button`,className:A6.todayBtn,onClick:o,children:`Today`}),(0,D.jsx)(`button`,{type:`button`,className:A6.navBtn,"aria-label":`Previous week`,onClick:i,children:(0,D.jsx)(Gn,{size:16})}),(0,D.jsx)(`button`,{type:`button`,className:A6.navBtn,"aria-label":`Next week`,onClick:a,children:(0,D.jsx)(Kn,{size:16})}),(0,D.jsx)(`span`,{className:A6.dateLabel,children:n})]}),e!==`hours`&&d!==void 0&&(0,D.jsx)(`button`,{type:`button`,className:T(A6.sidebarToggleBtn,f&&A6.sidebarToggleBtnActive),"aria-label":`Schedule settings`,title:`Schedule settings`,onClick:d,children:(0,D.jsx)(Gr,{size:15})}),(0,D.jsx)(n8,{view:e,onView:t}),(0,D.jsxs)(`button`,{type:`button`,className:A6.newBtn,onClick:s,children:[(0,D.jsx)(Mr,{size:14,strokeWidth:2.5}),` New`]})]}),i8=()=>{let[e,t]=(0,n.useState)(!1),r=k6(),i=t8(r),a=()=>{r.openCreate(i.defaultStart)};return(0,D.jsxs)(`div`,{className:A6.scheduleRoot,children:[(0,D.jsx)(r8,{view:r.view,onView:r.setView,rangeText:i.rangeText,showNav:r.view!==`hours`,onPrev:r.goPrev,onNext:r.goNext,onToday:r.goToday,onNew:a,timezone:r.timezone,setTimezone:r.setTimezone,todayDate:i.today,onToggleSidebar:()=>{t(e=>!e)},isSidebarOpen:e}),r.view===`hours`?(0,D.jsx)(`div`,{className:A6.hoursArea,children:(0,D.jsx)(J6,{})}):(0,D.jsx)(M6,{query:i.query,view:r.view,today:i.today,days:i.days,cells:i.cells,weekOccurrences:i.weekOccurrences,availability:i.availability,workStart:i.workStart,workEnd:i.workEnd,range:i.range,monthDates:i.monthDates,monthAnchor:i.monthAnchor,monthOccurrences:i.monthOccurrences,summary:i.summary,active:r.active,onToggle:r.toggle,onSelectBlock:r.openEdit,onSelectSlot:r.openCreate,onCreate:a,onQuickAdd:r.openQuick,isSidebarOpen:e,onCloseSidebar:()=>{t(!1)}}),r.editor!==null&&(0,D.jsx)(L3,{state:r.editor,timezone:r.timezone,onClose:r.closeEditor})]})},a8=()=>{bQ(`uapp-schedule`,()=>(0,D.jsx)(X1,{path:`/comms/schedule`,children:(0,D.jsx)(i8,{})}))},o8=()=>{xQ(),Z1(),c4(),a8()};exports.CommsProvider=uQ,exports.SDK_MODULE_SCOPES=qG,exports.WidgetRoot=dQ,exports.defineCustomElements=o8,exports.registerBookingsWidget=c4,exports.registerChatWidget=xQ,exports.registerFeedWidget=Z1,exports.registerScheduleWidget=a8;
|
|
56
56
|
//# sourceMappingURL=communication-sdk.cjs.map
|