/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@zendeskgarden/react-datepickers@9.15.0/dist/index.cjs.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var React=require("react"),reactDom$1=require("react-dom"),PropTypes=require("prop-types"),reactMergeRefs=require("react-merge-refs"),styled=require("styled-components"),reactDom=require("@floating-ui/react-dom"),reactTheming=require("@zendeskgarden/react-theming"),startOfMonth=require("date-fns/startOfMonth"),endOfMonth=require("date-fns/endOfMonth"),startOfWeek=require("date-fns/startOfWeek"),endOfWeek=require("date-fns/endOfWeek"),eachDayOfInterval=require("date-fns/eachDayOfInterval"),addDays=require("date-fns/addDays"),isToday=require("date-fns/isToday"),isSameDay=require("date-fns/isSameDay"),isSameMonth=require("date-fns/isSameMonth"),isBefore=require("date-fns/isBefore"),isAfter=require("date-fns/isAfter"),getDate=require("date-fns/getDate"),addMonths=require("date-fns/addMonths"),subMonths=require("date-fns/subMonths"),isValid=require("date-fns/isValid"),parse=require("date-fns/parse"),containerUtilities=require("@zendeskgarden/container-utilities"),compareAsc=require("date-fns/compareAsc"),subDays=require("date-fns/subDays");function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var a=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),a.default=e,Object.freeze(a)}var React__namespace=_interopNamespace(React),PropTypes__default=_interopDefault(PropTypes),styled__default=_interopDefault(styled);const WEEK_STARTS_ON=[0,1,2,3,4,5,6],PLACEMENT=["auto",...reactTheming.PLACEMENT],COMPONENT_ID$b="datepickers.menu",StyledMenu=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$b,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledMenu",componentId:"sc-1npbkk0-0"})(["",";"],reactTheming.componentStyles),COMPONENT_ID$a="datepickers.menu_wrapper",StyledMenuWrapper=styled__default.default.div.attrs((e=>({"data-garden-id":COMPONENT_ID$a,"data-garden-version":"9.15.0",className:e.$isAnimated?"is-animated":void 0}))).withConfig({displayName:"StyledMenuWrapper",componentId:"sc-6fowoz-0"})(["top:0;left:0;",";",";"],(e=>reactTheming.menuStyles(reactTheming.getMenuPosition(e.$placement),{theme:e.theme,hidden:e["aria-hidden"],margin:`${e.theme.space.base}px`,zIndex:e.$zIndex,animationModifier:e.$isAnimated?".is-animated":void 0})),reactTheming.componentStyles),COMPONENT_ID$9="datepickers.datepicker",sizeStyles$4=({$isCompact:e,theme:a})=>{const t=a.space.base*(e?4:5);return styled.css(["margin:","px;"],t)},colorStyles$3=({theme:e})=>{const a=reactTheming.getColor({variable:"foreground.default",theme:e});return styled.css(["background-color:transparent;color:",";"],a)},StyledDatePicker=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$9,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledDatePicker",componentId:"sc-15hwqzh-0"})(["direction:",";"," "," ",";"],(e=>e.theme.rtl&&"rtl"),sizeStyles$4,colorStyles$3,reactTheming.componentStyles),COMPONENT_ID$8="datepickers.range_calendar",StyledRangeCalendar=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$8,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledRangeCalendar",componentId:"sc-1og46sy-0"})(["display:flex;overflow:auto;","{margin:0;","}",";"],StyledDatePicker,(e=>e.theme.rtl?`&:last-of-type {margin-right: ${5*e.theme.space.base}px}`:`&:first-of-type {margin-right: ${5*e.theme.space.base}px}`),reactTheming.componentStyles),COMPONENT_ID$7="datepickers.header",StyledHeader=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$7,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledHeader",componentId:"sc-upq318-0"})(["display:flex;width:","px;",";"],(e=>e.$isCompact?56*e.theme.space.base:70*e.theme.space.base),reactTheming.componentStyles),sizeStyles$3=({$isCompact:e,theme:a})=>{const t=a.iconSizes.md,r=a.space.base*(e?8:10);return styled.css(["width:","px;height:","px;svg{width:",";height:",";}"],r,r,t,t)},colorStyles$2=({theme:e})=>{const a=reactTheming.getColor({variable:"foreground.subtle",theme:e}),t=reactTheming.getColor({variable:"foreground.subtle",light:{offset:100},dark:{offset:-100},theme:e}),r=reactTheming.getColor({variable:"background.primaryEmphasis",theme:e,transparency:e.opacity[100]}),n=reactTheming.getColor({variable:"foreground.subtle",light:{offset:200},dark:{offset:-200},theme:e}),s=reactTheming.getColor({variable:"background.primaryEmphasis",theme:e,transparency:e.opacity[200]});return styled.css(["color:",";&:hover{background-color:",";color:",";}&:active{background-color:",";color:",";}"],a,r,t,s,n)},COMPONENT_ID$6="datepickers.header_paddle",StyledHeaderPaddle=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$6,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledHeaderPaddle",componentId:"sc-2oqh0g-0"})(["display:flex;align-items:center;justify-content:center;transform:",";border-radius:50%;cursor:pointer;&[aria-hidden]{visibility:hidden;}"," "," ",";"],(e=>e.theme.rtl&&"rotate(180deg)"),sizeStyles$3,colorStyles$2,reactTheming.componentStyles),COMPONENT_ID$5="datepickers.header_label",StyledHeaderLabel=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$5,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledHeaderLabel",componentId:"sc-1ryf5ub-0"})(["display:flex;flex-grow:1;align-items:center;justify-content:center;font-size:",";font-weight:",";",";"],(e=>e.$isCompact?e.theme.fontSizes.sm:e.theme.fontSizes.md),(e=>e.theme.fontWeights.semibold),reactTheming.componentStyles),COMPONENT_ID$4="datepickers.calendar",StyledCalendar=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$4,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledCalendar",componentId:"sc-g5hoe8-0"})(["width:","px;",";"],(e=>e.$isCompact?56*e.theme.space.base:70*e.theme.space.base),reactTheming.componentStyles),COMPONENT_ID$3="datepickers.calendar_item",sizeStyles$2=({$isCompact:e,theme:a})=>{let t;return t=e?8*a.space.base+"px":10*a.space.base+"px",styled.css(["width:",";height:",";"],t,t)},StyledCalendarItem=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$3,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledCalendarItem",componentId:"sc-143w8wb-0"})(["display:inline-block;position:relative;vertical-align:top;"," ",";"],sizeStyles$2,reactTheming.componentStyles),COMPONENT_ID$2="datepickers.day_label",StyledDayLabel=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$2,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledDayLabel",componentId:"sc-9bh1p7-0"})(["display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:",";font-weight:",";",";"],(e=>e.$isCompact?e.theme.fontSizes.sm:e.theme.fontSizes.md),(e=>e.theme.fontWeights.semibold),reactTheming.componentStyles),COMPONENT_ID$1="datepickers.highlight",sizeStyles$1=({theme:e,$isEnd:a,$isStart:t})=>{let r;const n="0 50% 50% 0;",s="50% 0 0 50%;";return e.rtl&&(t?r=n:a&&(r=s)),t?r=s:a&&(r=n),styled.css(["border-radius:",";width:100%;height:100%;"],r)},colorStyles$1=({$isHighlighted:e,theme:a})=>styled.css(["background-color:",";"],e&&reactTheming.getColor({variable:"background.primaryEmphasis",transparency:a.opacity[100],theme:a})),StyledHighlight=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID$1,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledHighlight",componentId:"sc-16vr32x-0"})(["position:absolute;top:0;left:0;"," "," ",";"],sizeStyles$1,colorStyles$1,reactTheming.componentStyles),sizeStyles=()=>styled.css(["border-radius:50%;width:100%;height:100%;"]),colorStyles=({$isToday:e,$isPreviousMonth:a,theme:t,...r})=>{const n=r["aria-selected"],s=r["aria-disabled"];let o,l="inherit";const i=reactTheming.getColor({variable:"background.primaryEmphasis",theme:t,transparency:t.opacity[100]}),c=!e&&reactTheming.getColor({variable:"foreground.primary",light:{offset:100},dark:{offset:-100},theme:t}),d=reactTheming.getColor({variable:"background.primaryEmphasis",theme:t,transparency:t.opacity[200]}),u=!e&&reactTheming.getColor({variable:"foreground.primary",light:{offset:200},dark:{offset:-200},theme:t});return n&&!s?(l=reactTheming.getColor({variable:"background.primaryEmphasis",theme:t}),o=reactTheming.getColor({variable:"foreground.onEmphasis",theme:t})):o=s?reactTheming.getColor({variable:"foreground.disabled",theme:t}):e?"inherit":a?reactTheming.getColor({variable:"foreground.subtle",theme:t}):reactTheming.getColor({variable:"foreground.primary",theme:t}),styled.css(["background-color:",";color:",";&:not([aria-disabled]):not([aria-selected]):hover{background-color:",";color:",";}&:not([aria-disabled]):not([aria-selected]):active{background-color:",";color:",";}"],l,o,i,c,d,u)},COMPONENT_ID="datepickers.day",StyledDay=styled__default.default.div.attrs({"data-garden-id":COMPONENT_ID,"data-garden-version":"9.15.0"}).withConfig({displayName:"StyledDay",componentId:"sc-v42uk5-0"})(["display:flex;position:absolute;align-items:center;justify-content:center;cursor:",";font-size:",";font-weight:",";"," "," ",";"],(e=>e["aria-disabled"]?"inherit":"pointer"),(e=>e.$isCompact?e.theme.fontSizes.sm:e.theme.fontSizes.md),(e=>e.$isToday&&!e["aria-disabled"]?e.theme.fontWeights.semibold:"inherit"),sizeStyles,colorStyles,reactTheming.componentStyles),DatePickerContext=React.createContext(void 0),useDatePickerContext$1=()=>React.useContext(DatePickerContext),REGION_MAPPINGS={"ar-DZ":0,"ar-SA":0,"en-CA":0,"en-GB":1,"en-US":0,"fa-IR":0,"fr-CH":1,"nl-BE":1,"pt-BR":0,"zh-CN":1,"zh-TW":1},LANGUAGE_MAPPINGS={af:0,ar:6,be:1,bg:1,bn:0,ca:1,cs:1,da:1,de:1,el:1,en:0,eo:1,es:1,et:1,fa:0,fi:1,fil:0,fr:1,gl:1,he:0,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,ko:0,lt:1,lv:1,mk:1,ms:1,nb:1,nl:1,nn:1,pl:1,pt:0,ro:1,ru:1,sk:1,sl:1,sr:1,sv:1,th:1,tr:1,ug:0,uk:1,vi:1,zh:1};function getStartOfWeek(e){if(!e)return 0;for(const a in REGION_MAPPINGS)if(e.startsWith(a))return REGION_MAPPINGS[a];for(const a in LANGUAGE_MAPPINGS)if(e.startsWith(a))return LANGUAGE_MAPPINGS[a];return 0}var _path$1;function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends$1.apply(null,arguments)}var _path,SvgChevronLeftStroke=function(e){return React__namespace.createElement("svg",_extends$1({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,focusable:"false",viewBox:"0 0 16 16","aria-hidden":"true"},e),_path$1||(_path$1=React__namespace.createElement("path",{fill:"currentColor",d:"M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"})))};function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}var SvgChevronRightStroke=function(e){return React__namespace.createElement("svg",_extends({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,focusable:"false",viewBox:"0 0 16 16","aria-hidden":"true"},e),_path||(_path=React__namespace.createElement("path",{fill:"currentColor",d:"M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"})))};const MonthSelector=({locale:e,isCompact:a})=>{const{state:t,dispatch:r}=useDatePickerContext$1(),n=React.useCallback((a=>new Intl.DateTimeFormat(e,{month:"long",year:"numeric"}).format(a)),[e]);return React__namespace.default.createElement(StyledHeader,{$isCompact:a},React__namespace.default.createElement(StyledHeaderPaddle,{$isCompact:a,onClick:()=>{r({type:"PREVIEW_PREVIOUS_MONTH"})}},React__namespace.default.createElement(SvgChevronLeftStroke,null)),React__namespace.default.createElement(StyledHeaderLabel,{$isCompact:a},n(t.previewDate)),React__namespace.default.createElement(StyledHeaderPaddle,{$isCompact:a,onClick:()=>{r({type:"PREVIEW_NEXT_MONTH"})}},React__namespace.default.createElement(SvgChevronRightStroke,null)))},Calendar$1=React.forwardRef((({value:e,minValue:a,maxValue:t,isCompact:r,locale:n,weekStartsOn:s},o)=>{const{state:l,dispatch:i}=useDatePickerContext$1(),c=s||getStartOfWeek(n),d=startOfMonth.startOfMonth(l.previewDate),u=endOfMonth.endOfMonth(d),p=startOfWeek.startOfWeek(d,{weekStartsOn:c}),m=endOfWeek.endOfWeek(u,{weekStartsOn:c}),f=React.useCallback((e=>new Intl.DateTimeFormat(n,{weekday:"short"}).format(e)),[n]),h=eachDayOfInterval.eachDayOfInterval({start:p,end:addDays.addDays(p,6)}).map((e=>{const a=f(e);return React__namespace.default.createElement(StyledCalendarItem,{key:`day-label-${a}`,$isCompact:r},React__namespace.default.createElement(StyledDayLabel,{$isCompact:r},a))})),y=eachDayOfInterval.eachDayOfInterval({start:p,end:m}).map((n=>{const s=getDate.getDate(n),o=isToday.isToday(n),c=!isSameMonth.isSameMonth(n,l.previewDate),d=e&&isSameDay.isSameDay(n,e);let u=!1;return void 0!==a&&(u=isBefore.isBefore(n,a)&&!isSameDay.isSameDay(n,a)),void 0!==t&&(u=u||isAfter.isAfter(n,t)&&!isSameDay.isSameDay(n,t)),React__namespace.default.createElement(StyledCalendarItem,{key:n.toISOString(),$isCompact:r},React__namespace.default.createElement(StyledDay,{$isToday:o,$isPreviousMonth:c,$isCompact:r,"aria-selected":d||void 0,"aria-disabled":u||void 0,onClick:()=>{u||i({type:"SELECT_DATE",value:n})}},s))}));return React__namespace.default.createElement(StyledDatePicker,{ref:o,$isCompact:r,onMouseDown:e=>{e.preventDefault()}},React__namespace.default.createElement(MonthSelector,{locale:n,isCompact:r}),React__namespace.default.createElement(StyledCalendar,{$isCompact:r},h,y))}));function parseInputValue$1({inputValue:e,customParseDate:a}){if(a)return a(e);const t=new Date(1001,0,0);let r=parse.parse(e,"P",new Date);return isValid.isValid(r)&&!isBefore.isBefore(r,t)?r:(r=parse.parse(e,"PP",new Date),isValid.isValid(r)&&!isBefore.isBefore(r,t)?r:(r=parse.parse(e,"PPP",new Date),isValid.isValid(r)&&!isBefore.isBefore(r,t)?r:new Date(NaN)))}function formatInputValue({date:e,locale:a,formatDate:t}){return e?t?t(e):new Intl.DateTimeFormat(a,{month:"long",day:"numeric",year:"numeric"}).format(e):""}Calendar$1.displayName="Calendar";const datepickerReducer=({value:e,formatDate:a,locale:t,customParseDate:r,onChange:n})=>(s,o)=>{switch(o.type){case"OPEN":return{...s,isOpen:!0,previewDate:e||new Date};case"CLOSE":{const r=formatInputValue({date:e,locale:t,formatDate:a});return{...s,isOpen:!1,inputValue:r}}case"PREVIEW_NEXT_MONTH":{const e=addMonths.addMonths(s.previewDate,1);return{...s,previewDate:e}}case"PREVIEW_PREVIOUS_MONTH":{const e=subMonths.subMonths(s.previewDate,1);return{...s,previewDate:e}}case"MANUALLY_UPDATE_INPUT":{const a=o.value,t=parseInputValue$1({inputValue:a,customParseDate:r});return n&&t&&isValid.isValid(t)&&!isSameDay.isSameDay(e,t)&&n(t),{...s,isOpen:!0,inputValue:a}}case"CONTROLLED_VALUE_CHANGE":{const e=o.value||new Date,r=formatInputValue({date:o.value,locale:t,formatDate:a});return{...s,previewDate:e,inputValue:r}}case"CONTROLLED_LOCALE_CHANGE":{const r=formatInputValue({date:e,locale:t,formatDate:a});return{...s,inputValue:r}}case"SELECT_DATE":{const r=formatInputValue({date:o.value,locale:t,formatDate:a});return n&&o.value&&isValid.isValid(o.value)&&!isSameDay.isSameDay(e,o.value)&&n(o.value),{...s,isOpen:!1,inputValue:r}}default:throw new Error}};function retrieveInitialState$1(e){let a=e.value;void 0!==a&&isValid.isValid(a)||(a=new Date);let t="";return void 0!==e.value&&(t=e.formatDate?e.formatDate(e.value):new Intl.DateTimeFormat(e.locale,{month:"long",day:"numeric",year:"numeric"}).format(a)),{isOpen:!1,previewDate:a,inputValue:t}}const Input=React.forwardRef((({element:e,dispatch:a,state:t,refKey:r},n)=>{const s=React.useRef(!1);return React.cloneElement(e,{[r]:n,onMouseDown:containerUtilities.composeEventHandlers(e.props.onMouseDown,(()=>{s.current=!0})),onMouseUp:containerUtilities.composeEventHandlers(e.props.onMouseUp,(()=>{setTimeout((()=>{s.current=!1}),0)})),onClick:containerUtilities.composeEventHandlers(e.props.onClick,(()=>{s.current&&!t.isOpen&&a({type:"OPEN"})})),onBlur:containerUtilities.composeEventHandlers(e.props.onBlur,(()=>{a({type:"CLOSE"})})),onChange:containerUtilities.composeEventHandlers(e.props.onChange,(e=>{a({type:"MANUALLY_UPDATE_INPUT",value:e.target.value})})),onKeyDown:containerUtilities.composeEventHandlers(e.props.onKeyDown,(e=>{switch(e.key){case containerUtilities.KEYS.ESCAPE:case containerUtilities.KEYS.ENTER:a({type:"CLOSE"});break;case containerUtilities.KEYS.UP:case containerUtilities.KEYS.DOWN:case containerUtilities.KEYS.SPACE:a({type:"OPEN"})}})),autoComplete:"off",value:t.inputValue})}));Input.displayName="Input";const PLACEMENT_DEFAULT="bottom-start",DatePicker=React.forwardRef(((e,a)=>{const{appendToNode:t,children:r,placement:n=PLACEMENT_DEFAULT,zIndex:s=1e3,isAnimated:o=!0,refKey:l="ref",value:i,isCompact:c,onChange:d,formatDate:u,minValue:p,maxValue:m,locale:f="en-US",weekStartsOn:h,customParseDate:y,...D}=e,_=React.useContext(styled.ThemeContext)||reactTheming.DEFAULT_THEME,v=React.useCallback(datepickerReducer({value:i,formatDate:u,locale:f,customParseDate:y,onChange:d}),[i,u,f,d,y]),[g,C]=React.useReducer(v,retrieveInitialState$1(e)),S=React.useRef(null),E=React.useRef(null),[O,R]=React.useState(g.isOpen),T=React.useMemo((()=>({state:g,dispatch:C})),[g,C]),[P]=reactTheming.getFloatingPlacements(_,"auto"===n?PLACEMENT_DEFAULT:n),{refs:V,placement:N,update:k,floatingStyles:{transform:I}}=reactDom.useFloating({platform:{...reactDom.platform,isRTL:()=>_.rtl},elements:{reference:S?.current,floating:E?.current},placement:P,middleware:["auto"===n?reactDom.autoPlacement():reactDom.flip()]}),M=React__namespace.default.Children.only(r);React.useEffect((()=>{let e;return g.isOpen&&V.reference.current&&V.floating.current&&(e=reactDom.autoUpdate(V.reference.current,V.floating.current,k,{elementResize:"function"==typeof ResizeObserver})),()=>e&&e()}),[g.isOpen,V.reference,V.floating,k]),React.useEffect((()=>{let e;return g.isOpen?R(!0):o?e=setTimeout((()=>R(!1)),200):R(!1),()=>clearTimeout(e)}),[g.isOpen,o]),React.useEffect((()=>{C({type:"CONTROLLED_VALUE_CHANGE",value:i})}),[i]),React.useEffect((()=>{C({type:"CONTROLLED_LOCALE_CHANGE"})}),[f]);const w=React__namespace.default.createElement(StyledMenuWrapper,{ref:E,style:{transform:I},$isAnimated:!!o&&(g.isOpen||O),$placement:N,$zIndex:s,"aria-hidden":!g.isOpen||void 0},!(!g.isOpen&&!O)&&React__namespace.default.createElement(StyledMenu,D,React__namespace.default.createElement(Calendar$1,{ref:a,isCompact:c,value:i,minValue:p,maxValue:m,locale:f,weekStartsOn:h})));return React__namespace.default.createElement(React__namespace.default.Fragment,null,React__namespace.default.createElement(Input,{element:M,dispatch:C,state:g,refKey:l,ref:reactMergeRefs.mergeRefs([S,M.ref?M.ref:null])}),React__namespace.default.createElement(DatePickerContext.Provider,{value:T},t?reactDom$1.createPortal(w,t):w))}));function formatValue({value:e,locale:a,formatDate:t}){let r="";return void 0!==e&&isValid.isValid(e)&&(r=t?t(e):new Intl.DateTimeFormat(a,{month:"long",day:"numeric",year:"numeric"}).format(e)),r}function parseInputValue({inputValue:e}){const a=new Date(1001,0,0);let t=parse.parse(e||"","P",new Date);return isValid.isValid(t)&&!isBefore.isBefore(t,a)?t:(t=parse.parse(e||"","PP",new Date),isValid.isValid(t)&&!isBefore.isBefore(t,a)?t:(t=parse.parse(e||"","PPP",new Date),isValid.isValid(t)&&!isBefore.isBefore(t,a)?t:new Date(NaN)))}DatePicker.displayName="DatePicker",DatePicker.propTypes={appendToNode:PropTypes__default.default.any,value:PropTypes__default.default.any,onChange:PropTypes__default.default.any,formatDate:PropTypes__default.default.func,locale:PropTypes__default.default.any,weekStartsOn:PropTypes__default.default.oneOf(WEEK_STARTS_ON),minValue:PropTypes__default.default.any,maxValue:PropTypes__default.default.any,isCompact:PropTypes__default.default.bool,customParseDate:PropTypes__default.default.any,refKey:PropTypes__default.default.string,placement:PropTypes__default.default.oneOf(PLACEMENT),isAnimated:PropTypes__default.default.bool,zIndex:PropTypes__default.default.number};const datepickerRangeReducer=({startValue:e,endValue:a,locale:t,formatDate:r,customParseDate:n})=>(s,o)=>{switch(o.type){case"START_FOCUS":{let a=s.previewDate;return e&&(a=1===compareAsc.compareAsc(e,startOfMonth.startOfMonth(s.previewDate))&&-1===compareAsc.compareAsc(e,addMonths.addMonths(endOfMonth.endOfMonth(s.previewDate),1))?s.previewDate:startOfMonth.startOfMonth(e)),{...s,previewDate:a,isStartFocused:!0,isEndFocused:!1}}case"END_FOCUS":{let e=s.previewDate;return a&&(e=1===compareAsc.compareAsc(a,startOfMonth.startOfMonth(s.previewDate))&&-1===compareAsc.compareAsc(a,addMonths.addMonths(endOfMonth.endOfMonth(s.previewDate),1))?s.previewDate:startOfMonth.startOfMonth(a)),{...s,previewDate:e,isEndFocused:!0,isStartFocused:!1}}case"START_BLUR":{let a;a=n?n(s.startInputValue):parseInputValue({inputValue:s.startInputValue});const o=formatValue({value:a,locale:t,formatDate:r});return{...s,startInputValue:o||formatValue({value:e,locale:t,formatDate:r}),isStartFocused:!1}}case"END_BLUR":{let e;e=n?n(s.endInputValue):parseInputValue({inputValue:s.endInputValue});const o=formatValue({value:e,locale:t,formatDate:r})||formatValue({value:a,locale:t,formatDate:r});return{...s,endInputValue:o,isEndFocused:!1}}case"CONTROLLED_START_VALUE_CHANGE":{const e=formatValue({value:o.value,locale:t,formatDate:r});let a=s.previewDate;return o.value&&(a=1===compareAsc.compareAsc(o.value,startOfMonth.startOfMonth(s.previewDate))&&-1===compareAsc.compareAsc(o.value,addMonths.addMonths(endOfMonth.endOfMonth(s.previewDate),1))?s.previewDate:startOfMonth.startOfMonth(o.value)),{...s,startInputValue:e,hoverDate:void 0,previewDate:a}}case"CONTROLLED_END_VALUE_CHANGE":{const e=formatValue({value:o.value,locale:t,formatDate:r});let a=s.previewDate;return o.value&&(a=1===compareAsc.compareAsc(o.value,startOfMonth.startOfMonth(s.previewDate))&&-1===compareAsc.compareAsc(o.value,addMonths.addMonths(endOfMonth.endOfMonth(s.previewDate),1))?s.previewDate:startOfMonth.startOfMonth(o.value)),{...s,endInputValue:e,hoverDate:void 0,previewDate:a}}case"CLICK_DATE":return s.isStartFocused?void 0!==a&&(isBefore.isBefore(o.value,a)||isSameDay.isSameDay(o.value,a))?{...s,startInputValue:formatValue({value:o.value})}:{...s,startInputValue:formatValue({value:o.value}),endInputValue:void 0}:s.isEndFocused?void 0!==e&&(isAfter.isAfter(o.value,e)||isSameDay.isSameDay(o.value,e))?{...s,endInputValue:formatValue({value:o.value})}:{...s,startInputValue:formatValue({value:o.value})}:void 0===e?{...s,startInputValue:formatValue({value:o.value}),endInputValue:void 0}:void 0===a?isBefore.isBefore(o.value,e)?{...s,startInputValue:formatValue({value:o.value}),endInputValue:void 0}:{...s,endInputValue:formatValue({value:o.value})}:s;case"START_INPUT_ONCHANGE":return{...s,startInputValue:o.value};case"END_INPUT_ONCHANGE":return{...s,endInputValue:o.value};case"HOVER_DATE":return{...s,hoverDate:o.value};case"PREVIEW_NEXT_MONTH":{const e=addMonths.addMonths(s.previewDate,1);return{...s,previewDate:e,hoverDate:void 0}}case"PREVIEW_PREVIOUS_MONTH":{const e=subMonths.subMonths(s.previewDate,1);return{...s,previewDate:e,hoverDate:void 0}}default:throw new Error}};function retrieveInitialState(e){let a=e.startValue;void 0!==a&&isValid.isValid(a)||(a=new Date);return{previewDate:a,startInputValue:formatValue({value:e.startValue,locale:e.locale,formatDate:e.formatDate}),endInputValue:formatValue({value:e.endValue,locale:e.locale,formatDate:e.formatDate}),isStartFocused:!1,isEndFocused:!1}}const DatePickerRangeContext=React.createContext(void 0),useDatePickerContext=()=>React.useContext(DatePickerRangeContext),Start=e=>{const{state:a,dispatch:t,onChange:r,startValue:n,endValue:s,startInputRef:o,customParseDate:l}=useDatePickerContext(),i=React.useCallback((a=>{t({type:"START_INPUT_ONCHANGE",value:a.target.value}),e.children.props.onChange&&e.children.props.onChange(a)}),[t,e.children]),c=React.useCallback((a=>{t({type:"START_FOCUS"}),e.children.props.onFocus&&e.children.props.onFocus(a)}),[t,e.children]),d=React.useCallback((()=>{let e;e=l?l(a.startInputValue):parseInputValue({inputValue:a.startInputValue}),t({type:"START_BLUR"}),e&&isValid.isValid(e)&&!isSameDay.isSameDay(e,n)&&r&&r({startValue:e,endValue:s})}),[t,r,n,s,l,a.startInputValue]),u=React.useCallback((a=>{a.key===containerUtilities.KEYS.ENTER&&(a.preventDefault(),d()),e.children.props.onKeyDown&&e.children.props.onKeyDown(a)}),[d,e.children]),p=React.useCallback((a=>{d(),e.children.props.onBlur&&e.children.props.onBlur(a)}),[d,e.children]),m=React__namespace.default.Children.only(e.children);return React__namespace.default.cloneElement(m,{value:a.startInputValue||"",ref:o,onChange:containerUtilities.composeEventHandlers(m.props.onChange,i),onFocus:containerUtilities.composeEventHandlers(m.props.onFocus,c),onKeyDown:containerUtilities.composeEventHandlers(m.props.onKeyDown,u),onBlur:containerUtilities.composeEventHandlers(m.props.onBlur,p)})};Start.displayName="DatePickerRange.Start";const End=e=>{const{state:a,dispatch:t,onChange:r,startValue:n,endValue:s,endInputRef:o,customParseDate:l}=useDatePickerContext(),i=React.useCallback((a=>{t({type:"END_INPUT_ONCHANGE",value:a.target.value}),e.children.props.onChange&&e.children.props.onChange(a)}),[t,e.children]),c=React.useCallback((a=>{t({type:"END_FOCUS"}),e.children.props.onFocus&&e.children.props.onFocus(a)}),[t,e.children]),d=React.useCallback((()=>{let e;t({type:"END_BLUR"}),e=l?l(a.endInputValue):parseInputValue({inputValue:a.endInputValue}),r&&e&&isValid.isValid(e)&&!isSameDay.isSameDay(e,s)&&r&&r({startValue:n,endValue:e})}),[t,r,n,s,l,a.endInputValue]),u=React.useCallback((a=>{a.key===containerUtilities.KEYS.ENTER&&(d(),a.preventDefault()),e.children.props.onKeyDown&&e.children.props.onKeyDown(a)}),[d,e.children]),p=React.useCallback((a=>{d(),e.children.props.onBlur&&e.children.props.onBlur(a)}),[d,e.children]),m=React__namespace.default.Children.only(e.children);return React__namespace.default.cloneElement(m,{value:a.endInputValue||"",ref:o,onChange:containerUtilities.composeEventHandlers(m.props.onChange,i),onFocus:containerUtilities.composeEventHandlers(m.props.onFocus,c),onKeyDown:containerUtilities.composeEventHandlers(m.props.onKeyDown,u),onBlur:containerUtilities.composeEventHandlers(m.props.onBlur,p)})};End.displayName="DatePickerRange.End";const Month=React.forwardRef((({displayDate:e,isPreviousHidden:a,isNextHidden:t},r)=>{const{state:n,dispatch:s,locale:o,weekStartsOn:l,isCompact:i,minValue:c,maxValue:d,startValue:u,endValue:p,onChange:m}=useDatePickerContext(),f=React.useCallback((e=>new Intl.DateTimeFormat(o,{month:"long",year:"numeric"}).format(e)),[o]),h=React.useCallback((e=>new Intl.DateTimeFormat(o,{weekday:"short"}).format(e)),[o]),y=React.useCallback((e=>new Intl.DateTimeFormat(o,{day:"numeric"}).format(e)),[o]),D=l||getStartOfWeek(o),_=startOfMonth.startOfMonth(e),v=endOfMonth.endOfMonth(_),g=startOfWeek.startOfWeek(_,{weekStartsOn:D}),C=endOfWeek.endOfWeek(v,{weekStartsOn:D}),S=eachDayOfInterval.eachDayOfInterval({start:g,end:addDays.addDays(g,6)}).map((e=>{const a=h(e);return React__namespace.default.createElement(StyledCalendarItem,{key:`day-label-${a}`,$isCompact:i},React__namespace.default.createElement(StyledDayLabel,{$isCompact:i},a))})),E=eachDayOfInterval.eachDayOfInterval({start:g,end:C}).map((a=>{const t=y(a),r=isToday.isToday(a),o=!isSameMonth.isSameMonth(a,e);if(o)return React__namespace.default.createElement(StyledCalendarItem,{key:a.toISOString(),$isCompact:i},React__namespace.default.createElement(StyledDay,{$isCompact:i,$isPreviousMonth:!0,"aria-disabled":!0}," "));let l=!1;void 0!==u&&(l=isSameDay.isSameDay(a,u)),void 0!==p&&(l=l||isSameDay.isSameDay(a,p));let f=!1;void 0!==c&&(f=isBefore.isBefore(a,c)&&!isSameDay.isSameDay(a,c)),void 0!==d&&(f=f||isAfter.isAfter(a,d)&&!isSameDay.isSameDay(a,d));let h=!1;void 0!==u&&void 0!==p?h=(isAfter.isAfter(a,u)||isSameDay.isSameDay(a,u))&&(isBefore.isBefore(a,p)||isSameDay.isSameDay(a,p))&&!isSameDay.isSameDay(u,p):void 0!==u&&void 0!==n.hoverDate&&(h=(isAfter.isAfter(a,u)||isSameDay.isSameDay(a,u))&&(isBefore.isBefore(a,n.hoverDate)||isSameDay.isSameDay(a,n.hoverDate)));const D=h&&u&&isSameDay.isSameDay(a,u)||!1,_=h&&p&&isSameDay.isSameDay(a,p)||n.hoverDate&&isSameDay.isSameDay(a,n.hoverDate)&&!isBefore.isBefore(a,p)||!1;let v=p&&u&&-1===compareAsc.compareAsc(p,u)||!1;return c&&(u&&(v=v||-1===compareAsc.compareAsc(u,subDays.subDays(c,1))),p&&(v=v||-1===compareAsc.compareAsc(p,subDays.subDays(c,1)))),d&&(u&&(v=v||1===compareAsc.compareAsc(u,d)),p&&(v=v||1===compareAsc.compareAsc(p,d))),React__namespace.default.createElement(StyledCalendarItem,{key:a.toISOString(),$isCompact:i},React__namespace.default.createElement(StyledHighlight,{$isHighlighted:!v&&!!h&&!f,$isStart:!v&&D,$isEnd:!v&&_}),React__namespace.default.createElement(StyledDay,{$isToday:r,$isPreviousMonth:o,"aria-selected":!v&&l||void 0,"aria-disabled":f||void 0,$isCompact:i,onClick:()=>{f||(s({type:"CLICK_DATE",value:a}),m&&(n.isStartFocused?void 0!==p&&(isBefore.isBefore(a,p)||isSameDay.isSameDay(a,p))?m({startValue:a,endValue:p}):m({startValue:a,endValue:void 0}):n.isEndFocused?void 0!==u&&(isAfter.isAfter(a,u)||isSameDay.isSameDay(a,u))?m({startValue:u,endValue:a}):m({startValue:a,endValue:void 0}):void 0===u?m({startValue:a,endValue:void 0}):void 0===p?isBefore.isBefore(a,u)?m({startValue:a,endValue:void 0}):m({startValue:u,endValue:a}):m({startValue:a,endValue:void 0})))},onMouseEnter:()=>{l||s({type:"HOVER_DATE",value:a})}},t))}));return React__namespace.default.createElement(StyledDatePicker,{ref:r,$isCompact:i,onMouseDown:e=>{e.preventDefault()}},React__namespace.default.createElement(StyledHeader,{$isCompact:i},React__namespace.default.createElement(StyledHeaderPaddle,{$isCompact:i,onClick:()=>{s({type:"PREVIEW_PREVIOUS_MONTH"})},"aria-hidden":a||void 0},React__namespace.default.createElement(SvgChevronLeftStroke,null)),React__namespace.default.createElement(StyledHeaderLabel,{$isCompact:i},f(e)),React__namespace.default.createElement(StyledHeaderPaddle,{$isCompact:i,"aria-hidden":t||void 0,onClick:()=>{s({type:"PREVIEW_NEXT_MONTH"})}},React__namespace.default.createElement(SvgChevronRightStroke,null))),React__namespace.default.createElement(StyledCalendar,{$isCompact:i,onMouseLeave:()=>{s({type:"HOVER_DATE",value:void 0})}},S,E))}));Month.displayName="Month";const Calendar=React.forwardRef(((e,a)=>{const{state:t}=useDatePickerContext();return React__namespace.default.createElement(StyledRangeCalendar,Object.assign({ref:a,"data-garden-id":"datepickers.range","data-garden-version":"9.15.0"},e),React__namespace.default.createElement(Month,{displayDate:t.previewDate,isNextHidden:!0}),React__namespace.default.createElement(Month,{displayDate:addMonths.addMonths(t.previewDate,1),isPreviousHidden:!0}))}));Calendar.displayName="DatePickerRange.Calendar";const DatePickerRangeComponent=e=>{const{startValue:a,locale:t="en-US",weekStartsOn:r,formatDate:n,endValue:s,onChange:o,customParseDate:l,isCompact:i=!1,minValue:c,maxValue:d,children:u}=e,p=React.useCallback(datepickerRangeReducer({startValue:a,locale:t,formatDate:n,endValue:s,customParseDate:l}),[a,s,t,n,o,l]),[m,f]=React.useReducer(p,retrieveInitialState(e)),h=React.useRef(a),y=React.useRef(s),D=React.useRef(),_=React.useRef();React.useEffect((()=>{f({type:"CONTROLLED_START_VALUE_CHANGE",value:a}),_.current&&h.current!==a&&void 0!==a&&_.current.focus(),h.current=a}),[e,a]),React.useEffect((()=>{f({type:"CONTROLLED_END_VALUE_CHANGE",value:s}),D.current&&y.current!==s&&void 0!==s&&D.current.focus(),y.current=s}),[e,s]);const v=React.useMemo((()=>({state:m,dispatch:f,isCompact:i,locale:t,weekStartsOn:r,minValue:c,maxValue:d,startValue:a,endValue:s,onChange:o,startInputRef:D,endInputRef:_,customParseDate:l})),[m,f,i,t,r,c,d,a,s,o,D,_,l]);return React__namespace.default.createElement(DatePickerRangeContext.Provider,{value:v},u)};DatePickerRangeComponent.propTypes={locale:PropTypes__default.default.string,weekStartsOn:PropTypes__default.default.number,startValue:PropTypes__default.default.instanceOf(Date),endValue:PropTypes__default.default.instanceOf(Date),minValue:PropTypes__default.default.instanceOf(Date),maxValue:PropTypes__default.default.instanceOf(Date),onChange:PropTypes__default.default.func,formatDate:PropTypes__default.default.func,customParseDate:PropTypes__default.default.func,isCompact:PropTypes__default.default.bool};const DatePickerRange=DatePickerRangeComponent;DatePickerRange.Calendar=Calendar,DatePickerRange.End=End,DatePickerRange.Start=Start,exports.DatePicker=DatePicker,exports.DatePickerRange=DatePickerRange;
//# sourceMappingURL=/sm/974b25533d93aaa021dbb0015dabe6443631023001aacfe781882beb86d2342c.map