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