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