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