@stenajs-webui/calendar 22.0.2 → 22.1.0

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