@stenajs-webui/calendar 20.14.0 → 20.14.2

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