UNPKG

react-d-calendar

Version:

A fully customizable, accessible, and responsive React calendar component

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