@stenajs-webui/calendar 21.1.0 → 21.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._calendar_1b766_1{--swui-calendar-day-width: 48px;--swui-calendar-day-height: 48px;--swui-calendar-day-border-radius: var(--swui-max-border-radius);--swui-calendar-week-number-bg-color: transparent;--swui-calendar-week-number-text-color: var(--lhds-color-ui-500);--swui-calendar-week-number-clickable-text-color: var(--lhds-color-ui-500);--swui-calendar-week-day-text-color: var(--lhds-color-ui-500);--swui-calendar-week-day-clickable-text-color: var(--lhds-color-ui-500);--swui-calendar-wrapper-selected-border: var(--modern-red);--swui-calendar-wrapper-selected-background: var(--modern-red);--swui-calendar-wrapper-range-border: var(--lhds-color-red-100);--swui-calendar-wrapper-range-background: var(--lhds-color-red-100);--swui-calendar-wrapper-today-border: var(--lhds-color-ui-200);--swui-calendar-wrapper-today-background: var(--lhds-color-ui-50);--swui-calendar-text-selected-color: #fff;--swui-calendar-text-disabled-color: var(--swui-text-disabled-color);--swui-calendar-text-in-other-month-color: var(--swui-text-disabled-color)}._calendar_1b766_1 table{border-spacing:0 4px}._calendar_1b766_1 tr td:last-child{border-top-right-radius:var(--swui-calendar-day-border-radius);border-bottom-right-radius:var(--swui-calendar-day-border-radius)}._calendar_1b766_1._weekNumberVisible_1b766_41 tr td:nth-child(2),._calendar_1b766_1:not(._weekNumberVisible_1b766_41) tr td:first-child{border-top-left-radius:var(--swui-calendar-day-border-radius);border-bottom-left-radius:var(--swui-calendar-day-border-radius)}._calendar_1b766_1 td{padding:0;width:var(--swui-calendar-day-width);height:var(--swui-calendar-day-height)}._timePicker_1w05d_1{overflow:hidden;width:180px}._timePickerColumn_1w05d_6{overflow-y:hidden;flex:1}._timePickerColumn_1w05d_6:hover{overflow-y:scroll}._travelDateCell_h6vcn_1{position:relative}._travelDateCell_h6vcn_1._small_h6vcn_4{width:40px;height:40px}._travelDateCell_h6vcn_1._medium_h6vcn_9{width:48px;height:48px}._travelDateCell_h6vcn_1._large_h6vcn_14{width:56px;height:28px}._travelDateCell_h6vcn_1{border-radius:var(--swui-max-border-radius)}._travelDateCell_h6vcn_1:focus{outline:none}._travelDateCell_h6vcn_1:focus-visible ._outline_h6vcn_26{outline:var(--swui-focus-outline);outline-width:var(--swui-focus-outline-width);background:transparent;position:absolute;border-radius:var(--swui-max-border-radius);top:0;bottom:0;left:0;right:0;z-index:10}._travelDateCell_h6vcn_1:focus-visible ._contentWrapper_h6vcn_39._contentWrapper_h6vcn_39._contentWrapper_h6vcn_39{border-color:transparent}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39{cursor:pointer;border-radius:var(--swui-max-border-radius);border-width:2px;border-style:solid;border-color:transparent;background:transparent;position:absolute;display:flex;align-items:center;justify-content:center;left:0;right:0;top:0;bottom:0}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._disabled_h6vcn_60{cursor:not-allowed}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isToday_h6vcn_63{border-color:var(--lhds-color-ui-400)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionStart_h6vcn_67,._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionEnd_h6vcn_68{border-color:var(--modern-red)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionStart_h6vcn_67{background:var(--modern-red)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionStart_h6vcn_67 span{color:#fff}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._isSelectionEnd_h6vcn_68:not(._isSelectionStart_h6vcn_67){background:#fff}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._hover_h6vcn_83{border-color:var(--modern-red)}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._hover_h6vcn_83._startSelected_h6vcn_86:not(._endSelected_h6vcn_86):not(._isSelectionStart_h6vcn_67){background:#fff}._travelDateCell_h6vcn_1 ._contentWrapper_h6vcn_39._hover_h6vcn_83._startSelected_h6vcn_86:not(._endSelected_h6vcn_86):not(._isSelectionStart_h6vcn_67) span{color:var(--swui-text-primary-color)}._travelDateCellBackground_1k07m_1._small_1k07m_2{width:20px;height:40px}._travelDateCellBackground_1k07m_1._medium_1k07m_7{width:24px;height:48px}._travelDateCellBackground_1k07m_1._large_1k07m_12{width:28px;height:56px}._travelCalendar_18pjj_1{border-spacing:0 4px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}._travelCalendar_18pjj_1 td{padding:0}._travelDateRangeInput_1j7rp_1 ._overlay_1j7rp_2{transition:opacity var(--swui-animation-time-fast) ease-in-out;opacity:1}._travelDateRangeInput_1j7rp_1 ._overlay_1j7rp_2:not(._travelDateRangeInput_1j7rp_1 ._overlay_1j7rp_2._calendarVisible_1j7rp_6){opacity:0}._travelDateInput_hmfbf_1 ._overlay_hmfbf_2{transition:opacity var(--swui-animation-time-fast) ease-in-out;opacity:1}._travelDateInput_hmfbf_1 ._overlay_hmfbf_2:not(._travelDateInput_hmfbf_1 ._overlay_hmfbf_2._calendarVisible_hmfbf_6){opacity:0}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),m=require("@stenajs-webui/core"),M=require("@stenajs-webui/elements"),d=require("date-fns"),W=require("date-fns/locale"),U=require("lodash-es"),i=require("react"),oe=require("classnames"),Te=require("@emotion/styled"),X=require("@stenajs-webui/forms"),ue=require("@stenajs-webui/tooltip"),Se=require("@stenajs-webui/theme"),St=require("@stenajs-webui/input-mask");function kt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Le=kt(i),V={yearAndMonth:"yyyy-MM",fullDate:"yyyy-MM-dd",fullMonthName:"LLLL",fullDateAndTime:"yyyy-MM-dd HH:mm",fullDateAndTimeSystem:"yyyy-MM-ddTHH:MM",weekDayName:"EEEE",weekDayNameShort:"EEE",dateAndMonth:"d MMM",monthAndDate:"MMM do"},le=(e={},t,r)=>{if(t&&r&&d.isAfter(r,t))return d.eachDayOfInterval({start:t,end:r}).reduce((s,o)=>{const c=d.isSameDay(o,t),l=d.isSameDay(o,r);return Z(s,o,c?["selected","selectedStart","range"]:l?["selected","selectedEnd","range"]:["range"])},e);let n=e;return t&&(n=Z(n,t,["selected","singleSelected"])),r&&(n=Z(n,r,["selected","singleSelected"])),n},ze=(e={},t,r,n)=>Ke(e,t,r,d.startOfMonth(n),d.endOfMonth(n)),Ke=(e={},t,r,n,s)=>t&&r?le(e,d.max([t,d.subDays(n,1)]),d.min([r,d.addDays(s,1)])):le(e,t,r),jt=(e,t,r)=>{const n=d.format(t,V.yearAndMonth),s=d.getISOWeek(t),o=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[o]:{...e&&e[n]&&e[n][s]&&e[n][s][o],...r}}}}},Mt=(e,t,r)=>{const n=d.format(t,V.yearAndMonth),s=d.getISOWeek(t),o=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[o]:{...e&&e[n]&&e[n][s]&&e[n][s][o],...r(e&&e[n]&&e[n][s]&&e[n][s][o])}}}}},Z=(e,t,r)=>{const n=t.getMonth()+1,s=`${t.getFullYear()}-${n<10?"0":""}${n}`,o=d.getISOWeek(t),c=d.getDate(t),l=e&&e[s]&&e[s][o]&&e[s][o][c];return{...e,[s]:{...e&&e[s],[o]:{...e&&e[s]&&e[s][o],[c]:Pe(l,r)}}}},Pe=(e,t)=>({...e,highlights:[...(e==null?void 0:e.highlights)??[],...t]}),Rt=(e,t,r)=>{const n=t.days[0].date,s=n.getMonth()+1,o=`${n.getFullYear()}-${s<10?"0":""}${s}`,c=t.weekNumber;let l=e;t.days.forEach(D=>{l=Z(l,D.date,r)});const u=l&&l[o]?l[o][c]:void 0,f=u&&u.highlights?[...u.highlights,...r]:r,h={...u,highlights:f};return{...l,[o]:{...e&&e[o],[c]:h}}},Ge=(e,t)=>{var s;if(!t.days.length)return{...e};const r=t.days[0].date,n=(s=U.last(t.days))==null?void 0:s.date;return{...le(e,r,n)}},Tt=(e,t)=>i.useMemo(()=>e?Z(t,new Date,["today"]):t,[e,t]);var Je=(e=>(e[e.JANUARY=0]="JANUARY",e[e.FEBRUARY=1]="FEBRUARY",e[e.MARCH=2]="MARCH",e[e.APRIL=3]="APRIL",e[e.MAY=4]="MAY",e[e.JUNE=5]="JUNE",e[e.JULY=6]="JULY",e[e.AUGUST=7]="AUGUST",e[e.SEPTEMBER=8]="SEPTEMBER",e[e.OCTOBER=9]="OCTOBER",e[e.NOVEMBER=10]="NOVEMBER",e[e.DECEMBER=11]="DECEMBER",e))(Je||{}),Qe=(e=>(e[e.SUNDAY=0]="SUNDAY",e[e.MONDAY=1]="MONDAY",e[e.TUESDAY=2]="TUESDAY",e[e.WEDNESDAY=3]="WEDNESDAY",e[e.THURSDAY=4]="THURSDAY",e[e.FRIDAY=5]="FRIDAY",e[e.SATURDAY=6]="SATURDAY",e))(Qe||{});const Ee=(e,t,r,n)=>{const s=[];for(let o=0;o<r;o++)s.push(fe(e,t+o,n));return s},fe=(e,t,r)=>{if(isNaN(e)||isNaN(t))throw new Error("getMonthInYear() received NaN.");const n=e+Math.floor(t/12),s=t%12,o=new Date(n,s,1);return{monthString:d.format(o,V.yearAndMonth),name:U.startCase(d.format(o,V.fullMonthName,{locale:r})),year:n,monthInYear:s,weeks:Xe(n,s,r)}},Xe=(e,t,r,n=!0)=>{const s=new Date(e,t,1),o=d.startOfWeek(s,{locale:r}),c=[];for(let l=0;l<6;l++){const u=ke(d.addWeeks(o,l),r);if(l>0&&u.startMonth!==t&&!n)return c;c.push(u)}return c},ke=(e,t)=>{const r=d.getMonth(d.addDays(e,7))!==d.getMonth(e);return{weekNumber:d.getWeek(e,{locale:t}),startMonth:d.getMonth(e),startYear:d.getYear(e),endMonth:d.getMonth(d.addDays(e,6)),endYear:d.getYear(d.addDays(e,6)),days:Ve(e,t),isLastWeekOfMonth:r}},Ze=(e,t)=>{const r=d.getISODay(e);return{date:e,name:d.format(e,"EEE",t?{locale:t}:void 0),fullName:d.format(e,"EEEE",t?{locale:t}:void 0),dateString:d.format(d.addHours(e,12),V.fullDate),weekNumber:d.getWeek(e,{locale:t}),year:d.getYear(e),month:d.getMonth(e),dayOfMonth:d.getDate(e),dayOfWeek:r,isFirstDayOfWeek:r===1,isLastDayOfWeek:r===7,isFirstDayOfMonth:d.isSameDay(d.startOfMonth(e),e),isLastDayOfMonth:d.isSameDay(d.endOfMonth(e),e)}},Ve=(e,t)=>d.eachDayOfInterval({start:e,end:d.addDays(e,6)}).map(r=>Ze(r,t)),et=(e,t)=>t>11?{year:e+Math.floor(t/12),month:t%12}:t<0?{year:e+Math.floor(t/12),month:12+t%12}:{year:e,month:t},It="_calendar_1b766_1",Ct="_weekNumberVisible_1b766_41",$e={calendar:It,weekNumberVisible:Ct},tt=(e,t,r)=>!!(t&&t.indexOf(r)>=0||e&&e.highlights&&e.highlights.indexOf(r)>=0),Q=(e,t,r,n,s)=>{if(r.length!==n.length)throw new Error("Select highlight failed, number of values do not equal number of highlights.");if(r.length===0)return s;for(let o=0;o<r.length;o++)if(typeof r[o]=="boolean"&&r[o]||typeof r[o]=="string"&&tt(e,t,r[o]))return n[o];return s},rt=({selectedBackground:e,todayBackground:t,rangeBackground:r,borderColor:n="transparent"})=>(s,o,c,l,u)=>({backgroundColor:Q(o,s,["selected","range","today",c.month===u.monthInYear],[e,r,t,"#fff"],"transparent"),borderWidth:"1px",borderStyle:"solid",borderColor:Q(o,s,["selectedStart","selectedEnd","singleSelected","range","today"],["var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-border)","var(--lhds-color-ui-500)"],n),borderTopLeftRadius:Q(o,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomLeftRadius:Q(o,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderTopRightRadius:Q(o,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomRightRadius:Q(o,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),boxSizing:"border-box"}),nt=({selectedColor:e,disabledColor:t,inOtherMonthColor:r,rangeTextColor:n})=>(s,o,c,l,u)=>{const f=c.month!==u.monthInYear;return{color:Q(o,s,[f,"selected","range","enabled","disabled"],[r,e,n,void 0,t])}},ne={width:"var(--swui-calendar-day-width)",height:"var(--swui-calendar-day-height)",WeekNumber:{backgroundColor:"var(--swui-calendar-week-number-bg-color)",textColor:"var(--swui-calendar-week-number-text-color)",clickableTextColor:"var(--swui-calendar-week-number-clickable-text-color)"},WeekDay:{textColor:"var(--swui-calendar-week-day-text-color)",clickableTextColor:"var(--swui-calendar-week-day-clickable-text-color)"},CalendarDay:{tdStyle:rt({selectedBackground:"var(--swui-calendar-wrapper-selected-background)",rangeBackground:"var(--swui-calendar-wrapper-range-background)",todayBackground:"var(--swui-calendar-wrapper-today-background)"}),textProps:nt({selectedColor:"var(--swui-calendar-text-selected-color)",disabledColor:"var(--swui-calendar-text-disabled-color)",inOtherMonthColor:"var(--swui-calendar-text-in-other-month-color)"})},CalendarMonth:{headerTextColor:"var(--swui-calendar-week-day-text-color)"}},Bt={...ne,width:"37px",height:"37px"},st=({onClickWeekDay:e,day:t,theme:r})=>{const n=a.jsx(m.Box,{width:r.width,height:r.height,justifyContent:"center",alignItems:"center",children:a.jsx(m.Text,{size:"small",color:e?r.WeekDay.clickableTextColor:r.WeekDay.textColor,children:t.name})});return e?a.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:s=>e(t.dayOfWeek,s),disableFocusHighlight:!e,children:n}):n},Ye=function({day:t,week:r,month:n,dayState:s,userData:o,onClickDay:c,theme:l,extraDayContent:u,defaultHighlights:f}){const h=a.jsx(m.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:a.jsx(m.Text,{...l.CalendarDay.textProps&&l.CalendarDay.textProps(f,s,t,r,n,o),children:t.dayOfMonth})}),D=Te.td({...l.CalendarDay.tdStyle&&l.CalendarDay.tdStyle(f,s,t,r,n,o)}),g=Te.div({...l.CalendarDay.innerWrapperStyle&&l.CalendarDay.innerWrapperStyle(f,s,t,r,n,o),width:"100%",height:"100%"}),x=Te.div({...l.CalendarDay.cellWrapperStyle&&l.CalendarDay.cellWrapperStyle(f,s,t,r,n,o),width:"100%",height:"100%",position:"relative"}),b=At(f,s);return a.jsx(D,{onClick:b?void 0:p=>c==null?void 0:c(t,o,p),children:a.jsx(g,{children:a.jsx(x,{children:t.month===n.monthInYear&&a.jsxs(a.Fragment,{children:[u&&a.jsx(u,{week:r,month:n,day:t,dayState:s,theme:l,userData:o}),h]})})})})},At=(e,t)=>!!Q(t,e,["disabled"],[!0],!1),ot=({onClickWeek:e,theme:t,week:r,background:n,backgroundColor:s,prefix:o})=>{const c=a.jsxs(m.Box,{width:t.width,height:t.height,justifyContent:"center",alignItems:"center",children:[n&&a.jsx(m.Box,{position:"absolute",children:n}),a.jsx(m.Box,{position:"absolute",children:a.jsxs(m.Text,{color:e?t.WeekNumber.clickableTextColor:t.WeekNumber.textColor,children:[o,r.weekNumber]})})]});return a.jsx(m.Box,{background:s||t.WeekNumber.backgroundColor,position:"relative",children:e?a.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:l=>e(r,l),disableFocusHighlight:!e,children:c}):c})},Et=(e,t,r)=>t&&d.isBefore(e,t)?d.isSameDay(e,t):r&&d.isAfter(e,r)?d.isSameDay(e,r):!0,_t=function({dayComponent:t,minDate:r,maxDate:n,dayState:s,day:o,...c}){const l=i.useMemo(()=>Et(o.date,r,n)?s:Pe(s,["disabled"]),[o.date,s,n,r]);return a.jsx(t,{day:o,...c,dayState:l})};function Nt({month:e,dayComponent:t=Ye,statePerWeek:r,userDataPerWeek:n,minDate:s,maxDate:o,onClickDay:c,onClickWeek:l,onClickWeekDay:u,onClickMonth:f,renderWeekNumber:h,renderWeekDay:D,headerRightContent:g,theme:x=ne,extraDayContent:b,defaultHighlights:p,showWeekNumber:S}){return a.jsx(a.Fragment,{children:a.jsxs(m.Box,{alignItems:"stretch",children:[a.jsxs(m.Row,{justifyContent:g?"space-between":"center",alignItems:"center",children:[a.jsx(m.Row,{justifyContent:"center",alignItems:"center",children:f?a.jsx(M.FlatButton,{onClick:()=>f(e),label:e.name+" "+String(e.year),rightIcon:M.stenaAngleDown}):a.jsxs(m.Text,{whiteSpace:"nowrap",children:[e.name," ",e.year]})}),g&&a.jsx(m.Box,{alignItems:"center",children:g})]}),a.jsx("table",{children:a.jsxs("tbody",{children:[a.jsxs("tr",{children:[S&&a.jsx("td",{children:a.jsx(m.Box,{width:x.width,height:x.height})}),e.weeks[0].days.map(k=>a.jsx("td",{children:D?D(k.name,x,u):a.jsx(st,{day:k,onClickWeekDay:u,theme:x})},k.name))]}),e.weeks.map(k=>a.jsxs("tr",{children:[S&&a.jsx("td",{children:h?h(k,x,l):a.jsx(ot,{week:k,onClickWeek:l,theme:x})}),k.days.map(y=>a.jsx(_t,{dayComponent:t,day:y,week:k,month:e,dayState:r&&r[k.weekNumber]&&r[k.weekNumber][y.dayOfMonth],userData:n&&n[k.weekNumber]&&n[k.weekNumber][y.dayOfMonth],onClickDay:c,theme:x,extraDayContent:b,defaultHighlights:p,minDate:s,maxDate:o},y.dateString))]},k.weekNumber))]})})]})})}function Lt({monthRows:e,dayComponent:t=Ye,userDataPerMonth:r,statePerMonth:n,minDate:s,maxDate:o,onClickDay:c,onClickWeekDay:l,onClickWeek:u,onClickMonth:f,renderWeekDay:h,renderWeekNumber:D,headerRightContent:g,extraDayContent:x,defaultHighlights:b,showWeekNumber:p,theme:S=ne}){const k=i.useMemo(()=>s?d.parse(s,"yyyy-MM-dd",new Date):void 0,[s]),y=i.useMemo(()=>o?d.parse(o,"yyyy-MM-dd",new Date):void 0,[o]);return a.jsx("div",{className:oe($e.calendar,p&&$e.weekNumberVisible),children:e.map((w,R)=>a.jsx(m.Spacing,{children:a.jsx(m.Row,{gap:2,children:w.map(T=>a.jsx(Nt,{month:T,dayComponent:t,userDataPerWeek:r&&r[T.monthString],statePerWeek:n&&n[T.monthString],onClickDay:c,onClickWeekDay:l,onClickWeek:u,onClickMonth:f,theme:S,renderWeekNumber:D,renderWeekDay:h,headerRightContent:g,extraDayContent:x,defaultHighlights:b,minDate:k,maxDate:y,showWeekNumber:p??!1},T.name))})},R))})}function be(e){const t=Pt(e.year,e.month,e.date),{year:r,month:n}=et(t.year,t.month),s=Yt(r,n,e.locale??W.enGB,e.numMonths,e.monthsPerRow),o=Tt(e.highlightToday,e.statePerMonth);return a.jsx(Lt,{year:r,month:n,monthRows:s,...e,statePerMonth:o})}const Pt=(e,t,r)=>{if(t&&e)return{month:t,year:e};if(r)return{month:d.getMonth(r),year:d.getYear(r)};const n=new Date;return{month:d.getMonth(n),year:d.getYear(n)}},Yt=(e,t,r,n,s)=>n==null?[[fe(e,t,r)]]:s==null?[Ee(e,t,n,r)]:U.chunk(Ee(e,t,n,r),s),at=(e,t)=>`${e.row}-${e.column}-${t}`,vt=(e,t,r,n)=>{let s=t;for(let o=0;o<n;o++){s=Ft(s,e,n);const c=at(s,r);if(document.getElementById(c))return c}},Ft=(e,t,r)=>{let n=e.row,s=e.column;return t==="ArrowLeft"?s--:t==="ArrowUp"?n--:t==="ArrowRight"?s++:t==="ArrowDown"&&n++,s<0&&(s=r-1,n--),s>r-1&&(s=0,n++),{column:s,row:n}},Ht=({month:e,onClick:t,selected:r,locale:n,autoFocus:s,monthPickerId:o,position:c,size:l})=>{const u=i.useMemo(()=>U.startCase(d.format(e,"MMM",{locale:n})),[n,e]),f=i.useMemo(()=>U.startCase(d.format(e,"MMMM",{locale:n})),[n,e]),h=i.useRef(null),D=at(c,o),g=r?0:-1;i.useEffect(()=>{var b;(b=h.current)==null||b.focus()},[]);const x=i.useCallback(b=>{var S;const p=vt(b.key,c,o,4);p&&((S=document.getElementById(p))==null||S.focus())},[o,c]);return a.jsx(m.Row,{justifyContent:"center",onKeyDown:x,children:r?a.jsx(M.PrimaryButton,{id:D,"aria-label":f,label:u,onClick:t,"aria-selected":!0,autoFocus:s,ref:h,size:l==="large"?"large":"medium",tabIndex:g}):a.jsx(M.FlatButton,{id:D,label:u,"aria-label":f,onClick:t,size:l==="large"?"large":"medium",tabIndex:g})})},Ot=(e,t,r)=>{let n=e.getFullYear(),s=0,o=0,c=e;const l={yearOrder:[],rows:[],years:{},lastMonthColumn:-1,lastMonthRow:-1};for(let u=0;u<t;u++){if(l.years[n]==null&&(l.yearOrder.push(n),l.years[n]={year:n,rows:[]}),l.rows[s]=l.rows[s]??{columns:[],rowIndex:s},l.rows[s].columns[o]={position:{column:o,row:s},month:c},u===t-1){l.years[n].rows.push(s);break}c=d.addMonths(c,1),c.getFullYear()!==n?(l.years[n].rows.push(s),n++,o=0,s++):(o++,o>r-1&&(l.years[n].rows.push(s),o=0,s++))}return l.lastMonthColumn=o,l.lastMonthRow=s,l},ve=()=>i.useMemo(()=>new Date,[]),de=({value:e,onValueChange:t,locale:r=W.enGB,firstMonth:n,numMonths:s,onCancel:o,size:c="medium"})=>{const l=i.useId(),u=ve(),f=s>0?s:12,[h,D]=i.useState(!1),g=Ot(n,f,$t(c)),x=i.useMemo(()=>d.addMonths(n,f),[f,n]);i.useEffect(()=>{D(!0)},[]);const b=i.useCallback(p=>{p.key==="Escape"&&(o==null||o(),p.preventDefault(),p.stopPropagation())},[o]);return a.jsx(m.Column,{gap:1,maxWidth:Wt(c),onKeyDown:b,children:g.yearOrder.map((p,S)=>{const{rows:k}=g.years[p];return a.jsxs(Le.Fragment,{children:[(S!==0||p!==u.getFullYear())&&a.jsx(m.Heading,{variant:"h4",children:p}),a.jsx("table",{style:{borderSpacing:"0 8px"},children:a.jsx("tbody",{children:k.map(y=>{const{columns:w}=g.rows[y];return a.jsx("tr",{children:w.map(({month:R,position:T})=>a.jsx("td",{children:a.jsx(Ht,{month:R,firstAvailableMonth:n,lastAvailableMonth:x,locale:r,selected:e?d.isSameMonth(e,R):!1,autoFocus:h,onClick:()=>t==null?void 0:t(R),monthPickerId:l,position:T,size:c})},R.getMonth()))},y)})})})]},p)})})},Wt=e=>{switch(e){case"small":return"280px";case"medium":return"336px";case"large":return"448px";default:return m.exhaustSwitchCase(e,"336px")}},$t=e=>{switch(e){case"small":return 3;case"medium":return 4;case"large":return 5;default:return m.exhaustSwitchCase(e,4)}},Ut=e=>[{label:"Past",presets:[{label:"Last 3 days",startDate:e,endDate:d.subDays(e,2)},{label:"Last 7 days",startDate:e,endDate:d.subDays(e,6)},{label:"Last 30 days",startDate:e,endDate:d.subDays(e,29)},{label:"Last 45 days",startDate:e,endDate:d.subDays(e,44)}]},{label:"Future",presets:[{label:"Next 3 days",startDate:e,endDate:d.addDays(e,2)},{label:"Next 7 days",startDate:e,endDate:d.addDays(e,6)},{label:"Next 30 days",startDate:e,endDate:d.addDays(e,29)},{label:"Next 45 days",startDate:e,endDate:d.addDays(e,44)}]}],it=({onClickPreset:e})=>{const[t,r]=i.useState(0),n=i.useMemo(()=>Ut(new Date),[]),s=n[t]??n[0];return a.jsxs(m.Column,{children:[a.jsxs(m.Row,{justifyContent:"space-between",alignItems:"center",width:"200px",children:[a.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleLeft,disabled:t===0,onClick:()=>r(t-1)}),a.jsx(m.Text,{children:s.label}),a.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleRight,disabled:t===n.length-1,onClick:()=>r(t+1)})]}),a.jsx(m.Space,{}),a.jsx(m.Column,{alignItems:"center",children:s.presets.map(o=>a.jsxs(Le.Fragment,{children:[a.jsx(M.PrimaryButton,{label:o.label,onClick:()=>e(o)}),a.jsx(m.Space,{})]},o.label))})]})},qt=function({locale:t,dateInFocus:r,setDateInFocus:n,currentPanel:s,setCurrentPanel:o,renderMonthPicker:c,...l}){const u=i.useCallback(h=>{n&&n(h),o("calendar")},[n,o]),f=i.useCallback(()=>{o("month")},[o]);switch(s){case"calendar":return a.jsx(be,{...l,date:r,onClickMonth:f,locale:t});case"month":return c?c({value:r,onValueChange:u,locale:t,firstMonth:new Date,numMonths:24,dateInFocus:r}):a.jsx(de,{value:r,onValueChange:u,locale:t,firstMonth:new Date,numMonths:24});case"presets":return a.jsx(it,{onClickPreset:()=>{}});default:return a.jsx(m.Box,{children:a.jsx(M.PrimaryButton,{label:"Show calendar",onClick:()=>o("calendar")})})}},zt=(e,t,r,n)=>{const s=i.useCallback(()=>{const u=d.addMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),o=i.useCallback(()=>{const u=d.addYears(e,1);t==null||t(u)},[t,e]),c=i.useCallback(()=>{const u=d.subMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),l=i.useCallback(()=>{const u=d.subYears(e,1);t==null||t(u)},[t,e]);return{nextMonth:s,prevMonth:c,nextYear:o,prevYear:l}},Kt=({children:e,prevMonth:t,nextMonth:r,prevYear:n,nextYear:s})=>a.jsxs("div",{children:[e,a.jsx(m.Indent,{children:a.jsxs(m.Row,{gap:1,children:[a.jsx(M.SecondaryButton,{onClick:n,leftIcon:M.stenaAngleLeftDouble}),a.jsx(M.SecondaryButton,{onClick:t,leftIcon:M.stenaArrowLeft}),a.jsx(m.Indent,{num:2}),a.jsx(M.SecondaryButton,{onClick:r,leftIcon:M.stenaArrowRight}),a.jsx(M.SecondaryButton,{onClick:s,leftIcon:M.stenaAngleRightDouble})]})}),a.jsx(m.Space,{})]}),Gt=()=>{};function ae({monthSwitcherPlacement:e,theme:t=ne,dateInFocus:r,setDateInFocus:n,currentPanel:s,setCurrentPanel:o,onSelectPreset:c=Gt,renderMonthPicker:l,...u}){const{nextMonth:f,prevMonth:h,nextYear:D,prevYear:g}=zt(r,n,u.monthsPerRow,u.numMonths);switch(Jt(e,u.numMonths)){case"below":return a.jsx(Kt,{theme:t,nextMonth:f,prevMonth:h,nextYear:D,prevYear:g,children:a.jsx(be,{...u,theme:t,date:r})});case"header":return a.jsx(m.Column,{children:a.jsx(qt,{...u,theme:t,renderMonthPicker:l,dateInFocus:r,setDateInFocus:n,currentPanel:s,setCurrentPanel:o,onSelectPreset:c,headerRightContent:a.jsxs(m.Row,{alignItems:"center",gap:1,children:[a.jsx(M.SecondaryButton,{onClick:h,leftIcon:M.stenaArrowLeft}),a.jsx(M.SecondaryButton,{onClick:f,leftIcon:M.stenaArrowRight})]})})});default:return a.jsx(be,{...u,theme:t,date:r})}}const Jt=(e,t)=>e||(t||1)>1?"below":"header",ct=e=>({startDate:e.startDate?d.format(e.startDate,"yyyy-MM-dd"):void 0,endDate:e.endDate?d.format(e.endDate,"yyyy-MM-dd"):void 0}),lt=({startDate:e,endDate:t})=>{const r=new Date;return{startDate:e?d.parse(e,"yyyy-MM-dd",r):void 0,endDate:t?d.parse(t,"yyyy-MM-dd",r):void 0}},Fe=({startDate:e,endDate:t})=>!!(e&&t&&!d.isSameDay(e,t)&&d.isAfter(e,t)),He=e=>Fe(e)?{startDate:e.endDate,endDate:e.startDate}:e,Qt=e=>e.startDate&&e.endDate?ct(He(lt(e))):e,Xt=(e,t,r,n)=>i.useCallback(s=>{const o={startDate:r==="startDate"?s.date:e==null?void 0:e.startDate,endDate:r==="endDate"?s.date:e==null?void 0:e.endDate};Fe(o)||n(r==="startDate"?"endDate":"startDate"),t==null||t(He(o))},[r,t,n,e==null?void 0:e.endDate,e==null?void 0:e.startDate]),je=e=>{const[t,r]=i.useState("calendar"),n=i.useCallback(s=>{r(s),e==null||e(s)},[e]);return{currentPanel:t,setCurrentPanel:n}},dt=({focusedInput:e,value:t,onValueChange:r,setFocusedInput:n,statePerMonth:s,onChangePanel:o,initialDateInFocus:c})=>{const{currentPanel:l,setCurrentPanel:u}=je(o),[f,h]=i.useState(()=>c??new Date),D=Xt(t,r,e,n),g=i.useMemo(()=>le(s,t==null?void 0:t.startDate,t==null?void 0:t.endDate),[s,t==null?void 0:t.endDate,t==null?void 0:t.startDate]);return{onClickDay:D,statePerMonth:g,currentPanel:l,setCurrentPanel:u,setDateInFocus:h,dateInFocus:f}};function Zt(e){const t=dt(e);return a.jsx(ae,{...e,...t})}const Vt=()=>{const[e,t]=i.useState(),[r,n]=i.useState(),[s,o]=i.useState("startDate");return{startDate:e,setStartDate:t,endDate:r,setEndDate:n,focusedInput:s,setFocusedInput:o}},ut=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:o}=je(n),[c,l]=i.useState(()=>t??new Date),u=i.useCallback(h=>{e&&e(h.date)},[e]),f=i.useMemo(()=>t?Z(r,t,["selected","singleSelected"]):r,[r,t]);return{onClickDay:u,statePerMonth:f,date:t,currentPanel:s,setCurrentPanel:o,dateInFocus:c,setDateInFocus:l}};function Oe(e){const t=ut(e);return a.jsx(ae,{...e,...t})}const ft=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:o}=je(n),[c,l]=i.useState(()=>new Date),u=i.useCallback(h=>{if(!e)return;const D=t&&t.find(g=>d.isSameDay(g,h.date));e(t&&D?t.filter(g=>!d.isSameDay(g,h.date)):[...t||[],h.date])},[e,t]),f=i.useMemo(()=>t?t.reduce((h,D)=>Z(h,D,["selected"]),r):r,[r,t]);return{onClickDay:u,statePerMonth:f,currentPanel:s,setCurrentPanel:o,dateInFocus:c,setDateInFocus:l}};function er(e){const t=ft(e);return a.jsx(ae,{...e,...t})}const ht=({onChange:e,value:t,statePerMonth:r,onChangePanel:n,locale:s=W.enGB})=>{const[o,c]=i.useState(()=>{const x=Ie(t,s);return x?x.days[0].date:new Date}),{currentPanel:l,setCurrentPanel:u}=je(n),f=i.useCallback(x=>{e&&e(Ue(ke(x.date,s)))},[s,e]),h=i.useCallback(x=>{e&&e(Ue(x))},[e]),D=i.useMemo(()=>{const x=Ie(t,s);return x?Ge(r,x):r},[t,s,r]),g=i.useMemo(()=>{const x=Ie(t,s);return x?x.days[0].date:new Date},[s,t]);return{statePerMonth:D,date:g,dateInFocus:o,setDateInFocus:c,onClickDay:f,onClickWeek:h,currentPanel:l,setCurrentPanel:u}},Ue=e=>{if(e)return`${e.endYear}-${e.weekNumber}`},Ie=(e,t)=>{if(!e)return;const r=e.split("-"),n=parseInt(r[1],10),s=parseInt(r[0],10),o=new Date;o.setFullYear(s);const c=d.startOfWeek(d.setWeek(o,n),{locale:t});return ke(c,t)};function tr(e){const t=ht(e);return a.jsx(ae,{...e,...t})}const he="bottom",rr=(e,t,r)=>{const[n,s]=i.useState(r||!1),o=i.useCallback(()=>(s(!0),!0),[s]),c=i.useCallback(()=>{s(!1),t&&t()},[s,t]),l=i.useCallback(u=>{e&&e(u),setTimeout(c,150)},[e,c]);return{showCalendar:o,hideCalendar:c,showingCalendar:n,onSelectDate:l}},me="2999-12-31",nr=({displayFormat:e=V.fullDate,placeholder:t="Enter date",value:r,calendarTheme:n=ne,calendarProps:s,openOnMount:o,onClose:c,onChange:l,variant:u,width:f,minDate:h,maxDate:D=me,disabled:g})=>{const{hideCalendar:x,showingCalendar:b,onSelectDate:p,showCalendar:S}=rr(l,c,o);return a.jsx(m.Box,{width:f,children:a.jsx(ue.ControlledPopover,{hideArrow:!0,open:b,onRequestClose:x,renderTrigger:k=>a.jsx(m.Box,{...k,children:a.jsx(X.TextInput,{type:"date",onFocus:S,buttonRight:a.jsx(M.TextInputButton,{onClick:S,icon:M.stenaCalendar}),value:r?d.format(r,e):"",placeholder:t,size:9,disabled:g,autoFocus:o,variant:u,min:h,max:D})}),placement:he,children:a.jsx(Oe,{...s,onChange:p,value:r,theme:n,minDate:h,maxDate:D})})})},sr=(e,t)=>{const r=i.useRef(null),n=i.useRef(null),[s,o]=i.useState(!1),[c,l]=i.useState(void 0),u=i.useCallback(()=>(l("startDate"),o(!0),!0),[l,o]),f=i.useCallback(()=>(l("endDate"),o(!0),!0),[l,o]),h=i.useCallback(()=>{o(!1)},[o]),D=i.useCallback(x=>{c==="startDate"?(t==null||t({startDate:x.date,endDate:e==null?void 0:e.endDate}),e!=null&&e.endDate?setTimeout(h,150):(l("endDate"),n.current&&n.current.focus())):c==="endDate"&&(t==null||t({startDate:e==null?void 0:e.startDate,endDate:x.date}),e!=null&&e.startDate?setTimeout(h,150):(l("startDate"),r.current&&r.current.focus()))},[c,t,l,h,e]),g=i.useMemo(()=>(e==null?void 0:e.startDate)&&(e==null?void 0:e.endDate)&&d.isAfter(e.startDate,e.endDate),[e==null?void 0:e.startDate,e==null?void 0:e.endDate]);return{showingCalendar:s,hideCalendar:h,showCalendarEndDate:f,showCalendarStartDate:u,focusedInput:c,setFocusedInput:l,startDateInputRef:r,endDateInputRef:n,onClickDay:D,startDateIsAfterEnd:g}};function or({displayFormat:e=V.fullDate,placeholderStartDate:t="Start date",placeholderEndDate:r="End date",value:n,onValueChange:s,width:o,calendarTheme:c=ne,calendarProps:l,minDate:u,maxDate:f=me,disabled:h}){const[D,g]=i.useState("calendar"),{hideCalendar:x,showCalendarEndDate:b,showCalendarStartDate:p,showingCalendar:S,focusedInput:k,startDateInputRef:y,endDateInputRef:w,onClickDay:R,startDateIsAfterEnd:T}=sr(n,s),[B,C]=i.useState(()=>(k&&(n==null?void 0:n[k]))??new Date),j=i.useMemo(()=>le(void 0,n==null?void 0:n.startDate,n==null?void 0:n.endDate),[n]);return a.jsx(ue.ControlledPopover,{hideArrow:!0,renderTrigger:E=>a.jsxs(m.Row,{alignItems:"center",...E,children:[a.jsx(X.TextInput,{iconLeft:M.stenaCalendar,onFocus:p,value:n!=null&&n.startDate?d.format(n.startDate,e):"",placeholder:t,width:o,disabled:h,inputRef:y,size:9,variant:T?"error":void 0}),a.jsx(m.Space,{}),a.jsx(M.Icon,{icon:M.stenaArrowWideRight,color:Se.cssColor("--lhds-color-ui-500"),size:14}),a.jsx(m.Space,{}),a.jsx(X.TextInput,{iconLeft:M.stenaCalendar,onFocus:b,value:n!=null&&n.endDate?d.format(n.endDate,e):"",placeholder:r,width:o,disabled:h,inputRef:w,size:9,variant:T?"error":void 0})]}),open:S,placement:he,onRequestClose:x,children:a.jsx(ae,{...l,dateInFocus:B,setDateInFocus:C,statePerMonth:j,theme:c,onClickDay:R,currentPanel:D,setCurrentPanel:g,minDate:u,maxDate:f})})}const ar=({calendarProps:e,closeOnCalendarSelectDate:t=!0,dateFormat:r=V.fullDate,disableCalender:n=!1,onValueChange:s,placeholder:o="yyyy-mm-dd",value:c,width:l="130px",calendarTheme:u=ne,hideCalenderIcon:f=!1,minDate:h,maxDate:D=me,variant:g,...x})=>{const[b,p]=i.useState(!1),S=i.useCallback(()=>{p(!b)},[p,b]),k=i.useCallback(()=>{p(!1)},[p]),y=i.useCallback(j=>{s&&s(j)},[s]),w=i.useCallback(j=>{j&&(y(d.format(j,r)),t&&setTimeout(()=>p(!b),200))},[y,r,t,p,b]),R=!!c&&!/^[-/\\.0-9]+$/.test(c),T=!!c&&d.isValid(d.parse(c,r,new Date)),C=!!c&&c.length>=r.length&&!T||R;return a.jsx(m.Box,{width:l,children:a.jsx(ue.ControlledPopover,{renderTrigger:j=>a.jsx(X.TextInput,{...x,variant:C?"error":g,disableContentPaddingRight:!0,contentRight:f?void 0:a.jsx(m.Row,{alignItems:"center",indent:.5,children:a.jsx(M.FlatButton,{size:"small",disabled:x.disabled||n,leftIcon:M.stenaCalendar,onClick:S})}),onValueChange:y,placeholder:o,value:c||"",min:h,max:D,size:10,...j}),hideArrow:!0,open:b,placement:he,onRequestClose:k,children:a.jsx(Oe,{...e,onChange:w,value:c&&T?d.parse(c,r,new Date):void 0,minDate:h,maxDate:D,theme:u})})})},pe=e=>{if(e==="")return"00";const t=parseInt(e,10);if(isNaN(t))throw new Error("Hours is not a number");if(t<0||t>23)throw new Error("Hours is an invalid number");switch(e.length){case 1:return`0${t}`;case 2:return e;default:throw new Error("Invalid hour string")}},ye=e=>{if(e==="")return"00";const t=parseInt(e,10);if(isNaN(t))throw new Error("Minutes is not a number");if(t<0||t>59)throw new Error("Minutes is an invalid number");switch(e.length){case 1:return`0${t}`;case 2:return e;default:throw new Error("Invalid minute string")}},ir=e=>{if(!_e(e))return{time:e,success:!1};const t=e&&e.split(/-|:|,|;|[/]|[.]| /);if(t&&t.length===2)try{const r=pe(t[0]),n=ye(t[1]);return{time:`${r}:${n}`,success:!0}}catch{return{time:e,success:!1}}else if(t&&t.length===1){let r=0,n=0;switch(e.length){case 1:return{time:`0${e}:00`,success:!0};case 2:{const s=parseInt(t[0],10);return s>=0&&s<24?{time:`${e}:00`,success:!0}:s>=24&&s<59?{time:`00:${e}`,success:!0}:{time:e,success:!1}}case 3:return n=parseInt(e.substring(1,3),10),n>=0&&n<=59?{time:`0${e.substring(0,1)}:${e.substring(1,3)}`,success:!0}:{time:e,success:!1};case 4:return r=parseInt(e.substring(0,2),10),n=parseInt(e.substring(2,4),10),r<0||r>23?{time:e,success:!1}:n<0||n>59?{time:e,success:!1}:{time:`${e.substring(0,2)}:${e.substring(2,4)}`,success:!0};default:return{time:e,success:!1}}}return{time:e,success:!1}},_e=e=>e?/^[-:.,/; 0-9]+$/.test(e):!0,cr=({onValueChange:e,showPlaceholder:t=!0,useIcon:r=!0,value:n,width:s="85px",variant:o,...c})=>{const[l,u]=i.useState(()=>_e(n)),f="hh:mm",h=i.useCallback(()=>{if(n){const g=ir(n);u(g.success),g.success&&e&&e(g.time)}},[n,e,u]),D=i.useCallback(g=>{const x=g.target.value,b=_e(x);u(b&&x.length<=f.length),e&&e(x)},[e,u]);return a.jsx(X.TextInput,{...c,type:"time",variant:l?o:"error",iconLeft:r?M.stenaClock:void 0,value:n,placeholder:t?f:void 0,onChange:D,onBlur:h,width:s})},mt=({autoFocusLeft:e,autoFocusRight:t,onEsc:r,onEnter:n,onValueChangeLeft:s,onValueChangeRight:o,separatorIcon:c,placeholderLeft:l,placeholderRight:u,typeLeft:f,typeRight:h,onChangeLeft:D,onChangeRight:g,valueLeft:x,valueRight:b,minLeft:p,maxLeft:S,minRight:k,maxRight:y,onClickLeft:w,onClickRight:R,onClickCalendar:T,onClickArrowDown:B,onBlurLeft:C,onBlurRight:j,onFocusLeft:E,onFocusRight:I,inputRefLeft:F,inputRefRight:Y,variant:L,variantLeft:H,variantRight:$,onBlur:v,showPresets:G,widthLeft:J,widthRight:q,disabled:z})=>{const _=i.useRef(0),P=i.useMemo(()=>U.debounce(O=>{O===0&&(v==null||v())},10),[v]),ee=i.useCallback(O=>{_.current++,P(_.current),E&&E(O)},[E,_,P]),A=i.useCallback(O=>{_.current++,P(_.current),I&&I(O)},[I,_,P]),N=i.useCallback(O=>{_.current--,P(_.current),C&&C(O)},[C,_,P]),se=i.useCallback(O=>{_.current--,P(_.current),j&&j(O)},[j,_,P]);return a.jsx(m.Box,{children:a.jsxs(X.TextInputBox,{disableContentPaddingRight:!0,disabled:z,variant:L,contentRight:a.jsxs(m.Row,{alignItems:"center",children:[a.jsx(m.Indent,{num:.5,children:a.jsx(M.FlatButton,{leftIcon:M.stenaCalendar,onClick:T,disabled:z,size:"small"})}),G?a.jsxs(a.Fragment,{children:[a.jsx(m.Row,{height:"22px",children:a.jsx(m.SeparatorLine,{vertical:!0})}),a.jsx(m.Indent,{num:.5,children:a.jsx(M.FlatButton,{leftIcon:M.stenaAngleDown,onClick:B,disabled:z,size:"small"})})]}):null]}),children:[a.jsx(m.Box,{width:J,children:a.jsx(X.TextInput,{onEsc:r,onEnter:n,onClick:w,disabled:z,hideBorder:!0,placeholder:l,value:x,onValueChange:s,onChange:D,onBlur:N,onFocus:ee,inputRef:F,variant:H,type:f,autoFocus:e,min:p,max:S})}),a.jsx(m.Row,{indent:.5,alignItems:"center",justifyContent:"center",children:a.jsx(M.Icon,{icon:c,size:12,color:Se.cssColor("--lhds-color-ui-500")})}),a.jsx(m.Box,{width:q,children:a.jsx(X.TextInput,{onEsc:r,onEnter:n,onClick:R,disabled:z,hideBorder:!0,placeholder:u,value:b,onValueChange:o,onChange:g,onBlur:se,onFocus:A,inputRef:Y,variant:$,type:h,autoFocus:t,min:k,max:y})})]})})},lr=e=>{if(e==null)throw new Error("Time is not set.");if(e==="")throw new Error("Time is empty.");const t=e.split(":");if(t.length!==2)throw new Error("Invalid time.");if(t[1].length!==2)throw new Error("Invalid time.");if(t[0].length<1||t[0].length>2)throw new Error("Invalid time.");const r=parseInt(t[0],10),n=parseInt(t[1],10);if(isNaN(r))throw new Error("Invalid time.");if(isNaN(n))throw new Error("Invalid time.");if(r<0||r>23)throw new Error("Invalid time.");if(n<0||n>59)throw new Error("Invalid time.");return r*100+n},dr=e=>{try{return lr(e),!0}catch{return!1}},xe=e=>{if(e&&dr(e)){const t=e.split(":");return{hour:m.parseIntElseUndefined(t[0]),minute:m.parseIntElseUndefined(t[1])}}return{hour:void 0,minute:void 0}},ur=e=>`${pe(String(e.getHours()))}:${ye(String(e.getMinutes()))}`,fr="_timePicker_1w05d_1",hr="_timePickerColumn_1w05d_6",gt={timePicker:fr,timePickerColumn:hr},mr=({onClick:e,item:t,selected:r,columnRef:n,canScrollRef:s})=>{const o=i.useRef(null);return i.useEffect(function(){if(r&&n.current&&o.current&&s.current){const l=o.current.scrollHeight*Math.max(t-2,0);n.current.scrollTo(0,l),s.current=!1}},[n,t,r,s]),a.jsx(m.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,ref:o,children:r?a.jsx(M.PrimaryButton,{label:U.padStart(String(t),2,"0"),onClick:()=>e&&e(t)}):a.jsx(M.FlatButton,{label:String(t).padStart(2,"0"),onClick:()=>e&&e(t)})})},qe=({onClick:e,items:t,selectedItem:r,canScrollRef:n})=>{const s=i.useRef(null);return a.jsx(m.Column,{className:gt.timePickerColumn,ref:s,children:t.map(o=>a.jsx(mr,{item:o,onClick:e,selected:o===r,columnRef:s,canScrollRef:n},o))})},gr=U.range(0,24),Dr=U.range(0,60),xr=({value:e,onValueChange:t})=>{const r=i.useRef(!0),[n,s]=i.useState(void 0),[o,c]=i.useState(void 0);i.useEffect(()=>{if(e){const{minute:f,hour:h}=xe(e);s(h),c(f)}},[e]);const l=i.useCallback(f=>{s(f),t==null||t(`${pe(String(f??0))}:${ye(String(o??0))}`)},[o,t]),u=i.useCallback(f=>{c(f),t==null||t(`${pe(String(n??0))}:${ye(String(f??0))}`)},[n,t]);return a.jsxs(m.Row,{className:gt.timePicker,children:[a.jsx(qe,{items:gr,onClick:l,selectedItem:n,canScrollRef:r}),a.jsx(m.Indent,{}),a.jsx(qe,{items:Dr,onClick:u,selectedItem:o,canScrollRef:r})]})},br=(e,t,r)=>{i.useEffect(function(){e&&t(e)},[e,t]),i.useEffect(function(){r.current&&(e?r.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):r.current.valueAsDate=null)},[e,r])},pr=(e,t,{setDateInFocus:r,showCalendarInternal:n,hideCalendarInternal:s,setFirstFocusedInput:o,setCurrentPanel:c,localTime:l,setLocalTime:u,localDate:f,setLocalDate:h},D)=>{const g=i.useCallback(y=>{if(!y)return;const w=new Date(y);if(e)w.setHours(e.getHours()),w.setMinutes(e.getMinutes()),t==null||t(w),h(void 0);else if(l){const{minute:R,hour:T}=xe(l);w.setHours(T??0),w.setMinutes(R??0),t==null||t(w),h(void 0)}else h(w);r(w),D.current&&(D.current.valueAsDate=new Date(Date.UTC(w.getFullYear(),w.getMonth(),w.getDate())))},[e,D,l,t,r,h]),x=i.useCallback(y=>{if(y)if(e){const w=xe(y),R=new Date(e);R.setHours(w.hour||0),R.setMinutes(w.minute||0),t==null||t(R),u(void 0)}else if(f){const w=xe(y),R=new Date(f);R.setHours(w.hour||0),R.setMinutes(w.minute||0),t==null||t(R),u(void 0)}else u(y)},[t,e,f,u]),b=i.useCallback(y=>{y.target.value[0]!=="0"&&g(y.target.valueAsDate)},[g]),p=i.useCallback(y=>x(y.target.value),[x]),S=i.useCallback(()=>{r(e||new Date),c("calendar"),n()},[e,c,n,r]),k=i.useCallback(()=>{o(void 0),s()},[o,s]);return{inputLeftChangeHandler:b,inputRightChangeHandler:p,hideCalendar:k,showCalendar:S,onChangeTime:x,onChangeDate:g}},yr=e=>{const[t,r]=i.useState(void 0),[n,s]=i.useState(void 0),[o,c,l]=m.useBoolean(!1),[u,f,h]=m.useBoolean(!1),[D,g]=i.useState(void 0),[x,b]=i.useState(()=>e??new Date),[p,S]=i.useState("calendar");return{isCalendarVisible:o,showCalendarInternal:c,hideCalendarInternal:l,firstFocusedInput:D,setFirstFocusedInput:g,dateInFocus:x,setDateInFocus:b,currentPanel:p,setCurrentPanel:S,isTimePickerVisible:u,showTimePicker:f,hideTimePicker:h,localDate:t,setLocalDate:r,localTime:n,setLocalTime:s}},wr=(e,t,r,n,{isCalendarVisible:s,setCurrentPanel:o,showTimePicker:c,hideTimePicker:l})=>{const u=i.useCallback(()=>{s||r(),o("calendar"),l()},[l,s,o,r]),f=i.useCallback(()=>{n(),c()},[n,c]),h=i.useCallback(b=>{e(b.date),n(),c()},[e,n,c]),D=i.useCallback(()=>{o("presets"),r()},[o,r]),g=i.useCallback(()=>{var b;s?n():((b=t.current)==null||b.focus(),o("calendar"),r())},[s,n,t,o,r]),x=i.useCallback(b=>{b.key==="Escape"&&n()},[n]);return{onFocusLeft:u,onFocusRight:f,onClickDay:h,onClickArrowButton:D,onClickCalendarButton:g,onKeyDownHandler:x}},Sr=({value:e,onValueChange:t,onEnter:r,onEsc:n,onBlur:s,autoFocus:o,minDate:c,widthLeft:l=128,widthRight:u=80,maxDate:f=me,variant:h,disabled:D})=>{const g=i.useRef(null),x=i.useRef(null),b=yr(e),{setCurrentPanel:p,currentPanel:S,isCalendarVisible:k,dateInFocus:y,setDateInFocus:w,isTimePickerVisible:R,hideTimePicker:T,localTime:B,localDate:C}=b,{showCalendar:j,hideCalendar:E,inputLeftChangeHandler:I,inputRightChangeHandler:F,onChangeTime:Y,onChangeDate:L}=pr(e,t,b,g),{onKeyDownHandler:H,onFocusRight:$,onFocusLeft:v,onClickDay:G,onClickCalendarButton:J,onClickArrowButton:q}=wr(L,g,j,E,b);br(e,w,g);const z=i.useMemo(()=>{const N=e||C;return N?Z(void 0,N,["singleSelected","selected"]):{}},[C,e]),_=i.useCallback(()=>{E(),T()},[E,T]),P=i.useMemo(()=>e?ur(e):B,[e,B]),ee=m.useDelayedFalse(k,300),A=m.useDelayedFalse(R,300);return a.jsx(m.Box,{onKeyDown:H,children:a.jsx(ue.ControlledPopover,{hideArrow:!0,renderTrigger:N=>a.jsx(m.Box,{...N,children:a.jsx(mt,{autoFocusLeft:o,onEsc:n,onEnter:r,onBlur:s,disabled:D,separatorIcon:M.stenaClock,typeLeft:"date",typeRight:"time",placeholderLeft:"yyyy-mm-dd",placeholderRight:"hh:mm",onChangeLeft:I,onChangeRight:F,onClickArrowDown:q,onClickCalendar:J,onFocusLeft:v,onFocusRight:$,onClickLeft:v,onClickRight:$,inputRefLeft:g,inputRefRight:x,valueRight:P??"",widthLeft:l,widthRight:u,minLeft:c,maxLeft:f,variant:h})}),placement:he,open:k||R,onRequestClose:_,children:(ee||A)&&a.jsx(m.Column,{children:ee?a.jsx(ae,{statePerMonth:z,onClickDay:G,dateInFocus:y,setDateInFocus:w,currentPanel:S,setCurrentPanel:p,minDate:c,maxDate:f}):A?a.jsxs(m.Column,{children:[a.jsx(m.Column,{overflow:"hidden",height:"250px",children:a.jsx(xr,{value:P??"",onValueChange:Y})}),a.jsx(m.Space,{}),a.jsx(m.Row,{justifyContent:"flex-end",children:a.jsx(M.PrimaryButton,{label:"Done",onClick:T})})]}):null})})})},kr=({value:e,onValueChange:t,year:r})=>{const n=String(r);return a.jsx(m.Row,{justifyContent:"center",children:e===r?a.jsx(M.PrimaryButton,{label:n,onClick:()=>t==null?void 0:t(r)}):a.jsx(M.FlatButton,{label:n,onClick:()=>t==null?void 0:t(r)})})},jr=({value:e,onValueChange:t,initialLastYear:r})=>{const[n,s]=i.useState(()=>e?e+4:r??new Date().getFullYear()+4),o=i.useMemo(()=>{const c=n-11;return U.chunk(U.range(c,n+1),3)},[n]);return i.useEffect(()=>{s(c=>Mr(e,c))},[e]),a.jsxs(m.Row,{children:[a.jsx(m.Column,{justifyContent:"center",children:a.jsx(M.FlatButton,{leftIcon:M.stenaArrowLeft,onClick:()=>s(n-3)})}),a.jsx(m.Column,{gap:1,children:o.map(c=>a.jsx(m.Row,{gap:1,children:c.map(l=>a.jsx(kr,{year:l,onValueChange:t,value:e},l))},c[0]))}),a.jsx(m.Column,{justifyContent:"center",children:a.jsx(M.FlatButton,{leftIcon:M.stenaArrowRight,onClick:()=>s(n+3)})})]})},Mr=(e,t)=>{if(e==null)return t;if(e>t){const n=e-t,s=n%3,o=n-s+3;return t+o}const r=t-11;if(e<r){const n=r-e,s=n%3,o=n-s+3;return t-o}return t},Rr=(e,t,r,n,s)=>{i.useEffect(function(){e&&r(e)},[e,r]),i.useEffect(function(){t&&r(t)},[t,r]),i.useEffect(function(){n.current&&(e?n.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):n.current.valueAsDate=null)},[e,n]),i.useEffect(function(){s.current&&(t?s.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):s.current.valueAsDate=null)},[t,s])},Tr=(e,t,r,{setDateInFocus:n,showCalendarInternal:s,hideCalendarInternal:o,setFirstFocusedInput:c,setCurrentPanel:l})=>{const u=i.useCallback(g=>{g.target.value[0]!=="0"&&(r==null||r({startDate:g.target.valueAsDate??void 0,endDate:t}))},[r,t]),f=i.useCallback(g=>{g.target.value[0]!=="0"&&(r==null||r({startDate:e,endDate:g.target.valueAsDate??void 0}))},[r,e]),h=i.useCallback(()=>{n(e||t||new Date),l("calendar"),s()},[e,t,l,s,n]),D=i.useCallback(()=>{c(void 0),o()},[c,o]);return{inputLeftChangeHandler:u,inputRightChangeHandler:f,hideCalendar:D,setDateInFocus:n,setCurrentPanel:l,showCalendar:h}},Ir=(e,t)=>{const[r,n,s]=m.useBoolean(!1),[o,c]=i.useState(void 0),[l,u]=i.useState("startDate"),[f,h]=i.useState(()=>(l==="startDate"?e:l==="endDate"?t:void 0)??new Date),[D,g]=i.useState("calendar");return{isCalendarVisible:r,showCalendarInternal:n,hideCalendarInternal:s,firstFocusedInput:o,setFirstFocusedInput:c,focusedInput:l,setFocusedInput:u,dateInFocus:f,setDateInFocus:h,currentPanel:D,setCurrentPanel:g}},Cr=(e,t,r,n,s,o,c,{firstFocusedInput:l,setFirstFocusedInput:u,isCalendarVisible:f,setFocusedInput:h,focusedInput:D,setCurrentPanel:g})=>{const x=i.useCallback(()=>{l==null&&u("startDate"),h("startDate"),f||o()},[f,h,o,u,l]),b=i.useCallback(()=>{l==null&&u("endDate"),h("endDate"),f||o()},[f,h,o,u,l]),p=i.useCallback(w=>{var R,T,B,C;D==="startDate"?t!=null&&d.isAfter(w.date,t)?(r==null||r({startDate:w.date,endDate:void 0}),h("endDate"),(R=s.current)==null||R.focus()):(r==null||r({startDate:w.date,endDate:t}),l==="startDate"?(h("endDate"),(T=s.current)==null||T.focus()):setTimeout(c,50)):D==="endDate"&&(e?d.isAfter(e,w.date)?(r==null||r({startDate:w.date,endDate:void 0}),h("endDate"),(C=s.current)==null||C.focus()):(r==null||r({startDate:e,endDate:w.date}),setTimeout(c,50)):(r==null||r({startDate:e,endDate:w.date}),h("startDate"),(B=n.current)==null||B.focus()))},[D,r,t,l,h,s,c,e,n]),S=i.useCallback(()=>{g("presets"),o()},[g,o]),k=i.useCallback(()=>{var w;f?c():(h("startDate"),u("startDate"),(w=n.current)==null||w.focus(),g("calendar"),o())},[f,c,h,u,n,g,o]),y=i.useCallback(w=>{w.key==="Escape"&&c()},[c]);return{onFocusLeft:x,onFocusRight:b,onClickDay:p,onClickArrowButton:S,onClickCalendarButton:k,onKeyDownHandler:y}};function Br({value:e,onValueChange:t,autoFocus:r,onBlur:n,onEnter:s,onEsc:o,minDate:c,maxDate:l=me,calendarProps:u,widthLeft:f=128,widthRight:h=128,variant:D,disabled:g}){const{startDate:x,endDate:b}=e||{},p=i.useRef(null),S=i.useRef(null),k=Ir(x,b),{dateInFocus:y,setDateInFocus:w,isCalendarVisible:R,currentPanel:T,setCurrentPanel:B}=k,{showCalendar:C,hideCalendar:j,inputLeftChangeHandler:E,inputRightChangeHandler:I}=Tr(x,b,t,k),{onKeyDownHandler:F,onFocusRight:Y,onFocusLeft:L,onClickDay:H,onClickCalendarButton:$,onClickArrowButton:v}=Cr(x,b,t,p,S,C,j,k);Rr(x,b,w,p,S);const G=i.useMemo(()=>x&&b&&d.isAfter(x,b),[x,b]),J=i.useMemo(()=>ze(u==null?void 0:u.statePerMonth,x,b,y),[u==null?void 0:u.statePerMonth,x,b,y]);return a.jsx(m.Box,{onKeyDown:F,children:a.jsx(ue.ControlledPopover,{hideArrow:!0,restoreFocus:!1,returnFocus:!1,renderTrigger:q=>a.jsx(m.Box,{...q,children:a.jsx(mt,{autoFocusLeft:r,onEsc:o,onEnter:s,onBlur:n,disabled:g,separatorIcon:M.stenaArrowRight,typeLeft:"date",typeRight:"date",placeholderLeft:"Start date",placeholderRight:"End date",onChangeLeft:E,onChangeRight:I,onClickArrowDown:v,onClickCalendar:$,onFocusLeft:L,onFocusRight:Y,onClickLeft:L,onClickRight:Y,inputRefLeft:p,inputRefRight:S,variant:G?"error":D,widthLeft:f,widthRight:h,minLeft:c,maxLeft:l,minRight:c,maxRight:l})}),placement:he,onRequestClose:j,open:R,children:a.jsx(ae,{onClickDay:H,dateInFocus:y,setDateInFocus:w,currentPanel:T,setCurrentPanel:B,minDate:c,maxDate:l,...u,statePerMonth:J})})})}const Ne=({onChange:e,onValueChange:t,mask:r,pipe:n,value:s,guide:o,keepCharPositions:c,placeholderChar:l,showMask:u,calendarSize:f,...h})=>{const D=i.useRef(null),{onChange:g}=St.useMaskedInput(D,e,t,r,n,s,o,c,l,u);return a.jsx(X.LabelledTextInput,{...h,ref:D,onChange:g,width:Ar(f),size:f==="large"?"large":"medium"})},Ar=e=>{switch(e){case"small":return"140px";case"medium":return"168px";case"large":return"196px";default:return m.exhaustSwitchCase(e,"168px")}},Er=[/[1-2]/,/\d/,/\d/,/\d/],_r=[/[0-1]/,/\d/],Nr=[/[0-3]/,/\d/],Dt=e=>Pr(e).flatMap(Lr),Lr=e=>{switch(e){case"yyyy":return Er;case"mm":case"MM":return _r;case"dd":case"DD":return Nr;default:return[e]}},Pr=e=>{if(e.length===0)return[];const t=[];let r=e[0];for(let n=1;n<e.length;n++)e[n]!==e[n-1]?(t.push(r),r=e[n]):r+=e[n];return t.push(r),t},ie=e=>{const r=new Intl.DateTimeFormat(e,{dateStyle:"short"}).formatToParts(new Date),n={year:"yyyy",month:"MM",day:"dd"};return r.map(s=>n[s.type]||s.value).join("")},xt={"en-US":W.enUS,"en-GB":W.enGB,"de-AT":W.deAT,"de-DE":W.de,fr:W.fr,de:W.de,es:W.es,sv:W.sv,pl:W.pl,da:W.da,nl:W.nl,nb:W.nb},ge=e=>xt[e],We=()=>xt.sv,re=(e,t,r)=>{const n=ge(t);if(n==null)return;const s=d.parse(e,ie(t),r??new Date,{locale:n});if(!isNaN(s.getTime()))return s},ce=(e,t)=>d.format(e,ie(t),{locale:ge(t)}),we=(e,t)=>{const r=re(e,t);if(r!=null)return ce(r,t)},bt=({value:e,onValueChange:t,localeCode:r,startDateLabel:n="From",endDateLabel:s="To",onFocus:o,calendarSize:c})=>{const{mask:l,placeholder:u}=i.useMemo(()=>{const f=ie(r);return{mask:Dt(f),placeholder:f.toLowerCase()}},[r]);return a.jsxs(m.Row,{children:[a.jsx(Ne,{mask:l,value:e==null?void 0:e.startDate,onValueChange:f=>{t==null||t({startDate:f})},onBlur:f=>{const h=we(f.target.value,r);h&&h!==(e==null?void 0:e.startDate)&&(t==null||t({startDate:h}))},onFocus:o,label:n,borderRadiusVariant:"onlyLeft",placeholder:u,calendarSize:c}),a.jsx(Ne,{mask:l,value:e==null?void 0:e.endDate,onValueChange:f=>t==null?void 0:t({endDate:f}),onBlur:f=>{const h=we(f.target.value,r);h&&h!==(e==null?void 0:e.endDate)&&(t==null||t({endDate:h}))},onFocus:o,label:s,borderRadiusVariant:"onlyRight",placeholder:u,calendarSize:c})]})},pt=(e,t,r,n)=>{const s=ge(r)??We(),o=i.useId(),c=ve(),l=i.useRef(null),u=i.useMemo(()=>ie(r),[r]),f=i.useMemo(()=>{var I;return((I=e==null?void 0:e.startDate)==null?void 0:I.length)===u.length?re(e.startDate,r):void 0},[u.length,r,e==null?void 0:e.startDate]),h=i.useMemo(()=>{var I;return((I=e==null?void 0:e.endDate)==null?void 0:I.length)===u.length?re(e.endDate,r):void 0},[u.length,r,e==null?void 0:e.endDate]),[D,g]=i.useState(n??f??new Date),x=i.useCallback(I=>{d.isSameMonth(I,c)||d.isAfter(I,c)?g(I):g(c)},[c]),b=i.useMemo(()=>fe(D.getFullYear(),D.getMonth(),s),[s,D]),p=i.useMemo(()=>U.startCase(d.format(D,"MMMM yyyy",{locale:s})),[s,D]),S=i.useMemo(()=>d.isSameMonth(c,D),[c,D]),[k,y]=i.useState(),[w,R]=i.useState("calendar"),T=i.useCallback(I=>{var L,H;const F=((L=I==null?void 0:I.startDate)==null?void 0:L.length)===u.length?re(I.startDate,r):void 0,Y=((H=I==null?void 0:I.endDate)==null?void 0:H.length)===u.length?re(I.endDate,r):void 0;F?x(F):Y&&x(Y),t==null||t({...e,...I})},[u.length,r,t,x,e]),B=i.useMemo(()=>d.isSameMonth(c,D)||d.isBefore(D,c),[c,D]),C=i.useMemo(()=>(f&&h&&(d.isSameDay(f,h)||d.isBefore(f,h)))??!1,[h,f]);return{isDateDisabled:i.useCallback(I=>!d.isSameDay(I,c)&&d.isBefore(I,c),[c]),onClickDate:I=>{I.getFullYear()===D.getFullYear()&&I.getMonth()===D.getMonth()&&(f&&h==null?d.isBefore(I,f)?t==null||t({startDate:ce(I,r),endDate:void 0}):t==null||t({startDate:e==null?void 0:e.startDate,endDate:ce(I,r)}):t==null||t({startDate:ce(I,r),endDate:void 0}))},onValueChangeByInputs:T,isValidDateRange:C,prevMonthDisabled:B,monthPickerButtonRef:l,calendarId:o,monthPickerButtonLabel:p,visiblePanel:w,setVisiblePanel:R,setVisibleMonth:g,visibleMonthData:b,todayIsInVisibleMonth:S,hoverDate:k,setHoverDate:y,selectedStartDate:f,selectedEndDate:h,today:c,visibleMonth:D}},Me=({previousMonthButtonAriaLabel:e,nextMonthButtonAriaLabel:t,monthPickerButtonLabel:r,visiblePanel:n,setVisiblePanel:s,monthPickerButtonRef:o,setVisibleMonth:c,visibleMonth:l,prevMonthDisabled:u,calendarSize:f,previousMonthButtonTestId:h,nextMonthButtonTestId:D})=>a.jsxs(m.Row,{alignSelf:"center",justifyContent:"space-between",width:"100%",children:[a.jsx(M.FlatButton,{"aria-live":"polite",label:r,rightIcon:n==="calendar"?M.stenaAngleDown:M.stenaAngleUp,onClick:()=>s(n==="calendar"?"month-picker":"calendar"),ref:o,size:f==="small"?"medium":"large"}),a.jsxs(m.Row,{alignItems:"center",gap:2,children:[a.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowLeft,onClick:()=>c(d.subMonths(l,1)),disabled:u,"aria-label":e,size:f==="small"?"medium":"large","data-testid":h}),a.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowRight,onClick:()=>c(d.addMonths(l,1)),"aria-label":t,size:f==="small"?"medium":"large","data-testid":D})]})]}),Yr="_travelDateCell_h6vcn_1",vr="_small_h6vcn_4",Fr="_medium_h6vcn_9",Hr="_large_h6vcn_14",Or="_outline_h6vcn_26",Wr="_contentWrapper_h6vcn_39",$r="_disabled_h6vcn_60",Ur="_isToday_h6vcn_63",qr="_isSelectionStart_h6vcn_67",zr="_isSelectionEnd_h6vcn_68",Kr="_hover_h6vcn_83",Gr="_startSelected_h6vcn_86",Jr="_endSelected_h6vcn_86",K={travelDateCell:Yr,small:vr,medium:Fr,large:Hr,outline:Or,contentWrapper:Wr,disabled:$r,isToday:Ur,isSelectionStart:qr,isSelectionEnd:zr,hover:Kr,startSelected:Gr,endSelected:Jr},te=Se.cssColor("--lhds-color-red-100"),Qr=(e,t,r,n,s,o)=>{if(!s)return{left:"transparent",right:"transparent"};if(t&&r&&d.isSameDay(t,r))return{left:"transparent",right:"transparent"};if(t&&r&&!o)return{left:"transparent",right:"transparent"};const c=t&&r?d.isAfter(e,t)&&d.isBefore(e,r)&&!d.isSameDay(e,t)&&!d.isSameDay(e,r):!1,l=t&&n?d.isAfter(e,t)&&d.isBefore(e,n)&&!d.isSameDay(e,t)&&!d.isSameDay(e,n):!1;if(c)return{left:te,right:te};if(t&&r)return d.isSameDay(e,t)?{left:"transparent",right:te}:d.isSameDay(e,r)?{left:te,right:"transparent"}:{left:"transparent",right:"transparent"};if(t&&n&&d.isAfter(n,t)){if(d.isSameDay(e,t))return{left:"transparent",right:te};if(d.isSameDay(e,n))return{left:te,right:"transparent"}}return l?{left:te,right:te}:{left:"transparent",right:"transparent"}},Xr=(e,t)=>{switch(t){case"PageUp":return d.subMonths(e,1);case"PageDown":return d.addMonths(e,1);case"Home":return d.startOfWeek(e);case"End":return d.addDays(d.startOfWeek(e),6);case"ArrowLeft":return d.subDays(e,1);case"ArrowUp":return d.subDays(e,7);case"ArrowRight":return d.addDays(e,1);case"ArrowDown":return d.addDays(e,7);default:return}},Ce=(e,t)=>d.format(d.addHours(e,12),V.fullDate)+t,Zr="_travelDateCellBackground_1k07m_1",Vr="_small_1k07m_2",en="_medium_1k07m_7",tn="_large_1k07m_12",De={travelDateCellBackground:Zr,small:Vr,medium:en,large:tn},rn=({calendarSize:e,bgColorLeft:t,bgColorRight:r})=>a.jsxs(m.Row,{children:[a.jsx(m.Box,{className:oe(De.travelDateCellBackground,De[e]),background:t}),a.jsx(m.Box,{className:oe(De.travelDateCellBackground,De[e]),background:r})]}),nn=({onClick:e,visibleMonth:t,onChangeVisibleMonth:r,day:n,isValidDateRange:s,selectedStartDate:o,selectedEndDate:c,onStartHover:l,onEndHover:u,hoverDate:f,today:h,todayIsInVisibleMonth:D,calendarId:g,isDateDisabled:x,size:b,dateTestId:p})=>{const S=i.useCallback(async C=>{var E;const j=Xr(n.date,C.key);j&&!x(j)&&(l(j),d.isSameMonth(n.date,j)?(E=document.getElementById(Ce(j,g)))==null||E.focus():(r(j),setTimeout(()=>{var I;(I=document.getElementById(Ce(j,g)))==null||I.focus()},10))),(C.key==="Enter"||C.code==="Space")&&e(n.date)},[g,n.date,x,r,e,l]),k=n.month===t.getMonth(),y=x(n.date),w=o?d.isSameDay(o,n.date):!1,R=c?d.isSameDay(c,n.date):!1,T=d.isSameDay(n.date,h),B=Qr(n.date,o,c,f,k,s);return a.jsxs("td",{className:oe(K.travelDateCell,K[b]),onClick:y?void 0:()=>e(n.date),onMouseOver:y?void 0:()=>k&&l(n.date),onMouseOut:y?void 0:()=>k&&u(n.date),tabIndex:y?void 0:sn(n,o,T,t,D),id:y?void 0:Ce(n.date,g),onKeyDown:y?void 0:S,...y?void 0:{"aria-selected":w||R},"data-testid":p==null?void 0:p(n.date),children:[a.jsx("div",{className:K.outline}),a.jsx(rn,{calendarSize:b,bgColorLeft:B.left,bgColorRight:B.right}),k&&a.jsx("div",{className:oe(K.contentWrapper,T?K.isToday:void 0,o?K.startSelected:void 0,c?K.endSelected:void 0,f&&d.isSameDay(f,n.date)?K.hover:void 0,w&&K.isSelectionStart,R&&K.isSelectionEnd,y&&K.disabled),children:a.jsx(m.Text,{variant:"bold",color:y?Se.cssColor("--lhds-color-ui-500"):void 0,children:n.dayOfMonth})})]})},sn=(e,t,r,n,s)=>{const o=t?d.isSameMonth(t,n):!1;return(t&&o?d.isSameDay(e.date,t):r)||!o&&!s&&e.date.getDate()===1?0:-1},on="_travelCalendar_18pjj_1",an={travelCalendar:on},Re=({visibleMonthData:e,onClickDate:t,setHoverDate:r,setVisibleMonth:n,visibleMonth:s,isValidDateRange:o,selectedStartDate:c,selectedEndDate:l,hoverDate:u,today:f,calendarId:h,isDateDisabled:D,todayIsInVisibleMonth:g,size:x="medium",multiSelectable:b,dateTestId:p})=>a.jsx("table",{className:an.travelCalendar,role:"grid",...b?{"aria-multiselectable":!0}:void 0,children:a.jsxs("tbody",{children:[a.jsx("tr",{children:e.weeks[0].days.map(S=>a.jsx("th",{abbr:S.fullName,children:a.jsx(m.Text,{children:S.name})},S.name))}),e.weeks.map(S=>a.jsx(Le.Fragment,{children:a.jsx("tr",{children:S.days.map(k=>a.jsx(nn,{size:x,onClick:y=>t(y),visibleMonth:s,onChangeVisibleMonth:n,isValidDateRange:o,day:k,onStartHover:y=>r(y),onEndHover:y=>r(w=>w&&d.isSameDay(w,y)?void 0:w),selectedStartDate:c,selectedEndDate:l,hoverDate:u,today:f,todayIsInVisibleMonth:g,calendarId:h,isDateDisabled:D,dateTestId:p},k.dateString))},S.weekNumber)},S.weekNumber))]})}),cn="_travelDateRangeInput_1j7rp_1",ln="_overlay_1j7rp_2",dn="_calendarVisible_1j7rp_6",Be={travelDateRangeInput:cn,overlay:ln,calendarVisible:dn},un=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:o,previousMonthButtonAriaLabel:c="Previous month",nextMonthButtonAriaLabel:l="Next month",heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,zIndex:g=1e3,zIndexWhenClosed:x,onHideCalendar:b,renderBelowCalendar:p,size:S="medium",dateTestId:k,previousMonthButtonTestId:y,nextMonthButtonTestId:w})=>{const[R,T]=i.useState(!1),[B,C]=i.useState(!1),[j,E]=i.useState({width:336,height:66}),I=S==="large"?"8.8rem":"6.6rem",F=i.useRef(!1),Y=i.useCallback(()=>{F.current=!0,C(!0),setTimeout(()=>{T(!0)},10)},[]),L=i.useCallback(()=>{B&&(T(!1),F.current=!1,b==null||b(),setTimeout(()=>{F.current||C(!1)},120))},[B,b]),H=i.useRef(null),$=i.useRef(null);m.useOnClickOutside(H,L),i.useLayoutEffect(()=>{var se,O;const A=(se=$.current)==null?void 0:se.offsetWidth,N=(O=$.current)==null?void 0:O.offsetHeight;A!=null&&N!=null&&(j.height!==N||j.width!==A)&&E({width:A,height:N})},[j.height,j.width]);const v=pt(e,t,s,o),{visiblePanel:G,visibleMonth:J,onValueChangeByInputs:q,setVisibleMonth:z,setVisiblePanel:_,monthPickerButtonRef:P}=v,ee=i.useCallback(A=>{A.key==="Escape"&&L()},[L]);return a.jsxs(m.Box,{position:"relative",className:Be.travelDateRangeInput,ref:H,onKeyDown:ee,height:j.height,width:j.width,children:[a.jsx(m.Box,{position:"absolute",ref:$,zIndex:B?g:x,children:a.jsx(bt,{value:e,onValueChange:q,localeCode:s,startDateLabel:r,endDateLabel:n,onFocus:Y,calendarSize:S})}),B&&a.jsx(m.Box,{position:"absolute",zIndex:g-1,left:"-2.4rem",top:u?"-8.0rem":"-2.4rem",className:oe(Be.overlay,R&&Be.calendarVisible),children:a.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:a.jsxs(M.CardBody,{gap:3,children:[u&&a.jsx(m.Heading,{variant:"h2",as:f,children:u}),a.jsx(m.Box,{height:I}),a.jsx(Me,{...v,previousMonthButtonAriaLabel:c,nextMonthButtonAriaLabel:l,calendarSize:S,previousMonthButtonTestId:y,nextMonthButtonTestId:w}),G==="calendar"&&a.jsx(Re,{...v,size:S,multiSelectable:!0,dateTestId:k}),G==="month-picker"&&a.jsx(de,{firstMonth:D,numMonths:h,value:J,size:S,onValueChange:A=>{var N;z(A),_("calendar"),(N=P.current)==null||N.focus()},onCancel:()=>{var A;_("calendar"),(A=P.current)==null||A.focus()}}),p==null?void 0:p({hideCalendar:L})]})})})]})},fn="_travelDateInput_hmfbf_1",hn="_overlay_hmfbf_2",mn="_calendarVisible_hmfbf_6",Ae={travelDateInput:fn,overlay:hn,calendarVisible:mn},yt=({value:e,onValueChange:t,label:r="Date",localeCode:n,onFocus:s,calendarSize:o})=>{const{mask:c,placeholder:l}=i.useMemo(()=>{const u=ie(n);return{mask:Dt(u),placeholder:u.toLowerCase()}},[n]);return a.jsx(m.Row,{children:a.jsx(Ne,{mask:c,value:e,onValueChange:t,onBlur:u=>{const f=we(u.target.value,n);f&&f!==e&&(t==null||t(f))},onFocus:s,label:r,placeholder:l,calendarSize:o})})},wt=(e,t,r,n)=>{const s=ge(r)??We(),o=i.useId(),c=ve(),l=i.useRef(null),u=i.useMemo(()=>ie(r),[r]),f=i.useMemo(()=>(e==null?void 0:e.length)===u.length?re(e,r):void 0,[u.length,r,e]),[h,D]=i.useState(n??f??new Date),g=i.useCallback(j=>{d.isSameMonth(j,c)||d.isAfter(j,c)?D(j):D(c)},[c]),x=i.useMemo(()=>fe(h.getFullYear(),h.getMonth(),s),[s,h]),b=i.useMemo(()=>U.startCase(d.format(h,"MMMM yyyy",{locale:s})),[s,h]),p=i.useMemo(()=>d.isSameMonth(c,h),[c,h]),[S,k]=i.useState(),[y,w]=i.useState("calendar"),R=i.useCallback(j=>{const E=(j==null?void 0:j.length)===u.length?re(j,r):void 0;E&&g(E),t==null||t(j)},[u.length,r,t,g]),T=i.useMemo(()=>d.isSameMonth(c,h)||d.isBefore(h,c),[c,h]);return{isDateDisabled:i.useCallback(j=>!d.isSameDay(j,c)&&d.isBefore(j,c),[c]),onClickDate:j=>{t==null||t(ce(j,r))},onValueChangeByInputs:R,prevMonthDisabled:T,monthPickerButtonRef:l,calendarId:o,monthPickerButtonLabel:b,visiblePanel:y,setVisiblePanel:w,setVisibleMonth:D,visibleMonthData:x,todayIsInVisibleMonth:p,hoverDate:S,setHoverDate:k,selectedDate:f,today:c,visibleMonth:h}},gn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:o="Previous month",nextMonthButtonAriaLabel:c="Next month",heading:l,headingLevel:u,numMonthsInMonthPicker:f=12,firstMonthInMonthPicker:h=new Date,zIndex:D=1e3,zIndexWhenClosed:g,onHideCalendar:x,renderBelowCalendar:b,size:p="medium",dateTestId:S,previousMonthButtonTestId:k,nextMonthButtonTestId:y})=>{const[w,R]=i.useState(!1),[T,B]=i.useState(!1),[C,j]=i.useState({width:336,height:66}),E=p==="large"?"8.8rem":"6.6rem",I=i.useRef(!1),F=i.useCallback(()=>{I.current=!0,B(!0),setTimeout(()=>{R(!0)},10)},[]),Y=i.useCallback(()=>{T&&(R(!1),I.current=!1,x==null||x(),setTimeout(()=>{I.current||B(!1)},120))},[T,x]),L=i.useRef(null),H=i.useRef(null);m.useOnClickOutside(L,Y),i.useLayoutEffect(()=>{var se,O;const A=(se=H.current)==null?void 0:se.offsetWidth,N=(O=H.current)==null?void 0:O.offsetHeight;A!=null&&N!=null&&(C.height!==N||C.width!==A)&&j({width:A,height:N})},[C.height,C.width]);const $=wt(e,t,n,s),{visiblePanel:v,visibleMonth:G,onValueChangeByInputs:J,selectedDate:q,setVisibleMonth:z,setVisiblePanel:_,monthPickerButtonRef:P}=$,ee=i.useCallback(A=>{A.key==="Escape"&&Y()},[Y]);return a.jsxs(m.Box,{position:"relative",className:Ae.travelDateInput,ref:L,onKeyDown:ee,height:C.height,width:C.width,children:[a.jsx(m.Box,{position:"absolute",ref:H,zIndex:T?D:g,children:a.jsx(yt,{value:e,onValueChange:J,localeCode:n,label:r,onFocus:F,calendarSize:p})}),T&&a.jsx(m.Box,{position:"absolute",zIndex:D-1,left:"-2.4rem",top:l?"-8.0rem":"-2.4rem",className:oe(Ae.overlay,w&&Ae.calendarVisible),children:a.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:a.jsxs(M.CardBody,{gap:3,children:[l&&a.jsx(m.Heading,{variant:"h2",as:u,children:l}),a.jsx(m.Box,{height:E}),a.jsx(Me,{...$,previousMonthButtonAriaLabel:o,nextMonthButtonAriaLabel:c,calendarSize:p,previousMonthButtonTestId:k,nextMonthButtonTestId:y}),v==="calendar"&&a.jsx(Re,{...$,size:p,isValidDateRange:!!q,selectedStartDate:q,selectedEndDate:q,multiSelectable:!1,dateTestId:S}),v==="month-picker"&&a.jsx(de,{firstMonth:h,numMonths:f,value:G,size:p,onValueChange:A=>{var N;z(A),_("calendar"),(N=P.current)==null||N.focus()},onCancel:()=>{var A;_("calendar"),(A=P.current)==null||A.focus()}}),b==null?void 0:b({hideCalendar:Y})]})})})]})},Dn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:o="Previous month",nextMonthButtonAriaLabel:c="Next month",heading:l,headingLevel:u,numMonthsInMonthPicker:f=12,firstMonthInMonthPicker:h=new Date,dateTestId:D,size:g="medium",previousMonthButtonTestId:x,nextMonthButtonTestId:b})=>{const p=wt(e,t,n,s),{visiblePanel:S,visibleMonth:k,onValueChangeByInputs:y,setVisibleMonth:w,setVisiblePanel:R,monthPickerButtonRef:T,selectedDate:B}=p;return a.jsxs(m.Column,{gap:3,children:[l&&a.jsx(m.Heading,{variant:"h2",as:u,children:l}),a.jsx(yt,{value:e,onValueChange:y,localeCode:n,label:r,calendarSize:g}),a.jsx(Me,{...p,previousMonthButtonAriaLabel:o,nextMonthButtonAriaLabel:c,calendarSize:g,previousMonthButtonTestId:x,nextMonthButtonTestId:b}),S==="calendar"&&a.jsx(Re,{...p,size:g,selectedStartDate:B,selectedEndDate:B,isValidDateRange:!!B,multiSelectable:!1,dateTestId:D}),S==="month-picker"&&a.jsx(de,{firstMonth:h,numMonths:f,value:k,size:g,onValueChange:C=>{var j;w(C),R("calendar"),(j=T.current)==null||j.focus()},onCancel:()=>{var C;R("calendar"),(C=T.current)==null||C.focus()}})]})},xn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:o,previousMonthButtonAriaLabel:c="Previous month",nextMonthButtonAriaLabel:l="Next month",heading:u,headingLevel:f,numMonthsInMonthPicker:h=12,firstMonthInMonthPicker:D=new Date,size:g="medium",dateTestId:x,previousMonthButtonTestId:b,nextMonthButtonTestId:p})=>{const S=pt(e,t,s,o),{visiblePanel:k,visibleMonth:y,onValueChangeByInputs:w,setVisibleMonth:R,setVisiblePanel:T,monthPickerButtonRef:B}=S;return a.jsxs(m.Column,{gap:3,children:[u&&a.jsx(m.Heading,{variant:"h2",as:f,children:u}),a.jsx(bt,{value:e,onValueChange:w,localeCode:s,startDateLabel:r,endDateLabel:n,calendarSize:g}),a.jsx(Me,{...S,previousMonthButtonAriaLabel:c,nextMonthButtonAriaLabel:l,calendarSize:g,previousMonthButtonTestId:b,nextMonthButtonTestId:p}),k==="calendar"&&a.jsx(Re,{...S,size:g,multiSelectable:!0,dateTestId:x}),k==="month-picker"&&a.jsx(de,{firstMonth:D,numMonths:h,value:y,size:g,onValueChange:C=>{var j;R(C),T("calendar"),(j=B.current)==null||j.focus()},onCancel:()=>{var C;T("calendar"),(C=B.current)==null||C.focus()}})]})};exports.Calendar=be;exports.CalendarDay=Ye;exports.DateInput=nr;exports.DateRangeCalendar=Zt;exports.DateRangeDualTextInput=Br;exports.DateRangeInput=or;exports.DateTextInput=ar;exports.DateTimeInput=Sr;exports.Month=Je;exports.MonthPicker=de;exports.MultiDateCalendar=er;exports.PresetPicker=it;exports.SingleDateCalendar=Oe;exports.SingleWeekCalendar=tr;exports.TimeTextInput=cr;exports.TravelDateCalendar=Dn;exports.TravelDateInput=gn;exports.TravelDateRangeCalendar=xn;exports.TravelDateRangeInput=un;exports.WeekDay=Qe;exports.WeekDayCell=st;exports.WeekNumberCell=ot;exports.YearPicker=jr;exports.addDayStateHighlights=Z;exports.addDayStateHighlightsOnSingleDay=Pe;exports.addWeekRangeHighlights=Ge;exports.addWeekStateHighlights=Rt;exports.buildDayStateForDateRange=le;exports.buildDayStateForRange=Ke;exports.buildDayStateForSingleMonth=ze;exports.calculateOverflowingMonth=et;exports.createDay=Ze;exports.dateRangeToStrings=ct;exports.dayHasHighlight=tt;exports.dayHighlightSelect=Q;exports.defaultCalendarTheme=ne;exports.defaultTextPropsProvider=nt;exports.defaultWrapperStyleProvider=rt;exports.extranetCalendarTheme=Bt;exports.formatLocalizedDate=ce;exports.getDateFormatForLocaleCode=ie;exports.getDaysForWeekForDate=Ve;exports.getDefaultLocaleForFormatting=We;exports.getLocaleForLocaleCode=ge;exports.getMonthInYear=fe;exports.getMonthsInYear=Ee;exports.getWeekForDate=ke;exports.getWeeksForMonth=Xe;exports.isDateRangeInvalid=Fe;exports.parseLocalizedDateString=re;exports.reformatLocalizedDateString=we;exports.setDayStateValue=jt;exports.setDayStateValueFunction=Mt;exports.stringsToDateRange=lt;exports.toggleDateStringsIfEndIsEarlierThanStart=Qt;exports.toggleDatesIfEndIsEarlierThanStart=He;exports.useDateRangeCalendarState=Vt;exports.useDateRangeSelection=dt;exports.useMultiDateSelection=ft;exports.useSingleDateSelection=ut;exports.useSingleWeekSelection=ht;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),m=require("@stenajs-webui/core"),M=require("@stenajs-webui/elements"),d=require("date-fns"),O=require("date-fns/locale"),q=require("lodash-es"),i=require("react"),oe=require("classnames"),Ie=require("@emotion/styled"),V=require("@stenajs-webui/forms"),fe=require("@stenajs-webui/tooltip"),ke=require("@stenajs-webui/theme"),jt=require("@stenajs-webui/input-mask");function Mt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Pe=Mt(i),te={yearAndMonth:"yyyy-MM",fullDate:"yyyy-MM-dd",fullMonthName:"LLLL",fullDateAndTime:"yyyy-MM-dd HH:mm",fullDateAndTimeSystem:"yyyy-MM-ddTHH:MM",weekDayName:"EEEE",weekDayNameShort:"EEE",dateAndMonth:"d MMM",monthAndDate:"MMM do"},le=(e={},t,r)=>{if(t&&r&&d.isAfter(r,t))return d.eachDayOfInterval({start:t,end:r}).reduce((s,o)=>{const c=d.isSameDay(o,t),l=d.isSameDay(o,r);return ee(s,o,c?["selected","selectedStart","range"]:l?["selected","selectedEnd","range"]:["range"])},e);let n=e;return t&&(n=ee(n,t,["selected","singleSelected"])),r&&(n=ee(n,r,["selected","singleSelected"])),n},Ge=(e={},t,r,n)=>Je(e,t,r,d.startOfMonth(n),d.endOfMonth(n)),Je=(e={},t,r,n,s)=>t&&r?le(e,d.max([t,d.subDays(n,1)]),d.min([r,d.addDays(s,1)])):le(e,t,r),Rt=(e,t,r)=>{const n=d.format(t,te.yearAndMonth),s=d.getISOWeek(t),o=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[o]:{...e&&e[n]&&e[n][s]&&e[n][s][o],...r}}}}},Tt=(e,t,r)=>{const n=d.format(t,te.yearAndMonth),s=d.getISOWeek(t),o=d.getDate(t);return{...e,[n]:{...e&&e[n],[s]:{...e&&e[n]&&e[n][s],[o]:{...e&&e[n]&&e[n][s]&&e[n][s][o],...r(e&&e[n]&&e[n][s]&&e[n][s][o])}}}}},ee=(e,t,r)=>{const n=t.getMonth()+1,s=`${t.getFullYear()}-${n<10?"0":""}${n}`,o=d.getISOWeek(t),c=d.getDate(t),l=e&&e[s]&&e[s][o]&&e[s][o][c];return{...e,[s]:{...e&&e[s],[o]:{...e&&e[s]&&e[s][o],[c]:Ye(l,r)}}}},Ye=(e,t)=>({...e,highlights:[...(e==null?void 0:e.highlights)??[],...t]}),It=(e,t,r)=>{const n=t.days[0].date,s=n.getMonth()+1,o=`${n.getFullYear()}-${s<10?"0":""}${s}`,c=t.weekNumber;let l=e;t.days.forEach(g=>{l=ee(l,g.date,r)});const u=l&&l[o]?l[o][c]:void 0,h=u&&u.highlights?[...u.highlights,...r]:r,f={...u,highlights:h};return{...l,[o]:{...e&&e[o],[c]:f}}},Qe=(e,t)=>{var s;if(!t.days.length)return{...e};const r=t.days[0].date,n=(s=q.last(t.days))==null?void 0:s.date;return{...le(e,r,n)}},Ct=(e,t)=>i.useMemo(()=>e?ee(t,new Date,["today"]):t,[e,t]);var Xe=(e=>(e[e.JANUARY=0]="JANUARY",e[e.FEBRUARY=1]="FEBRUARY",e[e.MARCH=2]="MARCH",e[e.APRIL=3]="APRIL",e[e.MAY=4]="MAY",e[e.JUNE=5]="JUNE",e[e.JULY=6]="JULY",e[e.AUGUST=7]="AUGUST",e[e.SEPTEMBER=8]="SEPTEMBER",e[e.OCTOBER=9]="OCTOBER",e[e.NOVEMBER=10]="NOVEMBER",e[e.DECEMBER=11]="DECEMBER",e))(Xe||{}),Ze=(e=>(e[e.SUNDAY=0]="SUNDAY",e[e.MONDAY=1]="MONDAY",e[e.TUESDAY=2]="TUESDAY",e[e.WEDNESDAY=3]="WEDNESDAY",e[e.THURSDAY=4]="THURSDAY",e[e.FRIDAY=5]="FRIDAY",e[e.SATURDAY=6]="SATURDAY",e))(Ze||{});const _e=(e,t,r,n)=>{const s=[];for(let o=0;o<r;o++)s.push(he(e,t+o,n));return s},he=(e,t,r)=>{if(isNaN(e)||isNaN(t))throw new Error("getMonthInYear() received NaN.");const n=e+Math.floor(t/12),s=t%12,o=new Date(n,s,1);return{monthString:d.format(o,te.yearAndMonth),name:q.startCase(d.format(o,te.fullMonthName,{locale:r})),year:n,monthInYear:s,weeks:Ve(n,s,r)}},Ve=(e,t,r,n=!0)=>{const s=new Date(e,t,1),o=d.startOfWeek(s,{locale:r}),c=[];for(let l=0;l<6;l++){const u=je(d.addWeeks(o,l),r);if(l>0&&u.startMonth!==t&&!n)return c;c.push(u)}return c},je=(e,t)=>{const r=d.getMonth(d.addDays(e,7))!==d.getMonth(e);return{weekNumber:d.getWeek(e,{locale:t}),startMonth:d.getMonth(e),startYear:d.getYear(e),endMonth:d.getMonth(d.addDays(e,6)),endYear:d.getYear(d.addDays(e,6)),days:tt(e,t),isLastWeekOfMonth:r}},et=(e,t)=>{const r=d.getISODay(e);return{date:e,name:d.format(e,"EEE",t?{locale:t}:void 0),fullName:d.format(e,"EEEE",t?{locale:t}:void 0),dateString:d.format(d.addHours(e,12),te.fullDate),weekNumber:d.getWeek(e,{locale:t}),year:d.getYear(e),month:d.getMonth(e),dayOfMonth:d.getDate(e),dayOfWeek:r,isFirstDayOfWeek:r===1,isLastDayOfWeek:r===7,isFirstDayOfMonth:d.isSameDay(d.startOfMonth(e),e),isLastDayOfMonth:d.isSameDay(d.endOfMonth(e),e)}},tt=(e,t)=>d.eachDayOfInterval({start:e,end:d.addDays(e,6)}).map(r=>et(r,t)),rt=(e,t)=>t>11?{year:e+Math.floor(t/12),month:t%12}:t<0?{year:e+Math.floor(t/12),month:12+t%12}:{year:e,month:t},Bt="_calendar_1b766_1",At="_weekNumberVisible_1b766_41",qe={calendar:Bt,weekNumberVisible:At},nt=(e,t,r)=>!!(t&&t.indexOf(r)>=0||e&&e.highlights&&e.highlights.indexOf(r)>=0),Z=(e,t,r,n,s)=>{if(r.length!==n.length)throw new Error("Select highlight failed, number of values do not equal number of highlights.");if(r.length===0)return s;for(let o=0;o<r.length;o++)if(typeof r[o]=="boolean"&&r[o]||typeof r[o]=="string"&&nt(e,t,r[o]))return n[o];return s},st=({selectedBackground:e,todayBackground:t,rangeBackground:r,borderColor:n="transparent"})=>(s,o,c,l,u)=>({backgroundColor:Z(o,s,["selected","range","today",c.month===u.monthInYear],[e,r,t,"#fff"],"transparent"),borderWidth:"1px",borderStyle:"solid",borderColor:Z(o,s,["selectedStart","selectedEnd","singleSelected","range","today"],["var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-background)","var(--swui-calendar-wrapper-range-border)","var(--lhds-color-ui-500)"],n),borderTopLeftRadius:Z(o,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomLeftRadius:Z(o,s,["selectedStart","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderTopRightRadius:Z(o,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),borderBottomRightRadius:Z(o,s,["selectedEnd","singleSelected","today"],["var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)","var(--swui-calendar-day-border-radius)"],"unset"),boxSizing:"border-box"}),ot=({selectedColor:e,disabledColor:t,inOtherMonthColor:r,rangeTextColor:n})=>(s,o,c,l,u)=>{const h=c.month!==u.monthInYear;return{color:Z(o,s,[h,"selected","range","enabled","disabled"],[r,e,n,void 0,t])}},se={width:"var(--swui-calendar-day-width)",height:"var(--swui-calendar-day-height)",WeekNumber:{backgroundColor:"var(--swui-calendar-week-number-bg-color)",textColor:"var(--swui-calendar-week-number-text-color)",clickableTextColor:"var(--swui-calendar-week-number-clickable-text-color)"},WeekDay:{textColor:"var(--swui-calendar-week-day-text-color)",clickableTextColor:"var(--swui-calendar-week-day-clickable-text-color)"},CalendarDay:{tdStyle:st({selectedBackground:"var(--swui-calendar-wrapper-selected-background)",rangeBackground:"var(--swui-calendar-wrapper-range-background)",todayBackground:"var(--swui-calendar-wrapper-today-background)"}),textProps:ot({selectedColor:"var(--swui-calendar-text-selected-color)",disabledColor:"var(--swui-calendar-text-disabled-color)",inOtherMonthColor:"var(--swui-calendar-text-in-other-month-color)"})},CalendarMonth:{headerTextColor:"var(--swui-calendar-week-day-text-color)"}},Et={...se,width:"37px",height:"37px"},at=({onClickWeekDay:e,day:t,theme:r})=>{const n=a.jsx(m.Box,{width:r.width,height:r.height,justifyContent:"center",alignItems:"center",children:a.jsx(m.Text,{size:"small",color:e?r.WeekDay.clickableTextColor:r.WeekDay.textColor,children:t.name})});return e?a.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:s=>e(t.dayOfWeek,s),disableFocusHighlight:!e,children:n}):n},ve=function({day:t,week:r,month:n,dayState:s,userData:o,onClickDay:c,theme:l,extraDayContent:u,defaultHighlights:h}){const f=a.jsx(m.Box,{width:"100%",height:"100%",justifyContent:"center",alignItems:"center",children:a.jsx(m.Text,{...l.CalendarDay.textProps&&l.CalendarDay.textProps(h,s,t,r,n,o),children:t.dayOfMonth})}),g=Ie.td({...l.CalendarDay.tdStyle&&l.CalendarDay.tdStyle(h,s,t,r,n,o)}),D=Ie.div({...l.CalendarDay.innerWrapperStyle&&l.CalendarDay.innerWrapperStyle(h,s,t,r,n,o),width:"100%",height:"100%"}),x=Ie.div({...l.CalendarDay.cellWrapperStyle&&l.CalendarDay.cellWrapperStyle(h,s,t,r,n,o),width:"100%",height:"100%",position:"relative"}),b=_t(h,s);return a.jsx(g,{onClick:b?void 0:w=>c==null?void 0:c(t,o,w),children:a.jsx(D,{children:a.jsx(x,{children:t.month===n.monthInYear&&a.jsxs(a.Fragment,{children:[u&&a.jsx(u,{week:r,month:n,day:t,dayState:s,theme:l,userData:o}),f]})})})})},_t=(e,t)=>!!Z(t,e,["disabled"],[!0],!1),it=({onClickWeek:e,theme:t,week:r,background:n,backgroundColor:s,prefix:o})=>{const c=a.jsxs(m.Box,{width:t.width,height:t.height,justifyContent:"center",alignItems:"center",children:[n&&a.jsx(m.Box,{position:"absolute",children:n}),a.jsx(m.Box,{position:"absolute",children:a.jsxs(m.Text,{color:e?t.WeekNumber.clickableTextColor:t.WeekNumber.textColor,children:[o,r.weekNumber]})})]});return a.jsx(m.Box,{background:s||t.WeekNumber.backgroundColor,position:"relative",children:e?a.jsx(m.Clickable,{borderRadius:"var(--swui-calendar-day-border-radius)",onClick:l=>e(r,l),disableFocusHighlight:!e,children:c}):c})},Nt=(e,t,r)=>t&&d.isBefore(e,t)?d.isSameDay(e,t):r&&d.isAfter(e,r)?d.isSameDay(e,r):!0,Lt=function({dayComponent:t,minDate:r,maxDate:n,dayState:s,day:o,...c}){const l=i.useMemo(()=>Nt(o.date,r,n)?s:Ye(s,["disabled"]),[o.date,s,n,r]);return a.jsx(t,{day:o,...c,dayState:l})};function Pt({month:e,dayComponent:t=ve,statePerWeek:r,userDataPerWeek:n,minDate:s,maxDate:o,onClickDay:c,onClickWeek:l,onClickWeekDay:u,onClickMonth:h,renderWeekNumber:f,renderWeekDay:g,headerRightContent:D,theme:x=se,extraDayContent:b,defaultHighlights:w,showWeekNumber:S}){return a.jsx(a.Fragment,{children:a.jsxs(m.Box,{alignItems:"stretch",children:[a.jsxs(m.Row,{justifyContent:D?"space-between":"center",alignItems:"center",children:[a.jsx(m.Row,{justifyContent:"center",alignItems:"center",children:h?a.jsx(M.FlatButton,{onClick:()=>h(e),label:e.name+" "+String(e.year),rightIcon:M.stenaAngleDown}):a.jsxs(m.Text,{whiteSpace:"nowrap",children:[e.name," ",e.year]})}),D&&a.jsx(m.Box,{alignItems:"center",children:D})]}),a.jsx("table",{children:a.jsxs("tbody",{children:[a.jsxs("tr",{children:[S&&a.jsx("td",{children:a.jsx(m.Box,{width:x.width,height:x.height})}),e.weeks[0].days.map(k=>a.jsx("td",{children:g?g(k.name,x,u):a.jsx(at,{day:k,onClickWeekDay:u,theme:x})},k.name))]}),e.weeks.map(k=>a.jsxs("tr",{children:[S&&a.jsx("td",{children:f?f(k,x,l):a.jsx(it,{week:k,onClickWeek:l,theme:x})}),k.days.map(p=>a.jsx(Lt,{dayComponent:t,day:p,week:k,month:e,dayState:r&&r[k.weekNumber]&&r[k.weekNumber][p.dayOfMonth],userData:n&&n[k.weekNumber]&&n[k.weekNumber][p.dayOfMonth],onClickDay:c,theme:x,extraDayContent:b,defaultHighlights:w,minDate:s,maxDate:o},p.dateString))]},k.weekNumber))]})})]})})}function Yt({monthRows:e,dayComponent:t=ve,userDataPerMonth:r,statePerMonth:n,minDate:s,maxDate:o,onClickDay:c,onClickWeekDay:l,onClickWeek:u,onClickMonth:h,renderWeekDay:f,renderWeekNumber:g,headerRightContent:D,extraDayContent:x,defaultHighlights:b,showWeekNumber:w,theme:S=se}){const k=i.useMemo(()=>s?d.parse(s,"yyyy-MM-dd",new Date):void 0,[s]),p=i.useMemo(()=>o?d.parse(o,"yyyy-MM-dd",new Date):void 0,[o]);return a.jsx("div",{className:oe(qe.calendar,w&&qe.weekNumberVisible),children:e.map((y,T)=>a.jsx(m.Spacing,{children:a.jsx(m.Row,{gap:2,children:y.map(I=>a.jsx(Pt,{month:I,dayComponent:t,userDataPerWeek:r&&r[I.monthString],statePerWeek:n&&n[I.monthString],onClickDay:c,onClickWeekDay:l,onClickWeek:u,onClickMonth:h,theme:S,renderWeekNumber:g,renderWeekDay:f,headerRightContent:D,extraDayContent:x,defaultHighlights:b,minDate:k,maxDate:p,showWeekNumber:w??!1},I.name))})},T))})}function pe(e){const t=vt(e.year,e.month,e.date),{year:r,month:n}=rt(t.year,t.month),s=Ht(r,n,e.locale??O.enGB,e.numMonths,e.monthsPerRow),o=Ct(e.highlightToday,e.statePerMonth);return a.jsx(Yt,{year:r,month:n,monthRows:s,...e,statePerMonth:o})}const vt=(e,t,r)=>{if(t&&e)return{month:t,year:e};if(r)return{month:d.getMonth(r),year:d.getYear(r)};const n=new Date;return{month:d.getMonth(n),year:d.getYear(n)}},Ht=(e,t,r,n,s)=>n==null?[[he(e,t,r)]]:s==null?[_e(e,t,n,r)]:q.chunk(_e(e,t,n,r),s),ct=(e,t)=>`${e.row}-${e.column}-${t}`,Ft=(e,t,r,n)=>{let s=t;for(let o=0;o<n;o++){s=Ot(s,e,n);const c=ct(s,r);if(document.getElementById(c))return c}},Ot=(e,t,r)=>{let n=e.row,s=e.column;return t==="ArrowLeft"?s--:t==="ArrowUp"?n--:t==="ArrowRight"?s++:t==="ArrowDown"&&n++,s<0&&(s=r-1,n--),s>r-1&&(s=0,n++),{column:s,row:n}},Wt=({month:e,onClick:t,selected:r,locale:n,autoFocus:s,monthPickerId:o,position:c,size:l})=>{const u=i.useMemo(()=>q.startCase(d.format(e,"MMM",{locale:n})),[n,e]),h=i.useMemo(()=>q.startCase(d.format(e,"MMMM",{locale:n})),[n,e]),f=i.useRef(null),g=ct(c,o),D=r?0:-1;i.useEffect(()=>{var b;(b=f.current)==null||b.focus()},[]);const x=i.useCallback(b=>{var S;const w=Ft(b.key,c,o,4);w&&((S=document.getElementById(w))==null||S.focus())},[o,c]);return a.jsx(m.Row,{justifyContent:"center",onKeyDown:x,children:r?a.jsx(M.PrimaryButton,{id:g,"aria-label":h,label:u,onClick:t,"aria-selected":!0,autoFocus:s,ref:f,size:l==="large"?"large":"medium",tabIndex:D}):a.jsx(M.FlatButton,{id:g,label:u,"aria-label":h,onClick:t,size:l==="large"?"large":"medium",tabIndex:D})})},$t=(e,t,r)=>{let n=e.getFullYear(),s=0,o=0,c=e;const l={yearOrder:[],rows:[],years:{},lastMonthColumn:-1,lastMonthRow:-1};for(let u=0;u<t;u++){if(l.years[n]==null&&(l.yearOrder.push(n),l.years[n]={year:n,rows:[]}),l.rows[s]=l.rows[s]??{columns:[],rowIndex:s},l.rows[s].columns[o]={position:{column:o,row:s},month:c},u===t-1){l.years[n].rows.push(s);break}c=d.addMonths(c,1),c.getFullYear()!==n?(l.years[n].rows.push(s),n++,o=0,s++):(o++,o>r-1&&(l.years[n].rows.push(s),o=0,s++))}return l.lastMonthColumn=o,l.lastMonthRow=s,l},He=()=>i.useMemo(()=>new Date,[]),de=({value:e,onValueChange:t,locale:r=O.enGB,firstMonth:n,numMonths:s,onCancel:o,size:c="medium"})=>{const l=i.useId(),u=He(),h=s>0?s:12,[f,g]=i.useState(!1),D=$t(n,h,qt(c)),x=i.useMemo(()=>d.addMonths(n,h),[h,n]);i.useEffect(()=>{g(!0)},[]);const b=i.useCallback(w=>{w.key==="Escape"&&(o==null||o(),w.preventDefault(),w.stopPropagation())},[o]);return a.jsx(m.Column,{gap:1,maxWidth:Ut(c),onKeyDown:b,children:D.yearOrder.map((w,S)=>{const{rows:k}=D.years[w];return a.jsxs(Pe.Fragment,{children:[(S!==0||w!==u.getFullYear())&&a.jsx(m.Heading,{variant:"h4",children:w}),a.jsx("table",{style:{borderSpacing:"0 8px"},children:a.jsx("tbody",{children:k.map(p=>{const{columns:y}=D.rows[p];return a.jsx("tr",{children:y.map(({month:T,position:I})=>a.jsx("td",{children:a.jsx(Wt,{month:T,firstAvailableMonth:n,lastAvailableMonth:x,locale:r,selected:e?d.isSameMonth(e,T):!1,autoFocus:f,onClick:()=>t==null?void 0:t(T),monthPickerId:l,position:I,size:c})},T.getMonth()))},p)})})})]},w)})})},Ut=e=>{switch(e){case"small":return"280px";case"medium":return"336px";case"large":return"448px";default:return m.exhaustSwitchCase(e,"336px")}},qt=e=>{switch(e){case"small":return 3;case"medium":return 4;case"large":return 5;default:return m.exhaustSwitchCase(e,4)}},zt=e=>[{label:"Past",presets:[{label:"Last 3 days",startDate:e,endDate:d.subDays(e,2)},{label:"Last 7 days",startDate:e,endDate:d.subDays(e,6)},{label:"Last 30 days",startDate:e,endDate:d.subDays(e,29)},{label:"Last 45 days",startDate:e,endDate:d.subDays(e,44)}]},{label:"Future",presets:[{label:"Next 3 days",startDate:e,endDate:d.addDays(e,2)},{label:"Next 7 days",startDate:e,endDate:d.addDays(e,6)},{label:"Next 30 days",startDate:e,endDate:d.addDays(e,29)},{label:"Next 45 days",startDate:e,endDate:d.addDays(e,44)}]}],lt=({onClickPreset:e})=>{const[t,r]=i.useState(0),n=i.useMemo(()=>zt(new Date),[]),s=n[t]??n[0];return a.jsxs(m.Column,{children:[a.jsxs(m.Row,{justifyContent:"space-between",alignItems:"center",width:"200px",children:[a.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleLeft,disabled:t===0,onClick:()=>r(t-1)}),a.jsx(m.Text,{children:s.label}),a.jsx(M.FlatButton,{size:"small",leftIcon:M.stenaAngleRight,disabled:t===n.length-1,onClick:()=>r(t+1)})]}),a.jsx(m.Space,{}),a.jsx(m.Column,{alignItems:"center",children:s.presets.map(o=>a.jsxs(Pe.Fragment,{children:[a.jsx(M.PrimaryButton,{label:o.label,onClick:()=>e(o)}),a.jsx(m.Space,{})]},o.label))})]})},Kt=function({locale:t,dateInFocus:r,setDateInFocus:n,currentPanel:s,setCurrentPanel:o,renderMonthPicker:c,...l}){const u=i.useCallback(f=>{n&&n(f),o("calendar")},[n,o]),h=i.useCallback(()=>{o("month")},[o]);switch(s){case"calendar":return a.jsx(pe,{...l,date:r,onClickMonth:h,locale:t});case"month":return c?c({value:r,onValueChange:u,locale:t,firstMonth:new Date,numMonths:24,dateInFocus:r}):a.jsx(de,{value:r,onValueChange:u,locale:t,firstMonth:new Date,numMonths:24});case"presets":return a.jsx(lt,{onClickPreset:()=>{}});default:return a.jsx(m.Box,{children:a.jsx(M.PrimaryButton,{label:"Show calendar",onClick:()=>o("calendar")})})}},Gt=(e,t,r,n)=>{const s=i.useCallback(()=>{const u=d.addMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),o=i.useCallback(()=>{const u=d.addYears(e,1);t==null||t(u)},[t,e]),c=i.useCallback(()=>{const u=d.subMonths(e,r??n??1);t==null||t(u)},[t,e,r,n]),l=i.useCallback(()=>{const u=d.subYears(e,1);t==null||t(u)},[t,e]);return{nextMonth:s,prevMonth:c,nextYear:o,prevYear:l}},Jt=({children:e,prevMonth:t,nextMonth:r,prevYear:n,nextYear:s})=>a.jsxs("div",{children:[e,a.jsx(m.Indent,{children:a.jsxs(m.Row,{gap:1,children:[a.jsx(M.SecondaryButton,{onClick:n,leftIcon:M.stenaAngleLeftDouble}),a.jsx(M.SecondaryButton,{onClick:t,leftIcon:M.stenaArrowLeft}),a.jsx(m.Indent,{num:2}),a.jsx(M.SecondaryButton,{onClick:r,leftIcon:M.stenaArrowRight}),a.jsx(M.SecondaryButton,{onClick:s,leftIcon:M.stenaAngleRightDouble})]})}),a.jsx(m.Space,{})]}),Qt=()=>{};function ae({monthSwitcherPlacement:e,theme:t=se,dateInFocus:r,setDateInFocus:n,currentPanel:s,setCurrentPanel:o,onSelectPreset:c=Qt,renderMonthPicker:l,...u}){const{nextMonth:h,prevMonth:f,nextYear:g,prevYear:D}=Gt(r,n,u.monthsPerRow,u.numMonths);switch(Xt(e,u.numMonths)){case"below":return a.jsx(Jt,{theme:t,nextMonth:h,prevMonth:f,nextYear:g,prevYear:D,children:a.jsx(pe,{...u,theme:t,date:r})});case"header":return a.jsx(m.Column,{children:a.jsx(Kt,{...u,theme:t,renderMonthPicker:l,dateInFocus:r,setDateInFocus:n,currentPanel:s,setCurrentPanel:o,onSelectPreset:c,headerRightContent:a.jsxs(m.Row,{alignItems:"center",gap:1,children:[a.jsx(M.SecondaryButton,{onClick:f,leftIcon:M.stenaArrowLeft}),a.jsx(M.SecondaryButton,{onClick:h,leftIcon:M.stenaArrowRight})]})})});default:return a.jsx(pe,{...u,theme:t,date:r})}}const Xt=(e,t)=>e||(t||1)>1?"below":"header",dt=e=>({startDate:e.startDate?d.format(e.startDate,"yyyy-MM-dd"):void 0,endDate:e.endDate?d.format(e.endDate,"yyyy-MM-dd"):void 0}),ut=({startDate:e,endDate:t})=>{const r=new Date;return{startDate:e?d.parse(e,"yyyy-MM-dd",r):void 0,endDate:t?d.parse(t,"yyyy-MM-dd",r):void 0}},Fe=({startDate:e,endDate:t})=>!!(e&&t&&!d.isSameDay(e,t)&&d.isAfter(e,t)),Oe=e=>Fe(e)?{startDate:e.endDate,endDate:e.startDate}:e,Zt=e=>e.startDate&&e.endDate?dt(Oe(ut(e))):e,Vt=(e,t,r,n)=>i.useCallback(s=>{const o={startDate:r==="startDate"?s.date:e==null?void 0:e.startDate,endDate:r==="endDate"?s.date:e==null?void 0:e.endDate};Fe(o)||n(r==="startDate"?"endDate":"startDate"),t==null||t(Oe(o))},[r,t,n,e==null?void 0:e.endDate,e==null?void 0:e.startDate]),Me=e=>{const[t,r]=i.useState("calendar"),n=i.useCallback(s=>{r(s),e==null||e(s)},[e]);return{currentPanel:t,setCurrentPanel:n}},ft=({focusedInput:e,value:t,onValueChange:r,setFocusedInput:n,statePerMonth:s,onChangePanel:o,initialDateInFocus:c})=>{const{currentPanel:l,setCurrentPanel:u}=Me(o),[h,f]=i.useState(()=>c??new Date),g=Vt(t,r,e,n),D=i.useMemo(()=>le(s,t==null?void 0:t.startDate,t==null?void 0:t.endDate),[s,t==null?void 0:t.endDate,t==null?void 0:t.startDate]);return{onClickDay:g,statePerMonth:D,currentPanel:l,setCurrentPanel:u,setDateInFocus:f,dateInFocus:h}};function er(e){const t=ft(e);return a.jsx(ae,{...e,...t})}const tr=()=>{const[e,t]=i.useState(),[r,n]=i.useState(),[s,o]=i.useState("startDate");return{startDate:e,setStartDate:t,endDate:r,setEndDate:n,focusedInput:s,setFocusedInput:o}},ht=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:o}=Me(n),[c,l]=i.useState(()=>t??new Date),u=i.useCallback(f=>{e&&e(f.date)},[e]),h=i.useMemo(()=>t?ee(r,t,["selected","singleSelected"]):r,[r,t]);return{onClickDay:u,statePerMonth:h,date:t,currentPanel:s,setCurrentPanel:o,dateInFocus:c,setDateInFocus:l}};function We(e){const t=ht(e);return a.jsx(ae,{...e,...t})}const mt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n})=>{const{currentPanel:s,setCurrentPanel:o}=Me(n),[c,l]=i.useState(()=>new Date),u=i.useCallback(f=>{if(!e)return;const g=t&&t.find(D=>d.isSameDay(D,f.date));e(t&&g?t.filter(D=>!d.isSameDay(D,f.date)):[...t||[],f.date])},[e,t]),h=i.useMemo(()=>t?t.reduce((f,g)=>ee(f,g,["selected"]),r):r,[r,t]);return{onClickDay:u,statePerMonth:h,currentPanel:s,setCurrentPanel:o,dateInFocus:c,setDateInFocus:l}};function rr(e){const t=mt(e);return a.jsx(ae,{...e,...t})}const gt=({onChange:e,value:t,statePerMonth:r,onChangePanel:n,locale:s=O.enGB})=>{const[o,c]=i.useState(()=>{const x=Ce(t,s);return x?x.days[0].date:new Date}),{currentPanel:l,setCurrentPanel:u}=Me(n),h=i.useCallback(x=>{e&&e(ze(je(x.date,s)))},[s,e]),f=i.useCallback(x=>{e&&e(ze(x))},[e]),g=i.useMemo(()=>{const x=Ce(t,s);return x?Qe(r,x):r},[t,s,r]),D=i.useMemo(()=>{const x=Ce(t,s);return x?x.days[0].date:new Date},[s,t]);return{statePerMonth:g,date:D,dateInFocus:o,setDateInFocus:c,onClickDay:h,onClickWeek:f,currentPanel:l,setCurrentPanel:u}},ze=e=>{if(e)return`${e.endYear}-${e.weekNumber}`},Ce=(e,t)=>{if(!e)return;const r=e.split("-"),n=parseInt(r[1],10),s=parseInt(r[0],10),o=new Date;o.setFullYear(s);const c=d.startOfWeek(d.setWeek(o,n),{locale:t});return je(c,t)};function nr(e){const t=gt(e);return a.jsx(ae,{...e,...t})}const me="bottom",sr=(e,t,r)=>{const[n,s]=i.useState(r||!1),o=i.useCallback(()=>(s(!0),!0),[s]),c=i.useCallback(()=>{s(!1),t&&t()},[s,t]),l=i.useCallback(u=>{e&&e(u),setTimeout(c,150)},[e,c]);return{showCalendar:o,hideCalendar:c,showingCalendar:n,onSelectDate:l}},ge="2999-12-31",or=({displayFormat:e=te.fullDate,placeholder:t="Enter date",value:r,calendarTheme:n=se,calendarProps:s,openOnMount:o,onClose:c,onChange:l,variant:u,width:h,minDate:f,maxDate:g=ge,disabled:D})=>{const{hideCalendar:x,showingCalendar:b,onSelectDate:w,showCalendar:S}=sr(l,c,o);return a.jsx(m.Box,{width:h,children:a.jsx(fe.ControlledPopover,{hideArrow:!0,open:b,onRequestClose:x,renderTrigger:k=>a.jsx(m.Box,{...k,children:a.jsx(V.TextInput,{type:"date",onFocus:S,buttonRight:a.jsx(M.TextInputButton,{onClick:S,icon:M.stenaCalendar}),value:r?d.format(r,e):"",placeholder:t,size:9,disabled:D,autoFocus:o,variant:u,min:f,max:g})}),placement:me,children:a.jsx(We,{...s,onChange:w,value:r,theme:n,minDate:f,maxDate:g})})})},ar=(e,t)=>{const r=i.useRef(null),n=i.useRef(null),[s,o]=i.useState(!1),[c,l]=i.useState(void 0),u=i.useCallback(()=>(l("startDate"),o(!0),!0),[l,o]),h=i.useCallback(()=>(l("endDate"),o(!0),!0),[l,o]),f=i.useCallback(()=>{o(!1)},[o]),g=i.useCallback(x=>{c==="startDate"?(t==null||t({startDate:x.date,endDate:e==null?void 0:e.endDate}),e!=null&&e.endDate?setTimeout(f,150):(l("endDate"),n.current&&n.current.focus())):c==="endDate"&&(t==null||t({startDate:e==null?void 0:e.startDate,endDate:x.date}),e!=null&&e.startDate?setTimeout(f,150):(l("startDate"),r.current&&r.current.focus()))},[c,t,l,f,e]),D=i.useMemo(()=>(e==null?void 0:e.startDate)&&(e==null?void 0:e.endDate)&&d.isAfter(e.startDate,e.endDate),[e==null?void 0:e.startDate,e==null?void 0:e.endDate]);return{showingCalendar:s,hideCalendar:f,showCalendarEndDate:h,showCalendarStartDate:u,focusedInput:c,setFocusedInput:l,startDateInputRef:r,endDateInputRef:n,onClickDay:g,startDateIsAfterEnd:D}};function ir({displayFormat:e=te.fullDate,placeholderStartDate:t="Start date",placeholderEndDate:r="End date",value:n,onValueChange:s,width:o,calendarTheme:c=se,calendarProps:l,minDate:u,maxDate:h=ge,disabled:f}){const[g,D]=i.useState("calendar"),{hideCalendar:x,showCalendarEndDate:b,showCalendarStartDate:w,showingCalendar:S,focusedInput:k,startDateInputRef:p,endDateInputRef:y,onClickDay:T,startDateIsAfterEnd:I}=ar(n,s),[B,C]=i.useState(()=>(k&&(n==null?void 0:n[k]))??new Date),j=i.useMemo(()=>le(void 0,n==null?void 0:n.startDate,n==null?void 0:n.endDate),[n]);return a.jsx(fe.ControlledPopover,{hideArrow:!0,renderTrigger:A=>a.jsxs(m.Row,{alignItems:"center",...A,children:[a.jsx(V.TextInput,{iconLeft:M.stenaCalendar,onFocus:w,value:n!=null&&n.startDate?d.format(n.startDate,e):"",placeholder:t,width:o,disabled:f,inputRef:p,size:9,variant:I?"error":void 0}),a.jsx(m.Space,{}),a.jsx(M.Icon,{icon:M.stenaArrowWideRight,color:ke.cssColor("--lhds-color-ui-500"),size:14}),a.jsx(m.Space,{}),a.jsx(V.TextInput,{iconLeft:M.stenaCalendar,onFocus:b,value:n!=null&&n.endDate?d.format(n.endDate,e):"",placeholder:r,width:o,disabled:f,inputRef:y,size:9,variant:I?"error":void 0})]}),open:S,placement:me,onRequestClose:x,children:a.jsx(ae,{...l,dateInFocus:B,setDateInFocus:C,statePerMonth:j,theme:c,onClickDay:T,currentPanel:g,setCurrentPanel:D,minDate:u,maxDate:h})})}const cr=({calendarProps:e,closeOnCalendarSelectDate:t=!0,dateFormat:r=te.fullDate,disableCalender:n=!1,onValueChange:s,placeholder:o="yyyy-mm-dd",value:c,width:l="130px",calendarTheme:u=se,hideCalenderIcon:h=!1,minDate:f,maxDate:g=ge,variant:D,...x})=>{const[b,w]=i.useState(!1),S=i.useCallback(()=>{w(!b)},[w,b]),k=i.useCallback(()=>{w(!1)},[w]),p=i.useCallback(j=>{s&&s(j)},[s]),y=i.useCallback(j=>{j&&(p(d.format(j,r)),t&&setTimeout(()=>w(!b),200))},[p,r,t,w,b]),T=!!c&&!/^[-/\\.0-9]+$/.test(c),I=!!c&&d.isValid(d.parse(c,r,new Date)),C=!!c&&c.length>=r.length&&!I||T;return a.jsx(m.Box,{width:l,children:a.jsx(fe.ControlledPopover,{renderTrigger:j=>a.jsx(V.TextInput,{...x,variant:C?"error":D,disableContentPaddingRight:!0,contentRight:h?void 0:a.jsx(m.Row,{alignItems:"center",indent:.5,children:a.jsx(M.FlatButton,{size:"small",disabled:x.disabled||n,leftIcon:M.stenaCalendar,onClick:S})}),onValueChange:p,placeholder:o,value:c||"",min:f,max:g,size:10,...j}),hideArrow:!0,open:b,placement:me,onRequestClose:k,children:a.jsx(We,{...e,onChange:y,value:c&&I?d.parse(c,r,new Date):void 0,minDate:f,maxDate:g,theme:u})})})},ye=e=>{if(e==="")return"00";const t=parseInt(e,10);if(isNaN(t))throw new Error("Hours is not a number");if(t<0||t>23)throw new Error("Hours is an invalid number");switch(e.length){case 1:return`0${t}`;case 2:return e;default:throw new Error("Invalid hour string")}},we=e=>{if(e==="")return"00";const t=parseInt(e,10);if(isNaN(t))throw new Error("Minutes is not a number");if(t<0||t>59)throw new Error("Minutes is an invalid number");switch(e.length){case 1:return`0${t}`;case 2:return e;default:throw new Error("Invalid minute string")}},lr=e=>{if(!Ne(e))return{time:e,success:!1};const t=e&&e.split(/-|:|,|;|[/]|[.]| /);if(t&&t.length===2)try{const r=ye(t[0]),n=we(t[1]);return{time:`${r}:${n}`,success:!0}}catch{return{time:e,success:!1}}else if(t&&t.length===1){let r=0,n=0;switch(e.length){case 1:return{time:`0${e}:00`,success:!0};case 2:{const s=parseInt(t[0],10);return s>=0&&s<24?{time:`${e}:00`,success:!0}:s>=24&&s<59?{time:`00:${e}`,success:!0}:{time:e,success:!1}}case 3:return n=parseInt(e.substring(1,3),10),n>=0&&n<=59?{time:`0${e.substring(0,1)}:${e.substring(1,3)}`,success:!0}:{time:e,success:!1};case 4:return r=parseInt(e.substring(0,2),10),n=parseInt(e.substring(2,4),10),r<0||r>23?{time:e,success:!1}:n<0||n>59?{time:e,success:!1}:{time:`${e.substring(0,2)}:${e.substring(2,4)}`,success:!0};default:return{time:e,success:!1}}}return{time:e,success:!1}},Ne=e=>e?/^[-:.,/; 0-9]+$/.test(e):!0,dr=({onValueChange:e,showPlaceholder:t=!0,useIcon:r=!0,value:n,width:s="85px",variant:o,...c})=>{const[l,u]=i.useState(()=>Ne(n)),h="hh:mm",f=i.useCallback(()=>{if(n){const D=lr(n);u(D.success),D.success&&e&&e(D.time)}},[n,e,u]),g=i.useCallback(D=>{const x=D.target.value,b=Ne(x);u(b&&x.length<=h.length),e&&e(x)},[e,u]);return a.jsx(V.TextInput,{...c,type:"time",variant:l?o:"error",iconLeft:r?M.stenaClock:void 0,value:n,placeholder:t?h:void 0,onChange:g,onBlur:f,width:s})},Dt=({autoFocusLeft:e,autoFocusRight:t,onEsc:r,onEnter:n,onValueChangeLeft:s,onValueChangeRight:o,separatorIcon:c,placeholderLeft:l,placeholderRight:u,typeLeft:h,typeRight:f,onChangeLeft:g,onChangeRight:D,valueLeft:x,valueRight:b,minLeft:w,maxLeft:S,minRight:k,maxRight:p,onClickLeft:y,onClickRight:T,onClickCalendar:I,onClickArrowDown:B,onBlurLeft:C,onBlurRight:j,onFocusLeft:A,onFocusRight:R,inputRefLeft:H,inputRefRight:W,variant:L,variantLeft:$,variantRight:F,onBlur:Y,showPresets:z,widthLeft:K,widthRight:J,disabled:U})=>{const P=i.useRef(0),v=i.useMemo(()=>q.debounce(N=>{N===0&&(Y==null||Y())},10),[Y]),Q=i.useCallback(N=>{P.current++,v(P.current),A&&A(N)},[A,P,v]),X=i.useCallback(N=>{P.current++,v(P.current),R&&R(N)},[R,P,v]),E=i.useCallback(N=>{P.current--,v(P.current),C&&C(N)},[C,P,v]),_=i.useCallback(N=>{P.current--,v(P.current),j&&j(N)},[j,P,v]);return a.jsx(m.Box,{children:a.jsxs(V.TextInputBox,{disableContentPaddingRight:!0,disabled:U,variant:L,contentRight:a.jsxs(m.Row,{alignItems:"center",children:[a.jsx(m.Indent,{num:.5,children:a.jsx(M.FlatButton,{leftIcon:M.stenaCalendar,onClick:I,disabled:U,size:"small"})}),z?a.jsxs(a.Fragment,{children:[a.jsx(m.Row,{height:"22px",children:a.jsx(m.SeparatorLine,{vertical:!0})}),a.jsx(m.Indent,{num:.5,children:a.jsx(M.FlatButton,{leftIcon:M.stenaAngleDown,onClick:B,disabled:U,size:"small"})})]}):null]}),children:[a.jsx(m.Box,{width:K,children:a.jsx(V.TextInput,{onEsc:r,onEnter:n,onClick:y,disabled:U,hideBorder:!0,placeholder:l,value:x,onValueChange:s,onChange:g,onBlur:E,onFocus:Q,inputRef:H,variant:$,type:h,autoFocus:e,min:w,max:S})}),a.jsx(m.Row,{indent:.5,alignItems:"center",justifyContent:"center",children:a.jsx(M.Icon,{icon:c,size:12,color:ke.cssColor("--lhds-color-ui-500")})}),a.jsx(m.Box,{width:J,children:a.jsx(V.TextInput,{onEsc:r,onEnter:n,onClick:T,disabled:U,hideBorder:!0,placeholder:u,value:b,onValueChange:o,onChange:D,onBlur:_,onFocus:X,inputRef:W,variant:F,type:f,autoFocus:t,min:k,max:p})})]})})},ur=e=>{if(e==null)throw new Error("Time is not set.");if(e==="")throw new Error("Time is empty.");const t=e.split(":");if(t.length!==2)throw new Error("Invalid time.");if(t[1].length!==2)throw new Error("Invalid time.");if(t[0].length<1||t[0].length>2)throw new Error("Invalid time.");const r=parseInt(t[0],10),n=parseInt(t[1],10);if(isNaN(r))throw new Error("Invalid time.");if(isNaN(n))throw new Error("Invalid time.");if(r<0||r>23)throw new Error("Invalid time.");if(n<0||n>59)throw new Error("Invalid time.");return r*100+n},fr=e=>{try{return ur(e),!0}catch{return!1}},be=e=>{if(e&&fr(e)){const t=e.split(":");return{hour:m.parseIntElseUndefined(t[0]),minute:m.parseIntElseUndefined(t[1])}}return{hour:void 0,minute:void 0}},hr=e=>`${ye(String(e.getHours()))}:${we(String(e.getMinutes()))}`,mr="_timePicker_1w05d_1",gr="_timePickerColumn_1w05d_6",xt={timePicker:mr,timePickerColumn:gr},Dr=({onClick:e,item:t,selected:r,columnRef:n,canScrollRef:s})=>{const o=i.useRef(null);return i.useEffect(function(){if(r&&n.current&&o.current&&s.current){const l=o.current.scrollHeight*Math.max(t-2,0);n.current.scrollTo(0,l),s.current=!1}},[n,t,r,s]),a.jsx(m.Row,{width:"64px",justifyContent:"center",spacing:.5,indent:.5,ref:o,children:r?a.jsx(M.PrimaryButton,{label:q.padStart(String(t),2,"0"),onClick:()=>e&&e(t)}):a.jsx(M.FlatButton,{label:String(t).padStart(2,"0"),onClick:()=>e&&e(t)})})},Ke=({onClick:e,items:t,selectedItem:r,canScrollRef:n})=>{const s=i.useRef(null);return a.jsx(m.Column,{className:xt.timePickerColumn,ref:s,children:t.map(o=>a.jsx(Dr,{item:o,onClick:e,selected:o===r,columnRef:s,canScrollRef:n},o))})},xr=q.range(0,24),br=q.range(0,60),pr=({value:e,onValueChange:t})=>{const r=i.useRef(!0),[n,s]=i.useState(void 0),[o,c]=i.useState(void 0);i.useEffect(()=>{if(e){const{minute:h,hour:f}=be(e);s(f),c(h)}},[e]);const l=i.useCallback(h=>{s(h),t==null||t(`${ye(String(h??0))}:${we(String(o??0))}`)},[o,t]),u=i.useCallback(h=>{c(h),t==null||t(`${ye(String(n??0))}:${we(String(h??0))}`)},[n,t]);return a.jsxs(m.Row,{className:xt.timePicker,children:[a.jsx(Ke,{items:xr,onClick:l,selectedItem:n,canScrollRef:r}),a.jsx(m.Indent,{}),a.jsx(Ke,{items:br,onClick:u,selectedItem:o,canScrollRef:r})]})},yr=(e,t,r)=>{i.useEffect(function(){e&&t(e)},[e,t]),i.useEffect(function(){r.current&&(e?r.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):r.current.valueAsDate=null)},[e,r])},wr=(e,t,{setDateInFocus:r,showCalendarInternal:n,hideCalendarInternal:s,setFirstFocusedInput:o,setCurrentPanel:c,localTime:l,setLocalTime:u,localDate:h,setLocalDate:f},g)=>{const D=i.useCallback(p=>{if(!p)return;const y=new Date(p);if(e)y.setHours(e.getHours()),y.setMinutes(e.getMinutes()),t==null||t(y),f(void 0);else if(l){const{minute:T,hour:I}=be(l);y.setHours(I??0),y.setMinutes(T??0),t==null||t(y),f(void 0)}else f(y);r(y),g.current&&(g.current.valueAsDate=new Date(Date.UTC(y.getFullYear(),y.getMonth(),y.getDate())))},[e,g,l,t,r,f]),x=i.useCallback(p=>{if(p)if(e){const y=be(p),T=new Date(e);T.setHours(y.hour||0),T.setMinutes(y.minute||0),t==null||t(T),u(void 0)}else if(h){const y=be(p),T=new Date(h);T.setHours(y.hour||0),T.setMinutes(y.minute||0),t==null||t(T),u(void 0)}else u(p)},[t,e,h,u]),b=i.useCallback(p=>{p.target.value[0]!=="0"&&D(p.target.valueAsDate)},[D]),w=i.useCallback(p=>x(p.target.value),[x]),S=i.useCallback(()=>{r(e||new Date),c("calendar"),n()},[e,c,n,r]),k=i.useCallback(()=>{o(void 0),s()},[o,s]);return{inputLeftChangeHandler:b,inputRightChangeHandler:w,hideCalendar:k,showCalendar:S,onChangeTime:x,onChangeDate:D}},Sr=e=>{const[t,r]=i.useState(void 0),[n,s]=i.useState(void 0),[o,c,l]=m.useBoolean(!1),[u,h,f]=m.useBoolean(!1),[g,D]=i.useState(void 0),[x,b]=i.useState(()=>e??new Date),[w,S]=i.useState("calendar");return{isCalendarVisible:o,showCalendarInternal:c,hideCalendarInternal:l,firstFocusedInput:g,setFirstFocusedInput:D,dateInFocus:x,setDateInFocus:b,currentPanel:w,setCurrentPanel:S,isTimePickerVisible:u,showTimePicker:h,hideTimePicker:f,localDate:t,setLocalDate:r,localTime:n,setLocalTime:s}},kr=(e,t,r,n,{isCalendarVisible:s,setCurrentPanel:o,showTimePicker:c,hideTimePicker:l})=>{const u=i.useCallback(()=>{s||r(),o("calendar"),l()},[l,s,o,r]),h=i.useCallback(()=>{n(),c()},[n,c]),f=i.useCallback(b=>{e(b.date),n(),c()},[e,n,c]),g=i.useCallback(()=>{o("presets"),r()},[o,r]),D=i.useCallback(()=>{var b;s?n():((b=t.current)==null||b.focus(),o("calendar"),r())},[s,n,t,o,r]),x=i.useCallback(b=>{b.key==="Escape"&&n()},[n]);return{onFocusLeft:u,onFocusRight:h,onClickDay:f,onClickArrowButton:g,onClickCalendarButton:D,onKeyDownHandler:x}},jr=({value:e,onValueChange:t,onEnter:r,onEsc:n,onBlur:s,autoFocus:o,minDate:c,widthLeft:l=128,widthRight:u=80,maxDate:h=ge,variant:f,disabled:g})=>{const D=i.useRef(null),x=i.useRef(null),b=Sr(e),{setCurrentPanel:w,currentPanel:S,isCalendarVisible:k,dateInFocus:p,setDateInFocus:y,isTimePickerVisible:T,hideTimePicker:I,localTime:B,localDate:C}=b,{showCalendar:j,hideCalendar:A,inputLeftChangeHandler:R,inputRightChangeHandler:H,onChangeTime:W,onChangeDate:L}=wr(e,t,b,D),{onKeyDownHandler:$,onFocusRight:F,onFocusLeft:Y,onClickDay:z,onClickCalendarButton:K,onClickArrowButton:J}=kr(L,D,j,A,b);yr(e,y,D);const U=i.useMemo(()=>{const E=e||C;return E?ee(void 0,E,["singleSelected","selected"]):{}},[C,e]),P=i.useCallback(()=>{A(),I()},[A,I]),v=i.useMemo(()=>e?hr(e):B,[e,B]),Q=m.useDelayedFalse(k,300),X=m.useDelayedFalse(T,300);return a.jsx(m.Box,{onKeyDown:$,children:a.jsx(fe.ControlledPopover,{hideArrow:!0,renderTrigger:E=>a.jsx(m.Box,{...E,children:a.jsx(Dt,{autoFocusLeft:o,onEsc:n,onEnter:r,onBlur:s,disabled:g,separatorIcon:M.stenaClock,typeLeft:"date",typeRight:"time",placeholderLeft:"yyyy-mm-dd",placeholderRight:"hh:mm",onChangeLeft:R,onChangeRight:H,onClickArrowDown:J,onClickCalendar:K,onFocusLeft:Y,onFocusRight:F,onClickLeft:Y,onClickRight:F,inputRefLeft:D,inputRefRight:x,valueRight:v??"",widthLeft:l,widthRight:u,minLeft:c,maxLeft:h,variant:f})}),placement:me,open:k||T,onRequestClose:P,children:(Q||X)&&a.jsx(m.Column,{children:Q?a.jsx(ae,{statePerMonth:U,onClickDay:z,dateInFocus:p,setDateInFocus:y,currentPanel:S,setCurrentPanel:w,minDate:c,maxDate:h}):X?a.jsxs(m.Column,{children:[a.jsx(m.Column,{overflow:"hidden",height:"250px",children:a.jsx(pr,{value:v??"",onValueChange:W})}),a.jsx(m.Space,{}),a.jsx(m.Row,{justifyContent:"flex-end",children:a.jsx(M.PrimaryButton,{label:"Done",onClick:I})})]}):null})})})},Mr=({value:e,onValueChange:t,year:r})=>{const n=String(r);return a.jsx(m.Row,{justifyContent:"center",children:e===r?a.jsx(M.PrimaryButton,{label:n,onClick:()=>t==null?void 0:t(r)}):a.jsx(M.FlatButton,{label:n,onClick:()=>t==null?void 0:t(r)})})},Rr=({value:e,onValueChange:t,initialLastYear:r})=>{const[n,s]=i.useState(()=>e?e+4:r??new Date().getFullYear()+4),o=i.useMemo(()=>{const c=n-11;return q.chunk(q.range(c,n+1),3)},[n]);return i.useEffect(()=>{s(c=>Tr(e,c))},[e]),a.jsxs(m.Row,{children:[a.jsx(m.Column,{justifyContent:"center",children:a.jsx(M.FlatButton,{leftIcon:M.stenaArrowLeft,onClick:()=>s(n-3)})}),a.jsx(m.Column,{gap:1,children:o.map(c=>a.jsx(m.Row,{gap:1,children:c.map(l=>a.jsx(Mr,{year:l,onValueChange:t,value:e},l))},c[0]))}),a.jsx(m.Column,{justifyContent:"center",children:a.jsx(M.FlatButton,{leftIcon:M.stenaArrowRight,onClick:()=>s(n+3)})})]})},Tr=(e,t)=>{if(e==null)return t;if(e>t){const n=e-t,s=n%3,o=n-s+3;return t+o}const r=t-11;if(e<r){const n=r-e,s=n%3,o=n-s+3;return t-o}return t},Ir=(e,t,r,n,s)=>{i.useEffect(function(){e&&r(e)},[e,r]),i.useEffect(function(){t&&r(t)},[t,r]),i.useEffect(function(){n.current&&(e?n.current.valueAsDate=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())):n.current.valueAsDate=null)},[e,n]),i.useEffect(function(){s.current&&(t?s.current.valueAsDate=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())):s.current.valueAsDate=null)},[t,s])},Cr=(e,t,r,{setDateInFocus:n,showCalendarInternal:s,hideCalendarInternal:o,setFirstFocusedInput:c,setCurrentPanel:l})=>{const u=i.useCallback(D=>{D.target.value[0]!=="0"&&(r==null||r({startDate:D.target.valueAsDate??void 0,endDate:t}))},[r,t]),h=i.useCallback(D=>{D.target.value[0]!=="0"&&(r==null||r({startDate:e,endDate:D.target.valueAsDate??void 0}))},[r,e]),f=i.useCallback(()=>{n(e||t||new Date),l("calendar"),s()},[e,t,l,s,n]),g=i.useCallback(()=>{c(void 0),o()},[c,o]);return{inputLeftChangeHandler:u,inputRightChangeHandler:h,hideCalendar:g,setDateInFocus:n,setCurrentPanel:l,showCalendar:f}},Br=(e,t)=>{const[r,n,s]=m.useBoolean(!1),[o,c]=i.useState(void 0),[l,u]=i.useState("startDate"),[h,f]=i.useState(()=>(l==="startDate"?e:l==="endDate"?t:void 0)??new Date),[g,D]=i.useState("calendar");return{isCalendarVisible:r,showCalendarInternal:n,hideCalendarInternal:s,firstFocusedInput:o,setFirstFocusedInput:c,focusedInput:l,setFocusedInput:u,dateInFocus:h,setDateInFocus:f,currentPanel:g,setCurrentPanel:D}},Ar=(e,t,r,n,s,o,c,{firstFocusedInput:l,setFirstFocusedInput:u,isCalendarVisible:h,setFocusedInput:f,focusedInput:g,setCurrentPanel:D})=>{const x=i.useCallback(()=>{l==null&&u("startDate"),f("startDate"),h||o()},[h,f,o,u,l]),b=i.useCallback(()=>{l==null&&u("endDate"),f("endDate"),h||o()},[h,f,o,u,l]),w=i.useCallback(y=>{var T,I,B,C;g==="startDate"?t!=null&&d.isAfter(y.date,t)?(r==null||r({startDate:y.date,endDate:void 0}),f("endDate"),(T=s.current)==null||T.focus()):(r==null||r({startDate:y.date,endDate:t}),l==="startDate"?(f("endDate"),(I=s.current)==null||I.focus()):setTimeout(c,50)):g==="endDate"&&(e?d.isAfter(e,y.date)?(r==null||r({startDate:y.date,endDate:void 0}),f("endDate"),(C=s.current)==null||C.focus()):(r==null||r({startDate:e,endDate:y.date}),setTimeout(c,50)):(r==null||r({startDate:e,endDate:y.date}),f("startDate"),(B=n.current)==null||B.focus()))},[g,r,t,l,f,s,c,e,n]),S=i.useCallback(()=>{D("presets"),o()},[D,o]),k=i.useCallback(()=>{var y;h?c():(f("startDate"),u("startDate"),(y=n.current)==null||y.focus(),D("calendar"),o())},[h,c,f,u,n,D,o]),p=i.useCallback(y=>{y.key==="Escape"&&c()},[c]);return{onFocusLeft:x,onFocusRight:b,onClickDay:w,onClickArrowButton:S,onClickCalendarButton:k,onKeyDownHandler:p}};function Er({value:e,onValueChange:t,autoFocus:r,onBlur:n,onEnter:s,onEsc:o,minDate:c,maxDate:l=ge,calendarProps:u,widthLeft:h=128,widthRight:f=128,variant:g,disabled:D}){const{startDate:x,endDate:b}=e||{},w=i.useRef(null),S=i.useRef(null),k=Br(x,b),{dateInFocus:p,setDateInFocus:y,isCalendarVisible:T,currentPanel:I,setCurrentPanel:B}=k,{showCalendar:C,hideCalendar:j,inputLeftChangeHandler:A,inputRightChangeHandler:R}=Cr(x,b,t,k),{onKeyDownHandler:H,onFocusRight:W,onFocusLeft:L,onClickDay:$,onClickCalendarButton:F,onClickArrowButton:Y}=Ar(x,b,t,w,S,C,j,k);Ir(x,b,y,w,S);const z=i.useMemo(()=>x&&b&&d.isAfter(x,b),[x,b]),K=i.useMemo(()=>Ge(u==null?void 0:u.statePerMonth,x,b,p),[u==null?void 0:u.statePerMonth,x,b,p]);return a.jsx(m.Box,{onKeyDown:H,children:a.jsx(fe.ControlledPopover,{hideArrow:!0,restoreFocus:!1,returnFocus:!1,renderTrigger:J=>a.jsx(m.Box,{...J,children:a.jsx(Dt,{autoFocusLeft:r,onEsc:o,onEnter:s,onBlur:n,disabled:D,separatorIcon:M.stenaArrowRight,typeLeft:"date",typeRight:"date",placeholderLeft:"Start date",placeholderRight:"End date",onChangeLeft:A,onChangeRight:R,onClickArrowDown:Y,onClickCalendar:F,onFocusLeft:L,onFocusRight:W,onClickLeft:L,onClickRight:W,inputRefLeft:w,inputRefRight:S,variant:z?"error":g,widthLeft:h,widthRight:f,minLeft:c,maxLeft:l,minRight:c,maxRight:l})}),placement:me,onRequestClose:j,open:T,children:a.jsx(ae,{onClickDay:$,dateInFocus:p,setDateInFocus:y,currentPanel:I,setCurrentPanel:B,minDate:c,maxDate:l,...u,statePerMonth:K})})})}const Le=({onChange:e,onValueChange:t,mask:r,pipe:n,value:s,guide:o,keepCharPositions:c,placeholderChar:l,showMask:u,calendarSize:h,onFocus:f,onBlur:g,placeholderWhenBlurred:D,placeholder:x,...b})=>{const w=i.useRef(null),[S,k]=i.useState(!1),{onChange:p}=jt.useMaskedInput(w,e,t,r,n,s,o,c,l,u),y=i.useCallback(B=>{f==null||f(B),k(!0)},[f]),T=i.useCallback(B=>{g==null||g(B),k(!1)},[g]),I=S?x:D??x;return a.jsx(V.LabelledTextInput,{...b,ref:w,placeholder:I,onFocus:y,onBlur:T,onChange:p,width:_r(h),size:h==="large"?"large":"medium"})},_r=e=>{switch(e){case"small":return"140px";case"medium":return"168px";case"large":return"196px";default:return m.exhaustSwitchCase(e,"168px")}},Nr=[/[1-2]/,/\d/,/\d/,/\d/],Lr=[/[0-1]/,/\d/],Pr=[/[0-3]/,/\d/],bt=e=>vr(e).flatMap(Yr),Yr=e=>{switch(e){case"yyyy":return Nr;case"mm":case"MM":return Lr;case"dd":case"DD":return Pr;default:return[e]}},vr=e=>{if(e.length===0)return[];const t=[];let r=e[0];for(let n=1;n<e.length;n++)e[n]!==e[n-1]?(t.push(r),r=e[n]):r+=e[n];return t.push(r),t},ie=e=>{const r=new Intl.DateTimeFormat(e,{dateStyle:"short"}).formatToParts(new Date),n={year:"yyyy",month:"MM",day:"dd"};return r.map(s=>n[s.type]||s.value).join("")},pt={"en-US":O.enUS,"en-GB":O.enGB,"de-AT":O.deAT,"de-DE":O.de,fr:O.fr,de:O.de,es:O.es,sv:O.sv,pl:O.pl,da:O.da,nl:O.nl,nb:O.nb},De=e=>pt[e],$e=()=>pt.sv,ne=(e,t,r)=>{const n=De(t);if(n==null)return;const s=d.parse(e,ie(t),r??new Date,{locale:n});if(!isNaN(s.getTime()))return s},ce=(e,t)=>d.format(e,ie(t),{locale:De(t)}),Se=(e,t)=>{const r=ne(e,t);if(r!=null)return ce(r,t)},yt=({value:e,onValueChange:t,localeCode:r,startDateLabel:n="From",endDateLabel:s="To",onFocus:o,calendarSize:c,placeholderWhenBlurredStartDate:l,placeholderWhenBlurredEndDate:u})=>{const{mask:h,placeholder:f}=i.useMemo(()=>{const g=ie(r);return{mask:bt(g),placeholder:g.toLowerCase()}},[r]);return a.jsxs(m.Row,{children:[a.jsx(Le,{mask:h,value:e==null?void 0:e.startDate,onValueChange:g=>{t==null||t({startDate:g})},onBlur:g=>{const D=Se(g.target.value,r);D&&D!==(e==null?void 0:e.startDate)&&(t==null||t({startDate:D}))},onFocus:o,label:n,borderRadiusVariant:"onlyLeft",placeholder:f,placeholderWhenBlurred:l,calendarSize:c}),a.jsx(Le,{mask:h,value:e==null?void 0:e.endDate,onValueChange:g=>t==null?void 0:t({endDate:g}),onBlur:g=>{const D=Se(g.target.value,r);D&&D!==(e==null?void 0:e.endDate)&&(t==null||t({endDate:D}))},onFocus:o,label:s,borderRadiusVariant:"onlyRight",placeholder:f,placeholderWhenBlurred:u,calendarSize:c})]})},wt=(e,t,r,n)=>{const s=De(r)??$e(),o=i.useId(),c=He(),l=i.useRef(null),u=i.useMemo(()=>ie(r),[r]),h=i.useMemo(()=>{var R;return((R=e==null?void 0:e.startDate)==null?void 0:R.length)===u.length?ne(e.startDate,r):void 0},[u.length,r,e==null?void 0:e.startDate]),f=i.useMemo(()=>{var R;return((R=e==null?void 0:e.endDate)==null?void 0:R.length)===u.length?ne(e.endDate,r):void 0},[u.length,r,e==null?void 0:e.endDate]),[g,D]=i.useState(n??h??new Date),x=i.useCallback(R=>{d.isSameMonth(R,c)||d.isAfter(R,c)?D(R):D(c)},[c]),b=i.useMemo(()=>he(g.getFullYear(),g.getMonth(),s),[s,g]),w=i.useMemo(()=>q.startCase(d.format(g,"MMMM yyyy",{locale:s})),[s,g]),S=i.useMemo(()=>d.isSameMonth(c,g),[c,g]),[k,p]=i.useState(),[y,T]=i.useState("calendar"),I=i.useCallback(R=>{var L,$;const H=((L=R==null?void 0:R.startDate)==null?void 0:L.length)===u.length?ne(R.startDate,r):void 0,W=(($=R==null?void 0:R.endDate)==null?void 0:$.length)===u.length?ne(R.endDate,r):void 0;H?x(H):W&&x(W),t==null||t({...e,...R})},[u.length,r,t,x,e]),B=i.useMemo(()=>d.isSameMonth(c,g)||d.isBefore(g,c),[c,g]),C=i.useMemo(()=>(h&&f&&(d.isSameDay(h,f)||d.isBefore(h,f)))??!1,[f,h]);return{isDateDisabled:i.useCallback(R=>!d.isSameDay(R,c)&&d.isBefore(R,c),[c]),onClickDate:R=>{R.getFullYear()===g.getFullYear()&&R.getMonth()===g.getMonth()&&(h&&f==null?d.isBefore(R,h)?t==null||t({startDate:ce(R,r),endDate:void 0}):t==null||t({startDate:e==null?void 0:e.startDate,endDate:ce(R,r)}):t==null||t({startDate:ce(R,r),endDate:void 0}))},onValueChangeByInputs:I,isValidDateRange:C,prevMonthDisabled:B,monthPickerButtonRef:l,calendarId:o,monthPickerButtonLabel:w,visiblePanel:y,setVisiblePanel:T,setVisibleMonth:D,visibleMonthData:b,todayIsInVisibleMonth:S,hoverDate:k,setHoverDate:p,selectedStartDate:h,selectedEndDate:f,today:c,visibleMonth:g}},Re=({previousMonthButtonAriaLabel:e,nextMonthButtonAriaLabel:t,monthPickerButtonLabel:r,visiblePanel:n,setVisiblePanel:s,monthPickerButtonRef:o,setVisibleMonth:c,visibleMonth:l,prevMonthDisabled:u,calendarSize:h,previousMonthButtonTestId:f,nextMonthButtonTestId:g})=>a.jsxs(m.Row,{alignSelf:"center",justifyContent:"space-between",width:"100%",children:[a.jsx(M.FlatButton,{"aria-live":"polite",label:r,rightIcon:n==="calendar"?M.stenaAngleDown:M.stenaAngleUp,onClick:()=>s(n==="calendar"?"month-picker":"calendar"),ref:o,size:h==="small"?"medium":"large"}),a.jsxs(m.Row,{alignItems:"center",gap:2,children:[a.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowLeft,onClick:()=>c(d.subMonths(l,1)),disabled:u,"aria-label":e,size:h==="small"?"medium":"large","data-testid":f}),a.jsx(M.SecondaryButton,{leftIcon:M.stenaArrowRight,onClick:()=>c(d.addMonths(l,1)),"aria-label":t,size:h==="small"?"medium":"large","data-testid":g})]})]}),Hr="_travelDateCell_h6vcn_1",Fr="_small_h6vcn_4",Or="_medium_h6vcn_9",Wr="_large_h6vcn_14",$r="_outline_h6vcn_26",Ur="_contentWrapper_h6vcn_39",qr="_disabled_h6vcn_60",zr="_isToday_h6vcn_63",Kr="_isSelectionStart_h6vcn_67",Gr="_isSelectionEnd_h6vcn_68",Jr="_hover_h6vcn_83",Qr="_startSelected_h6vcn_86",Xr="_endSelected_h6vcn_86",G={travelDateCell:Hr,small:Fr,medium:Or,large:Wr,outline:$r,contentWrapper:Ur,disabled:qr,isToday:zr,isSelectionStart:Kr,isSelectionEnd:Gr,hover:Jr,startSelected:Qr,endSelected:Xr},re=ke.cssColor("--lhds-color-red-100"),Zr=(e,t,r,n,s,o)=>{if(!s)return{left:"transparent",right:"transparent"};if(t&&r&&d.isSameDay(t,r))return{left:"transparent",right:"transparent"};if(t&&r&&!o)return{left:"transparent",right:"transparent"};const c=t&&r?d.isAfter(e,t)&&d.isBefore(e,r)&&!d.isSameDay(e,t)&&!d.isSameDay(e,r):!1,l=t&&n?d.isAfter(e,t)&&d.isBefore(e,n)&&!d.isSameDay(e,t)&&!d.isSameDay(e,n):!1;if(c)return{left:re,right:re};if(t&&r)return d.isSameDay(e,t)?{left:"transparent",right:re}:d.isSameDay(e,r)?{left:re,right:"transparent"}:{left:"transparent",right:"transparent"};if(t&&n&&d.isAfter(n,t)){if(d.isSameDay(e,t))return{left:"transparent",right:re};if(d.isSameDay(e,n))return{left:re,right:"transparent"}}return l?{left:re,right:re}:{left:"transparent",right:"transparent"}},Vr=(e,t)=>{switch(t){case"PageUp":return d.subMonths(e,1);case"PageDown":return d.addMonths(e,1);case"Home":return d.startOfWeek(e);case"End":return d.addDays(d.startOfWeek(e),6);case"ArrowLeft":return d.subDays(e,1);case"ArrowUp":return d.subDays(e,7);case"ArrowRight":return d.addDays(e,1);case"ArrowDown":return d.addDays(e,7);default:return}},Be=(e,t)=>d.format(d.addHours(e,12),te.fullDate)+t,en="_travelDateCellBackground_1k07m_1",tn="_small_1k07m_2",rn="_medium_1k07m_7",nn="_large_1k07m_12",xe={travelDateCellBackground:en,small:tn,medium:rn,large:nn},sn=({calendarSize:e,bgColorLeft:t,bgColorRight:r})=>a.jsxs(m.Row,{children:[a.jsx(m.Box,{className:oe(xe.travelDateCellBackground,xe[e]),background:t}),a.jsx(m.Box,{className:oe(xe.travelDateCellBackground,xe[e]),background:r})]}),on=({onClick:e,visibleMonth:t,onChangeVisibleMonth:r,day:n,isValidDateRange:s,selectedStartDate:o,selectedEndDate:c,onStartHover:l,onEndHover:u,hoverDate:h,today:f,todayIsInVisibleMonth:g,calendarId:D,isDateDisabled:x,size:b,dateTestId:w})=>{const S=i.useCallback(async C=>{var A;const j=Vr(n.date,C.key);j&&!x(j)&&(l(j),d.isSameMonth(n.date,j)?(A=document.getElementById(Be(j,D)))==null||A.focus():(r(j),setTimeout(()=>{var R;(R=document.getElementById(Be(j,D)))==null||R.focus()},10))),(C.key==="Enter"||C.code==="Space")&&e(n.date)},[D,n.date,x,r,e,l]),k=n.month===t.getMonth(),p=x(n.date),y=o?d.isSameDay(o,n.date):!1,T=c?d.isSameDay(c,n.date):!1,I=d.isSameDay(n.date,f),B=Zr(n.date,o,c,h,k,s);return a.jsxs("td",{className:oe(G.travelDateCell,G[b]),onClick:p?void 0:()=>e(n.date),onMouseOver:p?void 0:()=>k&&l(n.date),onMouseOut:p?void 0:()=>k&&u(n.date),tabIndex:p?void 0:an(n,o,I,t,g),id:p?void 0:Be(n.date,D),onKeyDown:p?void 0:S,...p?void 0:{"aria-selected":y||T},"data-testid":w==null?void 0:w(n.date),children:[a.jsx("div",{className:G.outline}),a.jsx(sn,{calendarSize:b,bgColorLeft:B.left,bgColorRight:B.right}),k&&a.jsx("div",{className:oe(G.contentWrapper,I?G.isToday:void 0,o?G.startSelected:void 0,c?G.endSelected:void 0,h&&d.isSameDay(h,n.date)?G.hover:void 0,y&&G.isSelectionStart,T&&G.isSelectionEnd,p&&G.disabled),children:a.jsx(m.Text,{variant:"bold",color:p?ke.cssColor("--lhds-color-ui-500"):void 0,children:n.dayOfMonth})})]})},an=(e,t,r,n,s)=>{const o=t?d.isSameMonth(t,n):!1;return(t&&o?d.isSameDay(e.date,t):r)||!o&&!s&&e.date.getDate()===1?0:-1},cn="_travelCalendar_18pjj_1",ln={travelCalendar:cn},Te=({visibleMonthData:e,onClickDate:t,setHoverDate:r,setVisibleMonth:n,visibleMonth:s,isValidDateRange:o,selectedStartDate:c,selectedEndDate:l,hoverDate:u,today:h,calendarId:f,isDateDisabled:g,todayIsInVisibleMonth:D,size:x="medium",multiSelectable:b,dateTestId:w})=>a.jsx("table",{className:ln.travelCalendar,role:"grid",...b?{"aria-multiselectable":!0}:void 0,children:a.jsxs("tbody",{children:[a.jsx("tr",{children:e.weeks[0].days.map(S=>a.jsx("th",{abbr:S.fullName,children:a.jsx(m.Text,{children:S.name})},S.name))}),e.weeks.map(S=>a.jsx(Pe.Fragment,{children:a.jsx("tr",{children:S.days.map(k=>a.jsx(on,{size:x,onClick:p=>t(p),visibleMonth:s,onChangeVisibleMonth:n,isValidDateRange:o,day:k,onStartHover:p=>r(p),onEndHover:p=>r(y=>y&&d.isSameDay(y,p)?void 0:y),selectedStartDate:c,selectedEndDate:l,hoverDate:u,today:h,todayIsInVisibleMonth:D,calendarId:f,isDateDisabled:g,dateTestId:w},k.dateString))},S.weekNumber)},S.weekNumber))]})}),dn="_travelDateRangeInput_1j7rp_1",un="_overlay_1j7rp_2",fn="_calendarVisible_1j7rp_6",Ae={travelDateRangeInput:dn,overlay:un,calendarVisible:fn},hn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:o,previousMonthButtonAriaLabel:c="Previous month",nextMonthButtonAriaLabel:l="Next month",placeholderWhenBlurredStartDate:u,placeholderWhenBlurredEndDate:h,heading:f,headingLevel:g,numMonthsInMonthPicker:D=12,firstMonthInMonthPicker:x=new Date,zIndex:b=1e3,zIndexWhenClosed:w,onHideCalendar:S,renderBelowCalendar:k,size:p="medium",dateTestId:y,previousMonthButtonTestId:T,nextMonthButtonTestId:I})=>{const[B,C]=i.useState(!1),[j,A]=i.useState(!1),[R,H]=i.useState({width:336,height:66}),W=p==="large"?"8.8rem":"6.6rem",L=i.useRef(!1),$=i.useCallback(()=>{L.current=!0,A(!0),setTimeout(()=>{C(!0)},10)},[]),F=i.useCallback(()=>{j&&(C(!1),L.current=!1,S==null||S(),setTimeout(()=>{L.current||A(!1)},120))},[j,S]),Y=i.useRef(null),z=i.useRef(null);m.useOnClickOutside(Y,F),i.useLayoutEffect(()=>{var ue,Ue;const _=(ue=z.current)==null?void 0:ue.offsetWidth,N=(Ue=z.current)==null?void 0:Ue.offsetHeight;_!=null&&N!=null&&(R.height!==N||R.width!==_)&&H({width:_,height:N})},[R.height,R.width]);const K=wt(e,t,s,o),{visiblePanel:J,visibleMonth:U,onValueChangeByInputs:P,setVisibleMonth:v,setVisiblePanel:Q,monthPickerButtonRef:X}=K,E=i.useCallback(_=>{_.key==="Escape"&&F()},[F]);return a.jsxs(m.Box,{position:"relative",className:Ae.travelDateRangeInput,ref:Y,onKeyDown:E,height:R.height,width:R.width,children:[a.jsx(m.Box,{position:"absolute",ref:z,zIndex:j?b:w,children:a.jsx(yt,{value:e,onValueChange:P,localeCode:s,startDateLabel:r,endDateLabel:n,onFocus:$,calendarSize:p,placeholderWhenBlurredStartDate:u,placeholderWhenBlurredEndDate:h})}),j&&a.jsx(m.Box,{position:"absolute",zIndex:b-1,left:"-2.4rem",top:f?"-8.0rem":"-2.4rem",className:oe(Ae.overlay,B&&Ae.calendarVisible),children:a.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:a.jsxs(M.CardBody,{gap:3,children:[f&&a.jsx(m.Heading,{variant:"h2",as:g,children:f}),a.jsx(m.Box,{height:W}),a.jsx(Re,{...K,previousMonthButtonAriaLabel:c,nextMonthButtonAriaLabel:l,calendarSize:p,previousMonthButtonTestId:T,nextMonthButtonTestId:I}),J==="calendar"&&a.jsx(Te,{...K,size:p,multiSelectable:!0,dateTestId:y}),J==="month-picker"&&a.jsx(de,{firstMonth:x,numMonths:D,value:U,size:p,onValueChange:_=>{var N;v(_),Q("calendar"),(N=X.current)==null||N.focus()},onCancel:()=>{var _;Q("calendar"),(_=X.current)==null||_.focus()}}),k==null?void 0:k({hideCalendar:F})]})})})]})},mn="_travelDateInput_hmfbf_1",gn="_overlay_hmfbf_2",Dn="_calendarVisible_hmfbf_6",Ee={travelDateInput:mn,overlay:gn,calendarVisible:Dn},St=({value:e,onValueChange:t,label:r="Date",localeCode:n,onFocus:s,calendarSize:o,placeholderWhenBlurred:c})=>{const{mask:l,placeholder:u}=i.useMemo(()=>{const h=ie(n);return{mask:bt(h),placeholder:h.toLowerCase()}},[n]);return a.jsx(m.Row,{children:a.jsx(Le,{mask:l,value:e,onValueChange:t,onBlur:h=>{const f=Se(h.target.value,n);f&&f!==e&&(t==null||t(f))},onFocus:s,label:r,placeholder:u,calendarSize:o,placeholderWhenBlurred:c})})},kt=(e,t,r,n)=>{const s=De(r)??$e(),o=i.useId(),c=He(),l=i.useRef(null),u=i.useMemo(()=>ie(r),[r]),h=i.useMemo(()=>(e==null?void 0:e.length)===u.length?ne(e,r):void 0,[u.length,r,e]),[f,g]=i.useState(n??h??new Date),D=i.useCallback(j=>{d.isSameMonth(j,c)||d.isAfter(j,c)?g(j):g(c)},[c]),x=i.useMemo(()=>he(f.getFullYear(),f.getMonth(),s),[s,f]),b=i.useMemo(()=>q.startCase(d.format(f,"MMMM yyyy",{locale:s})),[s,f]),w=i.useMemo(()=>d.isSameMonth(c,f),[c,f]),[S,k]=i.useState(),[p,y]=i.useState("calendar"),T=i.useCallback(j=>{const A=(j==null?void 0:j.length)===u.length?ne(j,r):void 0;A&&D(A),t==null||t(j)},[u.length,r,t,D]),I=i.useMemo(()=>d.isSameMonth(c,f)||d.isBefore(f,c),[c,f]);return{isDateDisabled:i.useCallback(j=>!d.isSameDay(j,c)&&d.isBefore(j,c),[c]),onClickDate:j=>{t==null||t(ce(j,r))},onValueChangeByInputs:T,prevMonthDisabled:I,monthPickerButtonRef:l,calendarId:o,monthPickerButtonLabel:b,visiblePanel:p,setVisiblePanel:y,setVisibleMonth:g,visibleMonthData:x,todayIsInVisibleMonth:w,hoverDate:S,setHoverDate:k,selectedDate:h,today:c,visibleMonth:f}},xn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:o="Previous month",nextMonthButtonAriaLabel:c="Next month",placeholderWhenBlurred:l,heading:u,headingLevel:h,numMonthsInMonthPicker:f=12,firstMonthInMonthPicker:g=new Date,zIndex:D=1e3,zIndexWhenClosed:x,onHideCalendar:b,renderBelowCalendar:w,size:S="medium",dateTestId:k,previousMonthButtonTestId:p,nextMonthButtonTestId:y})=>{const[T,I]=i.useState(!1),[B,C]=i.useState(!1),[j,A]=i.useState({width:336,height:66}),R=S==="large"?"8.8rem":"6.6rem",H=i.useRef(!1),W=i.useCallback(()=>{H.current=!0,C(!0),setTimeout(()=>{I(!0)},10)},[]),L=i.useCallback(()=>{B&&(I(!1),H.current=!1,b==null||b(),setTimeout(()=>{H.current||C(!1)},120))},[B,b]),$=i.useRef(null),F=i.useRef(null);m.useOnClickOutside($,L),i.useLayoutEffect(()=>{var N,ue;const E=(N=F.current)==null?void 0:N.offsetWidth,_=(ue=F.current)==null?void 0:ue.offsetHeight;E!=null&&_!=null&&(j.height!==_||j.width!==E)&&A({width:E,height:_})},[j.height,j.width]);const Y=kt(e,t,n,s),{visiblePanel:z,visibleMonth:K,onValueChangeByInputs:J,selectedDate:U,setVisibleMonth:P,setVisiblePanel:v,monthPickerButtonRef:Q}=Y,X=i.useCallback(E=>{E.key==="Escape"&&L()},[L]);return a.jsxs(m.Box,{position:"relative",className:Ee.travelDateInput,ref:$,onKeyDown:X,height:j.height,width:j.width,children:[a.jsx(m.Box,{position:"absolute",ref:F,zIndex:B?D:x,children:a.jsx(St,{value:e,onValueChange:J,localeCode:n,label:r,onFocus:W,calendarSize:S,placeholderWhenBlurred:l})}),B&&a.jsx(m.Box,{position:"absolute",zIndex:D-1,left:"-2.4rem",top:u?"-8.0rem":"-2.4rem",className:oe(Ee.overlay,T&&Ee.calendarVisible),children:a.jsx(m.Box,{background:"white",shadow:"popover",borderRadius:"var(--swui-border-radius-large)",children:a.jsxs(M.CardBody,{gap:3,children:[u&&a.jsx(m.Heading,{variant:"h2",as:h,children:u}),a.jsx(m.Box,{height:R}),a.jsx(Re,{...Y,previousMonthButtonAriaLabel:o,nextMonthButtonAriaLabel:c,calendarSize:S,previousMonthButtonTestId:p,nextMonthButtonTestId:y}),z==="calendar"&&a.jsx(Te,{...Y,size:S,isValidDateRange:!!U,selectedStartDate:U,selectedEndDate:U,multiSelectable:!1,dateTestId:k}),z==="month-picker"&&a.jsx(de,{firstMonth:g,numMonths:f,value:K,size:S,onValueChange:E=>{var _;P(E),v("calendar"),(_=Q.current)==null||_.focus()},onCancel:()=>{var E;v("calendar"),(E=Q.current)==null||E.focus()}}),w==null?void 0:w({hideCalendar:L})]})})})]})},bn=({value:e,onValueChange:t,label:r,localeCode:n="sv",initialMonthInFocus:s,previousMonthButtonAriaLabel:o="Previous month",nextMonthButtonAriaLabel:c="Next month",placeholderWhenBlurred:l,heading:u,headingLevel:h,numMonthsInMonthPicker:f=12,firstMonthInMonthPicker:g=new Date,dateTestId:D,size:x="medium",previousMonthButtonTestId:b,nextMonthButtonTestId:w})=>{const S=kt(e,t,n,s),{visiblePanel:k,visibleMonth:p,onValueChangeByInputs:y,setVisibleMonth:T,setVisiblePanel:I,monthPickerButtonRef:B,selectedDate:C}=S;return a.jsxs(m.Column,{gap:3,children:[u&&a.jsx(m.Heading,{variant:"h2",as:h,children:u}),a.jsx(St,{value:e,onValueChange:y,localeCode:n,label:r,calendarSize:x,placeholderWhenBlurred:l}),a.jsx(Re,{...S,previousMonthButtonAriaLabel:o,nextMonthButtonAriaLabel:c,calendarSize:x,previousMonthButtonTestId:b,nextMonthButtonTestId:w}),k==="calendar"&&a.jsx(Te,{...S,size:x,selectedStartDate:C,selectedEndDate:C,isValidDateRange:!!C,multiSelectable:!1,dateTestId:D}),k==="month-picker"&&a.jsx(de,{firstMonth:g,numMonths:f,value:p,size:x,onValueChange:j=>{var A;T(j),I("calendar"),(A=B.current)==null||A.focus()},onCancel:()=>{var j;I("calendar"),(j=B.current)==null||j.focus()}})]})},pn=({value:e,onValueChange:t,startDateLabel:r,endDateLabel:n,localeCode:s="sv",initialMonthInFocus:o,previousMonthButtonAriaLabel:c="Previous month",nextMonthButtonAriaLabel:l="Next month",heading:u,headingLevel:h,numMonthsInMonthPicker:f=12,firstMonthInMonthPicker:g=new Date,size:D="medium",dateTestId:x,previousMonthButtonTestId:b,nextMonthButtonTestId:w,placeholderWhenBlurredStartDate:S,placeholderWhenBlurredEndDate:k})=>{const p=wt(e,t,s,o),{visiblePanel:y,visibleMonth:T,onValueChangeByInputs:I,setVisibleMonth:B,setVisiblePanel:C,monthPickerButtonRef:j}=p;return a.jsxs(m.Column,{gap:3,children:[u&&a.jsx(m.Heading,{variant:"h2",as:h,children:u}),a.jsx(yt,{value:e,onValueChange:I,localeCode:s,startDateLabel:r,endDateLabel:n,calendarSize:D,placeholderWhenBlurredStartDate:S,placeholderWhenBlurredEndDate:k}),a.jsx(Re,{...p,previousMonthButtonAriaLabel:c,nextMonthButtonAriaLabel:l,calendarSize:D,previousMonthButtonTestId:b,nextMonthButtonTestId:w}),y==="calendar"&&a.jsx(Te,{...p,size:D,multiSelectable:!0,dateTestId:x}),y==="month-picker"&&a.jsx(de,{firstMonth:g,numMonths:f,value:T,size:D,onValueChange:A=>{var R;B(A),C("calendar"),(R=j.current)==null||R.focus()},onCancel:()=>{var A;C("calendar"),(A=j.current)==null||A.focus()}})]})};exports.Calendar=pe;exports.CalendarDay=ve;exports.DateInput=or;exports.DateRangeCalendar=er;exports.DateRangeDualTextInput=Er;exports.DateRangeInput=ir;exports.DateTextInput=cr;exports.DateTimeInput=jr;exports.Month=Xe;exports.MonthPicker=de;exports.MultiDateCalendar=rr;exports.PresetPicker=lt;exports.SingleDateCalendar=We;exports.SingleWeekCalendar=nr;exports.TimeTextInput=dr;exports.TravelDateCalendar=bn;exports.TravelDateInput=xn;exports.TravelDateRangeCalendar=pn;exports.TravelDateRangeInput=hn;exports.WeekDay=Ze;exports.WeekDayCell=at;exports.WeekNumberCell=it;exports.YearPicker=Rr;exports.addDayStateHighlights=ee;exports.addDayStateHighlightsOnSingleDay=Ye;exports.addWeekRangeHighlights=Qe;exports.addWeekStateHighlights=It;exports.buildDayStateForDateRange=le;exports.buildDayStateForRange=Je;exports.buildDayStateForSingleMonth=Ge;exports.calculateOverflowingMonth=rt;exports.createDay=et;exports.dateRangeToStrings=dt;exports.dayHasHighlight=nt;exports.dayHighlightSelect=Z;exports.defaultCalendarTheme=se;exports.defaultTextPropsProvider=ot;exports.defaultWrapperStyleProvider=st;exports.extranetCalendarTheme=Et;exports.formatLocalizedDate=ce;exports.getDateFormatForLocaleCode=ie;exports.getDaysForWeekForDate=tt;exports.getDefaultLocaleForFormatting=$e;exports.getLocaleForLocaleCode=De;exports.getMonthInYear=he;exports.getMonthsInYear=_e;exports.getWeekForDate=je;exports.getWeeksForMonth=Ve;exports.isDateRangeInvalid=Fe;exports.parseLocalizedDateString=ne;exports.reformatLocalizedDateString=Se;exports.setDayStateValue=Rt;exports.setDayStateValueFunction=Tt;exports.stringsToDateRange=ut;exports.toggleDateStringsIfEndIsEarlierThanStart=Zt;exports.toggleDatesIfEndIsEarlierThanStart=Oe;exports.useDateRangeCalendarState=tr;exports.useDateRangeSelection=ft;exports.useMultiDateSelection=mt;exports.useSingleDateSelection=ht;exports.useSingleWeekSelection=gt;
3
3
  //# sourceMappingURL=index.js.map