@stenajs-webui/calendar 23.17.1 → 23.17.3

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