@stenajs-webui/calendar 24.0.0 → 24.0.1

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