react-smart-scheduler 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +393 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.es.js +4943 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.umd.js +11 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/scheduler.css +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
(function(V,v){typeof exports=="object"&&typeof module<"u"?v(exports,require("react/jsx-runtime"),require("react"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","react-dom"],v):(V=typeof globalThis<"u"?globalThis:V||self,v(V.ReactSmartScheduler={},V.jsxRuntime,V.React,V.ReactDOM))})(this,function(V,v,l,$e){"use strict";/*!
|
|
2
|
+
* react-smart-scheduler v0.1.0
|
|
3
|
+
* (c) 2026 react-smart-scheduler contributors
|
|
4
|
+
* Released under the MIT License
|
|
5
|
+
* https://github.com/yourname/react-smart-scheduler
|
|
6
|
+
*/const st=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Ce(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function St(e){return"nodeType"in e}function X(e){var t,n;return e?Ce(e)?e:St(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function xt(e){const{Document:t}=X(e);return e instanceof t}function je(e){return Ce(e)?!1:e instanceof X(e).HTMLElement}function Vt(e){return e instanceof X(e).SVGElement}function Oe(e){return e?Ce(e)?e.document:St(e)?xt(e)?e:je(e)||Vt(e)?e.ownerDocument:document:document:document}const de=st?l.useLayoutEffect:l.useEffect;function at(e){const t=l.useRef(e);return de(()=>{t.current=e}),l.useCallback(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.current==null?void 0:t.current(...r)},[])}function tr(){const e=l.useRef(null),t=l.useCallback((r,o)=>{e.current=setInterval(r,o)},[]),n=l.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ze(e,t){t===void 0&&(t=[e]);const n=l.useRef(e);return de(()=>{n.current!==e&&(n.current=e)},t),n}function qe(e,t){const n=l.useRef();return l.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function it(e){const t=at(e),n=l.useRef(null),r=l.useCallback(o=>{o!==n.current&&(t==null||t(o,n.current)),n.current=o},[]);return[n,r]}function ct(e){const t=l.useRef();return l.useEffect(()=>{t.current=e},[e]),t.current}let Et={};function lt(e,t){return l.useMemo(()=>{if(t)return t;const n=Et[e]==null?0:Et[e]+1;return Et[e]=n,e+"-"+n},[e,t])}function Gt(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((s,a)=>{const i=Object.entries(a);for(const[c,u]of i){const d=s[c];d!=null&&(s[c]=d+e*u)}return s},{...t})}}const ke=Gt(1),ut=Gt(-1);function nr(e){return"clientX"in e&&"clientY"in e}function Ct(e){if(!e)return!1;const{KeyboardEvent:t}=X(e.target);return t&&e instanceof t}function rr(e){if(!e)return!1;const{TouchEvent:t}=X(e.target);return t&&e instanceof t}function dt(e){if(rr(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return nr(e)?{x:e.clientX,y:e.clientY}:null}const De=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[De.Translate.toString(e),De.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),Ut="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function or(e){return e.matches(Ut)?e:e.querySelector(Ut)}const sr={display:"none"};function ar(e){let{id:t,value:n}=e;return l.createElement("div",{id:t,style:sr},n)}function ir(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const o={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return l.createElement("div",{id:t,style:o,role:"status","aria-live":r,"aria-atomic":!0},n)}function cr(){const[e,t]=l.useState("");return{announce:l.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Kt=l.createContext(null);function lr(e){const t=l.useContext(Kt);l.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function ur(){const[e]=l.useState(()=>new Set),t=l.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[l.useCallback(r=>{let{type:o,event:s}=r;e.forEach(a=>{var i;return(i=a[o])==null?void 0:i.call(a,s)})},[e]),t]}const dr={draggable:`
|
|
7
|
+
To pick up a draggable item, press the space bar.
|
|
8
|
+
While dragging, use the arrow keys to move the item.
|
|
9
|
+
Press space again to drop the item in its new position, or press escape to cancel.
|
|
10
|
+
`},fr={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function hr(e){let{announcements:t=fr,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=dr}=e;const{announce:s,announcement:a}=cr(),i=lt("DndLiveRegion"),[c,u]=l.useState(!1);if(l.useEffect(()=>{u(!0)},[]),lr(l.useMemo(()=>({onDragStart(f){let{active:h}=f;s(t.onDragStart({active:h}))},onDragMove(f){let{active:h,over:b}=f;t.onDragMove&&s(t.onDragMove({active:h,over:b}))},onDragOver(f){let{active:h,over:b}=f;s(t.onDragOver({active:h,over:b}))},onDragEnd(f){let{active:h,over:b}=f;s(t.onDragEnd({active:h,over:b}))},onDragCancel(f){let{active:h,over:b}=f;s(t.onDragCancel({active:h,over:b}))}}),[s,t])),!c)return null;const d=l.createElement(l.Fragment,null,l.createElement(ar,{id:r,value:o.draggable}),l.createElement(ir,{id:i,announcement:a}));return n?$e.createPortal(d,n):d}var F;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(F||(F={}));function ft(){}function gr(e,t){return l.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function mr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return l.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const re=Object.freeze({x:0,y:0});function vr(e,t){const n=dt(e);if(!n)return"0 0";const r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}function br(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function yr(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function pr(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),a=o-r,i=s-n;if(r<o&&n<s){const c=t.width*t.height,u=e.width*e.height,d=a*i,f=d/(c+u-d);return Number(f.toFixed(4))}return 0}const wr=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const s of r){const{id:a}=s,i=n.get(a);if(i){const c=pr(i,t);c>0&&o.push({id:a,data:{droppableContainer:s,value:c}})}}return o.sort(br)};function Mr(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Qt(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:re}function Dr(e){return function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),s=1;s<r;s++)o[s-1]=arguments[s];return o.reduce((a,i)=>({...a,top:a.top+e*i.y,bottom:a.bottom+e*i.y,left:a.left+e*i.x,right:a.right+e*i.x}),{...n})}}const Sr=Dr(1);function Jt(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function xr(e,t,n){const r=Jt(t);if(!r)return e;const{scaleX:o,scaleY:s,x:a,y:i}=r,c=e.left-a-(1-o)*parseFloat(n),u=e.top-i-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),d=o?e.width/o:e.width,f=s?e.height/s:e.height;return{width:d,height:f,top:u,right:c+d,bottom:u+f,left:c}}const Er={ignoreTransform:!1};function He(e,t){t===void 0&&(t=Er);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:d}=X(e).getComputedStyle(e);u&&(n=xr(n,u,d))}const{top:r,left:o,width:s,height:a,bottom:i,right:c}=n;return{top:r,left:o,width:s,height:a,bottom:i,right:c}}function Zt(e){return He(e,{ignoreTransform:!0})}function Cr(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Or(e,t){return t===void 0&&(t=X(e).getComputedStyle(e)),t.position==="fixed"}function kr(e,t){t===void 0&&(t=X(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(o=>{const s=t[o];return typeof s=="string"?n.test(s):!1})}function Ot(e,t){const n=[];function r(o){if(t!=null&&n.length>=t||!o)return n;if(xt(o)&&o.scrollingElement!=null&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!je(o)||Vt(o)||n.includes(o))return n;const s=X(e).getComputedStyle(o);return o!==e&&kr(o,s)&&n.push(o),Or(o,s)?n:r(o.parentNode)}return e?r(e):n}function Rt(e){const[t]=Ot(e,1);return t??null}function kt(e){return!st||!e?null:Ce(e)?e:St(e)?xt(e)||e===Oe(e).scrollingElement?window:je(e)?e:null:null}function en(e){return Ce(e)?e.scrollX:e.scrollLeft}function tn(e){return Ce(e)?e.scrollY:e.scrollTop}function Nt(e){return{x:en(e),y:tn(e)}}var I;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(I||(I={}));function nn(e){return!st||!e?!1:e===document.scrollingElement}function rn(e){const t={x:0,y:0},n=nn(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},o=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,i=e.scrollLeft>=r.x;return{isTop:o,isLeft:s,isBottom:a,isRight:i,maxScroll:r,minScroll:t}}const Nr={x:.2,y:.2};function Tr(e,t,n,r,o){let{top:s,left:a,right:i,bottom:c}=n;r===void 0&&(r=10),o===void 0&&(o=Nr);const{isTop:u,isBottom:d,isLeft:f,isRight:h}=rn(e),b={x:0,y:0},p={x:0,y:0},m={height:t.height*o.y,width:t.width*o.x};return!u&&s<=t.top+m.height?(b.y=I.Backward,p.y=r*Math.abs((t.top+m.height-s)/m.height)):!d&&c>=t.bottom-m.height&&(b.y=I.Forward,p.y=r*Math.abs((t.bottom-m.height-c)/m.height)),!h&&i>=t.right-m.width?(b.x=I.Forward,p.x=r*Math.abs((t.right-m.width-i)/m.width)):!f&&a<=t.left+m.width&&(b.x=I.Backward,p.x=r*Math.abs((t.left+m.width-a)/m.width)),{direction:b,speed:p}}function Pr(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:a}=window;return{top:0,left:0,right:s,bottom:a,width:s,height:a}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function on(e){return e.reduce((t,n)=>ke(t,Nt(n)),re)}function Ar(e){return e.reduce((t,n)=>t+en(n),0)}function Wr(e){return e.reduce((t,n)=>t+tn(n),0)}function sn(e,t){if(t===void 0&&(t=He),!e)return;const{top:n,left:r,bottom:o,right:s}=t(e);Rt(e)&&(o<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const Lr=[["x",["left","right"],Ar],["y",["top","bottom"],Wr]];class Tt{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Ot(n),o=on(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,a,i]of Lr)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=i(r),d=o[s]-u;return this.rect[c]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Xe{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var o;(o=this.target)==null||o.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function Yr(e){const{EventTarget:t}=X(e);return e instanceof t?e:Oe(e)}function Pt(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var J;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(J||(J={}));function an(e){e.preventDefault()}function Fr(e){e.stopPropagation()}var k;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(k||(k={}));const cn={start:[k.Space,k.Enter],cancel:[k.Esc],end:[k.Space,k.Enter,k.Tab]},Ir=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case k.Right:return{...n,x:n.x+25};case k.Left:return{...n,x:n.x-25};case k.Down:return{...n,y:n.y+25};case k.Up:return{...n,y:n.y-25}}};class ln{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Xe(Oe(n)),this.windowListeners=new Xe(X(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(J.Resize,this.handleCancel),this.windowListeners.add(J.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(J.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&sn(r),n(re)}handleKeyDown(t){if(Ct(t)){const{active:n,context:r,options:o}=this.props,{keyboardCodes:s=cn,coordinateGetter:a=Ir,scrollBehavior:i="smooth"}=o,{code:c}=t;if(s.end.includes(c)){this.handleEnd(t);return}if(s.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,d=u?{x:u.left,y:u.top}:re;this.referenceCoordinates||(this.referenceCoordinates=d);const f=a(t,{active:n,context:r.current,currentCoordinates:d});if(f){const h=ut(f,d),b={x:0,y:0},{scrollableAncestors:p}=r.current;for(const m of p){const g=t.code,{isTop:y,isRight:D,isLeft:M,isBottom:C,maxScroll:w,minScroll:S}=rn(m),x=Pr(m),E={x:Math.min(g===k.Right?x.right-x.width/2:x.right,Math.max(g===k.Right?x.left:x.left+x.width/2,f.x)),y:Math.min(g===k.Down?x.bottom-x.height/2:x.bottom,Math.max(g===k.Down?x.top:x.top+x.height/2,f.y))},T=g===k.Right&&!D||g===k.Left&&!M,W=g===k.Down&&!C||g===k.Up&&!y;if(T&&E.x!==f.x){const P=m.scrollLeft+h.x,B=g===k.Right&&P<=w.x||g===k.Left&&P>=S.x;if(B&&!h.y){m.scrollTo({left:P,behavior:i});return}B?b.x=m.scrollLeft-P:b.x=g===k.Right?m.scrollLeft-w.x:m.scrollLeft-S.x,b.x&&m.scrollBy({left:-b.x,behavior:i});break}else if(W&&E.y!==f.y){const P=m.scrollTop+h.y,B=g===k.Down&&P<=w.y||g===k.Up&&P>=S.y;if(B&&!h.x){m.scrollTo({top:P,behavior:i});return}B?b.y=m.scrollTop-P:b.y=g===k.Down?m.scrollTop-w.y:m.scrollTop-S.y,b.y&&m.scrollBy({top:-b.y,behavior:i});break}}this.handleMove(t,ke(ut(f,this.referenceCoordinates),b))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}ln.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=cn,onActivation:o}=t,{active:s}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const i=s.activatorNode.current;return i&&e.target!==i?!1:(e.preventDefault(),o==null||o({event:e.nativeEvent}),!0)}return!1}}];function un(e){return!!(e&&"distance"in e)}function dn(e){return!!(e&&"delay"in e)}class At{constructor(t,n,r){var o;r===void 0&&(r=Yr(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:s}=t,{target:a}=s;this.props=t,this.events=n,this.document=Oe(a),this.documentListeners=new Xe(this.document),this.listeners=new Xe(r),this.windowListeners=new Xe(X(a)),this.initialCoordinates=(o=dt(s))!=null?o:re,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(J.Resize,this.handleCancel),this.windowListeners.add(J.DragStart,an),this.windowListeners.add(J.VisibilityChange,this.handleCancel),this.windowListeners.add(J.ContextMenu,an),this.documentListeners.add(J.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(dn(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(un(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:o}=this.props;o(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(J.Click,Fr,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(J.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:o,props:s}=this,{onMove:a,options:{activationConstraint:i}}=s;if(!o)return;const c=(n=dt(t))!=null?n:re,u=ut(o,c);if(!r&&i){if(un(i)){if(i.tolerance!=null&&Pt(u,i.tolerance))return this.handleCancel();if(Pt(u,i.distance))return this.handleStart()}if(dn(i)&&Pt(u,i.tolerance))return this.handleCancel();this.handlePending(i,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===k.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Br={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Wt extends At{constructor(t){const{event:n}=t,r=Oe(n.target);super(t,Br,r)}}Wt.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const $r={move:{name:"mousemove"},end:{name:"mouseup"}};var Lt;(function(e){e[e.RightClick=2]="RightClick"})(Lt||(Lt={}));class jr extends At{constructor(t){super(t,$r,Oe(t.event.target))}}jr.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Lt.RightClick?!1:(r==null||r({event:n}),!0)}}];const Yt={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class zr extends At{constructor(t){super(t,Yt)}static setup(){return window.addEventListener(Yt.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Yt.move.name,t)};function t(){}}}zr.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return o.length>1?!1:(r==null||r({event:n}),!0)}}];var _e;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(_e||(_e={}));var ht;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(ht||(ht={}));function qr(e){let{acceleration:t,activator:n=_e.Pointer,canScroll:r,draggingRect:o,enabled:s,interval:a=5,order:i=ht.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:d,delta:f,threshold:h}=e;const b=Xr({delta:f,disabled:!s}),[p,m]=tr(),g=l.useRef({x:0,y:0}),y=l.useRef({x:0,y:0}),D=l.useMemo(()=>{switch(n){case _e.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case _e.DraggableRect:return o}},[n,o,c]),M=l.useRef(null),C=l.useCallback(()=>{const S=M.current;if(!S)return;const x=g.current.x*y.current.x,E=g.current.y*y.current.y;S.scrollBy(x,E)},[]),w=l.useMemo(()=>i===ht.TreeOrder?[...u].reverse():u,[i,u]);l.useEffect(()=>{if(!s||!u.length||!D){m();return}for(const S of w){if((r==null?void 0:r(S))===!1)continue;const x=u.indexOf(S),E=d[x];if(!E)continue;const{direction:T,speed:W}=Tr(S,E,D,t,h);for(const P of["x","y"])b[P][T[P]]||(W[P]=0,T[P]=0);if(W.x>0||W.y>0){m(),M.current=S,p(C,a),g.current=W,y.current=T;return}}g.current={x:0,y:0},y.current={x:0,y:0},m()},[t,C,r,m,s,a,JSON.stringify(D),JSON.stringify(b),p,u,w,d,JSON.stringify(h)])}const Hr={x:{[I.Backward]:!1,[I.Forward]:!1},y:{[I.Backward]:!1,[I.Forward]:!1}};function Xr(e){let{delta:t,disabled:n}=e;const r=ct(t);return qe(o=>{if(n||!r||!o)return Hr;const s={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[I.Backward]:o.x[I.Backward]||s.x===-1,[I.Forward]:o.x[I.Forward]||s.x===1},y:{[I.Backward]:o.y[I.Backward]||s.y===-1,[I.Forward]:o.y[I.Forward]||s.y===1}}},[n,t,r])}function _r(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return qe(o=>{var s;return t==null?null:(s=r??o)!=null?s:null},[r,t])}function Vr(e,t){return l.useMemo(()=>e.reduce((n,r)=>{const{sensor:o}=r,s=o.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...s]},[]),[e,t])}var Ve;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ve||(Ve={}));var Ft;(function(e){e.Optimized="optimized"})(Ft||(Ft={}));const fn=new Map;function Gr(e,t){let{dragging:n,dependencies:r,config:o}=t;const[s,a]=l.useState(null),{frequency:i,measure:c,strategy:u}=o,d=l.useRef(e),f=g(),h=ze(f),b=l.useCallback(function(y){y===void 0&&(y=[]),!h.current&&a(D=>D===null?y:D.concat(y.filter(M=>!D.includes(M))))},[h]),p=l.useRef(null),m=qe(y=>{if(f&&!n)return fn;if(!y||y===fn||d.current!==e||s!=null){const D=new Map;for(let M of e){if(!M)continue;if(s&&s.length>0&&!s.includes(M.id)&&M.rect.current){D.set(M.id,M.rect.current);continue}const C=M.node.current,w=C?new Tt(c(C),C):null;M.rect.current=w,w&&D.set(M.id,w)}return D}return y},[e,s,n,f,c]);return l.useEffect(()=>{d.current=e},[e]),l.useEffect(()=>{f||b()},[n,f]),l.useEffect(()=>{s&&s.length>0&&a(null)},[JSON.stringify(s)]),l.useEffect(()=>{f||typeof i!="number"||p.current!==null||(p.current=setTimeout(()=>{b(),p.current=null},i))},[i,f,b,...r]),{droppableRects:m,measureDroppableContainers:b,measuringScheduled:s!=null};function g(){switch(u){case Ve.Always:return!1;case Ve.BeforeDragging:return n;default:return!n}}}function It(e,t){return qe(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Ur(e,t){return It(e,t)}function Kr(e){let{callback:t,disabled:n}=e;const r=at(t),o=l.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return l.useEffect(()=>()=>o==null?void 0:o.disconnect(),[o]),o}function gt(e){let{callback:t,disabled:n}=e;const r=at(t),o=l.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return l.useEffect(()=>()=>o==null?void 0:o.disconnect(),[o]),o}function Qr(e){return new Tt(He(e),e)}function hn(e,t,n){t===void 0&&(t=Qr);const[r,o]=l.useState(null);function s(){o(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const d=t(e);return JSON.stringify(c)===JSON.stringify(d)?c:d})}const a=Kr({callback(c){if(e)for(const u of c){const{type:d,target:f}=u;if(d==="childList"&&f instanceof HTMLElement&&f.contains(e)){s();break}}}}),i=gt({callback:s});return de(()=>{s(),e?(i==null||i.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(i==null||i.disconnect(),a==null||a.disconnect())},[e]),r}function Jr(e){const t=It(e);return Qt(e,t)}const gn=[];function Zr(e){const t=l.useRef(e),n=qe(r=>e?r&&r!==gn&&e&&t.current&&e.parentNode===t.current.parentNode?r:Ot(e):gn,[e]);return l.useEffect(()=>{t.current=e},[e]),n}function Rr(e){const[t,n]=l.useState(null),r=l.useRef(e),o=l.useCallback(s=>{const a=kt(s.target);a&&n(i=>i?(i.set(a,Nt(a)),new Map(i)):null)},[]);return l.useEffect(()=>{const s=r.current;if(e!==s){a(s);const i=e.map(c=>{const u=kt(c);return u?(u.addEventListener("scroll",o,{passive:!0}),[u,Nt(u)]):null}).filter(c=>c!=null);n(i.length?new Map(i):null),r.current=e}return()=>{a(e),a(s)};function a(i){i.forEach(c=>{const u=kt(c);u==null||u.removeEventListener("scroll",o)})}},[o,e]),l.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,a)=>ke(s,a),re):on(e):re,[e,t])}function mn(e,t){t===void 0&&(t=[]);const n=l.useRef(null);return l.useEffect(()=>{n.current=null},t),l.useEffect(()=>{const r=e!==re;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?ut(e,n.current):re}function eo(e){l.useEffect(()=>{if(!st)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function to(e,t){return l.useMemo(()=>e.reduce((n,r)=>{let{eventName:o,handler:s}=r;return n[o]=a=>{s(a,t)},n},{}),[e,t])}function vn(e){return l.useMemo(()=>e?Cr(e):null,[e])}const bn=[];function no(e,t){t===void 0&&(t=He);const[n]=e,r=vn(n?X(n):null),[o,s]=l.useState(bn);function a(){s(()=>e.length?e.map(c=>nn(c)?r:new Tt(t(c),c)):bn)}const i=gt({callback:a});return de(()=>{i==null||i.disconnect(),a(),e.forEach(c=>i==null?void 0:i.observe(c))},[e]),o}function yn(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return je(t)?t:e}function ro(e){let{measure:t}=e;const[n,r]=l.useState(null),o=l.useCallback(u=>{for(const{target:d}of u)if(je(d)){r(f=>{const h=t(d);return f?{...f,width:h.width,height:h.height}:h});break}},[t]),s=gt({callback:o}),a=l.useCallback(u=>{const d=yn(u);s==null||s.disconnect(),d&&(s==null||s.observe(d)),r(d?t(d):null)},[t,s]),[i,c]=it(a);return l.useMemo(()=>({nodeRef:i,rect:n,setRef:c}),[n,i,c])}const oo=[{sensor:Wt,options:{}},{sensor:ln,options:{}}],so={current:{}},mt={draggable:{measure:Zt},droppable:{measure:Zt,strategy:Ve.WhileDragging,frequency:Ft.Optimized},dragOverlay:{measure:He}};class Ge extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const ao={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Ge,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:ft},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:mt,measureDroppableContainers:ft,windowRect:null,measuringScheduled:!1},pn={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:ft,draggableNodes:new Map,over:null,measureDroppableContainers:ft},Ue=l.createContext(pn),wn=l.createContext(ao);function io(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Ge}}}function co(e,t){switch(t.type){case F.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case F.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case F.DragEnd:case F.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case F.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Ge(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case F.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const a=new Ge(e.droppable.containers);return a.set(n,{...s,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case F.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const s=new Ge(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function lo(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=l.useContext(Ue),s=ct(r),a=ct(n==null?void 0:n.id);return l.useEffect(()=>{if(!t&&!r&&s&&a!=null){if(!Ct(s)||document.activeElement===s.target)return;const i=o.get(a);if(!i)return;const{activatorNode:c,node:u}=i;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const d of[c.current,u.current]){if(!d)continue;const f=or(d);if(f){f.focus();break}}})}},[r,t,o,a,s]),null}function Mn(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((o,s)=>s({transform:o,...r}),n):n}function uo(e){return l.useMemo(()=>({draggable:{...mt.draggable,...e==null?void 0:e.draggable},droppable:{...mt.droppable,...e==null?void 0:e.droppable},dragOverlay:{...mt.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function fo(e){let{activeNode:t,measure:n,initialRect:r,config:o=!0}=e;const s=l.useRef(!1),{x:a,y:i}=typeof o=="boolean"?{x:o,y:o}:o;de(()=>{if(!a&&!i||!t){s.current=!1;return}if(s.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const d=n(u),f=Qt(d,r);if(a||(f.x=0),i||(f.y=0),s.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const h=Rt(u);h&&h.scrollBy({top:f.y,left:f.x})}},[t,a,i,r,n])}const vt=l.createContext({...re,scaleX:1,scaleY:1});var ge;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(ge||(ge={}));const ho=l.memo(function(t){var n,r,o,s;let{id:a,accessibility:i,autoScroll:c=!0,children:u,sensors:d=oo,collisionDetection:f=wr,measuring:h,modifiers:b,...p}=t;const m=l.useReducer(co,void 0,io),[g,y]=m,[D,M]=ur(),[C,w]=l.useState(ge.Uninitialized),S=C===ge.Initialized,{draggable:{active:x,nodes:E,translate:T},droppable:{containers:W}}=g,P=x!=null?E.get(x):null,B=l.useRef({initial:null,translated:null}),q=l.useMemo(()=>{var H;return x!=null?{id:x,data:(H=P==null?void 0:P.data)!=null?H:so,rect:B}:null},[x,P]),Y=l.useRef(null),[ie,Pe]=l.useState(null),[oe,wt]=l.useState(null),R=ze(p,Object.values(p)),Ae=lt("DndDescribedBy",a),Re=l.useMemo(()=>W.getEnabled(),[W]),A=uo(h),{droppableRects:$,measureDroppableContainers:se,measuringScheduled:ee}=Gr(Re,{dragging:S,dependencies:[T.x,T.y],config:A.droppable}),_=_r(E,x),et=l.useMemo(()=>oe?dt(oe):null,[oe]),ae=Oa(),fe=Ur(_,A.draggable.measure);fo({activeNode:x!=null?E.get(x):null,config:ae.layoutShiftCompensation,initialRect:fe,measure:A.draggable.measure});const j=hn(_,A.draggable.measure,fe),ce=hn(_?_.parentElement:null),te=l.useRef({activatorEvent:null,active:null,activeNode:_,collisionRect:null,collisions:null,droppableRects:$,draggableNodes:E,draggingNode:null,draggingNodeRect:null,droppableContainers:W,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),We=W.getNodeFor((n=te.current.over)==null?void 0:n.id),G=ro({measure:A.dragOverlay.measure}),Le=(r=G.nodeRef.current)!=null?r:_,Ye=S?(o=G.rect)!=null?o:j:null,Gn=!!(G.nodeRef.current&&G.rect),Un=Jr(Gn?null:j),Ht=vn(Le?X(Le):null),be=Zr(S?We??_:null),Mt=no(be),Dt=Mn(b,{transform:{x:T.x-Un.x,y:T.y-Un.y,scaleX:1,scaleY:1},activatorEvent:oe,active:q,activeNodeRect:j,containerNodeRect:ce,draggingNodeRect:Ye,over:te.current.over,overlayNodeRect:G.rect,scrollableAncestors:be,scrollableAncestorRects:Mt,windowRect:Ht}),Kn=et?ke(et,T):null,Qn=Rr(be),wa=mn(Qn),Ma=mn(Qn,[j]),Fe=ke(Dt,wa),Ie=Ye?Sr(Ye,Dt):null,tt=q&&Ie?f({active:q,collisionRect:Ie,droppableRects:$,droppableContainers:Re,pointerCoordinates:Kn}):null,Jn=yr(tt,"id"),[ye,Zn]=l.useState(null),Da=Gn?Dt:ke(Dt,Ma),Sa=Mr(Da,(s=ye==null?void 0:ye.rect)!=null?s:null,j),Xt=l.useRef(null),Rn=l.useCallback((H,U)=>{let{sensor:K,options:pe}=U;if(Y.current==null)return;const ne=E.get(Y.current);if(!ne)return;const Q=H.nativeEvent,le=new K({active:Y.current,activeNode:ne,event:Q,options:pe,context:te,onAbort(z){if(!E.get(z))return;const{onDragAbort:ue}=R.current,he={id:z};ue==null||ue(he),D({type:"onDragAbort",event:he})},onPending(z,we,ue,he){if(!E.get(z))return;const{onDragPending:rt}=R.current,Me={id:z,constraint:we,initialCoordinates:ue,offset:he};rt==null||rt(Me),D({type:"onDragPending",event:Me})},onStart(z){const we=Y.current;if(we==null)return;const ue=E.get(we);if(!ue)return;const{onDragStart:he}=R.current,nt={activatorEvent:Q,active:{id:we,data:ue.data,rect:B}};$e.unstable_batchedUpdates(()=>{he==null||he(nt),w(ge.Initializing),y({type:F.DragStart,initialCoordinates:z,active:we}),D({type:"onDragStart",event:nt}),Pe(Xt.current),wt(Q)})},onMove(z){y({type:F.DragMove,coordinates:z})},onEnd:Be(F.DragEnd),onCancel:Be(F.DragCancel)});Xt.current=le;function Be(z){return async function(){const{active:ue,collisions:he,over:nt,scrollAdjustedTranslate:rt}=te.current;let Me=null;if(ue&&rt){const{cancelDrop:ot}=R.current;Me={activatorEvent:Q,active:ue,collisions:he,delta:rt,over:nt},z===F.DragEnd&&typeof ot=="function"&&await Promise.resolve(ot(Me))&&(z=F.DragCancel)}Y.current=null,$e.unstable_batchedUpdates(()=>{y({type:z}),w(ge.Uninitialized),Zn(null),Pe(null),wt(null),Xt.current=null;const ot=z===F.DragEnd?"onDragEnd":"onDragCancel";if(Me){const _t=R.current[ot];_t==null||_t(Me),D({type:ot,event:Me})}})}}},[E]),xa=l.useCallback((H,U)=>(K,pe)=>{const ne=K.nativeEvent,Q=E.get(pe);if(Y.current!==null||!Q||ne.dndKit||ne.defaultPrevented)return;const le={active:Q};H(K,U.options,le)===!0&&(ne.dndKit={capturedBy:U.sensor},Y.current=pe,Rn(K,U))},[E,Rn]),er=Vr(d,xa);eo(d),de(()=>{j&&C===ge.Initializing&&w(ge.Initialized)},[j,C]),l.useEffect(()=>{const{onDragMove:H}=R.current,{active:U,activatorEvent:K,collisions:pe,over:ne}=te.current;if(!U||!K)return;const Q={active:U,activatorEvent:K,collisions:pe,delta:{x:Fe.x,y:Fe.y},over:ne};$e.unstable_batchedUpdates(()=>{H==null||H(Q),D({type:"onDragMove",event:Q})})},[Fe.x,Fe.y]),l.useEffect(()=>{const{active:H,activatorEvent:U,collisions:K,droppableContainers:pe,scrollAdjustedTranslate:ne}=te.current;if(!H||Y.current==null||!U||!ne)return;const{onDragOver:Q}=R.current,le=pe.get(Jn),Be=le&&le.rect.current?{id:le.id,rect:le.rect.current,data:le.data,disabled:le.disabled}:null,z={active:H,activatorEvent:U,collisions:K,delta:{x:ne.x,y:ne.y},over:Be};$e.unstable_batchedUpdates(()=>{Zn(Be),Q==null||Q(z),D({type:"onDragOver",event:z})})},[Jn]),de(()=>{te.current={activatorEvent:oe,active:q,activeNode:_,collisionRect:Ie,collisions:tt,droppableRects:$,draggableNodes:E,draggingNode:Le,draggingNodeRect:Ye,droppableContainers:W,over:ye,scrollableAncestors:be,scrollAdjustedTranslate:Fe},B.current={initial:Ye,translated:Ie}},[q,_,tt,Ie,E,Le,Ye,$,W,ye,be,Fe]),qr({...ae,delta:T,draggingRect:Ie,pointerCoordinates:Kn,scrollableAncestors:be,scrollableAncestorRects:Mt});const Ea=l.useMemo(()=>({active:q,activeNode:_,activeNodeRect:j,activatorEvent:oe,collisions:tt,containerNodeRect:ce,dragOverlay:G,draggableNodes:E,droppableContainers:W,droppableRects:$,over:ye,measureDroppableContainers:se,scrollableAncestors:be,scrollableAncestorRects:Mt,measuringConfiguration:A,measuringScheduled:ee,windowRect:Ht}),[q,_,j,oe,tt,ce,G,E,W,$,ye,se,be,Mt,A,ee,Ht]),Ca=l.useMemo(()=>({activatorEvent:oe,activators:er,active:q,activeNodeRect:j,ariaDescribedById:{draggable:Ae},dispatch:y,draggableNodes:E,over:ye,measureDroppableContainers:se}),[oe,er,q,j,y,Ae,E,ye,se]);return l.createElement(Kt.Provider,{value:M},l.createElement(Ue.Provider,{value:Ca},l.createElement(wn.Provider,{value:Ea},l.createElement(vt.Provider,{value:Sa},u)),l.createElement(lo,{disabled:(i==null?void 0:i.restoreFocus)===!1})),l.createElement(hr,{...i,hiddenTextDescribedById:Ae}));function Oa(){const H=(ie==null?void 0:ie.autoScrollEnabled)===!1,U=typeof c=="object"?c.enabled===!1:c===!1,K=S&&!H&&!U;return typeof c=="object"?{...c,enabled:K}:{enabled:K}}}),go=l.createContext(null),Dn="button",mo="Draggable";function Sn(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const s=lt(mo),{activators:a,activatorEvent:i,active:c,activeNodeRect:u,ariaDescribedById:d,draggableNodes:f,over:h}=l.useContext(Ue),{role:b=Dn,roleDescription:p="draggable",tabIndex:m=0}=o??{},g=(c==null?void 0:c.id)===t,y=l.useContext(g?vt:go),[D,M]=it(),[C,w]=it(),S=to(a,t),x=ze(n);de(()=>(f.set(t,{id:t,key:s,node:D,activatorNode:C,data:x}),()=>{const T=f.get(t);T&&T.key===s&&f.delete(t)}),[f,t]);const E=l.useMemo(()=>({role:b,tabIndex:m,"aria-disabled":r,"aria-pressed":g&&b===Dn?!0:void 0,"aria-roledescription":p,"aria-describedby":d.draggable}),[r,b,m,g,p,d.draggable]);return{active:c,activatorEvent:i,activeNodeRect:u,attributes:E,isDragging:g,listeners:r?void 0:S,node:D,over:h,setNodeRef:M,setActivatorNodeRef:w,transform:y}}function vo(){return l.useContext(wn)}const bo="Droppable",yo={timeout:25};function xn(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const s=lt(bo),{active:a,dispatch:i,over:c,measureDroppableContainers:u}=l.useContext(Ue),d=l.useRef({disabled:n}),f=l.useRef(!1),h=l.useRef(null),b=l.useRef(null),{disabled:p,updateMeasurementsFor:m,timeout:g}={...yo,...o},y=ze(m??r),D=l.useCallback(()=>{if(!f.current){f.current=!0;return}b.current!=null&&clearTimeout(b.current),b.current=setTimeout(()=>{u(Array.isArray(y.current)?y.current:[y.current]),b.current=null},g)},[g]),M=gt({callback:D,disabled:p||!a}),C=l.useCallback((E,T)=>{M&&(T&&(M.unobserve(T),f.current=!1),E&&M.observe(E))},[M]),[w,S]=it(C),x=ze(t);return l.useEffect(()=>{!M||!w.current||(M.disconnect(),f.current=!1,M.observe(w.current))},[w,M]),l.useEffect(()=>(i({type:F.RegisterDroppable,element:{id:r,key:s,disabled:n,node:w,rect:h,data:x}}),()=>i({type:F.UnregisterDroppable,key:s,id:r})),[r]),l.useEffect(()=>{n!==d.current.disabled&&(i({type:F.SetDroppableDisabled,id:r,key:s,disabled:n}),d.current.disabled=n)},[r,s,n,i]),{active:a,rect:h,isOver:(c==null?void 0:c.id)===r,node:w,over:c,setNodeRef:S}}function po(e){let{animation:t,children:n}=e;const[r,o]=l.useState(null),[s,a]=l.useState(null),i=ct(n);return!n&&!r&&i&&o(i),de(()=>{if(!s)return;const c=r==null?void 0:r.key,u=r==null?void 0:r.props.id;if(c==null||u==null){o(null);return}Promise.resolve(t(u,s)).then(()=>{o(null)})},[t,r,s]),l.createElement(l.Fragment,null,n,r?l.cloneElement(r,{ref:a}):null)}const wo={x:0,y:0,scaleX:1,scaleY:1};function Mo(e){let{children:t}=e;return l.createElement(Ue.Provider,{value:pn},l.createElement(vt.Provider,{value:wo},t))}const Do={position:"fixed",touchAction:"none"},So=e=>Ct(e)?"transform 250ms ease":void 0,xo=l.forwardRef((e,t)=>{let{as:n,activatorEvent:r,adjustScale:o,children:s,className:a,rect:i,style:c,transform:u,transition:d=So}=e;if(!i)return null;const f=o?u:{...u,scaleX:1,scaleY:1},h={...Do,width:i.width,height:i.height,top:i.top,left:i.left,transform:De.Transform.toString(f),transformOrigin:o&&r?vr(r,i):void 0,transition:typeof d=="function"?d(r):d,...c};return l.createElement(n,{className:a,style:h,ref:t},s)}),Eo={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:De.Transform.toString(t)},{transform:De.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t;const o={},{styles:s,className:a}=e;if(s!=null&&s.active)for(const[i,c]of Object.entries(s.active))c!==void 0&&(o[i]=n.node.style.getPropertyValue(i),n.node.style.setProperty(i,c));if(s!=null&&s.dragOverlay)for(const[i,c]of Object.entries(s.dragOverlay))c!==void 0&&r.node.style.setProperty(i,c);return a!=null&&a.active&&n.node.classList.add(a.active),a!=null&&a.dragOverlay&&r.node.classList.add(a.dragOverlay),function(){for(const[c,u]of Object.entries(o))n.node.style.setProperty(c,u);a!=null&&a.active&&n.node.classList.remove(a.active)}})({styles:{active:{opacity:"0"}}})};function Co(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:o}=e;return at((s,a)=>{if(t===null)return;const i=n.get(s);if(!i)return;const c=i.node.current;if(!c)return;const u=yn(a);if(!u)return;const{transform:d}=X(a).getComputedStyle(a),f=Jt(d);if(!f)return;const h=typeof t=="function"?t:Oo(t);return sn(c,o.draggable.measure),h({active:{id:s,data:i.data,node:c,rect:o.draggable.measure(c)},draggableNodes:n,dragOverlay:{node:a,rect:o.dragOverlay.measure(u)},droppableContainers:r,measuringConfiguration:o,transform:f})})}function Oo(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...Eo,...e};return s=>{let{active:a,dragOverlay:i,transform:c,...u}=s;if(!t)return;const d={x:i.rect.left-a.rect.left,y:i.rect.top-a.rect.top},f={scaleX:c.scaleX!==1?a.rect.width*c.scaleX/i.rect.width:1,scaleY:c.scaleY!==1?a.rect.height*c.scaleY/i.rect.height:1},h={x:c.x-d.x,y:c.y-d.y,...f},b=o({...u,active:a,dragOverlay:i,transform:{initial:c,final:h}}),[p]=b,m=b[b.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;const g=r==null?void 0:r({active:a,dragOverlay:i,...u}),y=i.node.animate(b,{duration:t,easing:n,fill:"forwards"});return new Promise(D=>{y.onfinish=()=>{g==null||g(),D()}})}}let En=0;function ko(e){return l.useMemo(()=>{if(e!=null)return En++,En},[e])}const No=l.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:o,transition:s,modifiers:a,wrapperElement:i="div",className:c,zIndex:u=999}=e;const{activatorEvent:d,active:f,activeNodeRect:h,containerNodeRect:b,draggableNodes:p,droppableContainers:m,dragOverlay:g,over:y,measuringConfiguration:D,scrollableAncestors:M,scrollableAncestorRects:C,windowRect:w}=vo(),S=l.useContext(vt),x=ko(f==null?void 0:f.id),E=Mn(a,{activatorEvent:d,active:f,activeNodeRect:h,containerNodeRect:b,draggingNodeRect:g.rect,over:y,overlayNodeRect:g.rect,scrollableAncestors:M,scrollableAncestorRects:C,transform:S,windowRect:w}),T=It(h),W=Co({config:r,draggableNodes:p,droppableContainers:m,measuringConfiguration:D}),P=T?g.setRef:void 0;return l.createElement(Mo,null,l.createElement(po,{animation:W},f&&x?l.createElement(xo,{key:x,id:f.id,ref:P,as:i,activatorEvent:d,adjustScale:t,className:c,transition:s,rect:T,style:{zIndex:u,...o},transform:E},n):null))});function To(e,t,n){const r={...e};return t.top+e.y<=n.top?r.y=n.top-t.top:t.bottom+e.y>=n.top+n.height&&(r.y=n.top+n.height-t.bottom),t.left+e.x<=n.left?r.x=n.left-t.left:t.right+e.x>=n.left+n.width&&(r.x=n.left+n.width-t.right),r}const Po=e=>{let{transform:t,draggingNodeRect:n,windowRect:r}=e;return!n||!r?t:To(t,n,r)};function N(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Z(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Se(e,t){const n=N(e);return isNaN(t)?Z(e,NaN):(t&&n.setDate(n.getDate()+t),n)}function Cn(e,t){const n=N(e);if(isNaN(t))return Z(e,NaN);if(!t)return n;const r=n.getDate(),o=Z(e,n.getTime());o.setMonth(n.getMonth()+t+1,0);const s=o.getDate();return r>=s?o:(n.setFullYear(o.getFullYear(),o.getMonth(),r),n)}function Ao(e,t){const n=+N(e);return Z(e,n+t)}const On=6048e5,Wo=864e5,kn=6e4;let Lo={};function Ke(){return Lo}function me(e,t){var i,c,u,d;const n=Ke(),r=(t==null?void 0:t.weekStartsOn)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.weekStartsOn)??0,o=N(e),s=o.getDay(),a=(s<r?7:0)+s-r;return o.setDate(o.getDate()-a),o.setHours(0,0,0,0),o}function bt(e){return me(e,{weekStartsOn:1})}function Nn(e){const t=N(e),n=t.getFullYear(),r=Z(e,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const o=bt(r),s=Z(e,0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);const a=bt(s);return t.getTime()>=o.getTime()?n+1:t.getTime()>=a.getTime()?n:n-1}function xe(e){const t=N(e);return t.setHours(0,0,0,0),t}function Tn(e){const t=N(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Yo(e,t){const n=xe(e),r=xe(t),o=+n-Tn(n),s=+r-Tn(r);return Math.round((o-s)/Wo)}function Fo(e){const t=Nn(e),n=Z(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),bt(n)}function Ne(e,t){return Ao(e,t*kn)}function Pn(e,t){const n=t*7;return Se(e,n)}function Io(e){return Z(e,Date.now())}function Bo(e,t){const n=xe(e),r=xe(t);return+n==+r}function $o(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function jo(e){if(!$o(e)&&typeof e!="number")return!1;const t=N(e);return!isNaN(Number(t))}function zo(e){return t=>{const n=Math.trunc,r=n(t);return r===0?0:r}}function qo(e,t){return+N(e)-+N(t)}function Bt(e,t,n){const r=qo(e,t)/kn;return zo()(r)}function Ho(e){const t=N(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function An(e,t){const n=N(e.start),r=N(e.end);let o=+n>+r;const s=o?+n:+r,a=o?r:n;a.setHours(0,0,0,0);let i=1;const c=[];for(;+a<=s;)c.push(N(a)),a.setDate(a.getDate()+i),a.setHours(0,0,0,0);return o?c.reverse():c}function Xo(e){const t=N(e);return t.setDate(1),t.setHours(0,0,0,0),t}function _o(e){const t=N(e),n=Z(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}function $t(e,t){var i,c,u,d;const n=Ke(),r=(t==null?void 0:t.weekStartsOn)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??n.weekStartsOn??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.weekStartsOn)??0,o=N(e),s=o.getDay(),a=(s<r?-7:0)+6-(s-r);return o.setDate(o.getDate()+a),o.setHours(23,59,59,999),o}const Vo={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Go=(e,t,n)=>{let r;const o=Vo[e];return typeof o=="string"?r=o:t===1?r=o.one:r=o.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function jt(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const Uo={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Ko={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Qo={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Jo={date:jt({formats:Uo,defaultWidth:"full"}),time:jt({formats:Ko,defaultWidth:"full"}),dateTime:jt({formats:Qo,defaultWidth:"full"})},Zo={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Ro=(e,t,n,r)=>Zo[e];function Qe(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let o;if(r==="formatting"&&e.formattingValues){const a=e.defaultFormattingWidth||e.defaultWidth,i=n!=null&&n.width?String(n.width):a;o=e.formattingValues[i]||e.formattingValues[a]}else{const a=e.defaultWidth,i=n!=null&&n.width?String(n.width):e.defaultWidth;o=e.values[i]||e.values[a]}const s=e.argumentCallback?e.argumentCallback(t):t;return o[s]}}const es={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ts={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},ns={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},rs={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},os={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ss={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},as={ordinalNumber:(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Qe({values:es,defaultWidth:"wide"}),quarter:Qe({values:ts,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Qe({values:ns,defaultWidth:"wide"}),day:Qe({values:rs,defaultWidth:"wide"}),dayPeriod:Qe({values:os,defaultWidth:"wide",formattingValues:ss,defaultFormattingWidth:"wide"})};function Je(e){return(t,n={})=>{const r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(o);if(!s)return null;const a=s[0],i=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(i)?cs(i,f=>f.test(a)):is(i,f=>f.test(a));let u;u=e.valueCallback?e.valueCallback(c):c,u=n.valueCallback?n.valueCallback(u):u;const d=t.slice(a.length);return{value:u,rest:d}}}function is(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function cs(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function ls(e){return(t,n={})=>{const r=t.match(e.matchPattern);if(!r)return null;const o=r[0],s=t.match(e.parsePattern);if(!s)return null;let a=e.valueCallback?e.valueCallback(s[0]):s[0];a=n.valueCallback?n.valueCallback(a):a;const i=t.slice(o.length);return{value:a,rest:i}}}const us=/^(\d+)(th|st|nd|rd)?/i,ds=/\d+/i,fs={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},hs={any:[/^b/i,/^(a|c)/i]},gs={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ms={any:[/1/i,/2/i,/3/i,/4/i]},vs={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},bs={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ys={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},ps={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},ws={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Ms={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ds={ordinalNumber:ls({matchPattern:us,parsePattern:ds,valueCallback:e=>parseInt(e,10)}),era:Je({matchPatterns:fs,defaultMatchWidth:"wide",parsePatterns:hs,defaultParseWidth:"any"}),quarter:Je({matchPatterns:gs,defaultMatchWidth:"wide",parsePatterns:ms,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Je({matchPatterns:vs,defaultMatchWidth:"wide",parsePatterns:bs,defaultParseWidth:"any"}),day:Je({matchPatterns:ys,defaultMatchWidth:"wide",parsePatterns:ps,defaultParseWidth:"any"}),dayPeriod:Je({matchPatterns:ws,defaultMatchWidth:"any",parsePatterns:Ms,defaultParseWidth:"any"})},Ss={code:"en-US",formatDistance:Go,formatLong:Jo,formatRelative:Ro,localize:as,match:Ds,options:{weekStartsOn:0,firstWeekContainsDate:1}};function xs(e){const t=N(e);return Yo(t,_o(t))+1}function Es(e){const t=N(e),n=+bt(t)-+Fo(t);return Math.round(n/On)+1}function Wn(e,t){var d,f,h,b;const n=N(e),r=n.getFullYear(),o=Ke(),s=(t==null?void 0:t.firstWeekContainsDate)??((f=(d=t==null?void 0:t.locale)==null?void 0:d.options)==null?void 0:f.firstWeekContainsDate)??o.firstWeekContainsDate??((b=(h=o.locale)==null?void 0:h.options)==null?void 0:b.firstWeekContainsDate)??1,a=Z(e,0);a.setFullYear(r+1,0,s),a.setHours(0,0,0,0);const i=me(a,t),c=Z(e,0);c.setFullYear(r,0,s),c.setHours(0,0,0,0);const u=me(c,t);return n.getTime()>=i.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function Cs(e,t){var i,c,u,d;const n=Ke(),r=(t==null?void 0:t.firstWeekContainsDate)??((c=(i=t==null?void 0:t.locale)==null?void 0:i.options)==null?void 0:c.firstWeekContainsDate)??n.firstWeekContainsDate??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.firstWeekContainsDate)??1,o=Wn(e,t),s=Z(e,0);return s.setFullYear(o,0,r),s.setHours(0,0,0,0),me(s,t)}function Os(e,t){const n=N(e),r=+me(n,t)-+Cs(n,t);return Math.round(r/On)+1}function O(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const ve={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return O(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):O(n+1,2)},d(e,t){return O(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return O(e.getHours()%12||12,t.length)},H(e,t){return O(e.getHours(),t.length)},m(e,t){return O(e.getMinutes(),t.length)},s(e,t){return O(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),o=Math.trunc(r*Math.pow(10,n-3));return O(o,t.length)}},Te={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Ln={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return ve.y(e,t)},Y:function(e,t,n,r){const o=Wn(e,r),s=o>0?o:1-o;if(t==="YY"){const a=s%100;return O(a,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):O(s,t.length)},R:function(e,t){const n=Nn(e);return O(n,t.length)},u:function(e,t){const n=e.getFullYear();return O(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return O(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return O(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return ve.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return O(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const o=Os(e,r);return t==="wo"?n.ordinalNumber(o,{unit:"week"}):O(o,t.length)},I:function(e,t,n){const r=Es(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):O(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):ve.d(e,t)},D:function(e,t,n){const r=xs(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):O(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const o=e.getDay(),s=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return O(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});case"eeee":default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const o=e.getDay(),s=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return O(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});case"cccc":default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),o=r===0?7:r;switch(t){case"i":return String(o);case"ii":return O(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const o=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let o;switch(r===12?o=Te.noon:r===0?o=Te.midnight:o=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let o;switch(r>=17?o=Te.evening:r>=12?o=Te.afternoon:r>=4?o=Te.morning:o=Te.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return ve.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):ve.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):O(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):O(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):ve.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):ve.s(e,t)},S:function(e,t){return ve.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Fn(r);case"XXXX":case"XX":return Ee(r);case"XXXXX":case"XXX":default:return Ee(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Fn(r);case"xxxx":case"xx":return Ee(r);case"xxxxx":case"xxx":default:return Ee(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Yn(r,":");case"OOOO":default:return"GMT"+Ee(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Yn(r,":");case"zzzz":default:return"GMT"+Ee(r,":")}},t:function(e,t,n){const r=Math.trunc(e.getTime()/1e3);return O(r,t.length)},T:function(e,t,n){const r=e.getTime();return O(r,t.length)}};function Yn(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Math.trunc(r/60),s=r%60;return s===0?n+String(o):n+String(o)+t+O(s,2)}function Fn(e,t){return e%60===0?(e>0?"-":"+")+O(Math.abs(e)/60,2):Ee(e,t)}function Ee(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=O(Math.trunc(r/60),2),s=O(r%60,2);return n+o+t+s}const In=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Bn=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},ks={p:Bn,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],o=n[2];if(!o)return In(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",In(r,t)).replace("{{time}}",Bn(o,t))}},Ns=/^D+$/,Ts=/^Y+$/,Ps=["D","DD","YY","YYYY"];function As(e){return Ns.test(e)}function Ws(e){return Ts.test(e)}function Ls(e,t,n){const r=Ys(e,t,n);if(console.warn(r),Ps.includes(e))throw new RangeError(r)}function Ys(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Fs=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Is=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Bs=/^'([^]*?)'?$/,$s=/''/g,js=/[a-zA-Z]/;function L(e,t,n){var d,f,h,b;const r=Ke(),o=r.locale??Ss,s=r.firstWeekContainsDate??((f=(d=r.locale)==null?void 0:d.options)==null?void 0:f.firstWeekContainsDate)??1,a=r.weekStartsOn??((b=(h=r.locale)==null?void 0:h.options)==null?void 0:b.weekStartsOn)??0,i=N(e);if(!jo(i))throw new RangeError("Invalid time value");let c=t.match(Is).map(p=>{const m=p[0];if(m==="p"||m==="P"){const g=ks[m];return g(p,o.formatLong)}return p}).join("").match(Fs).map(p=>{if(p==="''")return{isToken:!1,value:"'"};const m=p[0];if(m==="'")return{isToken:!1,value:zs(p)};if(Ln[m])return{isToken:!0,value:p};if(m.match(js))throw new RangeError("Format string contains an unescaped latin alphabet character `"+m+"`");return{isToken:!1,value:p}});o.localize.preprocessor&&(c=o.localize.preprocessor(i,c));const u={firstWeekContainsDate:s,weekStartsOn:a,locale:o};return c.map(p=>{if(!p.isToken)return p.value;const m=p.value;(Ws(m)||As(m))&&Ls(m,t,String(e));const g=Ln[m[0]];return g(i,m,o.localize,u)}).join("")}function zs(e){const t=e.match(Bs);return t?t[1].replace($s,"'"):e}function qs(e){return N(e).getHours()}function Hs(e){return N(e).getMinutes()}function Xs(e,t){const n=N(e),r=N(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()}function zt(e){return Bo(e,Io(e))}function _s(e,t){return Se(e,-1)}function Vs(e,t){return Cn(e,-1)}function Gs(e,t){return Pn(e,-1)}function Us(e){const t=me(e,{weekStartsOn:0}),n=$t(e,{weekStartsOn:0});return An({start:t,end:n})}function Ks(e){const t=me(Xo(e),{weekStartsOn:0}),n=$t(Ho(e),{weekStartsOn:0});return An({start:t,end:n})}function Qs(e,t){switch(t){case"day":return L(e,"EEEE, MMMM d, yyyy");case"week":{const n=me(e,{weekStartsOn:0}),r=$t(e,{weekStartsOn:0});return L(n,"MMMM yyyy")===L(r,"MMMM yyyy")?`${L(n,"MMMM d")} – ${L(r,"d, yyyy")}`:`${L(n,"MMM d")} – ${L(r,"MMM d, yyyy")}`}case"month":return L(e,"MMMM yyyy")}}function $n(e){return e===0?"12 AM":e<12?`${e} AM`:e===12?"12 PM":`${e-12} PM`}function yt(e){return L(e,"h:mm a")}function Js(e,t){const n=new Date,r=(t-e)*60,o=qs(n)*60+Hs(n)-e*60;return Math.max(0,Math.min(1,o/r))}function qt(e,t=15){return Math.round(e/t)*t}function jn(e,t,n){switch(t){case"day":return n===1?Se(e,1):_s(e);case"week":return n===1?Pn(e,1):Gs(e);case"month":return n===1?Cn(e,1):Vs(e)}}function Zs(e,t,n,r){const o=e/n*60,s=r*60+o,a=Math.floor(s/60),i=Math.floor(s%60),c=xe(t);return c.setHours(a,i,0,0),c}function Rs(e,t){return(t-e)*60}function zn(e,t){return Bt(e,xe(e))-t*60}const ea=[{key:"day",label:"Day"},{key:"week",label:"Week"},{key:"month",label:"Month"}],ta=({view:e,date:t,onViewChange:n,onDateChange:r})=>{const o=()=>r(jn(t,e,-1)),s=()=>r(jn(t,e,1)),a=()=>r(new Date);return v.jsxs("header",{className:"rss-header",role:"toolbar","aria-label":"Calendar navigation",children:[v.jsxs("div",{className:"rss-header-nav",children:[v.jsx("button",{className:"rss-btn rss-btn--icon",onClick:o,"aria-label":"Previous",title:"Previous",children:"‹"}),v.jsx("button",{className:"rss-btn",onClick:a,"aria-label":"Go to today",children:"Today"}),v.jsx("button",{className:"rss-btn rss-btn--icon",onClick:s,"aria-label":"Next",title:"Next",children:"›"})]}),v.jsx("h2",{className:"rss-header-title","aria-live":"polite",children:Qs(t,e)}),v.jsx("div",{className:"rss-view-switcher",role:"group","aria-label":"View",children:ea.map(({key:i,label:c})=>v.jsx("button",{className:`rss-view-btn ${e===i?"rss-view-btn--active":""}`,onClick:()=>n(i),"aria-pressed":e===i,children:c},i))})]})};function qn(e,t){return e.filter(n=>{const r=xe(t),o=new Date(r.getTime()+24*60*60*1e3);return n.start<o&&n.end>r})}function na(e,t,n){if(e.length===0)return[];const r=Rs(t,n),o=[...e].sort((i,c)=>{const u=i.start.getTime()-c.start.getTime();return u!==0?u:Bt(c.end,c.start)-Bt(i.end,i.start)}),s=[];for(const i of o){let c=!1;for(const u of s)if(u.some(f=>ra(f,i))){u.push(i),c=!0;break}c||s.push([i])}const a=[];for(const i of s){const c=[];for(const d of i){let f=-1;for(let h=0;h<c.length;h++){const b=c[h],p=b[b.length-1];if(!p||p.end<=d.start){f=h;break}}f===-1&&(f=c.length,c.push([])),c[f].push(d)}const u=c.length;c.forEach((d,f)=>{d.forEach(h=>{const b=Math.max(0,zn(h.start,t)),p=Math.min(r,zn(h.end,t)),m=Math.max(15,p-b);a.push({...h,topPercent:b/r*100,heightPercent:m/r*100,leftPercent:f/u*100,widthPercent:1/u*100})})})}return a}function ra(e,t){return e.start<t.end&&e.end>t.start}function oa(){return`evt-${Date.now()}-${Math.random().toString(36).slice(2,7)}`}const Ze=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#f97316","#84cc16"];function pt(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Ze[Math.abs(t)%Ze.length]}function Hn(e){return L(e,"yyyy-MM-dd'T'HH:mm")}function Xn(e){return new Date(e)}const sa=({event:e,initialStart:t,initialEnd:n,onSave:r,onDelete:o,onClose:s})=>{const a=e!==null,i=l.useRef(null),[c,u]=l.useState((e==null?void 0:e.title)??""),[d,f]=l.useState(Hn((e==null?void 0:e.start)??t??new Date)),[h,b]=l.useState(Hn((e==null?void 0:e.end)??n??new Date(Date.now()+60*60*1e3))),[p,m]=l.useState((e==null?void 0:e.color)??Ze[0]);l.useEffect(()=>{var y;(y=i.current)==null||y.focus()},[]),l.useEffect(()=>{const y=D=>{D.key==="Escape"&&s()};return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[s]);const g=y=>{y.preventDefault(),c.trim()&&r({title:c.trim(),start:Xn(d),end:Xn(h),color:p})};return v.jsx("div",{className:"rss-modal-backdrop",role:"dialog","aria-modal":"true","aria-label":a?"Edit event":"New event",onMouseDown:y=>{y.target===y.currentTarget&&s()},children:v.jsxs("div",{className:"rss-modal",children:[v.jsx("h3",{className:"rss-modal-title",children:a?"Edit Event":"New Event"}),v.jsxs("form",{onSubmit:g,style:{display:"contents"},children:[v.jsxs("div",{className:"rss-form-group",children:[v.jsx("label",{className:"rss-label",htmlFor:"rss-event-title",children:"Title"}),v.jsx("input",{id:"rss-event-title",ref:i,className:"rss-input",type:"text",placeholder:"Event title",value:c,onChange:y=>u(y.target.value),required:!0,maxLength:100})]}),v.jsxs("div",{className:"rss-form-row",children:[v.jsxs("div",{className:"rss-form-group",children:[v.jsx("label",{className:"rss-label",htmlFor:"rss-event-start",children:"Start"}),v.jsx("input",{id:"rss-event-start",className:"rss-input",type:"datetime-local",value:d,onChange:y=>f(y.target.value),required:!0})]}),v.jsxs("div",{className:"rss-form-group",children:[v.jsx("label",{className:"rss-label",htmlFor:"rss-event-end",children:"End"}),v.jsx("input",{id:"rss-event-end",className:"rss-input",type:"datetime-local",value:h,min:d,onChange:y=>b(y.target.value),required:!0})]})]}),v.jsxs("div",{className:"rss-form-group",children:[v.jsx("span",{className:"rss-label",children:"Color"}),v.jsx("div",{className:"rss-color-row",role:"radiogroup","aria-label":"Event color",children:Ze.map(y=>v.jsx("button",{type:"button",role:"radio","aria-checked":y===p,"aria-label":`Color ${y}`,className:`rss-color-swatch ${y===p?"rss-color-swatch--selected":""}`,style:{background:y},onClick:()=>m(y)},y))})]}),v.jsxs("div",{className:"rss-modal-actions",children:[a&&o&&v.jsx("div",{className:"rss-modal-actions-left",children:v.jsx("button",{type:"button",className:"rss-btn rss-btn--danger",onClick:o,children:"Delete"})}),v.jsx("button",{type:"button",className:"rss-btn",onClick:s,children:"Cancel"}),v.jsx("button",{type:"submit",className:"rss-btn rss-btn--primary",children:a?"Save":"Create"})]})]})]})})},aa=({event:e,hourHeight:t,gridHeight:n,onClick:r,onResizeEnd:o,isOverlay:s=!1})=>{const a=e.color??pt(e.id),i={type:"event",event:e},{attributes:c,listeners:u,setNodeRef:d,transform:f,isDragging:h}=Sn({id:e.id,data:i,disabled:s}),[b,p]=l.useState(null),m=l.useRef(!1),g=b??e.end,y=l.useCallback(w=>{if(h)return;w.preventDefault(),w.stopPropagation();const S=w.currentTarget;S.setPointerCapture(w.pointerId);const x=w.clientY,E=e.end;m.current=!0;const T=P=>{const B=P.clientY-x,q=qt(B/t*60),Y=Ne(E,q),ie=Ne(e.start,15);p(Y>ie?Y:ie)},W=P=>{const B=P.clientY-x,q=qt(B/t*60),Y=Ne(E,q),ie=Ne(e.start,15),Pe=Y>ie?Y:ie;o(e.id,Pe),p(null),m.current=!1,S.removeEventListener("pointermove",T),S.removeEventListener("pointerup",W)};S.addEventListener("pointermove",T),S.addEventListener("pointerup",W)},[e,t,h,o]),D=n/t*60;let M=e.heightPercent;if(b){const w=e.start.getHours()*60+e.start.getMinutes(),S=g.getHours()*60+g.getMinutes();M=Math.max(15,S-w)/D*100}const C={top:`${e.topPercent}%`,height:`${M}%`,left:`calc(${e.leftPercent}% + 2px)`,width:`calc(${e.widthPercent}% - 4px)`,background:a,transform:De.Translate.toString(f),zIndex:s?100:h?50:1};return v.jsxs("div",{ref:d,className:["rss-event",h?"rss-event--dragging":"",m.current?"rss-event--resizing":"",s?"rss-event--overlay":""].filter(Boolean).join(" "),style:C,...u,...c,role:"button",tabIndex:0,"aria-label":`${e.title}, ${yt(e.start)} to ${yt(g)}`,onClick:w=>{h||(w.stopPropagation(),r(e))},onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),r(e)),(w.key==="Delete"||w.key==="Backspace")&&r(e)},children:[v.jsx("div",{className:"rss-event-title",children:e.title}),v.jsxs("div",{className:"rss-event-time",children:[yt(e.start)," – ",yt(g)]}),!s&&v.jsx("div",{className:"rss-event-resize-handle","aria-hidden":"true",onPointerDown:y,onClick:w=>w.stopPropagation()})]})};Array.from({length:24},(e,t)=>t);const ia=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],_n=({columns:e,events:t,hourHeight:n,startHour:r,endHour:o,onColumnWidthChange:s,onEventClick:a,onEventResizeEnd:i,onSlotClick:c})=>{const u=Array.from({length:o-r},(g,y)=>r+y),d=u.length*n,f=l.useRef(null);l.useEffect(()=>{if(!f.current||!s)return;const g=f.current,y=()=>{const M=e.length||1;s(g.offsetWidth/M)};y();const D=new ResizeObserver(y);return D.observe(g),()=>D.disconnect()},[e.length,s]);const b=Js(r,o)*d,{setNodeRef:p}=xn({id:"timegrid-body"}),m=(g,y)=>{if(g.target.closest(".rss-event"))return;const M=g.currentTarget.getBoundingClientRect(),C=g.clientY-M.top,w=Zs(C,y.date,n,r),S=new Date(w.getTime()+60*60*1e3);c(w,S)};return v.jsxs("div",{className:"rss-timegrid",children:[v.jsxs("div",{className:"rss-timegrid-allday","aria-hidden":"true",children:[v.jsx("div",{className:"rss-timegrid-allday-gutter"}),v.jsx("div",{className:"rss-day-headers",children:e.map(g=>{const y=zt(g.date);return v.jsxs("div",{className:"rss-day-header",children:[v.jsx("span",{className:"rss-day-header-weekday",children:ia[g.date.getDay()]}),v.jsx("span",{className:`rss-day-header-num ${y?"rss-day-header-num--today":""}`,children:L(g.date,"d")})]},g.key)})})]}),v.jsx("div",{className:"rss-timegrid-scroll",children:v.jsxs("div",{className:"rss-timegrid-body",ref:p,style:{height:d},children:[v.jsx("div",{className:"rss-time-gutter","aria-hidden":"true",children:u.map(g=>v.jsx("div",{className:"rss-time-label",style:{height:n,lineHeight:`${n}px`},children:g===r?"":$n(g)},g))}),v.jsx("div",{className:"rss-columns",ref:f,style:{height:d},children:e.map(g=>{const y=qn(t,g.date),D=na(y,r,o),M=zt(g.date);return v.jsxs("div",{className:`rss-column ${M?"rss-column--today":""}`,style:{height:d},role:"grid","aria-label":L(g.date,"EEEE, MMMM d"),onClick:C=>m(C,g),children:[u.map(C=>v.jsx("div",{className:"rss-hour-cell",style:{height:n},"aria-label":`${$n(C)} on ${L(g.date,"MMMM d")}`},C)),D.map(C=>v.jsx(aa,{event:C,hourHeight:n,gridHeight:d,onClick:a,onResizeEnd:i},C.id)),M&&v.jsx("div",{className:"rss-now-line",style:{top:b},"aria-hidden":"true","aria-label":"Current time"})]},g.key)})})]})})]})},ca=({date:e,events:t,hourHeight:n,startHour:r,endHour:o,onEventClick:s,onEventResizeEnd:a,onSlotClick:i,onColumnWidthChange:c})=>{const u=[{date:e,key:e.toDateString()}];return v.jsx(_n,{columns:u,events:t,hourHeight:n,startHour:r,endHour:o,onEventClick:s,onEventResizeEnd:a,onSlotClick:i,onColumnWidthChange:c})},la=({date:e,events:t,hourHeight:n,startHour:r,endHour:o,onEventClick:s,onEventResizeEnd:a,onSlotClick:i,onColumnWidthChange:c})=>{const d=Us(e).map(f=>({date:f,key:L(f,"yyyy-MM-dd")}));return v.jsx(_n,{columns:d,events:t,hourHeight:n,startHour:r,endHour:o,onEventClick:s,onEventResizeEnd:a,onSlotClick:i,onColumnWidthChange:c})},ua=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Vn=3,da=({event:e,onClick:t})=>{const n={type:"event",event:e},{attributes:r,listeners:o,setNodeRef:s,transform:a,isDragging:i}=Sn({id:`month-${e.id}`,data:n}),c=e.color??pt(e.id);return v.jsx("div",{ref:s,className:"rss-month-event",style:{background:c,opacity:i?.4:1,transform:De.Translate.toString(a),cursor:"grab"},...o,...r,role:"button",tabIndex:0,"aria-label":e.title,onClick:u=>{u.stopPropagation(),t(e)},onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),t(e))},children:e.title})},fa=({day:e,currentMonth:t,events:n,onEventClick:r,onSlotClick:o})=>{const s=zt(e),a=!Xs(e,t),{setNodeRef:i,isOver:c}=xn({id:`month-cell-${L(e,"yyyy-MM-dd")}`,data:{date:e}}),u=n.slice(0,Vn),d=n.length-Vn,f=()=>{const h=new Date(e);h.setHours(9,0,0,0);const b=new Date(e);b.setHours(10,0,0,0),o(h,b)};return v.jsxs("div",{ref:i,className:["rss-month-cell",s?"rss-month-cell--today":"",a?"rss-month-cell--other-month":"",c?"rss-month-cell--drop-over":""].filter(Boolean).join(" "),style:c?{background:"rgb(59 130 246 / 0.08)"}:void 0,onClick:f,role:"gridcell","aria-label":L(e,"MMMM d, yyyy"),children:[v.jsx("span",{className:["rss-month-day-num",s?"rss-month-day-num--today":"",a?"rss-month-day-num--other":""].filter(Boolean).join(" "),children:L(e,"d")}),u.map(h=>v.jsx(da,{event:h,onClick:r},h.id)),d>0&&v.jsxs("span",{className:"rss-month-more","aria-label":`${d} more events`,children:["+",d," more"]})]})},ha=({date:e,events:t,onEventClick:n,onSlotClick:r})=>{const o=Ks(e);return v.jsxs("div",{className:"rss-month",role:"grid","aria-label":L(e,"MMMM yyyy"),children:[v.jsx("div",{className:"rss-month-weekdays",role:"row","aria-hidden":"true",children:ua.map(s=>v.jsx("div",{className:"rss-month-weekday",role:"columnheader",children:s},s))}),v.jsx("div",{className:"rss-month-grid",children:o.map(s=>{const a=qn(t,s);return v.jsx(fa,{day:s,currentMonth:e,events:a,onEventClick:n,onSlotClick:r},L(s,"yyyy-MM-dd"))})})]})};function ga(e){const{onEventAdd:t,onEventChange:n,onEventDelete:r}=e,[o,s]=l.useState(!1),[a,i]=l.useState(null),[c,u]=l.useState(null),d=l.useCallback(m=>{i(m),u(null),s(!0)},[]),f=l.useCallback(m=>{i(null),u(m),s(!0)},[]),h=l.useCallback(()=>{s(!1),i(null),u(null)},[]),b=l.useCallback(m=>{a?n==null||n({...a,...m}):t==null||t(m),h()},[a,n,t,h]),p=l.useCallback(()=>{a&&(r==null||r(a.id)),h()},[a,r,h]);return{isModalOpen:o,editingEvent:a,pendingSlot:c,openEditModal:d,openAddModal:f,closeModal:h,handleModalSave:b,handleModalDelete:p}}const ma=64,va=0,ba=24,ya=({events:e,view:t="week",date:n,onEventAdd:r,onEventChange:o,onEventDelete:s,onViewChange:a,onDateChange:i,hourHeight:c=ma,startHour:u=va,endHour:d=ba,className:f=""})=>{const[h,b]=l.useState(t),[p,m]=l.useState(n??new Date),g=n!==void 0?t:h,y=n??p,D=A=>{b(A),a==null||a(A)},M=A=>{m(A),i==null||i(A)},{isModalOpen:C,editingEvent:w,pendingSlot:S,openEditModal:x,openAddModal:E,closeModal:T,handleModalSave:W,handleModalDelete:P}=ga({onEventAdd:r,onEventChange:o,onEventDelete:s}),[B,q]=l.useState(null),Y=l.useRef({hourHeight:c,columnWidth:0});Y.current.hourHeight=c;const ie=mr(gr(Wt,{activationConstraint:{distance:6}})),Pe=A=>{const $=A.active.data.current;($==null?void 0:$.type)==="event"&&q($.event)},oe=A=>{var _,et;const{delta:$}=A,se=A.active.data.current;if(q(null),!se||se.type!=="event")return;const ee=se.event;if(g==="day"||g==="week"){const ae=qt($.y/Y.current.hourHeight*60);let fe=0;if(g==="week"&&Y.current.columnWidth>0&&(fe=Math.round($.x/Y.current.columnWidth)),ae===0&&fe===0)return;const j=Ne(Se(ee.start,fe),ae),ce=Ne(Se(ee.end,fe),ae),te=u*60,We=d*60,G=j.getHours()*60+j.getMinutes(),Le=ce.getHours()*60+ce.getMinutes();if(G<te||Le>We)return;o==null||o({...ee,start:j,end:ce});return}if(g==="month"){const ae=A.over;if(!((et=(_=ae==null?void 0:ae.data)==null?void 0:_.current)!=null&&et.date))return;const fe=ae.data.current.date,j=new Date(ee.start),ce=new Date(j);ce.setHours(0,0,0,0);const te=new Date(fe);te.setHours(0,0,0,0);const We=te.getTime()-ce.getTime(),G=Math.round(We/(24*60*60*1e3));if(G===0)return;o==null||o({...ee,start:Se(ee.start,G),end:Se(ee.end,G)})}},wt=(A,$)=>{const se=e.find(ee=>ee.id===A);se&&(o==null||o({...se,end:$}))},R=B?{...B,color:B.color??pt(B.id),topPercent:0,heightPercent:0,leftPercent:0,widthPercent:100}:null,Ae=(A,$)=>E({start:A,end:$}),Re={events:e,hourHeight:c,startHour:u,endHour:d,onEventClick:x,onEventResizeEnd:wt,onSlotClick:Ae,onColumnWidthChange:A=>{Y.current.columnWidth=A}};return v.jsxs("div",{className:`rss-root ${f}`.trim(),children:[v.jsxs(ho,{sensors:ie,modifiers:[Po],onDragStart:Pe,onDragEnd:oe,children:[v.jsx(ta,{view:g,date:y,onViewChange:D,onDateChange:M}),g==="day"&&v.jsx(ca,{date:y,...Re}),g==="week"&&v.jsx(la,{date:y,...Re}),g==="month"&&v.jsx(ha,{date:y,events:e,onEventClick:x,onSlotClick:Ae}),R&&v.jsx(No,{children:v.jsx("div",{className:"rss-drag-overlay",style:{height:c*1.5,width:g==="day"?"100%":120},children:v.jsxs("div",{className:"rss-event",style:{position:"relative",height:"100%",background:R.color,opacity:.9,top:0,left:0,width:"100%",boxShadow:"0 8px 24px rgb(0 0 0 / 0.2)"},children:[v.jsx("div",{className:"rss-event-title",children:R.title}),v.jsx("div",{className:"rss-event-time",children:L(R.start,"h:mm a")})]})})})]}),C&&v.jsx(sa,{event:w,initialStart:S==null?void 0:S.start,initialEnd:S==null?void 0:S.end,onSave:W,onDelete:w?P:void 0,onClose:T})]})},pa="0.1.0";V.EVENT_COLORS=Ze,V.Scheduler=ya,V.VERSION=pa,V.generateId=oa,V.pickColor=pt,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})});
|
|
11
|
+
//# sourceMappingURL=index.umd.js.map
|