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