preline
Version:
Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.
15 lines • 172 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,()=>{return e={8223(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BREAKPOINTS=t.COMBO_BOX_ACCESSIBILITY_KEY_SET=t.SELECT_ACCESSIBILITY_KEY_SET=t.TABS_ACCESSIBILITY_KEY_SET=t.OVERLAY_ACCESSIBILITY_KEY_SET=t.DROPDOWN_ACCESSIBILITY_KEY_SET=t.POSITIONS=void 0,t.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},t.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","ArrowRight","ArrowLeft","Home","End","Enter"],t.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],t.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],t.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Space","Tab"],t.COMBO_BOX_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter"],t.BREAKPOINTS={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536}},248(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=n(292);t.default=class{constructor(){this.components=[],this.currentlyOpenedComponents=[],this.activeComponent=null,this.allowedKeybindings=new Set(["Escape","Enter"," ","Space","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Home","End"]),this.initGlobalListeners()}initGlobalListeners(){document.addEventListener("keydown",e=>this.handleGlobalKeydown(e)),document.addEventListener("focusin",e=>this.handleGlobalFocusin(e))}isAllowedKeybinding(e){return!!this.allowedKeybindings.has(e.key)||!(1!==e.key.length||!/^[a-zA-Z]$/.test(e.key)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)}getActiveComponent(e){if(!e)return null;const t=this.components.filter(t=>t.wrapper.contains(e)||t.context&&t.context.contains(e));if(0===t.length)return null;if(1===t.length)return t[0];let n=null,o=Number.MAX_SAFE_INTEGER;for(const s of t){let t=0,i=e;for(;i&&i!==s.wrapper&&i!==s.context;)t++,i=i.parentElement;t<o&&(o=t,n=s)}return n}getActiveComponentForKey(e,t){if(!e)return null;const n=this.components.filter(t=>t.wrapper.contains(e)||t.context&&t.context.contains(e));if(0===n.length)return null;const o=n.filter(e=>{const n=e.handlers;switch(t){case"Escape":return!!n.onEsc;case"Enter":return!!n.onEnter;case" ":case"Space":return!!n.onSpace;case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":return!!n.onArrow;case"Tab":return!!n.onTab||!!n.onShiftTab;case"Home":return!!n.onHome;case"End":return!!n.onEnd;default:return!!n.onFirstLetter}});if(0===o.length)return this.getActiveComponent(e);if(1===o.length)return o[0];let s=null,i=Number.MAX_SAFE_INTEGER;for(const t of o){let n=0,o=e;for(;o&&o!==t.wrapper&&o!==t.context;)n++,o=o.parentElement;n<i&&(i=n,s=t)}return s}getDistanceToComponent(e,t){let n=0,o=e;for(;o&&o!==t.wrapper&&o!==t.context;)n++,o=o.parentElement;return n}getComponentsByNesting(e){if(!e)return[];const t=this.components.filter(t=>t.wrapper.contains(e)||t.context&&t.context.contains(e));return t.length<=1?t:[...t].sort((t,n)=>this.getDistanceToComponent(e,n)-this.getDistanceToComponent(e,t))}getSequentialHandlersForKey(e,t){const n=this.getComponentsByNesting(e);return 0===n.length?[]:n.map(e=>"Enter"===t?e.handlers.onEnter:e.handlers.onSpace).filter(e=>"function"==typeof e)}executeSequentialHandlers(e,t){let n=!1,o=!1;for(const s of e)if(n=!0,!1===s(t)){o=!0;break}return{called:n,stopped:o}}handleGlobalFocusin(e){const t=e.target;this.activeComponent=this.getActiveComponent(t)}handleGlobalKeydown(e){var t;const n=e.target;this.activeComponent=this.getActiveComponentForKey(n,e.key);const s=this.activeComponent,i="Enter"===e.key||" "===e.key||"Space"===e.key;if((s||i)&&this.isAllowedKeybinding(e))switch(e.key){case"Escape":if(!s)break;if(s.isOpened){if(s.handlers.onEsc){const t=s.handlers.onEsc();if(e.preventDefault(),e.stopPropagation(),!1===t){const e=this.findClosestOpenParent(n);(null==e?void 0:e.handlers.onEsc)&&e.handlers.onEsc()}}}else{const t=this.findClosestOpenParent(n);(null==t?void 0:t.handlers.onEsc)&&(t.handlers.onEsc(),e.preventDefault(),e.stopPropagation())}break;case"Enter":{const t=this.getSequentialHandlersForKey(n,"Enter");if(0===t.length)break;const{called:s,stopped:i}=this.executeSequentialHandlers(t,e);if(s&&!(0,o.isFormElement)(n)&&(e.stopPropagation(),e.preventDefault()),i)break;break}case" ":case"Space":{if("INPUT"===n.tagName||"TEXTAREA"===n.tagName)return;const t=this.getActiveComponent(n),o=this.getSequentialHandlersForKey(n,"Space");if(0===o.length)break;const{stopped:s}=this.executeSequentialHandlers(o);(s||(null==t?void 0:t.handlers.onSpace))&&(e.preventDefault(),e.stopPropagation());break}case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"ArrowRight":if(!s)break;if(s.handlers.onArrow){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;s.handlers.onArrow(e),e.preventDefault(),e.stopPropagation()}break;case"Tab":if(!s)break;if(!s.handlers.onTab)break;const i=e.shiftKey?s.handlers.onShiftTab:s.handlers.onTab;i&&i(e);break;case"Home":if(!s)break;s.handlers.onHome&&(s.handlers.onHome(),e.preventDefault(),e.stopPropagation());break;case"End":if(!s)break;s.handlers.onEnd&&(s.handlers.onEnd(),e.preventDefault(),e.stopPropagation());break;default:if(!s)break;if(s.handlers.onFirstLetter&&1===e.key.length&&/^[a-zA-Z]$/.test(e.key)){if(s.handlers.onFirstLetter(e.key),!(null===(t=s.stopPropagation)||void 0===t?void 0:t.onFirstLetter))return;e.preventDefault(),e.stopPropagation()}}}findClosestOpenParent(e){let t=e.parentElement;for(;t;){const e=this.currentlyOpenedComponents.find(e=>e.wrapper===t&&e!==this.activeComponent);if(e)return e;t=t.parentElement}return null}registerComponent(e,t,n=!0,o="",s="",i,a){const l={wrapper:e,handlers:t,isOpened:n,name:o,selector:s,context:i,isRegistered:!0,stopPropagation:a};return this.components.push(l),l}updateComponentState(e,t){e.isOpened=t,t?this.currentlyOpenedComponents.includes(e)||this.currentlyOpenedComponents.push(e):this.currentlyOpenedComponents=this.currentlyOpenedComponents.filter(t=>t!==e)}unregisterComponent(e){this.components=this.components.filter(t=>t!==e),this.currentlyOpenedComponents=this.currentlyOpenedComponents.filter(t=>t!==e)}addAllowedKeybinding(e){this.allowedKeybindings.add(e)}removeAllowedKeybinding(e){this.allowedKeybindings.delete(e)}getAllowedKeybindings(){return Array.from(this.allowedKeybindings)}}},2961(e,t){"use strict";
/*
* HSBasePlugin
* @version: 4.2.0
* @author: Preline Labs Ltd.
* @license: Licensed under MIT and Preline UI Fair Use License (https://preline.co/docs/license.html)
* Copyright 2024 Preline Labs Ltd.
*/Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t,n){this.el=e,this.options=t,this.events=n,this.el=e,this.options=t,this.events={}}createCollection(e,t){var n,o;let s=e;if(!Array.isArray(s)&&"undefined"!=typeof window){const e=null===(n=this.constructor)||void 0===n?void 0:n.name,t="string"==typeof e&&e.startsWith("HS")?`$hs${e.slice(2)}Collection`:null;t&&(Array.isArray(window[t])||(window[t]=[]),s=window[t])}Array.isArray(s)&&s.push({id:(null===(o=null==t?void 0:t.el)||void 0===o?void 0:o.id)||s.length+1,element:t})}fireEvent(e,t=null){if(this.events.hasOwnProperty(e))return this.events[e](t)}on(e,t){this.events[e]=t}}},1553(e,t,n){"use strict";
/*
* HSDatepicker
* @version: 4.2.0
* @author: Preline Labs Ltd.
* @license: Licensed under MIT and Preline UI Fair Use License (https://preline.co/docs/license.html)
* Copyright 2024 Preline Labs Ltd.
*/var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=n(292),i=o(n(632)),a=n(3191),l=n(6370),r=n(8852),d=n(292),c=o(n(591)),u=o(n(2961));class h extends u.default{constructor(e,t,n){var o,r,d,c,u,h,p,v,m;super(e,t,n);const g=e.getAttribute("data-hs-datepicker")?JSON.parse(e.getAttribute("data-hs-datepicker")):{};this.dataOptions=Object.assign(Object.assign({},g),t),this.applyUtilityClasses=void 0!==(null===(o=this.dataOptions)||void 0===o?void 0:o.applyUtilityClasses)&&(null===(r=this.dataOptions)||void 0===r?void 0:r.applyUtilityClasses),this.templatesByType=this.applyUtilityClasses?a.templates:l.templatesBasedOnUtility;const b=void 0!==(null===(d=this.dataOptions)||void 0===d?void 0:d.removeDefaultStyles)&&(null===(c=this.dataOptions)||void 0===c?void 0:c.removeDefaultStyles);this.updatedStyles=_.mergeWith(b?{}:i.default.defaultStyles,(null===(u=this.dataOptions)||void 0===u?void 0:u.styles)||{},(e,t)=>{if("string"==typeof e&&"string"==typeof t)return`${e} ${t}`});const y=new Date,f={selectedTheme:null!==(h=this.dataOptions.selectedTheme)&&void 0!==h?h:"",styles:this.updatedStyles,dateMin:null!==(p=this.dataOptions.dateMin)&&void 0!==p?p:y.toISOString().split("T")[0],dateMax:null!==(v=this.dataOptions.dateMax)&&void 0!==v?v:"2470-12-31",mode:null!==(m=this.dataOptions.mode)&&void 0!==m?m:"default",inputMode:void 0===this.dataOptions.inputMode||this.dataOptions.inputMode},w=(e,t)=>n=>{null==e||e(n),null==t||t(n)},x=e=>{this.hasTime(e)&&this.initCustomTime(e)},M={layouts:{month:this.templatesByType.month(f.selectedTheme)},onInit:w(this.dataOptions.onInit,e=>{"custom-select"!==f.mode||this.dataOptions.inputMode||x(e)}),onShow:w(this.dataOptions.onShow,e=>{f.inputMode&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})}),"custom-select"===f.mode&&(this.updateCustomSelects(e),x(e))}),onHide:w(this.dataOptions.onHide,e=>{"custom-select"===f.mode&&this.destroySelects(e.context.mainElement)}),onUpdate:w(this.dataOptions.onUpdate,e=>{this.updateCalendar(e.context.mainElement)}),onCreateDateEls:w(this.dataOptions.onCreateDateEls,e=>{"custom-select"===f.mode&&this.updateCustomSelects(e)}),onChangeToInput:w(this.dataOptions.onChangeToInput,e=>{if(!e.context.inputElement)return;this.setInputValue(e.context.inputElement,e.context.selectedDates);const t={selectedDates:e.context.selectedDates,selectedTime:e.context.selectedTime,rest:e.context};this.fireEvent("change",t),(0,s.dispatch)("change.hs.datepicker",this.el,t)}),onChangeTime:w(this.dataOptions.onChangeTime,x),onClickYear:w(this.dataOptions.onClickYear,x),onClickMonth:w(this.dataOptions.onClickMonth,x),onClickArrow:w(this.dataOptions.onClickArrow,e=>{"custom-select"===f.mode&&setTimeout(()=>{this.disableNav(),this.disableOptions(),this.updateCalendar(e.context.mainElement)})})};this.concatOptions=_.merge(M,this.dataOptions);const T=Object.assign(Object.assign({},f),{layouts:{default:this.processCustomTemplate(this.templatesByType.default(f.selectedTheme),"default"),multiple:this.processCustomTemplate(this.templatesByType.multiple(f.selectedTheme),"multiple"),year:this.processCustomTemplate(this.templatesByType.year(f.selectedTheme),"default")}});this.concatOptions=_.merge(this.concatOptions,T),this.vanillaCalendar=new i.default(this.el,this.concatOptions),this.init()}init(){var e,t;this.createCollection(window.$hsDatepickerCollection,this),this.vanillaCalendar.init(),(null===(e=this.dataOptions)||void 0===e?void 0:e.selectedDates)&&this.setInputValue(this.vanillaCalendar.context.inputElement,this.formatDateArrayToIndividualDates(null===(t=this.dataOptions)||void 0===t?void 0:t.selectedDates))}getTimeParts(e){const[t,n]=e.split(" "),[o,s]=t.split(":");return[o,s,n]}getCurrentMonthAndYear(e){const t=e.querySelector('[data-vc="month"]'),n=e.querySelector('[data-vc="year"]');return{month:+t.getAttribute("data-vc-month"),year:+n.getAttribute("data-vc-year")}}extractSeparatorFromFormat(e){const t=e.match(/[^A-Za-z0-9]/);return t?t[0]:"."}setInputValue(e,t){var n,o,s,i,a,l,r,d,c;const u=null===(n=this.dataOptions)||void 0===n?void 0:n.dateFormat,h=u?this.extractSeparatorFromFormat(u):null,p=null!==(i=null!=h?h:null===(s=null===(o=this.dataOptions)||void 0===o?void 0:o.inputModeOptions)||void 0===s?void 0:s.dateSeparator)&&void 0!==i?i:".",v=null!==(r=null===(l=null===(a=this.dataOptions)||void 0===a?void 0:a.inputModeOptions)||void 0===l?void 0:l.itemsSeparator)&&void 0!==r?r:", ",m=null!==(c=null===(d=this.dataOptions)||void 0===d?void 0:d.selectionDatesMode)&&void 0!==c?c:"single";if(t.length&&t.length>1)if("multiple"===m){const n=[];t.forEach(e=>n.push(u?this.formatDate(e,u):this.changeDateSeparator(e,p))),e.value=n.join(v)}else{const n=u?this.formatDate(t[0],u):this.changeDateSeparator(t[0],p),o=u?this.formatDate(t[1],u):this.changeDateSeparator(t[1],p);e.value=[n,o].join(v)}else t.length&&1===t.length?e.value=u?this.formatDate(t[0],u):this.changeDateSeparator(t[0],p):e.value=""}getLocalizedTodayText(e){return r.todayTranslations[e]||"Today"}changeDateSeparator(e,t=".",n="-"){var o,s;const i=new Date(e);if(null===(o=this.dataOptions)||void 0===o?void 0:o.replaceTodayWithText){const e=new Date;if(i.toDateString()===e.toDateString()){const e=null===(s=this.dataOptions)||void 0===s?void 0:s.dateLocale;return this.getLocalizedTodayText(e)}}return e.split(n).join(t)}formatDateArrayToIndividualDates(e){var t,n;const o=null!==(n=null===(t=this.dataOptions)||void 0===t?void 0:t.selectionDatesMode)&&void 0!==n?n:"single";return e.flatMap(e=>{if("string"==typeof e){if("today"===e.toLowerCase())return[(new Date).toISOString().split("T")[0]];const t=e.match(/^(\d{4}-\d{2}-\d{2})\s*[^a-zA-Z0-9]*\s*(\d{4}-\d{2}-\d{2})$/);if(t){const[e,n,s]=t;return"multiple-ranged"===o?[n,s]:((e,t)=>{const n=new Date(e),o=new Date(t),s=[];for(;n<=o;)s.push(n.toISOString().split("T")[0]),n.setDate(n.getDate()+1);return s})(n.trim(),s.trim())}return[e]}return"number"==typeof e?[new Date(e).toISOString().split("T")[0]]:e instanceof Date?[e.toISOString().split("T")[0]]:[]})}hasTime(e){const{mainElement:t}=e.context,n=t.querySelector("[data-hs-select].--hours"),o=t.querySelector("[data-hs-select].--minutes"),s=t.querySelector("[data-hs-select].--meridiem");return n&&o&&s}createArrowFromTemplate(e,t=!1){if(!t)return e;const n=(0,d.htmlToElement)(e);return(0,d.classToClassList)(t,n),n.outerHTML}concatObjectProperties(e,t){const n={};return new Set([...Object.keys(e||{}),...Object.keys(t||{})]).forEach(o=>{const s=e[o]||"",i=t[o]||"";n[o]=`${s} ${i}`.trim()}),n}updateTemplate(e,t,n){if(!t)return e;const o=JSON.parse(e.match(/data-hs-select='([^']+)'/)[1]),s=this.concatObjectProperties(t,n),i=_.merge(o,s);return e.replace(/data-hs-select='[^']+'/,`data-hs-select='${JSON.stringify(i)}'`)}initCustomTime(e){var t;const{mainElement:n}=e.context,o=this.getTimeParts(null!==(t=e.selectedTime)&&void 0!==t?t:"12:00 PM"),s={hours:n.querySelector("[data-hs-select].--hours"),minutes:n.querySelector("[data-hs-select].--minutes"),meridiem:n.querySelector("[data-hs-select].--meridiem")};Object.entries(s).forEach(([t,s])=>{if(!c.default.getInstance(s,!0)){const i=new c.default(s);i.setValue(o["meridiem"===t?2:"minutes"===t?1:0]),i.el.addEventListener("change.hs.select",s=>{this.destroySelects(n);const i="hours"===t?s.detail.payload:o[0],a="minutes"===t?s.detail.payload:o[1],l="meridiem"===t?s.detail.payload:o[2];e.set({selectedTime:`${i}:${a} ${l}`},{dates:!1,year:!1,month:!1})})}})}initCustomMonths(e){const{mainElement:t}=e.context,n=Array.from(t.querySelectorAll(".--single-month"));n.length&&n.forEach((n,o)=>{const s=n.querySelector("[data-hs-select].--month");if(c.default.getInstance(s,!0))return!1;const i=new c.default(s),{month:a,year:l}=this.getCurrentMonthAndYear(n);i.setValue(`${a}`),i.el.addEventListener("change.hs.select",n=>{this.destroySelects(t),e.set({selectedMonth:+n.detail.payload-o<0?11:+n.detail.payload-o,selectedYear:+n.detail.payload-o<0?+l-1:l},{dates:!1,time:!1})})})}initCustomYears(e){const{mainElement:t}=e.context,n=Array.from(t.querySelectorAll(".--single-month"));n.length&&n.forEach(n=>{const o=n.querySelector("[data-hs-select].--year");if(c.default.getInstance(o,!0))return!1;const s=new c.default(o),{month:i,year:a}=this.getCurrentMonthAndYear(n);s.setValue(`${a}`),s.el.addEventListener("change.hs.select",n=>{const{dateMax:o,displayMonthsCount:s}=this.vanillaCalendar.context,a=new Date(o).getFullYear(),l=new Date(o).getMonth();this.destroySelects(t),e.set({selectedMonth:i>l-s&&+n.detail.payload===a?l-s+1:i,selectedYear:n.detail.payload},{dates:!1,time:!1})})})}generateCustomTimeMarkup(){var e,t,n,o;const s=null===(e=this.updatedStyles)||void 0===e?void 0:e.customSelect,i=s?this.updateTemplate(this.templatesByType.hours(this.concatOptions.selectedTheme),(null==s?void 0:s.shared)||{},(null==s?void 0:s.hours)||{}):this.templatesByType.hours(this.concatOptions.selectedTheme),a=s?this.updateTemplate(this.templatesByType.minutes(this.concatOptions.selectedTheme),(null==s?void 0:s.shared)||{},(null==s?void 0:s.minutes)||{}):this.templatesByType.minutes(this.concatOptions.selectedTheme),l=s?this.updateTemplate(this.templatesByType.meridiem(this.concatOptions.selectedTheme),(null==s?void 0:s.shared)||{},(null==s?void 0:s.meridiem)||{}):this.templatesByType.meridiem(this.concatOptions.selectedTheme);return`<div class="--time">${null!==(o=null===(n=null===(t=null==this?void 0:this.dataOptions)||void 0===t?void 0:t.templates)||void 0===n?void 0:n.time)&&void 0!==o?o:`\n\t\t\t<div class="pt-3 flex justify-center items-center gap-x-2">\n ${i}\n <span class="text-gray-800 ${"light"!==this.concatOptions.selectedTheme?"dark:text-white":""}">:</span>\n ${a}\n ${l}\n </div>\n\t\t`}</div>`}generateCustomMonthMarkup(){var e,t,n;const o=null!==(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.mode)&&void 0!==t?t:"default",s=null===(n=this.updatedStyles)||void 0===n?void 0:n.customSelect,i=s?this.updateTemplate(this.templatesByType.months(this.concatOptions.selectedTheme),(null==s?void 0:s.shared)||{},(null==s?void 0:s.months)||{}):this.templatesByType.months(this.concatOptions.selectedTheme);return"custom-select"===o?i:"<#Month />"}generateCustomYearMarkup(){var e,t,n,o,s,i,a;if("custom-select"===(null!==(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.mode)&&void 0!==t?t:"default")){const e=new Date,t=null!==(o=null===(n=null==this?void 0:this.dataOptions)||void 0===n?void 0:n.dateMin)&&void 0!==o?o:e.toISOString().split("T")[0],l=null!==(i=null===(s=null==this?void 0:this.dataOptions)||void 0===s?void 0:s.dateMax)&&void 0!==i?i:"2470-12-31",r=new Date(t),d=new Date(l),c=r.getFullYear(),u=d.getFullYear(),h=()=>{let e="";for(let t=c;t<=u;t++)e+=`<option value="${t}">${t}</option>`;return e},p=this.templatesByType.years(h(),this.concatOptions.selectedTheme),v=null===(a=this.updatedStyles)||void 0===a?void 0:a.customSelect;return v?this.updateTemplate(p,(null==v?void 0:v.shared)||{},(null==v?void 0:v.years)||{}):p}return"<#Year />"}generateCustomArrowPrevMarkup(){var e,t;return(null===(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.templates)||void 0===t?void 0:t.arrowPrev)?this.createArrowFromTemplate(this.dataOptions.templates.arrowPrev,this.updatedStyles.arrowPrev):"<#ArrowPrev [month] />"}generateCustomArrowNextMarkup(){var e,t;return(null===(t=null===(e=null==this?void 0:this.dataOptions)||void 0===e?void 0:e.templates)||void 0===t?void 0:t.arrowNext)?this.createArrowFromTemplate(this.dataOptions.templates.arrowNext,this.updatedStyles.arrowNext):"<#ArrowNext [month] />"}parseCustomTime(e){return e=e.replace(/<#CustomTime\s*\/>/g,this.generateCustomTimeMarkup())}parseCustomMonth(e){return e=e.replace(/<#CustomMonth\s*\/>/g,this.generateCustomMonthMarkup())}parseCustomYear(e){return e=e.replace(/<#CustomYear\s*\/>/g,this.generateCustomYearMarkup())}parseArrowPrev(e){return e=e.replace(/<#CustomArrowPrev\s*\/>/g,this.generateCustomArrowPrevMarkup())}parseArrowNext(e){return e=e.replace(/<#CustomArrowNext\s*\/>/g,this.generateCustomArrowNextMarkup())}processCustomTemplate(e,t){var n,o,s,i;const a="default"===t?null===(o=null===(n=null==this?void 0:this.dataOptions)||void 0===n?void 0:n.layouts)||void 0===o?void 0:o.default:null===(i=null===(s=null==this?void 0:this.dataOptions)||void 0===s?void 0:s.layouts)||void 0===i?void 0:i.multiple,l=this.parseCustomMonth(null!=a?a:e),r=this.parseCustomYear(l),d=this.parseCustomTime(r),c=this.parseArrowPrev(d);return this.parseArrowNext(c)}disableOptions(){const{mainElement:e,dateMax:t,displayMonthsCount:n}=this.vanillaCalendar.context,o=new Date(t);Array.from(e.querySelectorAll(".--single-month")).forEach((e,t)=>{var s;const i=+(null===(s=e.querySelector('[data-vc="year"]'))||void 0===s?void 0:s.getAttribute("data-vc-year")),a=e.querySelectorAll("[data-hs-select].--month option"),l=e.querySelectorAll("[data-hs-select-dropdown] [data-value]"),r=e=>+e.getAttribute("data-value")>o.getMonth()-n+t+1&&i===o.getFullYear();Array.from(a).forEach(e=>e.toggleAttribute("disabled",r(e))),Array.from(l).forEach(e=>e.classList.toggle("disabled",r(e)))})}disableNav(){const{mainElement:e,dateMax:t,selectedYear:n,selectedMonth:o,displayMonthsCount:s}=this.vanillaCalendar.context,i=new Date(t).getFullYear(),a=e.querySelector('[data-vc-arrow="next"]');a.style.visibility=n===i&&o+s>11?"hidden":""}destroySelects(e){Array.from(e.querySelectorAll("[data-hs-select]")).forEach(e=>{const t=c.default.getInstance(e,!0);t&&t.element.destroy()})}updateSelect(e,t){const n=c.default.getInstance(e,!0);n&&n.element.setValue(t)}updateCalendar(e){const t=e.querySelectorAll(".--single-month");t.length&&t.forEach(e=>{const{month:t,year:n}=this.getCurrentMonthAndYear(e);this.updateSelect(e.querySelector("[data-hs-select].--month"),`${t}`),this.updateSelect(e.querySelector("[data-hs-select].--year"),`${n}`)})}updateCustomSelects(e){setTimeout(()=>{this.disableOptions(),this.disableNav(),this.initCustomMonths(e),this.initCustomYears(e)})}getCurrentState(){return{selectedDates:this.vanillaCalendar.selectedDates,selectedTime:this.vanillaCalendar.selectedTime}}formatDate(e,t){var n,o,s,i,a,l,r;const d=t||(null===(n=this.dataOptions)||void 0===n?void 0:n.dateFormat),c=(null===(o=this.dataOptions)||void 0===o?void 0:o.dateLocale)||void 0;if(!d){const t=null!==(a=null===(i=null===(s=this.dataOptions)||void 0===s?void 0:s.inputModeOptions)||void 0===i?void 0:i.dateSeparator)&&void 0!==a?a:".";return this.changeDateSeparator(e,t)}const u=new Date(e);if(isNaN(u.getTime()))return this.changeDateSeparator(e);let h="",p=0;for(;p<d.length;)if("YYYY"===d.slice(p,p+4))h+=u.getFullYear().toString(),p+=4;else if("dddd"===d.slice(p,p+4)){const e=u.toLocaleDateString(c,{weekday:"long"});if(null===(l=this.dataOptions)||void 0===l?void 0:l.replaceTodayWithText){const t=new Date;h+=u.toDateString()===t.toDateString()?this.getLocalizedTodayText(c):e}else h+=e;p+=4}else if("MMMM"===d.slice(p,p+4))h+=u.toLocaleDateString(c,{month:"long"}),p+=4;else if("ddd"===d.slice(p,p+3)){const e=u.toLocaleDateString(c,{weekday:"short"});if(null===(r=this.dataOptions)||void 0===r?void 0:r.replaceTodayWithText){const t=new Date;h+=u.toDateString()===t.toDateString()?this.getLocalizedTodayText(c):e}else h+=e;p+=3}else"MMM"===d.slice(p,p+3)?(h+=u.toLocaleDateString(c,{month:"short"}),p+=3):"YY"===d.slice(p,p+2)?(h+=u.getFullYear().toString().slice(-2),p+=2):"MM"===d.slice(p,p+2)?(h+=String(u.getMonth()+1).padStart(2,"0"),p+=2):"DD"===d.slice(p,p+2)?(h+=String(u.getDate()).padStart(2,"0"),p+=2):"HH"===d.slice(p,p+2)?(h+=String(u.getHours()).padStart(2,"0"),p+=2):"mm"===d.slice(p,p+2)?(h+=String(u.getMinutes()).padStart(2,"0"),p+=2):"ss"===d.slice(p,p+2)?(h+=String(u.getSeconds()).padStart(2,"0"),p+=2):"Y"===d[p]?(h+=u.getFullYear().toString(),p+=1):"M"===d[p]?(h+=String(u.getMonth()+1),p+=1):"D"===d[p]?(h+=String(u.getDate()),p+=1):"H"===d[p]?(h+=String(u.getHours()),p+=1):"m"===d[p]?(h+=String(u.getMinutes()),p+=1):"s"===d[p]?(h+=String(u.getSeconds()),p+=1):(h+=d[p],p+=1);return h}destroy(){const e=this.el,t=e.id,n=e.parentElement,o=e.nextElementSibling,s={};Array.from(e.attributes).forEach(e=>{s[e.name]=e.value});const i=e.className,a=e.value;this.vanillaCalendar&&(this.vanillaCalendar.destroy(),this.vanillaCalendar=null),window.$hsDatepickerCollection=window.$hsDatepickerCollection.filter(({element:e})=>e.el!==this.el);const l=document.body.contains(e),r=t?document.getElementById(t):null;if(!l&&!r&&n){const e=document.createElement("input");Object.keys(s).forEach(t=>{e.setAttribute(t,s[t])}),e.className=i,e.value=a,o&&o.parentElement===n?n.insertBefore(e,o):n.appendChild(e),this.el=e}}static getInstance(e,t){const n=window.$hsDatepickerCollection.find(t=>t.element.el===("string"==typeof e?document.querySelector(e):e));return n?t?n:n.element.el:null}static autoInit(){window.$hsDatepickerCollection||(window.$hsDatepickerCollection=[]),document.querySelectorAll(".hs-datepicker:not(.--prevent-on-load-init)").forEach(e=>{window.$hsDatepickerCollection.find(t=>{var n;return(null===(n=null==t?void 0:t.element)||void 0===n?void 0:n.el)===e})||new h(e)})}}t.default=h},8852(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.todayTranslations=void 0,t.todayTranslations={"ru-RU":"сегодня",ru:"сегодня","de-DE":"Heute",de:"Heute","fr-FR":"Aujourd'hui",fr:"Aujourd'hui","es-ES":"Hoy",es:"Hoy","it-IT":"Oggi",it:"Oggi","pt-BR":"Hoje",pt:"Hoje","pl-PL":"Dzisiaj",pl:"Dzisiaj","uk-UA":"Сьогодні",uk:"Сьогодні","zh-CN":"今天",zh:"今天","ja-JP":"今日",ja:"今日","ko-KR":"오늘",ko:"오늘","ar-SA":"اليوم",ar:"اليوم","hi-IN":"आज",hi:"आज","tr-TR":"Bugün",tr:"Bugün","nl-NL":"Vandaag",nl:"Vandaag","sv-SE":"Idag",sv:"Idag","da-DK":"I dag",da:"I dag","no-NO":"I dag",no:"I dag","fi-FI":"Tänään",fi:"Tänään","cs-CZ":"Dnes",cs:"Dnes","sk-SK":"Dnes",sk:"Dnes","hu-HU":"Ma",hu:"Ma","ro-RO":"Astăzi",ro:"Astăzi","bg-BG":"Днес",bg:"Днес","hr-HR":"Danas",hr:"Danas","sr-RS":"Данас",sr:"Данас","sl-SI":"Danes",sl:"Danes","et-EE":"Täna",et:"Täna","lv-LV":"Šodien",lv:"Šodien","lt-LT":"Šiandien",lt:"Šiandien","el-GR":"Σήμερα",el:"Σήμερα","he-IL":"היום",he:"היום","th-TH":"วันนี้",th:"วันนี้","vi-VN":"Hôm nay",vi:"Hôm nay","id-ID":"Hari ini",id:"Hari ini","ms-MY":"Hari ini",ms:"Hari ini","fa-IR":"امروز",fa:"امروز","ur-PK":"آج",ur:"آج","bn-BD":"আজ",bn:"আজ","ta-IN":"இன்று",ta:"இன்று","te-IN":"నేడు",te:"నేడు","ml-IN":"ഇന്ന്",ml:"ഇന്ന്","kn-IN":"ಇಂದು",kn:"ಇಂದು","gu-IN":"આજે",gu:"આજે","pa-IN":"ਅੱਜ",pa:"ਅੱਜ","or-IN":"ଆଜି",or:"ଆଜି","as-IN":"আজি",as:"আজি","ne-NP":"आज",ne:"आज","si-LK":"අද",si:"අද","my-MM":"ယနေ့",my:"ယနေ့","km-KH":"ថ្ងៃនេះ",km:"ថ្ងៃនេះ","lo-LA":"ມື້ນີ້",lo:"ມື້ນີ້","mn-MN":"Өнөөдөр",mn:"Өнөөдөр","ka-GE":"დღეს",ka:"დღეს","hy-AM":"Այսօր",hy:"Այսօր","az-AZ":"Bu gün",az:"Bu gün","kk-KZ":"Бүгін",kk:"Бүгін","ky-KG":"Бүгүн",ky:"Бүгүн","uz-UZ":"Bugun",uz:"Bugun","tg-TJ":"Имрӯз",tg:"Имрӯз","ps-AF":"نن",ps:"نن","ku-IQ":"ئەمڕۆ",ku:"ئەمڕۆ","yi-IL":"היינט",yi:"היינט","lb-LU":"Haut",lb:"Haut","is-IS":"Í dag",is:"Í dag","mt-MT":"Illum",mt:"Illum","cy-GB":"Heddiw",cy:"Heddiw","ga-IE":"Inniu",ga:"Inniu","gd-GB":"An-diugh",gd:"An-diugh","kw-GB":"Hedhyw",kw:"Hedhyw","br-FR":"Hiziv",br:"Hiziv","oc-FR":"Uèi",oc:"Uèi","ca-ES":"Avui",ca:"Avui","eu-ES":"Gaur",eu:"Gaur","gl-ES":"Hoxe",gl:"Hoxe","ast-ES":"Güei",ast:"Güei","an-ES":"Hue",an:"Hue","fur-IT":"Vuê",fur:"Vuê","lij-IT":"Ancheu",lij:"Ancheu","pms-IT":"Ancheuj",pms:"Ancheuj","rm-CH":"Oz",rm:"Oz","gsw-CH":"Hüt",gsw:"Hüt","wae-CH":"Hüt",wae:"Hüt","bar-AT":"Heit",bar:"Heit","ksh-DE":"Hück",ksh:"Hück","nds-DE":"Vundaag",nds:"Vundaag","pfl-DE":"Haid",pfl:"Haid","pdc-US":"Heit",pdc:"Heit","af-ZA":"Vandag",af:"Vandag","zu-ZA":"Namhlanje",zu:"Namhlanje","xh-ZA":"Namhlanje",xh:"Namhlanje","st-ZA":"Kajeno",st:"Kajeno","tn-ZA":"Kajeno",tn:"Kajeno","ve-ZA":"Leno",ve:"Leno","nso-ZA":"Kajeno",nso:"Kajeno","ts-ZA":"Namuntlha",ts:"Namuntlha","ss-ZA":"Lamuhla",ss:"Lamuhla","nr-ZA":"Namhlanje",nr:"Namhlanje","ff-SN":"Hannde",ff:"Hannde","wo-SN":"Tey",wo:"Tey","ig-NG":"Taa",ig:"Taa","yo-NG":"Lónìí",yo:"Lónìí","ha-NG":"Yau",ha:"Yau","sw-KE":"Leo",sw:"Leo","am-ET":"ዛሬ",am:"ዛሬ","ti-ER":"ሎሚ",ti:"ሎሚ","so-SO":"Maanta",so:"Maanta","om-ET":"Har'a",om:"Har'a"}},6370(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.templatesBasedOnUtility=void 0,t.templatesBasedOnUtility={default:(e=!1)=>`<div class="--single-month flex flex-col overflow-hidden">\n <div class="grid grid-cols-5 items-center gap-x-3 mx-1.5 pb-3" data-vc="header">\n <div class="col-span-1">\n <#CustomArrowPrev />\n </div>\n <div class="col-span-3 flex justify-center items-center gap-x-1">\n <#CustomMonth />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#CustomYear />\n </div>\n <div class="col-span-1 flex justify-end">\n <#CustomArrowNext />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>`,multiple:(e=!1)=>`<div class="relative flex flex-col overflow-hidden">\n <div class="absolute top-2 inset-s-2">\n <#CustomArrowPrev />\n </div>\n <div class="absolute top-2 inset-e-2">\n <#CustomArrowNext />\n </div>\n <div class="sm:flex" data-vc="grid">\n <#Multiple>\n <div class="p-3 space-y-0.5 --single-month" data-vc="column">\n <div class="pb-3" data-vc="header">\n <div class="flex justify-center items-center gap-x-1" data-vc-header="content">\n <#CustomMonth />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#CustomYear />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n </div>\n </div>`,year:(e=!1)=>`<div class="relative bg-white ${"light"!==e?"dark:bg-neutral-900":""}" data-vc="header" role="toolbar">\n <div class="grid grid-cols-5 items-center gap-x-3 mx-1.5 py-3" data-vc="header">\n <div class="col-span-1">\n <#CustomArrowPrev />\n </div>\n <div class="col-span-3 flex justify-center items-center gap-x-1">\n <#Month />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#Year />\n </div>\n <div class="col-span-1 flex justify-end">\n <#CustomArrowNext />\n </div>\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Years />\n </div>\n </div>`,month:(e=!1)=>`<div class="py-3" data-vc="header" role="toolbar">\n <div class="flex justify-center items-center gap-x-1" data-vc-header="content">\n <#Month />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#Year />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Months />\n </div>\n </div>`,years:(e,t=!1)=>`<div class="relative">\n <span class="hidden" data-vc="year"></span>\n <select data-hs-select='{\n "placeholder": "Select year",\n "dropdownScope": "parent",\n "dropdownVerticalFixedPlacement": "bottom",\n "toggleTag": "<button type=\\"button\\"><span data-title></span></button>",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative flex text-nowrap w-full cursor-pointer text-start font-medium text-gray-800 hover:text-gray-600 focus:outline-hidden focus:text-gray-600 before:absolute before:inset-0 before:z-1 ${"light"!==t?"dark:text-neutral-200 dark:hover:text-neutral-300 dark:focus:text-neutral-300":""}",\n "dropdownClasses": "mt-2 z-50 w-20 max-h-60 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg shadow-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==t?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "p-2 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==t?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span><span class=\\"hidden hs-selected:block\\"><svg class=\\"shrink-0 size-3.5 text-gray-800 ${"light"!==t?"dark:text-neutral-200":""}\\" xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><polyline points=\\"20 6 9 17 4 12\\"/></svg></span></div>"\n }' class="hidden --year --prevent-on-load-init">\n ${e}\n </select>\n </div>`,months:(e=!1)=>`<div class="relative">\n <span class="hidden" data-vc="month"></span>\n <select data-hs-select='{\n "placeholder": "Select month",\n "dropdownScope": "parent",\n "dropdownVerticalFixedPlacement": "bottom",\n "toggleTag": "<button type=\\"button\\"><span data-title></span></button>",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative flex text-nowrap w-full cursor-pointer text-start font-medium text-gray-800 hover:text-gray-600 focus:outline-hidden focus:text-gray-600 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:text-neutral-200 dark:hover:text-neutral-300 dark:focus:text-neutral-300":""}",\n "dropdownClasses": "mt-2 z-50 w-32 max-h-60 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg shadow-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "p-2 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg hs-select-disabled:opacity-50 hs-select-disabled:pointer-events-none focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span><span class=\\"hidden hs-selected:block\\"><svg class=\\"shrink-0 size-3.5 text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}\\" xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><polyline points=\\"20 6 9 17 4 12\\"/></svg></span></div>"\n }' class="hidden --month --prevent-on-load-init">\n <option value="0">January</option>\n <option value="1">February</option>\n <option value="2">March</option>\n <option value="3">April</option>\n <option value="4">May</option>\n <option value="5">June</option>\n <option value="6">July</option>\n <option value="7">August</option>\n <option value="8">September</option>\n <option value="9">October</option>\n <option value="10">November</option>\n <option value="11">December</option>\n </select>\n </div>`,hours:(e=!1)=>`<div class="relative">\n <select class="--hours hidden" data-hs-select='{\n "placeholder": "Select option...",\n "dropdownVerticalFixedPlacement": "top",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative py-1 px-2 pe-6 flex text-nowrap w-full cursor-pointer bg-white border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400":""}",\n "dropdownClasses": "mt-2 z-50 w-full min-w-24 max-h-72 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "hs-selected:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-neutral-800":""} py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-gray-700":""} ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span></div>"\n }'>\n <option value="01">01</option>\n <option value="02">02</option>\n <option value="03">03</option>\n <option value="04">04</option>\n <option value="05">05</option>\n <option value="06">06</option>\n <option value="07">07</option>\n <option value="08">08</option>\n <option value="09">09</option>\n <option value="10">10</option>\n <option value="11">11</option>\n <option value="12" selected>12</option>\n </select>\n <div class="absolute top-1/2 inset-e-2 -translate-y-1/2">\n <svg class="shrink-0 size-3 text-gray-500 ${"light"!==e?"dark:text-neutral-500":""}" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>\n </div>\n </div>`,minutes:(e=!1)=>`<div class="relative">\n <select class="--minutes hidden" data-hs-select='{\n "placeholder": "Select option...",\n "dropdownVerticalFixedPlacement": "top",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative py-1 px-2 pe-6 flex text-nowrap w-full cursor-pointer bg-white border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400":""}",\n "dropdownClasses": "mt-2 z-50 w-full min-w-24 max-h-72 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "hs-selected:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-neutral-800":""} py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-gray-700":""} ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span></div>"\n }'>\n <option value="00" selected>00</option>\n <option value="01">01</option>\n <option value="02">02</option>\n <option value="03">03</option>\n <option value="04">04</option>\n <option value="05">05</option>\n <option value="06">06</option>\n <option value="07">07</option>\n <option value="08">08</option>\n <option value="09">09</option>\n <option value="10">10</option>\n <option value="11">11</option>\n <option value="12">12</option>\n <option value="13">13</option>\n <option value="14">14</option>\n <option value="15">15</option>\n <option value="16">16</option>\n <option value="17">17</option>\n <option value="18">18</option>\n <option value="19">19</option>\n <option value="20">20</option>\n <option value="21">21</option>\n <option value="22">22</option>\n <option value="23">23</option>\n <option value="24">24</option>\n <option value="25">25</option>\n <option value="26">26</option>\n <option value="27">27</option>\n <option value="28">28</option>\n <option value="29">29</option>\n <option value="30">30</option>\n <option value="31">31</option>\n <option value="32">32</option>\n <option value="33">33</option>\n <option value="34">34</option>\n <option value="35">35</option>\n <option value="36">36</option>\n <option value="37">37</option>\n <option value="38">38</option>\n <option value="39">39</option>\n <option value="40">40</option>\n <option value="41">41</option>\n <option value="42">42</option>\n <option value="43">43</option>\n <option value="44">44</option>\n <option value="45">45</option>\n <option value="46">46</option>\n <option value="47">47</option>\n <option value="48">48</option>\n <option value="49">49</option>\n <option value="50">50</option>\n <option value="51">51</option>\n <option value="52">52</option>\n <option value="53">53</option>\n <option value="54">54</option>\n <option value="55">55</option>\n <option value="56">56</option>\n <option value="57">57</option>\n <option value="58">58</option>\n <option value="59">59</option>\n </select>\n <div class="absolute top-1/2 inset-e-2 -translate-y-1/2">\n <svg class="shrink-0 size-3 text-gray-500 ${"light"!==e?"dark:text-neutral-500":""}" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>\n </div>\n </div>`,meridiem:(e=!1)=>`<div class="relative">\n <select class="--meridiem hidden" data-hs-select='{\n "placeholder": "Select option...",\n "dropdownVerticalFixedPlacement": "top",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative py-1 px-2 pe-6 flex text-nowrap w-full cursor-pointer bg-white border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 before:absolute before:inset-0 before:z-1 ${"light"!==e?"dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400":""}",\n "dropdownClasses": "mt-2 z-50 w-full min-w-24 max-h-72 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==e?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "hs-selected:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-neutral-800":""} py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==e?"dark:hs-selected:bg-gray-700":""} ${"light"!==e?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span></div>"\n }'>\n <option value="PM" selected>PM</option>\n <option value="AM">AM</option>\n </select>\n <div class="absolute top-1/2 inset-e-2 -translate-y-1/2">\n <svg class="shrink-0 size-3 text-gray-500 ${"light"!==e?"dark:text-neutral-500":""}" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>\n </div>\n </div>`}},3191(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.templates=void 0,t.templates={default:(e=!1)=>`<div class="--single-month flex flex-col overflow-hidden">\n <div class="grid grid-cols-5 items-center gap-x-3 mx-1.5 pb-3" data-vc="header">\n <div class="col-span-1">\n <#CustomArrowPrev />\n </div>\n <div class="col-span-3 flex justify-center items-center gap-x-1">\n <#CustomMonth />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#CustomYear />\n </div>\n <div class="col-span-1 flex justify-end">\n <#CustomArrowNext />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>`,multiple:(e=!1)=>`<div class="relative flex flex-col overflow-hidden">\n <div class="absolute top-2 inset-s-2">\n <#CustomArrowPrev />\n </div>\n <div class="absolute top-2 inset-e-2">\n <#CustomArrowNext />\n </div>\n <div class="sm:flex" data-vc="grid">\n <#Multiple>\n <div class="p-3 space-y-0.5 --single-month" data-vc="column">\n <div class="pb-3" data-vc="header">\n <div class="flex justify-center items-center gap-x-1" data-vc-header="content">\n <#CustomMonth />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#CustomYear />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Week />\n <#Dates />\n </div>\n </div>\n </div>\n <#/Multiple>\n </div>\n </div>`,year:(e=!1)=>`<div class="relative bg-white ${"light"!==e?"dark:bg-neutral-900":""}" data-vc="header" role="toolbar">\n <div class="grid grid-cols-5 items-center gap-x-3 mx-1.5 py-3" data-vc="header">\n <div class="col-span-1">\n <#CustomArrowPrev />\n </div>\n <div class="col-span-3 flex justify-center items-center gap-x-1">\n <#Month />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#Year />\n </div>\n <div class="col-span-1 flex justify-end">\n <#CustomArrowNext />\n </div>\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Years />\n </div>\n </div>`,month:(e=!1)=>`<div class="py-3" data-vc="header" role="toolbar">\n <div class="flex justify-center items-center gap-x-1" data-vc-header="content">\n <#Month />\n <span class="text-gray-800 ${"light"!==e?"dark:text-neutral-200":""}">/</span>\n <#Year />\n </div>\n </div>\n <div data-vc="wrapper">\n <div data-vc="content">\n <#Months />\n </div>\n </div>`,years:(e,t=!1)=>`<div class="relative">\n <span class="hidden" data-vc="year"></span>\n <select data-hs-select='{\n "placeholder": "Select year",\n "dropdownScope": "parent",\n "dropdownVerticalFixedPlacement": "bottom",\n "toggleTag": "<button type=\\"button\\"><span data-title></span></button>",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative flex text-nowrap w-full cursor-pointer text-start font-medium text-gray-800 hover:text-gray-600 focus:outline-hidden focus:text-gray-600 before:absolute before:inset-0 before:z-1 ${"light"!==t?"dark:text-neutral-200 dark:hover:text-neutral-300 dark:focus:text-neutral-300":""}",\n "dropdownClasses": "mt-2 z-50 w-20 max-h-60 p-1 space-y-0.5 bg-white border border-gray-200 rounded-lg shadow-lg overflow-hidden overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 ${"light"!==t?"dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500 dark:bg-neutral-900 dark:border-neutral-700":""}",\n "optionClasses": "p-2 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-hidden focus:bg-gray-100 ${"light"!==t?"dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800":""}",\n "optionTemplate": "<div class=\\"flex justify-between items-center w-full\\"><span data-title></span><span class=\\"hidden hs-selected:block\\"><svg class=\\"shrink-0 size-3.5 text-gray-800 ${"light"!==t?"dark:text-neutral-200":""}\\" xmlns=\\"http://www.w3.org/2000/svg\\" width=\\"24\\" height=\\"24\\" viewBox=\\"0 0 24 24\\" fill=\\"none\\" stroke=\\"currentColor\\" stroke-width=\\"2\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\"><polyline points=\\"20 6 9 17 4 12\\"/></svg></span></div>"\n }' class="hidden --year --prevent-on-load-init">\n ${e}\n </select>\n </div>`,months:(e=!1)=>`<div class="relative">\n <span class="hidden" data-vc="month"></span>\n <select data-hs-select='{\n "placeholder": "Select month",\n "dropdownScope": "parent",\n "dropdownVerticalFixedPlacement": "bottom",\n "toggleTag": "<button type=\\"button\\"><span data-title></span></button>",\n "toggleClasses": "hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 relative flex text-nowrap w-full cursor-pointer text-start font-medium text-gray-800 hover:text-gray-600 focus:outline-h