/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/datedreamer@0.6.2/dist/datedreamer.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.datedreamer=t():e.datedreamer=t()}(this,()=>(()=>{var e={353(e){e.exports=function(){"use strict";var e=6e4,t=36e5,a="millisecond",n="second",r="minute",d="hour",s="day",i="week",o="month",l="quarter",c="year",h="date",u="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,D={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],a=e%100;return"["+e+(t[(a-20)%10]||t[a]||t[0])+"]"}},f=function(e,t,a){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(a)+e},g={s:f,z:function(e){var t=-e.utcOffset(),a=Math.abs(t),n=Math.floor(a/60),r=a%60;return(t<=0?"+":"-")+f(n,2,"0")+":"+f(r,2,"0")},m:function e(t,a){if(t.date()<a.date())return-e(a,t);var n=12*(a.year()-t.year())+(a.month()-t.month()),r=t.clone().add(n,o),d=a-r<0,s=t.clone().add(n+(d?-1:1),o);return+(-(n+(a-r)/(d?r-s:s-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:o,y:c,w:i,d:s,D:h,h:d,m:r,s:n,ms:a,Q:l}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},_="en",y={};y[_]=D;var b="$isDayjsObject",M=function(e){return e instanceof k||!(!e||!e[b])},v=function e(t,a,n){var r;if(!t)return _;if("string"==typeof t){var d=t.toLowerCase();y[d]&&(r=d),a&&(y[d]=a,r=d);var s=t.split("-");if(!r&&s.length>1)return e(s[0])}else{var i=t.name;y[i]=t,r=i}return!n&&r&&(_=r),r||!n&&_},w=function(e,t){if(M(e))return e.clone();var a="object"==typeof t?t:{};return a.date=e,a.args=arguments,new k(a)},x=g;x.l=v,x.i=M,x.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var k=function(){function D(e){this.$L=v(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[b]=!0}var f=D.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,a=e.utc;if(null===t)return new Date(NaN);if(x.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(m);if(n){var r=n[2]-1||0,d=(n[7]||"0").substring(0,3);return a?new Date(Date.UTC(n[1],r,n[3]||1,n[4]||0,n[5]||0,n[6]||0,d)):new Date(n[1],r,n[3]||1,n[4]||0,n[5]||0,n[6]||0,d)}}return new Date(t)}(e),this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return x},f.isValid=function(){return!(this.$d.toString()===u)},f.isSame=function(e,t){var a=w(e);return this.startOf(t)<=a&&a<=this.endOf(t)},f.isAfter=function(e,t){return w(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<w(e)},f.$g=function(e,t,a){return x.u(e)?this[t]:this.set(a,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,t){var a=this,l=!!x.u(t)||t,u=x.p(e),m=function(e,t){var n=x.w(a.$u?Date.UTC(a.$y,t,e):new Date(a.$y,t,e),a);return l?n:n.endOf(s)},p=function(e,t){return x.w(a.toDate()[e].apply(a.toDate("s"),(l?[0,0,0,0]:[23,59,59,999]).slice(t)),a)},D=this.$W,f=this.$M,g=this.$D,_="set"+(this.$u?"UTC":"");switch(u){case c:return l?m(1,0):m(31,11);case o:return l?m(1,f):m(0,f+1);case i:var y=this.$locale().weekStart||0,b=(D<y?D+7:D)-y;return m(l?g-b:g+(6-b),f);case s:case h:return p(_+"Hours",0);case d:return p(_+"Minutes",1);case r:return p(_+"Seconds",2);case n:return p(_+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(e,t){var i,l=x.p(e),u="set"+(this.$u?"UTC":""),m=(i={},i[s]=u+"Date",i[h]=u+"Date",i[o]=u+"Month",i[c]=u+"FullYear",i[d]=u+"Hours",i[r]=u+"Minutes",i[n]=u+"Seconds",i[a]=u+"Milliseconds",i)[l],p=l===s?this.$D+(t-this.$W):t;if(l===o||l===c){var D=this.clone().set(h,1);D.$d[m](p),D.init(),this.$d=D.set(h,Math.min(this.$D,D.daysInMonth())).$d}else m&&this.$d[m](p);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[x.p(e)]()},f.add=function(a,l){var h,u=this;a=Number(a);var m=x.p(l),p=function(e){var t=w(u);return x.w(t.date(t.date()+Math.round(e*a)),u)};if(m===o)return this.set(o,this.$M+a);if(m===c)return this.set(c,this.$y+a);if(m===s)return p(1);if(m===i)return p(7);var D=(h={},h[r]=e,h[d]=t,h[n]=1e3,h)[m]||1,f=this.$d.getTime()+a*D;return x.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,a=this.$locale();if(!this.isValid())return a.invalidDate||u;var n=e||"YYYY-MM-DDTHH:mm:ssZ",r=x.z(this),d=this.$H,s=this.$m,i=this.$M,o=a.weekdays,l=a.months,c=a.meridiem,h=function(e,a,r,d){return e&&(e[a]||e(t,n))||r[a].slice(0,d)},m=function(e){return x.s(d%12||12,e,"0")},D=c||function(e,t,a){var n=e<12?"AM":"PM";return a?n.toLowerCase():n};return n.replace(p,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return x.s(t.$y,4,"0");case"M":return i+1;case"MM":return x.s(i+1,2,"0");case"MMM":return h(a.monthsShort,i,l,3);case"MMMM":return h(l,i);case"D":return t.$D;case"DD":return x.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return h(a.weekdaysMin,t.$W,o,2);case"ddd":return h(a.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(d);case"HH":return x.s(d,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return D(d,s,!0);case"A":return D(d,s,!1);case"m":return String(s);case"mm":return x.s(s,2,"0");case"s":return String(t.$s);case"ss":return x.s(t.$s,2,"0");case"SSS":return x.s(t.$ms,3,"0");case"Z":return r}return null}(e)||r.replace(":","")})},f.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},f.diff=function(a,h,u){var m,p=this,D=x.p(h),f=w(a),g=(f.utcOffset()-this.utcOffset())*e,_=this-f,y=function(){return x.m(p,f)};switch(D){case c:m=y()/12;break;case o:m=y();break;case l:m=y()/3;break;case i:m=(_-g)/6048e5;break;case s:m=(_-g)/864e5;break;case d:m=_/t;break;case r:m=_/e;break;case n:m=_/1e3;break;default:m=_}return u?m:x.a(m)},f.daysInMonth=function(){return this.endOf(o).$D},f.$locale=function(){return y[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var a=this.clone(),n=v(e,t,!0);return n&&(a.$L=n),a},f.clone=function(){return x.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},D}(),E=k.prototype;return w.prototype=E,[["$ms",a],["$s",n],["$m",r],["$H",d],["$W",s],["$M",o],["$y",c],["$D",h]].forEach(function(e){E[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),w.extend=function(e,t){return e.$i||(e(t,k,w),e.$i=!0),w},w.locale=v,w.isDayjs=M,w.unix=function(e){return w(1e3*e)},w.en=y[_],w.Ls=y,w.p={},w}()},445(e){e.exports=function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,a=/\d/,n=/\d\d/,r=/\d\d?/,d=/\d*[^-_:/,()\s\d]+/,s={},i=function(e){return(e=+e)+(e>68?1900:2e3)},o=function(e){return function(t){this[e]=+t}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),a=60*t[1]+(+t[2]||0);return 0===a?0:"+"===t[0]?-a:a}(e)}],c=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},h=function(e,t){var a,n=s.meridiem;if(n){for(var r=1;r<=24;r+=1)if(e.indexOf(n(r,0,t))>-1){a=r>12;break}}else a=e===(t?"pm":"PM");return a},u={A:[d,function(e){this.afternoon=h(e,!1)}],a:[d,function(e){this.afternoon=h(e,!0)}],Q:[a,function(e){this.month=3*(e-1)+1}],S:[a,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[r,o("seconds")],ss:[r,o("seconds")],m:[r,o("minutes")],mm:[r,o("minutes")],H:[r,o("hours")],h:[r,o("hours")],HH:[r,o("hours")],hh:[r,o("hours")],D:[r,o("day")],DD:[n,o("day")],Do:[d,function(e){var t=s.ordinal,a=e.match(/\d+/);if(this.day=a[0],t)for(var n=1;n<=31;n+=1)t(n).replace(/\[|\]/g,"")===e&&(this.day=n)}],w:[r,o("week")],ww:[n,o("week")],M:[r,o("month")],MM:[n,o("month")],MMM:[d,function(e){var t=c("months"),a=(c("monthsShort")||t.map(function(e){return e.slice(0,3)})).indexOf(e)+1;if(a<1)throw new Error;this.month=a%12||a}],MMMM:[d,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,o("year")],YY:[n,function(e){this.year=i(e)}],YYYY:[/\d{4}/,o("year")],Z:l,ZZ:l};function m(a){var n,r;n=a,r=s&&s.formats;for(var d=(a=n.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(t,a,n){var d=n&&n.toUpperCase();return a||r[n]||e[n]||r[d].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,a){return t||a.slice(1)})})).match(t),i=d.length,o=0;o<i;o+=1){var l=d[o],c=u[l],h=c&&c[0],m=c&&c[1];d[o]=m?{regex:h,parser:m}:l.replace(/^\[|\]$/g,"")}return function(e){for(var t={},a=0,n=0;a<i;a+=1){var r=d[a];if("string"==typeof r)n+=r.length;else{var s=r.regex,o=r.parser,l=e.slice(n),c=s.exec(l)[0];o.call(t,c),e=e.replace(c,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var a=e.hours;t?a<12&&(e.hours+=12):12===a&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,a){a.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(i=e.parseTwoDigitYear);var n=t.prototype,r=n.parse;n.parse=function(e){var t=e.date,n=e.utc,d=e.args;this.$u=n;var i=d[1];if("string"==typeof i){var o=!0===d[2],l=!0===d[3],c=o||l,h=d[2];l&&(h=d[2]),s=this.$locale(),!o&&h&&(s=a.Ls[h]),this.$d=function(e,t,a,n){try{if(["x","X"].indexOf(t)>-1)return new Date(("X"===t?1e3:1)*e);var r=m(t)(e),d=r.year,s=r.month,i=r.day,o=r.hours,l=r.minutes,c=r.seconds,h=r.milliseconds,u=r.zone,p=r.week,D=new Date,f=i||(d||s?1:D.getDate()),g=d||D.getFullYear(),_=0;d&&!s||(_=s>0?s-1:D.getMonth());var y,b=o||0,M=l||0,v=c||0,w=h||0;return u?new Date(Date.UTC(g,_,f,b,M,v,w+60*u.offset*1e3)):a?new Date(Date.UTC(g,_,f,b,M,v,w)):(y=new Date(g,_,f,b,M,v,w),p&&(y=n(y).week(p).toDate()),y)}catch(e){return new Date("")}}(t,i,n,a),this.init(),h&&!0!==h&&(this.$L=this.locale(h).$L),c&&t!=this.format(i)&&(this.$d=new Date("")),s={}}else if(i instanceof Array)for(var u=i.length,p=1;p<=u;p+=1){d[1]=i[p-1];var D=a.apply(this,d);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}p===u&&(this.$d=new Date(""))}else r.call(this,e)}}}()}};const t={};function a(n){const r=t[n];if(void 0!==r)return r.exports;const d=t[n]={exports:{}};return e[n].call(d.exports,d,d.exports,a),d.exports}a.n=e=>{const 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=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let n={};return(()=>{"use strict";a.r(n),a.d(n,{Utils:()=>M,calendar:()=>f,calendarToggle:()=>g,range:()=>b});const e=["January","February","March","April","May","June","July","August","September","October","November","December"],t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var r=a(353),d=a.n(r),s=a(445),i=a.n(s);function o(t){const a=e[t.displayedMonthDate.getMonth()];if(!t.hidePrevNav){const e=document.createElement("button");e.classList.add("datedreamer__calendar_prev"),e.innerHTML=t.iconPrev?t.iconPrev:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"/></svg>',e.setAttribute("aria-label",`Previous ${a} ${t.displayedMonthDate.getFullYear()}`),e.setAttribute("role","button"),t.isPrevNavBlocked()&&(e.disabled=!0),e.addEventListener("click",()=>t.goToPrevMonth()),t.headerElement?.append(e)}const n=document.createElement("span");if(n.classList.add("datedreamer__calendar_title"),n.setAttribute("aria-label",`${a} ${t.displayedMonthDate.getFullYear()}`),n.innerText=`${a} ${t.displayedMonthDate.getFullYear()}`,t.headerElement?.append(n),!t.hideNextNav){const e=document.createElement("button");e.classList.add("datedreamer__calendar_next"),e.innerHTML=t.iconNext?t.iconNext:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/></svg>',e.setAttribute("aria-label",`Next ${a} ${t.displayedMonthDate.getFullYear()}`),t.isNextNavBlocked()&&(e.disabled=!0),e.setAttribute("role","button"),e.addEventListener("click",()=>t.goToNextMonth()),t.headerElement?.append(e)}}function l(e){if(e.hideInputs)return;const t=document.createElement("label");t.setAttribute("for","date-input"),t.textContent=e.inputLabel;const a=document.createElement("div");a.classList.add("datedreamer__calendar__inputs-wrap");const n=document.createElement("input");n.id="date-input",n.placeholder=e.inputPlaceholder,n.value=d()(e.selectedDate).format(e.format),n.addEventListener("keyup",t=>e.dateInputChanged(t)),n.setAttribute("title","Set a date");const r=document.createElement("button");r.innerText="Today",r.addEventListener("click",()=>e.setDateToToday()),a.append(n,r),e.inputsElement?.append(t,a)}function c(e){const t=e.inputsElement?.querySelector("input");t&&t.classList.remove("error"),e.errorsElement&&(e.errorsElement.innerHTML=""),e.errors.forEach(({type:a,message:n})=>{const r=document.createElement("span");r.innerText=n,"input-error"==a&&t&&t.classList.add("error"),e.errorsElement?.append(r)}),e.errors=[]}function h(e,a=!1){const n=e.selectedDate.getDate(),r=e.displayedMonthDate.getMonth(),d=e.displayedMonthDate.getFullYear(),s=new Date(d,r+1,0).getDate(),i=new Date(d,r,1),o=new Date(d,r,s),l=t.indexOf(i.toString().split(" ")[0]),c=6-t.indexOf(o.toString().split(" ")[0]);for(let t=1;t<=l+s+c;t++)if(t>l&&t<=l+s){const i=document.createElement("div");i.classList.add("datedreamer__calendar_day");const o=document.createElement("button");o.addEventListener("click",()=>e.setSelectedDay(t-l)),o.addEventListener("keydown",t=>e.handleDayKeyDown(t)),o.innerText=(t-l).toString(),o.setAttribute("type","button");const c=new Date(d,r,t-l),h=e.isDateSelectable(c);if(h||(o.disabled=!0,i.classList.add("disabled")),h&&e.rangeMode){e.displayedMonthDate.getMonth()==e.connector?.startDate?.getMonth()&&e.displayedMonthDate.getFullYear()==e.connector.startDate.getFullYear()&&t-l==e.connector.startDate.getDate()&&i.classList.add("active"),o.setAttribute("aria-selected","true"),e.displayedMonthDate.getMonth()==e.connector?.endDate?.getMonth()&&e.displayedMonthDate.getFullYear()==e.connector.endDate.getFullYear()&&t-l==e.connector.endDate.getDate()&&i.classList.add("active"),o.setAttribute("aria-selected","true");const a=new Date(e.displayedMonthDate);if(a.setDate(t-l),e.connector?.startDate&&e.connector.endDate){const t=e.connector.startDate,n=e.connector.endDate;(t<a&&n>a||a.getMonth()===t.getMonth()&&a.getFullYear()===t.getFullYear()&&a>=t&&a<n||a.getMonth()===n.getMonth()&&a.getFullYear()===n.getFullYear()&&a<=n&&a>t||a>t&&a<n)&&i.classList.add("highlight")}}else t==l+n&&e.displayedMonthDate.getMonth()==e.selectedDate.getMonth()&&e.displayedMonthDate.getFullYear()==e.selectedDate.getFullYear()&&(i.classList.add("active"),o.setAttribute("aria-selected","true"));i.append(o),e.daysElement?.append(i),a?("first"===a&&t===l+1||"last"===a&&t===l+s)&&o.focus():t==l+n&&e.displayedMonthDate.getMonth()==e.selectedDate.getMonth()&&e.displayedMonthDate.getFullYear()==e.selectedDate.getFullYear()&&o.focus()}else if(t<=l){const a=document.createElement("div");if(a.classList.add("datedreamer__calendar_day","disabled"),a.setAttribute("role","gridcell"),!e.hideOtherMonthDays){const e=document.createElement("button");e.innerText=new Date(d,r,0-(l-t)).getDate().toString(),e.setAttribute("aria-disabled","true"),e.setAttribute("tabindex","-1"),e.setAttribute("type","button"),a.append(e)}e.daysElement?.append(a)}else if(t>l+s){const a=t-(l+c+s)+c,n=document.createElement("div");if(n.classList.add("datedreamer__calendar_day","disabled"),n.setAttribute("role","gridcell"),!e.hideOtherMonthDays){const e=document.createElement("button");e.innerText=new Date(d,r+1,a).getDate().toString(),e.setAttribute("aria-disabled","true"),e.setAttribute("tabindex","-1"),e.setAttribute("type","button"),n.append(e)}e.daysElement?.append(n)}}function u(e){if(e.isPrevNavBlocked())return;const t=new Date(e.displayedMonthDate);if(t.setMonth(t.getMonth()-1),e.displayedMonthDate=t,e.rebuildCalendar(!0,"last"),e.onPrevNav){const t=new CustomEvent("onPrevNav",{detail:{displayedMonthDate:e.displayedMonthDate,calendar:e.calendarElement}});e.onPrevNav(t)}}function m(e){if(e.isNextNavBlocked())return;const t=new Date(e.displayedMonthDate);if(t.setMonth(t.getMonth()+1),e.displayedMonthDate=t,e.rebuildCalendar(!0,"first"),e.onNextNav){const t=new CustomEvent("onNextNav",{detail:{displayedMonthDate:e.displayedMonthDate,calendar:e.calendarElement}});e.onNextNav(t)}}function p(e,t){const a=new Date(e.displayedMonthDate);a.setDate(t);const n=e.constraintViolationMessage(a);if(n)return e.errors.push({type:"selection-error",message:n}),void c(e);if(e.rangeMode){if(e.connector){if(null!==e.connector.startDate&&null!==e.connector.endDate)e.connector.startDate=new Date(a),e.connector.endDate=null;else if(null==e.connector.startDate)e.connector.startDate=new Date(a);else if(null==e.connector.endDate&&(e.connector.endDate=new Date(a),e.connector.startDate>e.connector.endDate)){const t=e.connector.startDate;e.connector.startDate=e.connector.endDate,e.connector.endDate=t}e.connector.dateChangedCallback&&e.connector.dateChangedCallback(new CustomEvent("dateChanged")),e.connector.rebuildAllCalendars()}}else e.selectedDate=new Date(a),e.rebuildCalendar(),D(e,e.selectedDate)}function D(e,t){if(e.onChange){const a=new CustomEvent("onChange",{detail:d()(t).format(e.format)});e.onChange(a)}}d().extend(i());class f extends HTMLElement{constructor(e){super(),this.calendarElement=null,this.headerElement=null,this.inputsElement=null,this.errorsElement=null,this.inputLabel="Set a date",this.inputPlaceholder="Enter a date",this.hideInputs=!1,this.darkMode=!1,this.darkModeAuto=!1,this.hideOtherMonthDays=!1,this.minDate=void 0,this.maxDate=void 0,this.disabledDates=void 0,this.disabledDateSet=void 0,this.errors=[],this.daysElement=null,this.selectedDate=new Date,this.displayedMonthDate=new Date,this.theme="unstyled",this.styles="",this.goToPrevMonth=()=>{u(this)},this.goToNextMonth=()=>{m(this)},this.handleDayKeyDown=e=>{!function(e,t){const a=t.target,n=parseInt(a.innerText);switch(new Date(e.displayedMonthDate).setDate(n),t.key){case"ArrowLeft":if(t.preventDefault(),n>1){const e=a.parentElement?.previousElementSibling?.querySelector("button");e&&!e.disabled&&e.focus()}else u(e);break;case"ArrowRight":if(t.preventDefault(),n<new Date(e.displayedMonthDate.getFullYear(),e.displayedMonthDate.getMonth()+1,0).getDate()){const e=a.parentElement?.nextElementSibling?.querySelector("button");e&&!e.disabled&&e.focus()}else m(e);break;case"ArrowUp":if(t.preventDefault(),n>7){const t=e.daysElement?.children,n=t&&a.parentElement?Array.prototype.indexOf.call(t,a.parentElement):-1,r=t?.[n-7]?.querySelector("button");r&&!r.disabled&&r.focus()}else u(e);break;case"ArrowDown":if(t.preventDefault(),n+7<=new Date(e.displayedMonthDate.getFullYear(),e.displayedMonthDate.getMonth()+1,0).getDate()){const t=e.daysElement?.children,n=t&&a.parentElement?Array.prototype.indexOf.call(t,a.parentElement):-1,r=t?.[n+7]?.querySelector("button");r&&!r.disabled&&r.focus()}else m(e);break;case"Enter":case" ":t.preventDefault(),p(e,n);break;case"Home":{t.preventDefault();const a=e.daysElement?.querySelector("button:not([disabled])");a&&a.focus();break}case"End":{t.preventDefault();const a=e.daysElement?.querySelectorAll("button:not([disabled])");a&&a.length>0&&a[a.length-1].focus();break}}}(this,e)},this.setSelectedDay=e=>{p(this,e)},this.setDateToToday=()=>{!function(e){const t=new Date,a=e.constraintViolationMessage(t);if(a)return e.errors.push({type:"selection-error",message:a}),void c(e);e.selectedDate=t,e.displayedMonthDate=new Date(t),e.rebuildCalendar(),D(e,e.selectedDate)}(this)},this.dateInputChanged=e=>{!function(e,t){if(t instanceof KeyboardEvent&&"Tab"===t.code)return;const a=d()(t.target.value,e.format).toDate();if(isNaN(a.getUTCMilliseconds()))e.errors.push({type:"input-error",message:"The entered date is invalid"}),c(e);else{const t=e.constraintViolationMessage(a);if(t)return e.errors.push({type:"input-error",message:t}),void c(e);e.selectedDate=a,e.displayedMonthDate=new Date(a),e.rebuildCalendar(!1),D(e,e.selectedDate)}}(this,e)},this.disabled=!1,this.element=e.element,e.format&&(this.format=e.format),e.theme&&(this.theme=e.theme),e.styles&&(this.styles=e.styles),e.iconNext&&(this.iconNext=e.iconNext),e.iconPrev&&(this.iconPrev=e.iconPrev),e.inputLabel&&(this.inputLabel=e.inputLabel),e.inputPlaceholder&&(this.inputPlaceholder=e.inputPlaceholder),e.hidePrevNav&&(this.hidePrevNav=e.hidePrevNav),e.hideNextNav&&(this.hideNextNav=e.hideNextNav),e.hideInputs&&(this.hideInputs=e.hideInputs),void 0!==e.darkMode&&(this.darkMode=e.darkMode),e.darkModeAuto&&(this.darkModeAuto=e.darkModeAuto),e.rangeMode&&(this.rangeMode=e.rangeMode),e.connector&&(this.connector=e.connector,this.connector.calendars.push(this)),e.hideOtherMonthDays&&(this.hideOtherMonthDays=e.hideOtherMonthDays),this.minDate=this.normalizeDay(e.minDate,e.format),this.maxDate=this.normalizeDay(e.maxDate,e.format),e.disabledDates&&(this.disabledDates=e.disabledDates,Array.isArray(e.disabledDates)&&(this.disabledDateSet=new Set(e.disabledDates.map(t=>this.normalizeDay(t,e.format)?.getTime()).filter(e=>void 0!==e)))),"string"==typeof e.selectedDate?this.selectedDate=d()(e.selectedDate,e.format).toDate():"object"==typeof e.selectedDate&&(this.selectedDate=e.selectedDate),this.attachShadow({mode:"open"}),this.onChange=e.onChange,this.onRender=e.onRender,this.onNextNav=e.onNextNav,this.onPrevNav=e.onPrevNav,this.displayedMonthDate=new Date(this.selectedDate),this.init()}init(){if(null==this.element)throw new Error("No element was provided to calendar. Initializing aborted");const e=this.getDarkModeSetting(),t=function(e,t="",a){return`\n  <style>\n      \n@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');\n\n.datedreamer__calendar {\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    font-family: 'Roboto', sans-serif;\n    width: 100%;\n    max-width: 240px;\n    padding: 14px;\n    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n    background: #fff;\n    z-index: 0;\n    position: relative;\n    box-sizing: border-box;\n    transition: background-color 0.3s ease, color 0.3s ease;\n}\n\n.datedreamer__calendar.dark {\n  background: #1a1a1a;\n  box-shadow: none;\n}\n\n.datedreamer__calendar_header {\n    width: 100%;\n    display: flex;\n    align-items: center;\n}\n\n.datedreamer__calendar_prev,.datedreamer__calendar_next {\n    background: none;\n    border: none;\n    width: 16px;\n    height: 16px;\n    text-align: center;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color:#2d3436;\n    transition: color 0.2s ease;\n}\n\n.datedreamer__calendar_prev:hover,.datedreamer__calendar_next:hover {\n    color: #007bff;\n}\n\n.dark .datedreamer__calendar_prev:hover,.dark .datedreamer__calendar_next:hover {\n    color: #60a5fa;\n}\n\n.dark .datedreamer__calendar_prev, .dark .datedreamer__calendar_next {\n  color: #fff;\n}\n\n.datedreamer__calendar_prev svg, .datedreamer__calendar_next svg {\n    transform: scale(2.875);\n}\n\n.dark .datedreamer__calendar_prev svg, .dark .datedreamer__calendar_next svg {\n  fill: #fff;\n}\n\n.datedreamer__calendar_title {\n    width: 100%;\n    display: block;\n    flex-grow: 1;\n    text-align: center;\n    color: #2d3436;\n    font-weight: 600;\n    font-size: 0.875rem;\n}\n\n.dark .datedreamer__calendar_title {\n  color: #fff;\n}\n\n.datedreamer__calendar_inputs {\n    margin-top: 12px;\n}\n\n.datedreamer__calendar_inputs label {\n  width: 100%;\n  text-align: left !important;\n  display: block;\n}\n\n.dark .datedreamer__calendar_inputs label {\n  color: #fff;\n}\n\n.datedreamer__calendar__inputs-wrap {\n  display: flex;\n}\n\n.datedreamer__calendar_inputs input {\n  width: 100%;\n}\n\n.datedreamer__calendar_inputs input.error {\n   border: 2px solid #d63031;\n}\n\n.datedreamer__calendar_errors {\n  margin: 8px 0;\n  color: #d63031;\n}\n\n.datedreamer__calendar_days, .datedreamer__calendar_days-header {\n    margin-top: 12px;\n    display: grid;\n    grid-template-columns: repeat(7,1fr);\n    text-align: center;\n}\n\n.datedreamer__calendar_days-header {\n  color: #2d3436;\n  font-size: 1rem;\n}\n\n.dark .datedreamer__calendar_days-header {\n  color: #fff;\n}\n\n.datedreamer__calendar_day {\n    width: 100%;\n    height: 100%;\n    display: block;\n}\n\n.datedreamer__calendar_day button {\n    display: block;\n    width: 100%;\n    height: 100%;\n    cursor: pointer;\n    transition: background-color 0.2s ease, color 0.2s ease;\n}\n\n.datedreamer__calendar_day button:hover:not(:disabled) {\n    background-color: #f0f0f0;\n}\n\n.dark .datedreamer__calendar_day button:hover:not(:disabled) {\n    background-color: #2d3748;\n}\n\n.datedreamer__calendar_day.active button {\n    background: blue;\n    color: white;\n}\n\n.datedreamer__calendar_day.highlight button {\n  background: #236bb9;\n  color: white;\n}\n\n.datedreamer__calendar_day.disabled button {\n    color: #9e9e9e;\n    cursor: default;\n}\n\n.dark .datedreamer__calendar_day.disabled button {\n    color: #666;\n}\n\n.datedreamer__calendar_prev:disabled, .datedreamer__calendar_next:disabled {\n    opacity: 0.35;\n    cursor: default;\n}\n\n      ${"lite-purple"==e?'\n.datedreamer__calendar {\n  border-radius: 8px;\n}\n\n.datedreamer__calendar_prev svg, .datedreamer__calendar_next svg {\n  transform: scale(2);\n}\n\n.datedreamer__calendar_title {\n  font-size: 12px;\n}\n\n.datedreamer__calendar_inputs input, .datedreamer__calendar_inputs button {\n  font-weight: 500;\n  border-radius: 4px;\n  border: 1px solid #e9e8ec;\n  font-size: 12px;\n  background: white;\n}\n\n.datedreamer__calendar_inputs label {\n  font-size: 12px;\n  text-align: left !important;\n  display: block;\n}\n\n.datedreamer__calendar_inputs input {\n  flex-grow: 1;\n  width: calc(100% - 8px);\n  display: block;\n  padding: 4px 4px 4px 8px;\n  margin-right: 8px;\n}\n\n.dark .datedreamer__calendar_inputs input {\n  background: #2d3748;\n  border: 1px solid #4a5568;\n  color: #fff;\n}\n\n.datedreamer__calendar_inputs button {\n  padding: 6px 12px;\n  display: inline-block;\n  cursor: pointer;\n  color: black;\n}\n\n.dark .datedreamer__calendar_inputs button {\n  background: #2d3748;\n  border: 1px solid #4a5568;\n  color: #fff;\n}\n\n.dark .datedreamer__calendar_inputs button:hover {\n  background: #4a5568;\n}\n\n.datedreamer__calendar_errors {\n  font-size: 12px;\n  font-weight: bold;\n}\n\n.datedreamer__calendar_day-header.datedreamer__calendar_day {\n  font-size: 12px;\n}\n\n.datedreamer__calendar_days {\n  margin-top: 8px;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day {\n  margin: 2px;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day.disabled button{\n  color: #767676;\n  cursor: default;\n  font-weight: normal;\n}\n\n.dark .datedreamer__calendar_days .datedreamer__calendar_day.disabled button {\n  color: #555;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day.active, .datedreamer__calendar_days .datedreamer__calendar_day.highlight {\n  position: relative;\n}\n\n.datedreamer__calendar_day.highlight:before{\n  content: "";\n  width: 100%;\n  height: 100%;\n  background: #BFA9F3;\n  position: absolute;\n  display: block;\n  z-index: -1;\n  top: 50%;\n  right: 0;\n  left: 0;\n  transform: translateY(-50%);\n}\n\n\n.datedreamer__calendar_days .datedreamer__calendar_day.active:before {\n  content: "";\n  width: 100%;\n  height: 100%;\n  background: #7d56da;\n  border-radius: 2px;\n  position: absolute;\n  display: block;\n  z-index: -1;\n  top: 50%;\n  right: 0;\n  left: 0;\n  transform: translateY(-50%);\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day button {\n  background: transparent;\n  border: none;\n  padding: 5px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-size: 12px;\n  font-weight: bold;\n  color: black;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day.active button {\n  color: #fff;\n}\n\n.dark .datedreamer__calendar_days .datedreamer__calendar_day button {\n  color: #ecf0f1;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day button:hover:not(:disabled) {\n  background-color: #f0f0f0;\n  border-radius: 4px;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day.active button:hover {\n  background-color: transparent;\n}\n\n.datedreamer__calendar_days .datedreamer__calendar_day.highlight button:hover {\n  background-color: transparent;\n}\n\n.dark .datedreamer__calendar_days .datedreamer__calendar_day button:hover:not(:disabled) {\n  background-color: #4a5568;\n  border-radius: 4px;\n}\n\n.dark .datedreamer__calendar_days .datedreamer__calendar_day.active button:hover {\n  background-color: #7d56da;\n}\n\n.dark .datedreamer__calendar_days .datedreamer__calendar_day.highlight button:hover {\n  background-color: #BFA9F3;\n}\n\n.datedreamer__calendar_prev:disabled, .datedreamer__calendar_next:disabled {\n  opacity: 0.35;\n  cursor: default;\n}\n\n.dark .datedreamer__calendar_prev:disabled, .dark .datedreamer__calendar_next:disabled {\n  opacity: 0.35;\n}\n':""}\n      \n      ${t}\n  </style>\n  <div class="datedreamer__calendar ${a?"dark":""}">\n      <div class="datedreamer__calendar_header"></div>\n  \n      <div class="datedreamer__calendar_inputs"></div>\n      <div class="datedreamer__calendar_errors"></div>\n  \n      <div class="datedreamer__calendar_days-wrap">\n          <div class="datedreamer__calendar_days-header">\n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">Su</div>    \n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">Mo</div>\n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">Tu</div>\n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">We</div>\n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">Th</div>\n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">Fr</div>\n              <div class="datedreamer__calendar_day datedreamer__calendar_day-header">Sat</div>\n          </div>\n  \n          <div class="datedreamer__calendar_days"></div>\n      </div>\n  </div>\n  `}(this.theme,this.styles,e);this.insertCalendarIntoSelector(t),this.headerElement=this.shadowRoot?.querySelector(".datedreamer__calendar_header"),this.daysElement=this.shadowRoot?.querySelector(".datedreamer__calendar_days"),this.inputsElement=this.shadowRoot?.querySelector(".datedreamer__calendar_inputs"),this.errorsElement=this.shadowRoot?.querySelector(".datedreamer__calendar_errors"),o(this),l(this),h(this),this.setupDarkModeListener(),this.onRenderCallback()}getDarkModeSetting(){return this.darkModeAuto?window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches:this.darkMode||!1}setupDarkModeListener(){this.darkModeAuto&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.updateDarkMode()})}updateDarkMode(){const e=this.getDarkModeSetting(),t=this.shadowRoot?.querySelector(".datedreamer__calendar");t&&(e?t.classList.add("dark"):t.classList.remove("dark"))}insertCalendarIntoSelector(e){let t;if("string"==typeof this.element?t=document.querySelector(this.element):"object"==typeof this.element&&(t=this.element),!t)throw new Error(`Could not find ${this.element} in DOM.`);this.shadowRoot&&(this.shadowRoot.innerHTML=e),t.append(this)}onRenderCallback(){!function(e){if(e.onRender){const t=new CustomEvent("onRender",{detail:{calendar:e.calendarElement}});e.onRender(t)}}(this)}setDisplayedMonthDate(e){this.displayedMonthDate=e,this.rebuildCalendar()}rebuildCalendar(e=!0,t=!1){this.daysElement&&(this.daysElement.innerHTML=""),this.headerElement&&(this.headerElement.innerHTML=""),c(this),t?h(this,t):h(this),o(this),e&&(this.inputsElement&&(this.inputsElement.innerHTML=""),l(this))}setDate(e){"string"==typeof e?this.selectedDate=new Date(e):"object"==typeof e&&(this.selectedDate=e),this.displayedMonthDate=this.selectedDate;const t=this.constraintViolationMessage(this.selectedDate);if(t)return this.errors.push({type:"selection-error",message:t}),void c(this);this.rebuildCalendar(),this.dateChangedCallback(this.selectedDate)}dateChangedCallback(e){D(this,e)}getSelectedDate(){return this.selectedDate||null}getDisplayMonth(){return this.displayedMonthDate}getDisplayedYear(){return this.displayedMonthDate.getFullYear()}getDisplayMonthName(){return["January","February","March","April","May","June","July","August","September","October","November","December"][this.displayedMonthDate.getMonth()]}isSelected(e){if(!this.selectedDate)return!1;const t=new Date(e);return this.selectedDate.getDate()===t.getDate()&&this.selectedDate.getMonth()===t.getMonth()&&this.selectedDate.getFullYear()===t.getFullYear()}getIsInRangeMode(){return!!this.rangeMode}getConnectorRange(){if(!this.connector||!this.rangeMode)return;const e=this.connector.startDate,t=this.connector.endDate;return e&&t?{startDate:e,endDate:t}:void 0}isDateInRange(e){const t=this.getConnectorRange();return!!(this.rangeMode&&t&&t.startDate&&t.endDate)&&e>=t.startDate&&e<=t.endDate}normalizeDay(e,t){if(null==e)return;const a="string"==typeof e?d()(e,t).toDate():new Date(e);return isNaN(a.getTime())?void 0:new Date(a.getFullYear(),a.getMonth(),a.getDate())}isWithinBounds(e){const t=new Date(e.getFullYear(),e.getMonth(),e.getDate());return!(this.minDate&&t<this.minDate||this.maxDate&&t>this.maxDate)}isDisabledDate(e){if("function"==typeof this.disabledDates)return this.disabledDates(e);if(this.disabledDateSet){const t=new Date(e.getFullYear(),e.getMonth(),e.getDate());return this.disabledDateSet.has(t.getTime())}return!1}isDateSelectable(e){return this.isWithinBounds(e)&&!this.isDisabledDate(e)}constraintViolationMessage(e){const t=new Date(e.getFullYear(),e.getMonth(),e.getDate());return this.minDate&&t<this.minDate?"The selected date is before the minimum allowed date":this.maxDate&&t>this.maxDate?"The selected date is after the maximum allowed date":this.isDisabledDate(e)?"The selected date is not available":void 0}isPrevNavBlocked(){return!!this.minDate&&new Date(this.displayedMonthDate.getFullYear(),this.displayedMonthDate.getMonth(),0)<this.minDate}isNextNavBlocked(){return!!this.maxDate&&new Date(this.displayedMonthDate.getFullYear(),this.displayedMonthDate.getMonth()+1,1)>this.maxDate}disable(){this.disabled=!0}enable(){this.disabled=!1}focusInput(){const e=this.inputsElement?.querySelector("input");e&&e.focus()}focusFirstDay(){const e=this.daysElement?.querySelectorAll("button:not([disabled])");e&&e.length>0&&e[0].focus()}focusLastDay(){const e=this.daysElement?.querySelectorAll("button:not([disabled])");e&&e.length>0&&e[e.length-1].focus()}clearSelection(){this.selectedDate=new Date,this.displayedMonthDate=new Date(this.selectedDate),this.rebuildCalendar(),this.dateChangedCallback(this.selectedDate)}resetSelection(){this.displayedMonthDate=new Date(this.selectedDate),this.rebuildCalendar()}goToMonth(e,t){const a=new Date(this.displayedMonthDate);a.setFullYear(e),a.setMonth(t),this.displayedMonthDate=a,this.rebuildCalendar(!0,"first")}goToPrevWeek(){const e=new Date(this.selectedDate),t=new Date(e),a=e.getDay();t.setDate(e.getDate()-a+1),this.displayedMonthDate=new Date(t),this.rebuildCalendar(!0,"first")}goToNextWeek(){const e=new Date(this.selectedDate),t=new Date(e);t.setDate(e.getDate()+(6-e.getDay())),this.displayedMonthDate=new Date(t),this.rebuildCalendar(!0,"last")}jumpToStartOfMonth(){const e=new Date(this.displayedMonthDate);e.setDate(1),this.displayedMonthDate=e,this.rebuildCalendar(!0,"first")}jumpToEndOfMonth(){const e=new Date(this.displayedMonthDate.getFullYear(),this.displayedMonthDate.getMonth()+1,0);this.displayedMonthDate=e,this.rebuildCalendar(!0,"last")}isTodayVisible(){const e=new Date;return e.getMonth()===this.displayedMonthDate.getMonth()&&e.getFullYear()===this.displayedMonthDate.getFullYear()}}customElements.define("datedreamer-calendar",f),d().extend(i());class g extends HTMLElement{constructor(e){super(),this.inputPlaceholder="Enter a date",this.options=e,this.element=e.element,this.attachShadow({mode:"open"}),this.init()}init(){if(null==this.element)throw new Error("No element was provided to calendarToggle. Initializing aborted");this.generateTemplate(),document.addEventListener("click",e=>{this===e.target||this.contains(e.target)||this.calendarWrapElement?.classList.remove("active")}),document.addEventListener("keydown",e=>{this.handleKeyDown(e)})}getDarkModeSetting(){return this.options.darkModeAuto?window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches:this.options.darkMode||!1}generateTemplate(){let e;e="string"==typeof this.options.selectedDate||"object"==typeof this.options.selectedDate?d()(this.options.selectedDate,this.options.format).format(this.options.format):d()().format(this.options.format);const t=this.getDarkModeSetting(),a=function(e,t="",a,n,r){return`\n    <style>\n        .datedreamer__calendar-toggle {\n            position: relative;\n        }\n        .datedreamer__calendar-toggle__calendar {\n            display: none;\n            position: absolute;\n            top: 100%;\n            left: 0;\n        }\n\n        .datedreamer__calendar-toggle__calendar.active {\n            display: block;\n        }\n\n        ${"lite-purple"==e?"\n        .datedreamer__calendar-toggle__input input {\n            font-weight: 500;\n            border-radius: 4px;\n            border: 1px solid #e9e8ec;\n            font-size: 12px;\n            background: white;\n            display: block;\n            padding: 4px 4px 4px 8px;\n            margin-right: 8px;\n            transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;\n        }\n        \n        .datedreamer__calendar-toggle.dark .datedreamer__calendar-toggle__input input {\n            background: #2d3748;\n            border: 1px solid #4a5568;\n            color: #fff;\n        }\n        ":""}\n\n        ${t}\n    </style>\n    <div class="datedreamer__calendar-toggle ${r?"dark":""}">\n        <div class="datedreamer__calendar-toggle__input">\n            <input id="date-input" placeholder="${a}" value="${n}" readonly/>\n        </div>\n\n        <div class="datedreamer__calendar-toggle__calendar"></div>\n    </div>\n  `}(this.options.theme,this.options.styles,this.inputPlaceholder,e,t);let n;if("string"==typeof this.element?n=document.querySelector(this.element):"object"==typeof this.element&&(n=this.element),!n)throw new Error(`Could not find ${this.element} in DOM.`);{this.shadowRoot&&(this.shadowRoot.innerHTML=a),n.append(this);const e=this.shadowRoot?.querySelector(".datedreamer__calendar-toggle__calendar"),t=this.shadowRoot?.querySelector("#date-input");e&&(this.calendarWrapElement=e),t&&(this.inputElement=t,this.inputElement.addEventListener("focus",()=>{this.calendarWrapElement?.classList.add("active")})),this.generateCalendar()}}handleKeyDown(e){"Escape"===e.key&&this.calendarWrapElement&&this.calendarWrapElement.classList.remove("active")}generateCalendar(){const e=new f({...this.options,element:this.calendarWrapElement||"",hideInputs:!0,onChange:e=>this.dateChangedHandler(e)});this.calendarElement=e}dateChangedHandler(e){this.inputElement.value=e.detail,this.calendarWrapElement?.classList.remove("active"),this.options.onChange&&this.options.onChange(e)}}customElements.define("datedreamer-calendar-toggle",g);const _="\n    .datedreamer__calendar {\n        box-shadow: none;\n    }\n    .datedreamer-range.dark {\n        box-shadow: none;\n    }\n";class y{constructor(){this.calendars=new Array,this.startDate=null,this.endDate=null,this.pickingEndDate=null}rebuildAllCalendars(){this.calendars.forEach(e=>{e.rebuildCalendar()})}}class b extends HTMLElement{constructor(e){super(),this.calendar1DisplayedDate=new Date,this.calendar2DisplayedDate=new Date,this.handleDateChange=()=>{if(this.onChange){const e=new CustomEvent("onChange",{detail:{startDate:d()(this.connector?.startDate).format(this.format),endDate:d()(this.connector?.endDate).format(this.format)}});this.onChange(e)}},this.element=e.element,this.connector=new y,this.styles=e.styles,this.format=e.format,this.iconPrev=e.iconPrev,this.iconNext=e.iconNext,this.onChange=e.onChange,this.onRender=e.onRender,this.theme=e.theme,this.darkMode=e.darkMode,this.darkModeAuto=e.darkModeAuto,this.minDate=e.minDate,this.maxDate=e.maxDate,this.disabledDates=e.disabledDates,this.predefinedRanges=e.predefinedRanges,this.connector&&(this.connector.dateChangedCallback=this.handleDateChange),this.init()}handlePredefinedRangeClick(e){const{start:t,end:a}=e.getRange();this.calendar1?.isDateSelectable(t)&&this.calendar1?.isDateSelectable(a)&&this.connector&&(this.connector.startDate=new Date(t),this.connector.endDate=new Date(a),this.calendar1DisplayedDate=new Date(t),this.calendar1DisplayedDate.setDate(1),this.calendar2DisplayedDate=new Date(a),this.calendar2DisplayedDate.setDate(1),t.getMonth()!==a.getMonth()||t.getFullYear()!==a.getFullYear()?(this.calendar2DisplayedDate=new Date(a),this.calendar2DisplayedDate.setDate(1)):(this.calendar2DisplayedDate=new Date(t),this.calendar2DisplayedDate.setMonth(this.calendar2DisplayedDate.getMonth()+1),this.calendar2DisplayedDate.setDate(1)),this.resetViewedDated(),this.connector.rebuildAllCalendars(),this.connector.dateChangedCallback&&this.connector.dateChangedCallback(new CustomEvent("dateChanged")))}getDarkModeSetting(){return this.darkModeAuto?window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches:this.darkMode||!1}setupDarkModeListener(e){this.darkModeAuto&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{this.updateDarkMode(e)})}updateDarkMode(e){this.getDarkModeSetting()?e.classList.add("dark"):e.classList.remove("dark")}init(){this.addStyles(),this.calendar1DisplayedDate.setDate(1),this.calendar2DisplayedDate.setDate(1),this.calendar2DisplayedDate.setMonth(this.calendar2DisplayedDate.getMonth()+1);const e=document.createElement("div");if(e.classList.add("datedreamer-range"),this.getDarkModeSetting()&&e.classList.add("dark"),this.setupDarkModeListener(e),this.predefinedRanges&&this.predefinedRanges.length>0){const t=document.createElement("div");t.classList.add("datedreamer-range-sidebar"),this.predefinedRanges.forEach(e=>{const a=document.createElement("button");a.classList.add("datedreamer-range-button"),a.textContent=e.label,a.type="button",a.addEventListener("click",()=>this.handlePredefinedRangeClick(e)),t.appendChild(a)}),e.appendChild(t)}const t=document.createElement("div");t.classList.add("datedreamer-range-calendars");const a=document.createElement("div"),n=document.createElement("div");if(t.append(a,n),e.append(t),this.calendar1=new f({element:a,theme:this.theme,format:this.format,hideInputs:!0,hideNextNav:!0,styles:_,iconPrev:this.iconPrev,onPrevNav:e=>this.prevHandler(e),rangeMode:!0,hideOtherMonthDays:!0,connector:this.connector,darkMode:this.darkMode,minDate:this.minDate,maxDate:this.maxDate,disabledDates:this.disabledDates,darkModeAuto:this.darkModeAuto}),this.calendar2=new f({element:n,theme:this.theme,format:this.format,hideInputs:!0,hidePrevNav:!0,styles:_,iconNext:this.iconNext,onNextNav:e=>this.nextHandler(e),rangeMode:!0,hideOtherMonthDays:!0,connector:this.connector,darkMode:this.darkMode,minDate:this.minDate,maxDate:this.maxDate,disabledDates:this.disabledDates,darkModeAuto:this.darkModeAuto}),this.calendar2.setDisplayedMonthDate(this.calendar2DisplayedDate),this.append(e),"string"==typeof this.element){const e=document.querySelector(this.element);e&&e.append(this)}else"object"==typeof this.element&&this.element.append(this);if(this.onRender){const e=new CustomEvent("onRender");this.onRender(e)}}addStyles(){const e=`\n            .datedreamer-range {\n                display: inline-flex;\n                box-shadow: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);\n                transition: background-color 0.3s ease;\n            }\n\n            .datedreamer-range.dark {\n                background: #1a1a1a;\n                box-shadow: 0 10px 15px -3px rgb(0 0 0 / 30%), 0 4px 6px -4px rgb(0 0 0 / 30%);\n            }\n\n            .datedreamer-range-sidebar {\n                display: flex;\n                flex-direction: column;\n                gap: 6px;\n                padding: 12px;\n                background: #f9f9f9;\n                border-right: 1px solid #e5e5e5;\n                min-width: 130px;\n            }\n\n            .datedreamer-range.dark .datedreamer-range-sidebar {\n                background: #2a2a2a;\n                border-right: 1px solid #404040;\n            }\n\n            .datedreamer-range-button {\n                padding: 6px 10px;\n                border: 1px solid #d1d5db;\n                border-radius: 4px;\n                background: white;\n                color: #374151;\n                font-size: 12px;\n                font-weight: 500;\n                cursor: pointer;\n                transition: all 0.2s ease;\n                text-align: left;\n            }\n\n            .datedreamer-range-button:hover {\n                background: #f3f4f6;\n                border-color: #9ca3af;\n            }\n\n            .datedreamer-range-button:active {\n                background: #e5e7eb;\n                transform: translateY(1px);\n            }\n\n            .datedreamer-range.dark .datedreamer-range-button {\n                background: #374151;\n                color: #f9fafb;\n                border-color: #4b5563;\n            }\n\n            .datedreamer-range.dark .datedreamer-range-button:hover {\n                background: #4b5563;\n                border-color: #6b7280;\n            }\n\n            .datedreamer-range.dark .datedreamer-range-button:active {\n                background: #374151;\n            }\n\n            .datedreamer-range-calendars {\n                display: flex;\n            }\n            ${this.styles?this.styles:""}\n        `,t=document.createElement("style");t.innerHTML=e,this.append(t)}prevHandler(e){this.calendar1DisplayedDate=e.detail.displayedMonthDate,this.calendar2DisplayedDate.setMonth(this.calendar2DisplayedDate.getMonth()-1),this.resetViewedDated()}nextHandler(e){this.calendar2DisplayedDate=e.detail.displayedMonthDate,this.calendar1DisplayedDate.setMonth(this.calendar1DisplayedDate.getMonth()+1),this.resetViewedDated()}resetViewedDated(){this.calendar1?.setDisplayedMonthDate(this.calendar1DisplayedDate),this.calendar2?.setDisplayedMonthDate(this.calendar2DisplayedDate)}}var M,v;customElements.define("datedreamer-range",b),(v=M||(M={})).isValidDate=function(e){return e instanceof Date&&!isNaN(e.getTime())},v.isInRange=function(e,t,a){return a>=e&&a<=t},v.formatDate=function(e,t){return d()(e).format(t)},v.isSameDay=function(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()},v.addDays=function(e,t){const a=new Date(e);return a.setDate(a.getDate()+t),a},v.isWeekend=function(e){const t=e.getDay();return 0===t||6===t},v.getWeekNumber=function(e){const t=new Date(e);t.setDate(t.getDate()+4-(t.getDay()||7));const a=new Date(t.getFullYear(),0,1),n=(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())-Date.UTC(a.getFullYear(),0,0))/864e5;return Math.floor((n-1)/7)+1},v.getWeekdayName=function(e){return new Intl.DateTimeFormat("en-US",{weekday:"long"}).format(e)},v.getWeekdayShort=function(e){return["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][e.getDay()]}})(),n})());