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