UNPKG

react-d-calendar

Version:

A fully customizable, accessible, and responsive React calendar component

2 lines 50.8 kB
/*! For license information please see index.mjs.LICENSE.txt */ import*as e from"react";var t={556:(e,t,n)=>{e.exports=n(694)()},694:(e,t,n)=>{var a=n(925);function r(){}function o(){}o.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,o,l){if(l!==a){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:r};return n.PropTypes=n,n}},925:e=>{e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const r=(o={PureComponent:()=>e.PureComponent,createElement:()=>e.createElement,default:()=>e.default,forwardRef:()=>e.forwardRef,useCallback:()=>e.useCallback,useEffect:()=>e.useEffect,useMemo:()=>e.useMemo,useRef:()=>e.useRef,useState:()=>e.useState},l={},a.d(l,o),l);var o,l,i=a(556),c=a.n(i);const s=e=>{const t=(e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,((e,t,n)=>n?n.toUpperCase():t.toLowerCase())))(e);return t.charAt(0).toUpperCase()+t.slice(1)},u=(...e)=>e.filter(((e,t,n)=>Boolean(e)&&""!==e.trim()&&n.indexOf(e)===t)).join(" ").trim(),d=e=>{for(const t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};var f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const m=(0,r.forwardRef)((({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:o="",children:l,iconNode:i,...c},s)=>(0,r.createElement)("svg",{ref:s,...f,width:t,height:t,stroke:e,strokeWidth:a?24*Number(n)/Number(t):n,className:u("lucide",o),...!l&&!d(c)&&{"aria-hidden":"true"},...c},[...i.map((([e,t])=>(0,r.createElement)(e,t))),...Array.isArray(l)?l:[l]]))),y=(e,t)=>{const n=(0,r.forwardRef)((({className:n,...a},o)=>{return(0,r.createElement)(m,{ref:o,iconNode:t,className:u(`lucide-${l=s(e),l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,n),...a});var l}));return n.displayName=s(e),n},h=y("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),v=y("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),g=y("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,l,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var D=function(e){var t=e.showDoubleView,n=e.date,a=e.onChange,o=e.view,l=e.minDetail,i=(e.maxDetail,e.prevLabel),c=void 0===i?"‹":i,s=e.prevAriaLabel,u=e.nextLabel,d=void 0===u?"›":u,f=e.nextAriaLabel,m=e.prev2Label,y=e.prev2AriaLabel,h=e.next2Label,v=e.next2AriaLabel,b=e.navigationLabel,D=e.navigationAriaLabel,w=e.navigationAriaLive,S=e.formatMonthYear,k=e.formatYear,O=e.locale,C=e.isYearDisabled,N=p((0,r.useState)(""),2),E=N[0],L=N[1],M=p((0,r.useState)(!1),2),x=M[0],A=M[1],I=(0,r.useRef)(null),T=(0,r.useRef)(null),F=p((0,r.useState)(-1),2),_=F[0],R=F[1],Y=n.getFullYear(),j=Array.from({length:151},(function(e,t){return Y-75+t})).filter((function(e){return e.toString().includes(E.toLowerCase())})),P=function(e){if(!C||!C(e)){var t=new Date(n);t.setFullYear(e),a(t),A(!1),L(""),R(-1)}},W=function(e){var t={day:"day",month:"month",year:"year",decade:"decade"}[o]||"period";switch(e){case"prev":return s||"Go to previous ".concat(t);case"next":return f||"Go to next ".concat(t);case"prev2":return y||"Go to previous ".concat("year"===o?"decade":"century");case"next2":return v||"Go to next ".concat("year"===o?"decade":"century");case"select":return D||"Select year for ".concat(t," view");default:return""}};(0,r.useEffect)((function(){var e=function(e){I.current&&!I.current.contains(e.target)&&(A(!1),L(""),R(-1))};return document.addEventListener("mousedown",e),function(){return document.removeEventListener("mousedown",e)}}),[]),(0,r.useEffect)((function(){x&&T.current&&!E&&T.current.scrollIntoView({behavior:"smooth",block:"nearest"})}),[x,E]);var U=function(e){if(x){switch(e.key){case"ArrowUp":e.preventDefault(),R((function(e){for(var t=e>0?e-1:j.length-1;t>0&&C&&C(j[t]);)t--;return t}));break;case"ArrowDown":e.preventDefault(),R((function(e){for(var t=e<j.length-1?e+1:0;t<j.length-1&&C&&C(j[t]);)t++;return t}));break;case"Enter":e.preventDefault(),!(_>=0&&_<j.length)||C&&C(j[_])||P(j[_]);break;case"Escape":e.preventDefault(),A(!1),L(""),R(-1)}if(_>=0){var t=document.querySelectorAll(".year-option")[_];t&&t.scrollIntoView({behavior:"smooth",block:"nearest"})}}};return r.default.createElement("div",{className:"header","aria-live":w},r.default.createElement("div",{className:"header-month-section"},r.default.createElement("div",{className:"header-month-nav"},(o!==l||m)&&r.default.createElement("button",{onClick:function(){var e=new Date(n);"day"===o?e.setDate(n.getDate()-1):"month"===o?e.setMonth(n.getMonth()-1):"year"===o?e.setFullYear(n.getFullYear()-1):"decade"===o&&e.setFullYear(n.getFullYear()-10),a(e)},"aria-label":W("prev"),className:"nav-button"},c),r.default.createElement("span",{className:"header-month-label"},function(){if(b)return b({date:n,view:o,locale:O});if("month"===o){if(t){var e=new Date(n);return e.setMonth(n.getMonth()+1),"".concat(n.toLocaleString(O,{month:"long"}),"-").concat(e.toLocaleString(O,{month:"long"})," ").concat(n.getFullYear())}return S?S(n,O):n.toLocaleString(O,{month:"long",year:"numeric"})}if("year"===o)return k?k(n,O):n.getFullYear();if("decade"===o){var a=10*Math.floor(Y/10);return"".concat(a,"-").concat(a+9)}return n.toLocaleDateString(O)}()),(o!==l||h)&&r.default.createElement("button",{onClick:function(){var e=new Date(n);"day"===o?e.setDate(n.getDate()+1):"month"===o?e.setMonth(n.getMonth()+1):"year"===o?e.setFullYear(n.getFullYear()+1):"decade"===o&&e.setFullYear(n.getFullYear()+10),a(e)},"aria-label":W("next"),className:"nav-button"},d))),"day"!==o&&r.default.createElement("div",{className:"header-year-section",ref:I},r.default.createElement("div",{className:"year-select-wrapper",onClick:function(){return A(!x)},"aria-expanded":x,role:"combobox","aria-label":W("select"),tabIndex:0,onKeyDown:U},r.default.createElement("span",{className:"year-select-display"},k?k(n,O):Y),r.default.createElement(g,{className:"chevron-down",strokeWidth:1.5})),x&&r.default.createElement("div",{className:"year-dropdown"},r.default.createElement("input",{type:"text",className:"year-search",placeholder:"Search year...",value:E,onChange:function(e){L(e.target.value),R(-1)},"aria-label":"Search for a year",onKeyDown:U}),r.default.createElement("div",{className:"year-list",role:"listbox"},j.map((function(e,t){return r.default.createElement("button",{key:e,ref:e===Y?T:null,className:"year-option ".concat(t===_?"focused":""," ").concat(e===Y?"current-year":""," ").concat(C&&C(e)?"disabled":""),onClick:function(){return P(e)},"aria-selected":e===Y,role:"option",onMouseEnter:function(){return R(t)},onMouseLeave:function(){return R(-1)},disabled:C&&C(e)},k?k(new Date(n.setFullYear(e)),O):e)}))))))};D.propTypes={showDoubleView:c().bool,date:c().instanceOf(Date).isRequired,onChange:c().func.isRequired,view:c().oneOf(["day","month","year","decade"]).isRequired,minDetail:c().oneOf(["day","month","year","decade"]),maxDetail:c().oneOf(["day","month","year","decade"]),prevLabel:c().node,prevAriaLabel:c().string,nextLabel:c().node,nextAriaLabel:c().string,prev2Label:c().node,prev2AriaLabel:c().string,next2Label:c().node,next2AriaLabel:c().string,navigationLabel:c().func,navigationAriaLabel:c().string,navigationAriaLive:c().string,formatMonthYear:c().func,formatYear:c().func,locale:c().string,isYearDisabled:c().func},D.defaultProps={showDoubleView:!1,minDetail:"year",maxDetail:"month",prevLabel:"‹",nextLabel:"›",locale:"en-US",isYearDisabled:null};const w=D;function S(e){const t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):"number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?new Date(e):new Date(NaN)}Math.pow(10,8);let k={};function O(){return k}function C(e){return function(e,t){const n=O(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=S(e),o=r.getDay(),l=(o<a?7:0)+o-a;return r.setDate(r.getDate()-l),r.setHours(0,0,0,0),r}(e,{weekStartsOn:1})}function N(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function E(e){const t=function(e){const t=S(e),n=t.getFullYear(),a=N(e,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);const r=C(a),o=N(e,0);o.setFullYear(n,0,4),o.setHours(0,0,0,0);const l=C(o);return t.getTime()>=r.getTime()?n+1:t.getTime()>=l.getTime()?n:n-1}(e),n=N(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),C(n)}function L(e){const t=S(e),n=+C(t)-+E(t);return Math.round(n/6048e5)+1}var M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"gregorian",a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];if("gregorian"!==n)throw new Error("Unsupported calendar type: ".concat(n,". Only 'gregorian' is supported."));var o=e.getFullYear(),l=e.getMonth(),i=[],c=new Date(o,l,1),s=new Date(o,l+1,0),u=(c.getDay()+7-t)%7;if(r)for(var d=new Date(o,l,0),f=u-1;f>=0;f--)i.push({date:new Date(o,l-1,d.getDate()-f),isCurrentMonth:!1});for(var m=new Date(c);m<=s;m.setDate(m.getDate()+1))i.push({date:new Date(m),isCurrentMonth:!0});if(r||a)for(var y=i.length,h=a?42-y:7*Math.ceil(y/7)-y,v=1;v<=h;v++)i.push({date:new Date(o,l+1,v),isCurrentMonth:!1});return i},x=function(e,t){for(var n=M(e,t),a=[],r=0;r<n.length;r+=7){var o=n[r].date;a.push(L(o))}return a},A=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.getFullYear(),a=Array.from({length:12},(function(e,t){return new Date(n,t,1)}));return t&&(a.unshift(new Date(n-1,11,1)),a.push(new Date(n+1,0,1))),a},I=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.getFullYear(),a=10*Math.floor(n/10),r=Array.from({length:10},(function(e,t){return new Date(a+10*t,0,1)}));return t&&(r.unshift(new Date(a-10,0,1)),r.push(new Date(a+100,0,1))),r};function T(e){return e instanceof Date&&!isNaN(e)}function F(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date;return T(e)?new Date(e):new Date(t)}function _(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Array.isArray(e)?e.filter(T).map((function(e){return new Date(e)})):t}var R=function(e){var t=e.dayInfo,n=e.formatDay,a=e.locale;return r.default.createElement("span",{className:"day-number"},n?n(t.date,a):t.date.getDate())};R.propTypes={dayInfo:c().shape({date:c().instanceOf(Date).isRequired,isCurrentMonth:c().bool}).isRequired,formatDay:c().func,locale:c().string},R.defaultProps={locale:"en-US"};const Y=r.default.memo(R);function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var P=function(e){var t,n,a=e.date,o=e.onDateSelect,l=e.onClickWeekNumber,i=e.tileContent,c=e.tileClassName,s=e.tileDisabled,u=e.showWeekNumbers,d=e.showNeighboringMonth,f=e.showFixedNumberOfWeeks,m=e.formatDay,y=e.formatWeekday,h=e.formatShortWeekday,v=e.weekdayFormat,g=void 0===v?"short":v,p=e.locale,b=e.calendarType,D=e.onDrillDown,w=(e.onDrillUp,e.showDoubleView),S=e.value,k=e.onHover,O=e.onClearHover,C=e.today,N=void 0===C?new Date:C,E=e.weekStartDay,L=void 0===E?0:E,A=e.className,I=e.onClickEvent,T=e.events,F=void 0===T?[]:T,_=e.renderEvent,R=(t=(0,r.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,l,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(t,n)||function(e,t){if(e){if("string"==typeof e)return j(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?j(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),P=(R[0],R[1]),W=((0,r.useCallback)((function(e,t){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),null!=s&&s({date:t.date})||o(t.date))}),[o,s]),(0,r.useCallback)((function(e){null!=s&&s({date:e.date})||(P(!0),o(e.date))}),[o,s])),U=(0,r.useCallback)((function(e){null!=s&&s({date:e})||(console.log("Mouse over date:",e.toISOString()),null==k||k(e))}),[k,s]),V=(0,r.useCallback)((function(){P(!1)}),[]),z=(0,r.useCallback)((function(e,t){e.preventDefault(),null!=s&&s({date:t})||(P(!0),o(t))}),[o,s]),q=(0,r.useCallback)((function(e,t){e.preventDefault(),null!=s&&s({date:t})||null==k||k(t)}),[k,s]),H=(0,r.useCallback)((function(){P(!1)}),[]),B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=new Date(a);t.setMonth(a.getMonth()+e);var n=M(t,L,b,f,d),v=u?x(t,L):[],w=Array.isArray(S)?S[0]:null,k=Array.isArray(S)&&2===S.length?S[1]:null;return r.default.createElement("div",{className:"calendar-instance ".concat(A||"")},r.default.createElement("div",{className:"calendar-weekdays"},u&&r.default.createElement("div",{className:"weekday week-number"},"Week"),Array.from({length:7}).map((function(e,t){var n=(t+L)%7,a=6===n,o=0===n;return r.default.createElement("div",{key:t,className:"weekday ".concat(a?"saturday":""," ").concat(o?"sunday":"")},function(e){var t=new Date(N.getFullYear(),0,(e+L)%7+1);return y?y(t,p):"full"===g?t.toLocaleString(p,{weekday:"long"}).toUpperCase():"short"===g?h?h(t,p):t.toLocaleString(p,{weekday:"short"}).toUpperCase():"minimal"===g?["SU","MO","TU","WE","TH","FR","SA"][(e+L)%7]:["SUN","MON","TUE","WED","THU","FRI","SAT"][(e+L)%7]}(t))}))),r.default.createElement("div",{className:"calendar-days",onMouseLeave:O,onMouseUp:V,onTouchEnd:H},u&&v.map((function(e,n){return r.default.createElement("button",{key:"week-".concat(n),className:"week-number",onClick:function(){return null==l?void 0:l(e,new Date(t.getFullYear(),t.getMonth(),1))}},e)})),n.map((function(e,t){var n=e.date.toDateString()===N.toDateString(),a=6===e.date.getDay(),l=0===e.date.getDay(),u=null==s?void 0:s({date:e.date}),d=w&&e.date.toDateString()===w.toDateString(),f=k&&e.date.toDateString()===k.toDateString(),y=w&&k&&e.date>w&&e.date<k,h=F.find((function(t){return t.date.toDateString()===e.date.toDateString()}));return r.default.createElement("button",{key:t,onClick:function(){return!u&&(h?null==I?void 0:I(h):o(e.date))},onDoubleClick:function(){return!u&&(null==D?void 0:D())},onMouseDown:function(){return W(e)},onMouseEnter:function(){return U(e.date)},onTouchStart:function(t){return z(t,e.date)},onTouchMove:function(t){return q(t,e.date)},disabled:u,className:"calendar-day\n ".concat(n?"today":"","\n ").concat(a?"saturday":"","\n ").concat(l?"sunday":"","\n ").concat(e.isCurrentMonth?"":"adjacent-month","\n ").concat((null==c?void 0:c({date:e.date}))||"","\n ").concat(u?"disabled":"","\n ").concat(d?"selected-start":"","\n ").concat(f?"selected-end":"","\n ").concat(y?"in-range":"").trim(),"aria-label":"Select ".concat(e.date.toLocaleDateString(p,{month:"long",day:"numeric",year:"numeric"})),tabIndex:u?-1:0},i?i({date:e.date,view:"month",event:h}):h&&_?_({event:h,date:e.date}):r.default.createElement(Y,{dayInfo:e,formatDay:m,locale:p}))}))))};return r.default.createElement("div",{className:"calendar-container ".concat(w?"double-view":"")},w?r.default.createElement(r.default.Fragment,null,B(0),B(1)):B(0))};const W=r.default.memo(P);function U(){return U=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},U.apply(null,arguments)}function V(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function z(e,t){return z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},z(e,t)}var q=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function H(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!((a=e[n])===(r=t[n])||q(a)&&q(r)))return!1;var a,r;return!0}const B=function(e,t){var n;void 0===t&&(t=H);var a,r=[],o=!1;return function(){for(var l=[],i=0;i<arguments.length;i++)l[i]=arguments[i];return o&&n===this&&t(l,r)||(a=e.apply(this,l),o=!0,n=this,r=l),a}};var $="object"==typeof performance&&"function"==typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function K(e){cancelAnimationFrame(e.id)}var G=-1;function Z(e){if(void 0===e&&(e=!1),-1===G||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),G=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return G}var J=null;function Q(e){if(void 0===e&&(e=!1),null===J||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var a=document.createElement("div"),r=a.style;return r.width="100px",r.height="100px",t.appendChild(a),document.body.appendChild(t),t.scrollLeft>0?J="positive-descending":(t.scrollLeft=1,J=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),J}return J}var X=function(e,t){return e};function ee(e){var t,n=e.getItemOffset,a=e.getEstimatedTotalSize,o=e.getItemSize,l=e.getOffsetForIndexAndAlignment,i=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,s=e.initInstanceProps,u=e.shouldResetStyleCacheOnItemSizeChange,d=e.validateProps;return t=function(e){function t(t){var a;return(a=e.call(this,t)||this)._instanceProps=s(a.props,V(a)),a._outerRef=void 0,a._resetIsScrollingTimeoutId=null,a.state={instance:V(a),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"==typeof a.props.initialScrollOffset?a.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},a._callOnItemsRendered=void 0,a._callOnItemsRendered=B((function(e,t,n,r){return a.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:r})})),a._callOnScroll=void 0,a._callOnScroll=B((function(e,t,n){return a.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),a._getItemStyle=void 0,a._getItemStyle=function(e){var t,r=a.props,l=r.direction,i=r.itemSize,c=r.layout,s=a._getItemStyleCache(u&&i,u&&c,u&&l);if(s.hasOwnProperty(e))t=s[e];else{var d=n(a.props,e,a._instanceProps),f=o(a.props,e,a._instanceProps),m="horizontal"===l||"horizontal"===c,y="rtl"===l,h=m?d:0;s[e]=t={position:"absolute",left:y?void 0:h,right:y?h:void 0,top:m?0:d,height:m?"100%":f,width:m?f:"100%"}}return t},a._getItemStyleCache=void 0,a._getItemStyleCache=B((function(e,t,n){return{}})),a._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,r=t.scrollLeft,o=t.scrollWidth;a.setState((function(e){if(e.scrollOffset===r)return null;var t=a.props.direction,l=r;if("rtl"===t)switch(Q()){case"negative":l=-r;break;case"positive-descending":l=o-n-r}return l=Math.max(0,Math.min(l,o-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<l?"forward":"backward",scrollOffset:l,scrollUpdateWasRequested:!1}}),a._resetIsScrollingDebounced)},a._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,r=t.scrollHeight,o=t.scrollTop;a.setState((function(e){if(e.scrollOffset===o)return null;var t=Math.max(0,Math.min(o,r-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),a._resetIsScrollingDebounced)},a._outerRefSetter=function(e){var t=a.props.outerRef;a._outerRef=e,"function"==typeof t?t(e):null!=t&&"object"==typeof t&&t.hasOwnProperty("current")&&(t.current=e)},a._resetIsScrollingDebounced=function(){var e,t,n,r;null!==a._resetIsScrollingTimeoutId&&K(a._resetIsScrollingTimeoutId),a._resetIsScrollingTimeoutId=(e=a._resetIsScrolling,t=150,n=$(),r={id:requestAnimationFrame((function a(){$()-n>=t?e.call(null):r.id=requestAnimationFrame(a)}))})},a._resetIsScrolling=function(){a._resetIsScrollingTimeoutId=null,a.setState({isScrolling:!1},(function(){a._getItemStyleCache(-1,null)}))},a}var f,m;m=e,(f=t).prototype=Object.create(m.prototype),f.prototype.constructor=f,z(f,m),t.getDerivedStateFromProps=function(e,t){return te(e,t),d(e),null};var y=t.prototype;return y.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},y.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,a=n.itemCount,r=n.layout,o=this.state.scrollOffset;e=Math.max(0,Math.min(e,a-1));var i=0;if(this._outerRef){var c=this._outerRef;i="vertical"===r?c.scrollWidth>c.clientWidth?Z():0:c.scrollHeight>c.clientHeight?Z():0}this.scrollTo(l(this.props,e,t,o,this._instanceProps,i))},y.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,a=e.layout;if("number"==typeof n&&null!=this._outerRef){var r=this._outerRef;"horizontal"===t||"horizontal"===a?r.scrollLeft=n:r.scrollTop=n}this._callPropsCallbacks()},y.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,a=this.state,r=a.scrollOffset;if(a.scrollUpdateWasRequested&&null!=this._outerRef){var o=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(Q()){case"negative":o.scrollLeft=-r;break;case"positive-ascending":o.scrollLeft=r;break;default:var l=o.clientWidth,i=o.scrollWidth;o.scrollLeft=i-l-r}else o.scrollLeft=r;else o.scrollTop=r}this._callPropsCallbacks()},y.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&K(this._resetIsScrollingTimeoutId)},y.render=function(){var e=this.props,t=e.children,n=e.className,o=e.direction,l=e.height,i=e.innerRef,c=e.innerElementType,s=e.innerTagName,u=e.itemCount,d=e.itemData,f=e.itemKey,m=void 0===f?X:f,y=e.layout,h=e.outerElementType,v=e.outerTagName,g=e.style,p=e.useIsScrolling,b=e.width,D=this.state.isScrolling,w="horizontal"===o||"horizontal"===y,S=w?this._onScrollHorizontal:this._onScrollVertical,k=this._getRangeToRender(),O=k[0],C=k[1],N=[];if(u>0)for(var E=O;E<=C;E++)N.push((0,r.createElement)(t,{data:d,key:m(E,d),index:E,isScrolling:p?D:void 0,style:this._getItemStyle(E)}));var L=a(this.props,this._instanceProps);return(0,r.createElement)(h||v||"div",{className:n,onScroll:S,ref:this._outerRefSetter,style:U({position:"relative",height:l,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},g)},(0,r.createElement)(c||s||"div",{children:N,ref:i,style:{height:w?"100%":L,pointerEvents:D?"none":void 0,width:w?L:"100%"}}))},y._callPropsCallbacks=function(){if("function"==typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],a=e[2],r=e[3];this._callOnItemsRendered(t,n,a,r)}if("function"==typeof this.props.onScroll){var o=this.state,l=o.scrollDirection,i=o.scrollOffset,c=o.scrollUpdateWasRequested;this._callOnScroll(l,i,c)}},y._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,a=this.state,r=a.isScrolling,o=a.scrollDirection,l=a.scrollOffset;if(0===t)return[0,0,0,0];var s=i(this.props,l,this._instanceProps),u=c(this.props,s,l,this._instanceProps),d=r&&"backward"!==o?1:Math.max(1,n),f=r&&"forward"!==o?1:Math.max(1,n);return[Math.max(0,s-d),Math.max(0,Math.min(t-1,u+f)),s,u]},t}(r.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var te=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},ne=ee({getItemOffset:function(e,t){return t*e.itemSize},getItemSize:function(e,t){return e.itemSize},getEstimatedTotalSize:function(e){var t=e.itemCount;return e.itemSize*t},getOffsetForIndexAndAlignment:function(e,t,n,a,r,o){var l=e.direction,i=e.height,c=e.itemCount,s=e.itemSize,u=e.layout,d=e.width,f="horizontal"===l||"horizontal"===u?d:i,m=Math.max(0,c*s-f),y=Math.min(m,t*s),h=Math.max(0,t*s-f+s+o);switch("smart"===n&&(n=a>=h-f&&a<=y+f?"auto":"center"),n){case"start":return y;case"end":return h;case"center":var v=Math.round(h+(y-h)/2);return v<Math.ceil(f/2)?0:v>m+Math.floor(f/2)?m:v;default:return a>=h&&a<=y?a:a<h?h:y}},getStartIndexForOffset:function(e,t){var n=e.itemCount,a=e.itemSize;return Math.max(0,Math.min(n-1,Math.floor(t/a)))},getStopIndexForStartIndex:function(e,t,n){var a=e.direction,r=e.height,o=e.itemCount,l=e.itemSize,i=e.layout,c=e.width,s=t*l,u="horizontal"===a||"horizontal"===i?c:r,d=Math.ceil((u+n-s)/l);return Math.max(0,Math.min(o-1,t+d-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){e.itemSize}}),ae=function(e){var t=e.date,n=e.value,a=e.onMonthSelect,o=e.tileDisabled,l=e.tileClassName,i=e.formatMonth,c=e.showNeighboringDecade,s=e.locale,u=e.onDrillUp,d=e.className,f=t.getFullYear(),m=Array.from({length:12},(function(e,t){return new Date(f,t,1)}));c&&(m.unshift(new Date(f-1,11,1)),m.push(new Date(f+1,0,1)));var y=(0,r.useCallback)((function(e,t){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),null!=o&&o(t)||a(t))}),[a,o]),h=function(e){var t=e.index,c=e.style,d=m[t],h=null==o?void 0:o(d),v=Array.isArray(n)?n[0]:n,g=v&&d.getMonth()===v.getMonth()&&d.getFullYear()===v.getFullYear(),p=(null==l?void 0:l({date:d}))||"";return r.default.createElement("button",{style:c,key:t,onClick:function(){return!h&&a(d)},onDoubleClick:function(){return!h&&(null==u?void 0:u())},onKeyDown:function(e){return y(e,d)},disabled:h,className:"year-month ".concat(g?"selected":""," ").concat(d.getFullYear()!==f?"adjacent-year":""," ").concat(p),"aria-label":"Select ".concat(d.toLocaleString(s,{month:"long",year:"numeric"})),tabIndex:h?-1:0},r.default.createElement("span",{className:"month-content"},i?i(d,s):d.toLocaleString(s,{month:"short"})))};return r.default.createElement("div",{className:"year-view ".concat(d||"")},r.default.createElement(ne,{height:300,width:"100%",itemCount:m.length,itemSize:50,layout:"vertical",className:"year-view-list"},h))};ae.propTypes={date:c().instanceOf(Date).isRequired,value:c().oneOfType([c().instanceOf(Date),c().arrayOf(c().instanceOf(Date))]),onMonthSelect:c().func.isRequired,tileDisabled:c().func,tileClassName:c().func,formatMonth:c().func,showNeighboringDecade:c().bool,locale:c().string,onDrillUp:c().func,className:c().string},ae.defaultProps={showNeighboringDecade:!0,locale:"en-US",className:""};const re=r.default.memo(ae);var oe=function(e){var t=e.date,n=e.onDateSelect,a=e.tileContent,o=e.tileClassName,l=e.tileDisabled,i=e.formatLongDate,c=e.dateFormat,s=void 0===c?"mm/dd/yyyy":c,u=e.weekdayFormat,d=void 0===u?"short":u,f=e.monthFormat,m=void 0===f?"long":f,y=e.includeTime,h=void 0!==y&&y,v=e.locale,g=e.onDrillUp,p=e.today,b=void 0===p?new Date:p,D=e.className,w=e.onClickEvent,S=e.events,k=void 0===S?[]:S,O=e.renderEvent,C=e.selectOnEventClick,N=void 0===C||C;["mm/dd/yyyy","dd/mm/yyyy","yyyy-mm-dd","mm-dd-yyyy","dd-mm-yyyy"].includes(s)||(console.warn("Invalid dateFormat: ".concat(s,". Defaulting to 'mm/dd/yyyy'.")),s="mm/dd/yyyy");var E=null==l?void 0:l({date:t}),L=t.toDateString()===b.toDateString(),M=k.find((function(e){return e.date.toDateString()===t.toDateString()})),x=a?a({date:t,view:"day",event:M}):r.default.createElement("div",{className:"day-detail-content"},r.default.createElement("span",{className:"day-detail-date"},function(){var e={day:"numeric",year:s.includes("yyyy")?"numeric":"2-digit"};"long"===d?e.weekday="long":"short"===d?e.weekday="short":"minimal"===d&&(e.weekday="narrow"),"long"===m?e.month="long":"short"===m?e.month="short":"numeric"===m&&(e.month="2-digit"),h&&(e.hour="2-digit",e.minute="2-digit",e.second="2-digit");var n=i?i(t,v):t.toLocaleDateString(v,e),a={mm:"2-digit"===e.month?t.toLocaleDateString(v,{month:"2-digit"}):t.toLocaleDateString(v,{month:"short"}),dd:t.toLocaleDateString(v,{day:"2-digit"}),yyyy:t.toLocaleDateString(v,{year:"numeric"}),yy:t.toLocaleDateString(v,{year:"2-digit"})};return n=s.replace("mm",a.mm).replace("dd",a.dd).replace("yyyy",a.yyyy).replace("yy",a.yy),h&&(n+=" ".concat(t.toLocaleTimeString(v,{hour:"2-digit",minute:"2-digit",second:"2-digit"}))),n}()),r.default.createElement("div",{className:"day-detail-events"},L&&!M&&r.default.createElement("span",{className:"event-indicator"},"Today's Events: None"),M&&(O?O({event:M,date:t}):r.default.createElement("span",{className:"event-indicator"},M.title||"Event"))));return r.default.createElement("div",{className:"day-view ".concat(D||"")},r.default.createElement("button",{onClick:function(){E||(M?(null==w||w(M),N&&n(t)):n(t))},onDoubleClick:function(){return!E&&(null==g?void 0:g())},disabled:E,className:"day-detail ".concat(L?"today":""," ").concat((null==o?void 0:o({date:t}))||""),"aria-label":"Select ".concat(t.toLocaleDateString(v,{month:"long",day:"numeric",year:"numeric"})),"aria-describedby":M?"event-day-".concat(t.toISOString()):void 0,tabIndex:E?-1:0},M&&r.default.createElement("span",{id:"event-day-".concat(t.toISOString()),className:"sr-only"},M.title||"Event"),x))};oe.propTypes={date:c().instanceOf(Date).isRequired,onDateSelect:c().func.isRequired,tileContent:c().func,tileClassName:c().func,tileDisabled:c().func,formatLongDate:c().func,dateFormat:c().oneOf(["mm/dd/yyyy","dd/mm/yyyy","yyyy-mm-dd","mm-dd-yyyy","dd-mm-yyyy"]),weekdayFormat:c().oneOf(["short","full","minimal"]),monthFormat:c().oneOf(["long","short","numeric"]),includeTime:c().bool,locale:c().string,onDrillUp:c().func,today:c().instanceOf(Date),className:c().string,onClickEvent:c().func,events:c().arrayOf(c().shape({date:c().instanceOf(Date).isRequired,title:c().string,type:c().string,color:c().string})),renderEvent:c().func,selectOnEventClick:c().bool},oe.defaultProps={dateFormat:"mm/dd/yyyy",weekdayFormat:"short",monthFormat:"long",includeTime:!1,locale:"en-US",today:new Date,events:[],selectOnEventClick:!0};const le=r.default.memo(oe);var ie=function(e){var t=e.date,n=e.value,a=e.onYearSelect,o=e.tileDisabled,l=e.tileClassName,i=e.formatYear,c=e.showNeighboringCentury,s=e.locale,u=e.calendarType,d=e.calendarPlugin,f=e.onDrillUp,m=e.className,y=void 0===m?"":m,h=t.getFullYear(),v=I(t,c,u,d).map((function(e){return{date:e,year:e.getFullYear()}})),g=(0,r.useCallback)((function(e,t){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),null!=o&&o({date:t})||a(t))}),[a,o]),p=function(e){var t=e.index,c=e.style,u=v[t],d=null==o?void 0:o({date:u.date}),m=Array.isArray(n)?n[0]:n,y=m&&u.year===m.getFullYear(),p=(null==l?void 0:l({date:u.date}))||"";return r.default.createElement("button",{style:c,key:t,onClick:function(){return!d&&a(u.date)},onDoubleClick:function(){return!d&&(null==f?void 0:f())},onKeyDown:function(e){return g(e,u.date)},disabled:d,className:"year-month ".concat(y?"selected":""," ").concat(u.year<10*Math.floor(h/10)||u.year>=10*Math.floor(h/10)+10?"adjacent-year":""," ").concat(p),"aria-label":"Select ".concat(i?i(u.date,s):u.year),tabIndex:d?-1:0},r.default.createElement("span",{className:"month-content"},i?i(u.date,s):u.year))};return r.default.createElement("div",{className:"year-view ".concat(y)},r.default.createElement(ne,{height:300,width:"100%",itemCount:v.length,itemSize:50,layout:"vertical",className:"year-view-list"},p))};ie.propTypes={date:c().instanceOf(Date).isRequired,value:c().oneOfType([c().instanceOf(Date),c().arrayOf(c().instanceOf(Date))]),onYearSelect:c().func.isRequired,tileDisabled:c().func,tileClassName:c().func,formatYear:c().func,showNeighboringCentury:c().bool,locale:c().string,calendarType:c().string,calendarPlugin:c().object,onDrillUp:c().func,className:c().string},ie.defaultProps={showNeighboringCentury:!0,locale:"en-US",calendarType:"gregorian",className:""};const ce=r.default.memo(ie);function se(e){return se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},se(e)}function ue(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function de(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ue(Object(n),!0).forEach((function(t){fe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ue(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function fe(e,t,n){return(t=function(e){var t=function(e){if("object"!=se(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=se(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==se(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function me(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,l,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(e,t)||ye(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ye(e,t){if(e){if("string"==typeof e)return he(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?he(e,t):void 0}}function he(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ve=function(e){var t,n=e.date,a=void 0===n?new Date:n,o=e.defaultValue,l=e.value,i=e.defaultActiveStartDate,c=e.activeStartDate,s=e.minDate,u=e.maxDate,d=e.disableDate,f=e.disableYear,m=e.selectionMode,y=void 0===m?"single":m,g=e.calendarType,p=void 0===g?"gregorian":g,b=e.locale,D=void 0===b?"en-US":b,S=e.showDoubleView,k=void 0!==S&&S,O=e.showFixedNumberOfWeeks,C=void 0!==O&&O,N=e.showNavigation,E=void 0===N||N,L=e.showNeighboringMonth,x=void 0===L||L,A=e.showNeighboringDecade,I=void 0===A||A,T=e.showWeekNumbers,F=void 0!==T&&T,_=e.defaultView,R=void 0===_?"month":_,Y=e.maxDetail,j=void 0===Y?"month":Y,P=e.minDetail,U=void 0===P?"year":P,V=e.theme,z=void 0===V?"light":V,q=e.events,H=void 0===q?[]:q,B=e.rangeLimit,$=void 0===B?null:B,K=e.formatDay,G=e.formatMonth,Z=e.formatMonthYear,J=e.formatYear,Q=e.formatWeekday,X=e.formatShortWeekday,ee=e.formatLongDate,te=e.weekdayFormat,ne=void 0===te?"short":te,ae=e.dateFormat,oe=void 0===ae?"mm/dd/yyyy":ae,ie=e.includeTime,se=void 0!==ie&&ie,ue=e.navigationLabel,fe=e.navigationAriaLabel,ve=e.navigationAriaLive,ge=e.prevLabel,pe=void 0===ge?r.default.createElement(h,{size:18}):ge,be=e.prevAriaLabel,De=void 0===be?"Previous":be,we=e.nextLabel,Se=void 0===we?r.default.createElement(v,{size:18}):we,ke=e.nextAriaLabel,Oe=void 0===ke?"Next":ke,Ce=e.prev2Label,Ne=e.prev2AriaLabel,Ee=e.next2Label,Le=e.next2AriaLabel,Me=e.onChange,xe=e.onClickMonth,Ae=e.onClickWeekNumber,Ie=e.onActiveStartDateChange,Te=e.onViewChange,Fe=e.onDrillDown,_e=e.onDrillUp,Re=e.onRangeHover,Ye=e.tileClassName,je=e.tileContent,Pe=e.tileDisabled,We=e.className,Ue=void 0===We?"":We,Ve=e.style,ze=void 0===Ve?{}:Ve,qe=e.inputRef,He=e.renderHeader,Be=e.renderMonthView,$e=e.renderYearView,Ke=e.renderDayView,Ge=e.customTileContent,Ze=e.customTheme,Je=void 0===Ze?{}:Ze,Qe=e.dayViewClassName,Xe=e.monthViewClassName,et=e.yearViewClassName,tt=e.styleOverrides,nt=void 0===tt?{}:tt,at=e.holidayDates,rt=void 0===at?[]:at,ot=e.renderCustomFooter,lt=e.weekStartDay,it=void 0===lt?1:lt,ct=e.disabledViews,st=void 0===ct?[]:ct,ut=e.onClickEvent,dt=e.renderEvent,ft=void 0===dt?function(){return null}:dt,mt=e.selectOnEventClick,yt=void 0===mt||mt,ht=e.disableBeforeToday,vt=void 0!==ht&&ht,gt=e.customDisabledDates,pt=void 0===gt?[]:gt,bt=e.customDisabledYears,Dt=void 0===bt?[]:bt,wt=e.customDisabledMonths,St=void 0===wt?[]:wt;if("gregorian"!==p)throw new Error("Unsupported calendar type: ".concat(p,". Only 'gregorian' is supported."));(it<0||it>6)&&(console.warn("Invalid weekStartDay: ".concat(it,". Defaulting to 1 (Monday).")),e.weekStartDay=1),["mm/dd/yyyy","dd/mm/yyyy","yyyy-mm-dd","mm-dd-yyyy","dd-mm-yyyy"].includes(oe)||(console.warn("Invalid dateFormat: ".concat(oe,". Defaulting to 'mm/dd/yyyy'.")),e.dateFormat="mm/dd/yyyy"),["single","range"].includes(y)||(console.warn("Invalid selectionMode: ".concat(y,". Defaulting to 'single'.")),e.selectionMode="single");var kt=me((0,r.useState)(R),2),Ot=kt[0],Ct=kt[1],Nt=me((0,r.useState)(c||i||a),2),Et=Nt[0],Lt=Nt[1],Mt=me((0,r.useState)(l||o||null),2),xt=Mt[0],At=Mt[1],It=me((0,r.useState)(null),2),Tt=It[0],Ft=It[1],_t=null!==(t=e.rangeStart)&&void 0!==t?t:Tt,Rt=(0,r.useRef)(null),Yt=me((0,r.useState)([]),2),jt=Yt[0],Pt=Yt[1],Wt=me((0,r.useState)(null),2),Ut=Wt[0],Vt=Wt[1],zt=new Date;zt.setHours(0,0,0,0),(0,r.useEffect)((function(){c||i||Et&&!(Et.getFullYear()<zt.getFullYear())||Lt(new Date(zt.getFullYear(),0,1))}),[c,i,Et,zt]);var qt=(0,r.useCallback)((function(e){st.includes(e)||"day"===e&&"month"===j||"year"===e&&"month"===U||"decade"===e&&"year"===U||(Pt((function(e){return[].concat(function(e){if(Array.isArray(e))return he(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||ye(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[Ot]);var t})),Ct(e),null==Te||Te({view:e}))}),[j,U,Te,Ot,st]),Ht=(0,r.useCallback)((function(){var e=jt[jt.length-1];e&&(Ct(e),Pt((function(e){return e.slice(0,-1)})),null==Te||Te({view:e}))}),[jt,Te]),Bt=(0,r.useCallback)((function(e){Lt(e),null==Ie||Ie({activeStartDate:e})}),[Ie]),$t=(0,r.useCallback)((function(e){if("range"===y)if(_t){if($&&Math.abs(e-_t)/864e5>$)return;var t=[_t,e].sort((function(e,t){return e-t}));At(t),Ft(null),null==Me||Me(t),Vt(null)}else Ft(e),At([e]),Vt(null),null==Me||Me([e]);else At(e),Ft(null),null==Me||Me(e)}),[y,_t,Me,$]),Kt=me((0,r.useState)("light"),2),Gt=Kt[0],Zt=Kt[1];(0,r.useEffect)((function(){var e=window.matchMedia("(prefers-color-scheme: dark)");Zt(e.matches?"dark":"light");var t=function(e){return Zt(e.matches?"dark":"light")};return e.addEventListener("change",t),function(){return e.removeEventListener("change",t)}}),[]);var Jt="system"===z?Gt:z,Qt=(0,r.useCallback)((function(e){var t=vt&&e<zt,n=pt.some((function(t){return t.toDateString()===e.toDateString()}));return!!(s&&e<s)||!!(u&&e>u)||(d?d(e):t||n)}),[s,u,d,vt,pt,zt]),Xt=(0,r.useCallback)((function(e){var t=e<zt.getFullYear(),n=Dt.includes(e);return f?f(e):t||n}),[f,Dt,zt]),en=(0,r.useCallback)((function(e){var t=vt&&e<new Date(zt.getFullYear(),zt.getMonth(),1),n=St.some((function(t){return t.year===e.getFullYear()&&t.month===e.getMonth()}));return f?f(e.getFullYear()):t||n}),[f,vt,St,zt]),tn=(0,r.useCallback)((function(e){"range"===y&&_t&&(Rt.current=e,Vt(e),!Re||null!=Pe&&Pe({date:e})||Re({start:_t,end:e}))}),[y,_t,Re,Pe]),nn=(0,r.useCallback)((function(e){var t,n,a,r;if("month"===Ot){var o=new Date(Et);switch(e.key){case"ArrowLeft":o.setDate(o.getDate()-1),Bt(o),null===(t=document.querySelector('.calendar-day[aria-label*="Select '.concat(o.toLocaleDateString(D),'"]')))||void 0===t||t.focus();break;case"ArrowRight":o.setDate(o.getDate()+1),Bt(o),null===(n=document.querySelector('.calendar-day[aria-label*="Select '.concat(o.toLocaleDateString(D),'"]')))||void 0===n||n.focus();break;case"ArrowUp":o.setDate(o.getDate()-7),Bt(o),null===(a=document.querySelector('.calendar-day[aria-label*="Select '.concat(o.toLocaleDateString(D),'"]')))||void 0===a||a.focus();break;case"ArrowDown":o.setDate(o.getDate()+7),Bt(o),null===(r=document.querySelector('.calendar-day[aria-label*="Select '.concat(o.toLocaleDateString(D),'"]')))||void 0===r||r.focus();break;case"Enter":Qt(Et)||$t(Et);break;case"Backspace":Ht()}}}),[Ot,Et,Bt,$t,Qt,Ht,D]),an=(0,r.useCallback)((function(e){var t=e.date,n=(null==Ye?void 0:Ye({date:t}))||"",a=H.find((function(e){return e.date.toDateString()===t.toDateString()})),r=a?"has-event event-".concat(a.type||"default"):"",o=rt.some((function(e){return e.toDateString()===t.toDateString()}))?"holiday":"";if("range"===y&&_t&&Ut){var l=me(_t<Ut?[_t,Ut]:[Ut,_t],2),i=l[0],c=l[1];if(t>=i&&t<=c)return"".concat(n," range-preview ").concat(t.toDateString()===Ut.toDateString()?"hover-range-end":""," ").concat(r," ").concat(o).trim();if(t.toDateString()===_t.toDateString())return"".concat(n," selected-start ").concat(r," ").concat(o).trim()}if(Array.isArray(xt)){var s=me(xt,2),u=s[0],d=s[1];if(u&&t.toDateString()===u.toDateString())return"".concat(n," selected-start ").concat(r," ").concat(o).trim();if(d&&t.toDateString()===d.toDateString())return"".concat(n," selected-end ").concat(r," ").concat(o).trim();if(u&&d&&t>u&&t<d)return"".concat(n," in-range ").concat(r," ").concat(o).trim()}else if(xt&&t.toDateString()===xt.toDateString())return"".concat(n," selected ").concat(r," ").concat(o).trim();return"".concat(n," ").concat(r," ").concat(o).trim()}),[Ye,y,_t,xt,H,Ut,rt]),rn=(0,r.useMemo)((function(){return function(e){var t=e.date,n=e.view,a=H.find((function(e){return e.date.toDateString()===t.toDateString()}));return a&&"month"===n?r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:"event-indicator",style:{backgroundColor:a.color||"#295d96"}},je?je({date:t,view:n}):t.getDate()),r.default.createElement("span",{id:"event-".concat(t.toISOString()),className:"sr-only"},a.title||"Event")):je?je({date:t,view:n}):null}}),[H,je]),on=(0,r.useMemo)((function(){var e=M(Et,it,p,C,x),t=k?M(new Date(Et.getFullYear(),Et.getMonth()+1),it,p,C,x):[];return{first:e.map((function(e){return de({},e)})),second:t.map((function(e){return de({},e)}))}}),[Et,it,p,C,x,k]),ln=Object.entries(Je).reduce((function(e,t){var n=me(t,2),a=n[0],r=n[1];return e["--custom-".concat(a)]=r,e}),{"--primary-color":Je.primary||("dark"===Jt?"#63b3ed":"#4b6cb7"),"--accent-color":Je.accent||("dark"===Jt?"#68d391":"#48bb78"),"--day-size":Je.daySize||"40px"});return r.default.createElement("div",{className:"calendar ".concat(Ue," ").concat(k?"double-view":""," theme-").concat(Jt," ").concat(Je?"custom-theme":""),style:de(de(de({},ze),ln),nt.calendar),ref:qe,onKeyDown:nn,tabIndex:0,"aria-label":"Interactive Calendar"},E&&(He?He({date:Et,onChange:Bt,view:Ot}):r.default.createElement(w,{date:Et,onChange:Bt,view:Ot,minDetail:U,maxDetail:j,prevLabel:pe,prevAriaLabel:De,nextLabel:Se,nextAriaLabel:Oe,prev2Label:Ce,prev2AriaLabel:Ne,next2Label:Ee,next2AriaLabel:Le,navigationLabel:ue,navigationAriaLabel:fe,navigationAriaLive:ve,formatMonthYear:Z,formatYear:J,locale:D,showDoubleView:k,style:nt.header,isYearDisabled:Xt})),r.default.createElement("div",{className:"calendar-container",style:nt.container},function(){switch(Ot){case"day":return Ke?Ke({date:Et,onDateSelect:$t}):r.default.createElement(le,{date:Et,onDateSelect:$t,tileContent:rn,tileClassName:an,tileDisabled:Pe||Qt,formatLongDate:ee,dateFormat:oe,weekdayFormat:ne,monthFormat,includeTime:se,locale:D,onDrillUp:function(){qt("month"),null==_e||_e()},today:zt,className:Qe,onClickEvent:ut,events:H,renderEvent:ft,selectOnEventClick:yt});case"year":return $e?$e({date:Et,onMonthSelect}):r.default.createElement(re,{date:Et,value:xt,onMonthSelect:function(e){Bt(e),qt("month"),null==xe||xe(e),null==Fe||Fe()},tileDisabled:en,tileClassName:Ye,formatMonth:G,showNeighboringDecade:I,locale:D,onDrillUp:function(){qt("decade"),null==_e||_e()},className:et});case"decade":return r.default.createElement(ce,{date:Et,value:xt,onYearSelect:function(e){Bt(e),qt("year"),null==Fe||Fe()},tileDisabled:Xt,tileClassName:Ye,formatYear:J,showNeighboringCentury:I,locale:D,onDrillUp:function(){qt("year"),null==_e||_e()},className:et});case"month":return Be?Be({date:Et,onDateSelect:$t}):r.default.createElement(W,{date:Et,onDateSelect:$t,onClickWeekNumber:Ae,tileContent:Ge,tileClassName:an,tileDisabled:Pe||Qt,showWeekNumbers:F,showNeighboringMonth:x,showFixedNumberOfWeeks:C,formatDay:K,formatWeekday:Q,formatShortWeekday:X,weekdayFormat:ne,locale:D,calendarType:p,onDrillDown:function(){qt("day"),null==Fe||Fe()},onDrillUp:function(){qt("year"),null==_e||_e()},showDoubleView:k,value:xt,onHover:tn,onClearHover:function(){Rt.current=null,Vt(null),null==Re||Re({start:_t,end:null})},today:zt,weekStartDay:it,className:Xe,onClickEvent:ut,events:H,renderEvent:ft,selectOnEventClick:yt,days:on});default:return null}}()),jt.length>0&&r.default.createElement("button",{className:"back-button",onClick:Ht,"aria-label":"Back to previous view",style:nt.backButton},"Back"),ot&&r.default.createElement("div",{className:"calendar-footer",style:nt.footer},ot({selectedValue:xt,activeDate:Et})))};ve.propTypes={date:c().instanceOf(Date),defaultValue:c().oneOfType([c().instanceOf(Date),c().arrayOf(c().instanceOf(Date))]),value:c().oneOfType([c().instanceOf(Date),c().arrayOf(c().instanceOf(Date))]),defaultActiveStartDate:c().instanceOf(Date),activeStartDate:c().instanceOf(Date),minDate:c().instanceOf(Date),maxDate:c().instanceOf(Date),disableDate:c().func,disableYear:c().func,selectionMode:c().oneOf(["single","range"]),calendarType:c().string,locale:c().string,showDoubleView:c().bool,showFixedNumberOfWeeks:c().bool,showNavigation:c().bool,showNeighboringMonth:c().bool,showNeighboringDecade:c().bool,showWeekNumbers:c().bool,defaultView:c().oneOf(["day","month","year","decade"]),maxDetail:c().oneOf(["day","month","year","decade"]),minDetail:c().oneOf(["day","month","year","decade"]),theme:c().oneOf(["light","dark","system",c().string]),events:c().arrayOf(c().shape({date:c().instanceOf(Date).isRequired,title:c().string,type:c().string,color:c().string})),rangeLimit:c().number,formatDay:c().func,formatMonth:c().func,formatMonthYear:c().func,formatYear:c().func,formatWeekday:c().func,formatShortWeekday:c().func,formatLongDate:c().func,weekdayFormat:c().oneOf(["short","full","minimal"]),dateFormat:c().oneOf(["mm/dd/yyyy","dd/mm/yyyy","yyyy-mm-dd","mm-dd-yyyy","dd-mm-yyyy"]),includeTime:c().bool,navigationLabel:c().func,navigationAriaLabel:c().string,navigationAriaLive:c().string,prevLabel:c().node,prevAriaLabel:c().string,nextLabel:c().node,nextAriaLabel:c().string,prev2Label:c().node,prev2AriaLabel:c().string,next2Label:c().node,next2AriaLabel:c().string,onChange:c().func,onClickMonth:c().func,onClickWeekNumber:c().func,onActiveStartDateChange:c().func,onViewChange:c().func,onDrillDown:c().func,onDrillUp:c().func,onRangeHover:c().func,tileClassName:c().func,tileContent:c().func,tileDisabled:c().func,className:c().string,style:c().object,inputRef:c().oneOfType([c().func,c().shape({current:c().any})]),renderHeader:c().func,renderMonthView:c().func,renderYearView:c().func,renderDayView:c().func,customTileContent:c().func,customTheme:c().object,dayViewClassName:c().string,monthViewClassName:c().string,yearViewClassName:c().string,styleOverrides:c().shape({calendar:c().object,header:c().object,container:c().object,backButton:c().object,footer:c().object}),holidayDates:c().arrayOf(c().instanceOf(Date)),renderCustomFooter:c().func,weekStartDay:c().number,disabledViews:c().arrayOf(c().string),onClickEvent:c().func,renderEvent:c().func,selectOnEventClick:c().bool,disableBeforeToday:c().bool,customDisabledDates:c().arrayOf(c().instanceOf(Date)),customDisabledYears:c().arrayOf(c().number),customDisabledMonths:c().arrayOf(c().shape({year:c().number,month:c().number}))},ve.defaultProps={date:new Date,selectionMode:"single",calendarType:"gregori