react-modular-datepicker 0.0.9 → 0.0.10-canary.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.
@@ -1,7 +1,7 @@
1
1
  import { Dayjs } from 'dayjs';
2
2
  import { DateAdapter } from '../types';
3
3
  export declare class DayjsAdapter implements DateAdapter<Dayjs> {
4
- date(value?: any): Dayjs;
4
+ date(value?: unknown): Dayjs;
5
5
  add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs;
6
6
  subtract(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs;
7
7
  startOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs;
@@ -2,13 +2,14 @@ import { default as React } from 'react';
2
2
  import { Translations } from '../i18n';
3
3
  import { CalendarClassNames, DateObj } from '../types';
4
4
  import { UseDatesProps } from '../useDates';
5
+ import { HeaderProps } from './CalendarHeader';
5
6
  interface CalendarProps extends UseDatesProps {
6
7
  classNames?: CalendarClassNames;
7
8
  locale?: string;
8
9
  translations?: Partial<Translations>;
9
- header?: React.ReactNode | ((props: any) => React.ReactNode);
10
+ header?: React.ReactNode | ((props: HeaderProps) => React.ReactNode);
10
11
  footer?: React.ReactNode;
11
- getDayProps?: (dateObj: DateObj) => Record<string, any>;
12
+ getDayProps?: (dateObj: DateObj) => Record<string, unknown>;
12
13
  }
13
14
  export declare const Calendar: React.FC<CalendarProps>;
14
15
  export {};
@@ -3,8 +3,8 @@ import { Translations } from '../i18n';
3
3
  import { Calendar, CalendarClassNames } from '../types';
4
4
  export interface HeaderProps {
5
5
  calendars: Calendar[];
6
- getBackProps: (args: any) => any;
7
- getForwardProps: (args: any) => any;
6
+ getBackProps: (args?: Record<string, unknown>) => Record<string, unknown>;
7
+ getForwardProps: (args?: Record<string, unknown>) => Record<string, unknown>;
8
8
  setView: (view: 'days' | 'months' | 'years') => void;
9
9
  monthNames: string[];
10
10
  t: Translations;
@@ -4,9 +4,9 @@ interface DayProps {
4
4
  dateObj: DateObj | null;
5
5
  getDateProps: (args: {
6
6
  dateObj: DateObj;
7
- [key: string]: any;
8
- }) => any;
9
- dayProps?: Record<string, any>;
7
+ [key: string]: unknown;
8
+ }) => Record<string, unknown>;
9
+ dayProps?: Record<string, unknown>;
10
10
  classNames?: CalendarClassNames;
11
11
  tabIndex?: number;
12
12
  adapter?: DateAdapter;
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useDates-DqKgwgF7.cjs"),t=require("./utils.cjs");let n=require("react");n=e.i(n,1);let r=require("react/jsx-runtime");function i(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=i(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function a(){for(var e,t,n=0,r=``,a=arguments.length;n<a;n++)(e=arguments[n])&&(t=i(e))&&(r&&(r+=` `),r+=t);return r}function o(t=e.r,n){return{months:t.getMonths(n),weekdays:t.getWeekdays(n),back:`Previous month`,forward:`Next month`,selectMonth:`Select month`,selectYear:`Select year`}}function s(t=e.r,n,r){return{...o(t,n),...r}}var c=()=>(0,r.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,r.jsx)(`polyline`,{points:`15 18 9 12 15 6`})}),l=()=>(0,r.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,r.jsx)(`polyline`,{points:`9 18 15 12 9 6`})}),u=({calendars:e,getBackProps:t,getForwardProps:n,setView:i,monthNames:o,t:s,classNames:u,slideDirection:d,currentView:f})=>{if(e.length>1&&e.length<12)return null;let p=e[0],m=e[e.length-1],h=!!(f&&f!==`days`),g=a(`rmd-nav-button`,h&&`rmd-nav-button-hidden`,u?.navButton,h&&u?.navButtonHidden),_=a(`rmd-month-year-label`,d===`left`&&`rmd-slide-left`,d===`right`&&`rmd-slide-right`,u?.monthYearLabel);return(0,r.jsxs)(`div`,{className:a(`rmd-header`,e.length>1&&`rmd-header-multi-month`,u?.header,e.length>1&&u?.headerMultiMonth),children:[(0,r.jsx)(`button`,{...t({calendars:e}),className:g,"aria-label":s.back,children:(0,r.jsx)(c,{})}),(0,r.jsx)(`div`,{className:a(`rmd-month-year-container`,u?.monthYearContainer),children:e.length===1?(0,r.jsxs)(`div`,{className:_,children:[(0,r.jsx)(`button`,{onClick:()=>i(f===`months`?`days`:`months`),className:a(`rmd-month-year-button`,u?.monthYearButton),"aria-label":`${o[e[0].month]}, ${s.selectMonth||`Select month`}`,"aria-expanded":f===`months`,children:o[e[0].month]}),(0,r.jsx)(`button`,{onClick:()=>i(f===`years`?`days`:`years`),className:a(`rmd-month-year-button`,u?.monthYearButton),"aria-label":`${e[0].year}, ${s.selectYear||`Select year`}`,"aria-expanded":f===`years`,children:e[0].year})]},`${e[0].month}-${e[0].year}`):(0,r.jsx)(`div`,{className:_,children:(0,r.jsx)(`span`,{children:p.year===m.year?p.year:`${p.year} - ${m.year}`})})}),(0,r.jsx)(`button`,{...n({calendars:e}),className:g,"aria-label":s.forward,children:(0,r.jsx)(l,{})})]})},d=({dateObj:e,getDateProps:t,dayProps:n,classNames:i,tabIndex:o=-1,adapter:s,locale:c,onKeyDown:l,onFocus:u,buttonRef:d})=>{if(!e)return(0,r.jsx)(`div`,{role:`gridcell`,"aria-hidden":`true`,className:a(`rmd-day-empty`,i?.day?.empty)});let{date:f,selected:p,selectable:m,isRangeStart:h,isRangeEnd:g,isRangeBetween:_,isRangeHovering:v,isRangeActive:y}=e,b=i?.day,x=``,S=``;h&&g?(x=`rmd-day-selected`,S=b?.selected||``):h?(x=a(`rmd-day-range-start`,y&&`rmd-day-range-active`),S=b?.rangeStart||``):g?(x=a(`rmd-day-range-end`,y&&`rmd-day-range-active`),S=b?.rangeEnd||``):_?(x=`rmd-day-range-between`,S=b?.rangeBetween||``):v?(x=`rmd-day-range-hovering`,S=b?.rangeHovering||``):p?(x=`rmd-day-selected`,S=b?.selected||``):m?(x=`rmd-day-unselected`,S=b?.unselected||``):(x=`rmd-day-disabled`,S=b?.disabled||``);let C=(e.modifiers||[]).map(e=>b?.[e]||e).filter(Boolean),w=s?s.format(s.date(f),`dddd, MMMM D, YYYY`,c):f.toDateString(),T=!!(p||h||g),E=t({dateObj:e,...n});return(0,r.jsx)(`button`,{role:`gridcell`,"aria-selected":T,"aria-disabled":!m,"aria-label":w,tabIndex:o,...E,ref:d,onKeyDown:t=>{E.onKeyDown?.(t),l?.(t,e)},onFocus:t=>{E.onFocus?.(t),u?.(e)},className:a(`rmd-day`,b?.day,x,S,C),children:f.getDate()})},f=({year:e,month:t,monthNames:i,minDate:o,maxDate:s,onMonthSelect:c,classNames:l})=>{let[u,d]=(0,n.useState)(t),f=(0,n.useRef)([]);(0,n.useEffect)(()=>{f.current[u]?.focus()},[u]);let p=t=>!!(o&&e===o.getFullYear()&&t<o.getMonth()||s&&e===s.getFullYear()&&t>s.getMonth()),m=(e,t)=>{let n=u;switch(e.key){case`ArrowLeft`:e.preventDefault(),n=(t-1+12)%12;break;case`ArrowRight`:e.preventDefault(),n=(t+1)%12;break;case`ArrowUp`:e.preventDefault(),n=(t-3+12)%12;break;case`ArrowDown`:e.preventDefault(),n=(t+3)%12;break;case`Home`:e.preventDefault(),n=0;break;case`End`:e.preventDefault(),n=11;break;case`Enter`:case` `:e.preventDefault(),p(t)||c(t);return;default:return}d(n)},h=a(`rmd-months-grid`,l?.monthsGrid);return(0,r.jsx)(`div`,{role:`grid`,"aria-label":`Select month`,className:h,children:i.map((e,n)=>{let i=p(n),o=n===t,s=n===u,h=a(`rmd-month-button`,o?`rmd-month-button-selected`:`rmd-month-button-unselected`,l?.monthButton,o?l?.monthButtonSelected:l?.monthButtonUnselected);return(0,r.jsx)(`button`,{ref:e=>{f.current[n]=e},role:`gridcell`,"aria-selected":o,"aria-disabled":i,tabIndex:s?0:-1,onClick:()=>!i&&c(n),onKeyDown:e=>m(e,n),onFocus:()=>d(n),className:h,disabled:i,children:e},e)})})},p=({year:e,minDate:t,maxDate:i,adapter:o,onYearSelect:s,classNames:c})=>{let l=(0,n.useRef)(null),[u,d]=(0,n.useState)(e),f=(0,n.useRef)(new Map),p=t?o.get(o.date(t),`year`):e-50,m=i?o.get(o.date(i),`year`):e+50,h=[];for(let e=p;e<=m;e++)h.push(e);(0,n.useEffect)(()=>{if(l.current){let e=l.current,t=e.querySelector(`[data-selected="true"]`);if(t){let n=t.offsetTop-e.clientHeight/2+t.clientHeight/2;e.scrollTop=Math.max(0,n)}}},[]),(0,n.useEffect)(()=>{let e=f.current.get(u);e&&e.focus()},[u]);let g=(e,t)=>{let n=u;switch(e.key){case`ArrowLeft`:e.preventDefault(),n=Math.max(p,t-1);break;case`ArrowRight`:e.preventDefault(),n=Math.min(m,t+1);break;case`ArrowUp`:e.preventDefault(),n=Math.max(p,t-3);break;case`ArrowDown`:e.preventDefault(),n=Math.min(m,t+3);break;case`PageUp`:e.preventDefault(),n=Math.max(p,t-10);break;case`PageDown`:e.preventDefault(),n=Math.min(m,t+10);break;case`Home`:e.preventDefault(),n=p;break;case`End`:e.preventDefault(),n=m;break;case`Enter`:case` `:e.preventDefault(),s(t);return;default:return}d(n)};return(0,r.jsx)(`div`,{ref:l,role:`grid`,"aria-label":`Select year`,className:a(`rmd-years-grid`,c?.yearsGrid),children:h.map(t=>{let n=t===e,i=t===u,o=a(`rmd-year-button`,n?`rmd-year-button-selected`:`rmd-year-button-unselected`,c?.yearButton,n?c?.yearButtonSelected:c?.yearButtonUnselected);return(0,r.jsx)(`button`,{ref:e=>{e?f.current.set(t,e):f.current.delete(t)},"data-selected":n,role:`gridcell`,"aria-selected":n,tabIndex:i?0:-1,onClick:()=>s(t),onKeyDown:e=>g(e,t),onFocus:()=>d(t),className:o,children:t},t)})})},m=e=>`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`,h=t=>{let{classNames:i,locale:o,translations:h,adapter:g=e.r,firstDayOfWeek:_=0,header:v,footer:y,getDayProps:b,...x}=t,[S,C]=(0,n.useState)(`days`),[w,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(null),[O,k]=(0,n.useState)(null),[A,j]=(0,n.useState)(``),M=(0,n.useRef)(null),N=(0,n.useRef)(null),P=(0,n.useRef)(new Map),F=(0,n.useRef)(!1),I=s(g,o,h),L=I.weekdays,R=I.months,{calendars:z,getBackProps:B,getForwardProps:V,getDateProps:H,setOffset:U}=e.t({...x,adapter:g,firstDayOfWeek:_});(0,n.useEffect)(()=>{if(S===`days`&&M.current){let e=M.current,t=()=>{e.offsetHeight>0&&D(e.offsetHeight)};if(t(),typeof ResizeObserver<`u`){let n=new ResizeObserver(()=>{t()});return n.observe(e),()=>n.disconnect()}}},[S,z]),(0,n.useEffect)(()=>{S===`days`&&z.length>0?z.length===1?j(`${R[z[0].month]} ${z[0].year}`):j(`${R[z[0].month]} ${z[0].year} to ${R[z[z.length-1].month]} ${z[z.length-1].year}`):S===`months`?j(`Month selection view`):S===`years`&&j(`Year selection view`)},[S,z,R]);let W=(0,n.useMemo)(()=>{for(let e of z)for(let t of e.weeks)for(let e of t)if(e?.selectable&&e.selected)return e.date;for(let e of z)for(let t of e.weeks)for(let e of t)if(e?.selectable&&e.today)return e.date;for(let e of z)for(let t of e.weeks)for(let e of t)if(e?.selectable&&!e.prevMonth&&!e.nextMonth)return e.date;return z[0]?.weeks[0]?.find(e=>e?.selectable)?.date||new Date},[z]),G=O||W;(0,n.useEffect)(()=>{if(S===`days`&&G&&F.current){let e=m(G),t=P.current.get(e);t&&t.focus()}},[G,z,S]);let K=[...L.slice(_),...L.slice(0,_)],{month:q,year:J}=z[0],Y=e=>{let n=g.set(g.set(g.date(t.date||new Date),`year`,J),`month`,q),r=g.set(n,`month`,e),i=g.startOf(g.date(t.date||new Date),`month`),a=g.diff(r,i,`month`);T(null),U(a),C(`days`)},X=e=>{let n=g.set(g.set(g.date(t.date||new Date),`year`,J),`month`,q),r=g.set(n,`year`,e),i=g.startOf(g.date(t.date||new Date),`month`),a=g.diff(r,i,`month`);T(null),U(a),C(`days`)},Z=x.monthsToDisplay||1,Q=e=>{let t=B({offset:Z,...e});return{...t,onClick:e=>{T(`left`),t.onClick?.(e)}}},$=e=>{let t=V({offset:Z,...e});return{...t,onClick:e=>{T(`right`),t.onClick?.(e)}}},ee=(e,n)=>{let r=!!(N.current?.closest(`[dir="rtl"]`)||typeof document<`u`&&document.documentElement.dir===`rtl`),i=null,a=g.date(n.date);switch(e.key){case`ArrowLeft`:e.preventDefault(),i=g.toDate(g.add(a,r?1:-1,`day`));break;case`ArrowRight`:e.preventDefault(),i=g.toDate(g.add(a,r?-1:1,`day`));break;case`ArrowUp`:e.preventDefault(),i=g.toDate(g.subtract(a,7,`day`));break;case`ArrowDown`:e.preventDefault(),i=g.toDate(g.add(a,7,`day`));break;case`Home`:{e.preventDefault();let t=(g.toDate(a).getDay()-_+7)%7;i=g.toDate(g.subtract(a,t,`day`));break}case`End`:{e.preventDefault();let t=6-(g.toDate(a).getDay()-_+7)%7;i=g.toDate(g.add(a,t,`day`));break}case`PageUp`:{e.preventDefault();let t=e.shiftKey?`year`:`month`;i=g.toDate(g.subtract(a,1,t));break}case`PageDown`:{e.preventDefault();let t=e.shiftKey?`year`:`month`;i=g.toDate(g.add(a,1,t));break}case`Enter`:case` `:return;default:return}if(i){F.current=!0,k(i);let e=g.startOf(g.date(t.date||new Date),`month`),n=g.startOf(g.date(i),`month`),r=g.diff(n,e,`month`);U(r)}};return(0,r.jsxs)(`div`,{ref:N,className:a(`rmd`,`rmd-root`,i?.root),children:[(0,r.jsx)(`div`,{className:`rmd-sr-only`,"aria-live":`polite`,"aria-atomic":`true`,children:A}),typeof v==`function`?v({calendars:z,getBackProps:Q,getForwardProps:$,setView:C,monthNames:R,t:I,slideDirection:w,currentView:S}):v||(0,r.jsx)(u,{calendars:z,getBackProps:Q,getForwardProps:$,setView:C,monthNames:R,t:I,classNames:i,slideDirection:w,currentView:S}),(0,r.jsxs)(`div`,{className:a(`rmd-calendars-container`,i?.calendarsContainer),children:[S===`months`&&z.map(e=>(0,r.jsx)(`div`,{className:a(`rmd-calendar-container`,i?.calendarContainer),style:E?{height:`${E}px`}:void 0,children:(0,r.jsx)(f,{year:e.year,month:e.month,monthNames:R,minDate:t.minDate,maxDate:t.maxDate,onMonthSelect:Y,classNames:i})},`months-${e.year}`)),S===`years`&&z.map(e=>(0,r.jsx)(`div`,{className:a(`rmd-calendar-container`,i?.calendarContainer),style:E?{height:`${E}px`}:void 0,children:(0,r.jsx)(p,{year:e.year,minDate:t.minDate,maxDate:t.maxDate,adapter:g,onYearSelect:X,classNames:i})},`years-${e.year}`)),S===`days`&&z.map((e,t)=>(0,r.jsxs)(`div`,{ref:t===0?M:void 0,role:`grid`,"aria-label":`${R[e.month]} ${e.year}`,className:a(`rmd-calendar-container`,i?.calendarContainer),children:[z.length>1&&(0,r.jsxs)(`div`,{className:a(`rmd-header`,i?.header),children:[(0,r.jsx)(`div`,{className:a(`rmd-nav-button-slot-start`,i?.navButtonSlotStart),children:t===0&&z.length<12&&(0,r.jsx)(`button`,{...Q({calendars:z}),className:a(`rmd-nav-button`,i?.navButton),"aria-label":I.back,children:(0,r.jsx)(c,{})})}),(0,r.jsxs)(`span`,{className:a(`rmd-header-title-container`,i?.headerTitleContainer),children:[R[e.month],z.length<12?` ${e.year}`:``]}),(0,r.jsx)(`div`,{className:a(`rmd-nav-button-slot-end`,i?.navButtonSlotEnd),children:t===z.length-1&&z.length<12&&(0,r.jsx)(`button`,{...$({calendars:z}),className:a(`rmd-nav-button`,i?.navButton),"aria-label":I.forward,children:(0,r.jsx)(l,{})})})]}),(0,r.jsx)(`div`,{role:`row`,className:a(`rmd-weekday-grid`,i?.weekdayGrid),children:K.map(e=>(0,r.jsx)(`div`,{role:`columnheader`,"aria-label":e,className:a(`rmd-weekday`,i?.weekday),children:e},e))}),(0,r.jsx)(`div`,{role:`row`,className:a(`rmd-days-grid`,w===`left`&&`rmd-slide-left`,w===`right`&&`rmd-slide-right`,i?.daysGrid),children:e.weeks.map((e,t)=>e.map((e,n)=>{if(!e)return(0,r.jsx)(d,{dateObj:null,getDateProps:H,classNames:i},`${t}-${n}`);let a=m(e.date),s=g.isSame(g.date(e.date),g.date(G),`day`);return(0,r.jsx)(d,{dateObj:e,getDateProps:H,dayProps:b?.(e),classNames:i,tabIndex:s?0:-1,adapter:g,locale:o,onKeyDown:ee,onFocus:e=>{k(e.date)},buttonRef:e=>{e?P.current.set(a,e):P.current.delete(a)}},`${t}-${n}`)}))},`daysGrid-${e.month}-${e.year}`)]},`${e.month}-${e.year}`))]}),y&&(0,r.jsx)(`div`,{className:a(`rmd-footer`,i?.footer),children:y})]})};exports.Calendar=h,exports.CalendarHeader=u,exports.ChevronLeftIcon=c,exports.ChevronRightIcon=l,exports.Day=d,exports.DayjsAdapter=e.n,exports.MonthSelection=f,exports.YearSelection=p,exports.addMonth=t.addMonth,exports.composeEventHandlers=t.composeEventHandlers,exports.defaultAdapter=e.r,exports.getCalendars=t.getCalendars,exports.getDefaults=o,exports.getTranslations=s,exports.isBackDisabled=t.isBackDisabled,exports.isForwardDisabled=t.isForwardDisabled,exports.subtractMonth=t.subtractMonth,exports.useDates=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useDates-XnHKc0Cv.cjs"),t=require("./utils.cjs");let n=require("react");n=e.i(n,1);let r=require("react/jsx-runtime");function i(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=i(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function a(){for(var e,t,n=0,r=``,a=arguments.length;n<a;n++)(e=arguments[n])&&(t=i(e))&&(r&&(r+=` `),r+=t);return r}function o(t=e.r,n){return{months:t.getMonths(n),weekdays:t.getWeekdays(n),back:`Previous month`,forward:`Next month`,selectMonth:`Select month`,selectYear:`Select year`}}function s(t=e.r,n,r){return{...o(t,n),...r}}var c=()=>(0,r.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,r.jsx)(`polyline`,{points:`15 18 9 12 15 6`})}),l=()=>(0,r.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,r.jsx)(`polyline`,{points:`9 18 15 12 9 6`})}),u=({calendars:e,getBackProps:t,getForwardProps:n,setView:i,monthNames:o,t:s,classNames:u,slideDirection:d,currentView:f})=>{if(e.length>1&&e.length<12)return null;let p=e[0],m=e[e.length-1],h=!!(f&&f!==`days`),g=a(`rmd-nav-button`,h&&`rmd-nav-button-hidden`,u?.navButton,h&&u?.navButtonHidden),_=a(`rmd-month-year-label`,d===`left`&&`rmd-slide-left`,d===`right`&&`rmd-slide-right`,u?.monthYearLabel);return(0,r.jsxs)(`div`,{className:a(`rmd-header`,e.length>1&&`rmd-header-multi-month`,u?.header,e.length>1&&u?.headerMultiMonth),children:[(0,r.jsx)(`button`,{...t({calendars:e}),className:g,"aria-label":s.back,children:(0,r.jsx)(c,{})}),(0,r.jsx)(`div`,{className:a(`rmd-month-year-container`,u?.monthYearContainer),children:e.length===1?(0,r.jsxs)(`div`,{className:_,children:[(0,r.jsx)(`button`,{onClick:()=>i(f===`months`?`days`:`months`),className:a(`rmd-month-year-button`,u?.monthYearButton),"aria-label":`${o[e[0].month]}, ${s.selectMonth||`Select month`}`,"aria-expanded":f===`months`,children:o[e[0].month]}),(0,r.jsx)(`button`,{onClick:()=>i(f===`years`?`days`:`years`),className:a(`rmd-month-year-button`,u?.monthYearButton),"aria-label":`${e[0].year}, ${s.selectYear||`Select year`}`,"aria-expanded":f===`years`,children:e[0].year})]},`${e[0].month}-${e[0].year}`):(0,r.jsx)(`div`,{className:_,children:(0,r.jsx)(`span`,{children:p.year===m.year?p.year:`${p.year} - ${m.year}`})})}),(0,r.jsx)(`button`,{...n({calendars:e}),className:g,"aria-label":s.forward,children:(0,r.jsx)(l,{})})]})},d=({dateObj:e,getDateProps:t,dayProps:n,classNames:i,tabIndex:o=-1,adapter:s,locale:c,onKeyDown:l,onFocus:u,buttonRef:d})=>{if(!e)return(0,r.jsx)(`div`,{role:`gridcell`,"aria-hidden":`true`,className:a(`rmd-day-empty`,i?.day?.empty)});let{date:f,selected:p,selectable:m,isRangeStart:h,isRangeEnd:g,isRangeBetween:_,isRangeHovering:v,isRangeActive:y}=e,b=i?.day,x=``,S=``;h&&g?(x=`rmd-day-selected`,S=b?.selected||``):h?(x=a(`rmd-day-range-start`,y&&`rmd-day-range-active`),S=b?.rangeStart||``):g?(x=a(`rmd-day-range-end`,y&&`rmd-day-range-active`),S=b?.rangeEnd||``):_?(x=`rmd-day-range-between`,S=b?.rangeBetween||``):v?(x=`rmd-day-range-hovering`,S=b?.rangeHovering||``):p?(x=`rmd-day-selected`,S=b?.selected||``):m?(x=`rmd-day-unselected`,S=b?.unselected||``):(x=`rmd-day-disabled`,S=b?.disabled||``);let C=(e.modifiers||[]).map(e=>b?.[e]||e).filter(Boolean),w=s?s.format(s.date(f),`dddd, MMMM D, YYYY`,c):f.toDateString(),T=!!(p||h||g),E=t({dateObj:e,...n});return(0,r.jsx)(`button`,{role:`gridcell`,"aria-selected":T,"aria-disabled":!m,"aria-label":w,tabIndex:o,...E,ref:d,onKeyDown:t=>{E.onKeyDown?.(t),l?.(t,e)},onFocus:t=>{E.onFocus?.(t),u?.(e)},className:a(`rmd-day`,b?.day,x,S,C),children:f.getDate()})},f=({year:e,month:t,monthNames:i,minDate:o,maxDate:s,onMonthSelect:c,classNames:l})=>{let[u,d]=(0,n.useState)(t),f=(0,n.useRef)([]);(0,n.useEffect)(()=>{f.current[u]?.focus()},[u]);let p=t=>!!(o&&e===o.getFullYear()&&t<o.getMonth()||s&&e===s.getFullYear()&&t>s.getMonth()),m=(e,t)=>{let n=u;switch(e.key){case`ArrowLeft`:e.preventDefault(),n=(t-1+12)%12;break;case`ArrowRight`:e.preventDefault(),n=(t+1)%12;break;case`ArrowUp`:e.preventDefault(),n=(t-3+12)%12;break;case`ArrowDown`:e.preventDefault(),n=(t+3)%12;break;case`Home`:e.preventDefault(),n=0;break;case`End`:e.preventDefault(),n=11;break;case`Enter`:case` `:e.preventDefault(),p(t)||c(t);return;default:return}d(n)},h=a(`rmd-months-grid`,l?.monthsGrid);return(0,r.jsx)(`div`,{role:`grid`,"aria-label":`Select month`,className:h,children:i.map((e,n)=>{let i=p(n),o=n===t,s=n===u,h=a(`rmd-month-button`,o?`rmd-month-button-selected`:`rmd-month-button-unselected`,l?.monthButton,o?l?.monthButtonSelected:l?.monthButtonUnselected);return(0,r.jsx)(`button`,{ref:e=>{f.current[n]=e},role:`gridcell`,"aria-selected":o,"aria-disabled":i,tabIndex:s?0:-1,onClick:()=>!i&&c(n),onKeyDown:e=>m(e,n),onFocus:()=>d(n),className:h,disabled:i,children:e},e)})})},p=({year:e,minDate:t,maxDate:i,adapter:o,onYearSelect:s,classNames:c})=>{let l=(0,n.useRef)(null),[u,d]=(0,n.useState)(e),f=(0,n.useRef)(new Map),p=t?o.get(o.date(t),`year`):e-50,m=i?o.get(o.date(i),`year`):e+50,h=[];for(let e=p;e<=m;e++)h.push(e);(0,n.useEffect)(()=>{if(l.current){let e=l.current,t=e.querySelector(`[data-selected="true"]`);if(t){let n=t.offsetTop-e.clientHeight/2+t.clientHeight/2;e.scrollTop=Math.max(0,n)}}},[]),(0,n.useEffect)(()=>{let e=f.current.get(u);e&&e.focus()},[u]);let g=(e,t)=>{let n=u;switch(e.key){case`ArrowLeft`:e.preventDefault(),n=Math.max(p,t-1);break;case`ArrowRight`:e.preventDefault(),n=Math.min(m,t+1);break;case`ArrowUp`:e.preventDefault(),n=Math.max(p,t-3);break;case`ArrowDown`:e.preventDefault(),n=Math.min(m,t+3);break;case`PageUp`:e.preventDefault(),n=Math.max(p,t-10);break;case`PageDown`:e.preventDefault(),n=Math.min(m,t+10);break;case`Home`:e.preventDefault(),n=p;break;case`End`:e.preventDefault(),n=m;break;case`Enter`:case` `:e.preventDefault(),s(t);return;default:return}d(n)};return(0,r.jsx)(`div`,{ref:l,role:`grid`,"aria-label":`Select year`,className:a(`rmd-years-grid`,c?.yearsGrid),children:h.map(t=>{let n=t===e,i=t===u,o=a(`rmd-year-button`,n?`rmd-year-button-selected`:`rmd-year-button-unselected`,c?.yearButton,n?c?.yearButtonSelected:c?.yearButtonUnselected);return(0,r.jsx)(`button`,{ref:e=>{e?f.current.set(t,e):f.current.delete(t)},"data-selected":n,role:`gridcell`,"aria-selected":n,tabIndex:i?0:-1,onClick:()=>s(t),onKeyDown:e=>g(e,t),onFocus:()=>d(t),className:o,children:t},t)})})},m=e=>`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`,h=t=>{let{classNames:i,locale:o,translations:h,adapter:g=e.r,firstDayOfWeek:_=0,header:v,footer:y,getDayProps:b,...x}=t,[S,C]=(0,n.useState)(`days`),[w,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(null),[O,k]=(0,n.useState)(null),[A,j]=(0,n.useState)(``),M=(0,n.useRef)(null),N=(0,n.useRef)(null),P=(0,n.useRef)(new Map),F=(0,n.useRef)(!1),I=s(g,o,h),L=I.weekdays,R=I.months,{calendars:z,getBackProps:B,getForwardProps:V,getDateProps:H,setOffset:U}=e.t({...x,adapter:g,firstDayOfWeek:_});(0,n.useEffect)(()=>{if(S===`days`&&M.current){let e=M.current,t=()=>{e.offsetHeight>0&&D(e.offsetHeight)};if(t(),typeof ResizeObserver<`u`){let n=new ResizeObserver(()=>{t()});return n.observe(e),()=>n.disconnect()}}},[S,z]),(0,n.useEffect)(()=>{S===`days`&&z.length>0?z.length===1?j(`${R[z[0].month]} ${z[0].year}`):j(`${R[z[0].month]} ${z[0].year} to ${R[z[z.length-1].month]} ${z[z.length-1].year}`):S===`months`?j(`Month selection view`):S===`years`&&j(`Year selection view`)},[S,z,R]);let W=(0,n.useMemo)(()=>{for(let e of z)for(let t of e.weeks)for(let e of t)if(e?.selectable&&e.selected)return e.date;for(let e of z)for(let t of e.weeks)for(let e of t)if(e?.selectable&&e.today)return e.date;for(let e of z)for(let t of e.weeks)for(let e of t)if(e?.selectable&&!e.prevMonth&&!e.nextMonth)return e.date;return z[0]?.weeks[0]?.find(e=>e?.selectable)?.date||new Date},[z]),G=O||W;(0,n.useEffect)(()=>{if(S===`days`&&G&&F.current){let e=m(G),t=P.current.get(e);t&&t.focus()}},[G,z,S]);let K=[...L.slice(_),...L.slice(0,_)],{month:q,year:J}=z[0],Y=e=>{let n=g.set(g.set(g.date(t.date||new Date),`year`,J),`month`,q),r=g.set(n,`month`,e),i=g.startOf(g.date(t.date||new Date),`month`),a=g.diff(r,i,`month`);T(null),U(a),C(`days`)},X=e=>{let n=g.set(g.set(g.date(t.date||new Date),`year`,J),`month`,q),r=g.set(n,`year`,e),i=g.startOf(g.date(t.date||new Date),`month`),a=g.diff(r,i,`month`);T(null),U(a),C(`days`)},Z=x.monthsToDisplay||1,Q=e=>{let t=B({offset:Z,...e});return{...t,onClick:e=>{T(`left`),t.onClick?.(e)}}},$=e=>{let t=V({offset:Z,...e});return{...t,onClick:e=>{T(`right`),t.onClick?.(e)}}},ee=(e,n)=>{let r=!!(N.current?.closest(`[dir="rtl"]`)||typeof document<`u`&&document.documentElement.dir===`rtl`),i=null,a=g.date(n.date);switch(e.key){case`ArrowLeft`:e.preventDefault(),i=g.toDate(g.add(a,r?1:-1,`day`));break;case`ArrowRight`:e.preventDefault(),i=g.toDate(g.add(a,r?-1:1,`day`));break;case`ArrowUp`:e.preventDefault(),i=g.toDate(g.subtract(a,7,`day`));break;case`ArrowDown`:e.preventDefault(),i=g.toDate(g.add(a,7,`day`));break;case`Home`:{e.preventDefault();let t=(g.toDate(a).getDay()-_+7)%7;i=g.toDate(g.subtract(a,t,`day`));break}case`End`:{e.preventDefault();let t=6-(g.toDate(a).getDay()-_+7)%7;i=g.toDate(g.add(a,t,`day`));break}case`PageUp`:{e.preventDefault();let t=e.shiftKey?`year`:`month`;i=g.toDate(g.subtract(a,1,t));break}case`PageDown`:{e.preventDefault();let t=e.shiftKey?`year`:`month`;i=g.toDate(g.add(a,1,t));break}case`Enter`:case` `:return;default:return}if(i){F.current=!0,k(i);let e=g.startOf(g.date(t.date||new Date),`month`),n=g.startOf(g.date(i),`month`),r=g.diff(n,e,`month`);U(r)}};return(0,r.jsxs)(`div`,{ref:N,className:a(`rmd`,`rmd-root`,i?.root),children:[(0,r.jsx)(`div`,{className:`rmd-sr-only`,"aria-live":`polite`,"aria-atomic":`true`,children:A}),typeof v==`function`?v({calendars:z,getBackProps:Q,getForwardProps:$,setView:C,monthNames:R,t:I,slideDirection:w,currentView:S}):v||(0,r.jsx)(u,{calendars:z,getBackProps:Q,getForwardProps:$,setView:C,monthNames:R,t:I,classNames:i,slideDirection:w,currentView:S}),(0,r.jsxs)(`div`,{className:a(`rmd-calendars-container`,i?.calendarsContainer),children:[S===`months`&&z.map(e=>(0,r.jsx)(`div`,{className:a(`rmd-calendar-container`,i?.calendarContainer),style:E?{height:`${E}px`}:void 0,children:(0,r.jsx)(f,{year:e.year,month:e.month,monthNames:R,minDate:t.minDate,maxDate:t.maxDate,onMonthSelect:Y,classNames:i})},`months-${e.year}`)),S===`years`&&z.map(e=>(0,r.jsx)(`div`,{className:a(`rmd-calendar-container`,i?.calendarContainer),style:E?{height:`${E}px`}:void 0,children:(0,r.jsx)(p,{year:e.year,minDate:t.minDate,maxDate:t.maxDate,adapter:g,onYearSelect:X,classNames:i})},`years-${e.year}`)),S===`days`&&z.map((e,t)=>(0,r.jsxs)(`div`,{ref:t===0?M:void 0,role:`grid`,"aria-label":`${R[e.month]} ${e.year}`,className:a(`rmd-calendar-container`,i?.calendarContainer),children:[z.length>1&&(0,r.jsxs)(`div`,{className:a(`rmd-header`,i?.header),children:[(0,r.jsx)(`div`,{className:a(`rmd-nav-button-slot-start`,i?.navButtonSlotStart),children:t===0&&z.length<12&&(0,r.jsx)(`button`,{...Q({calendars:z}),className:a(`rmd-nav-button`,i?.navButton),"aria-label":I.back,children:(0,r.jsx)(c,{})})}),(0,r.jsxs)(`span`,{className:a(`rmd-header-title-container`,i?.headerTitleContainer),children:[R[e.month],z.length<12?` ${e.year}`:``]}),(0,r.jsx)(`div`,{className:a(`rmd-nav-button-slot-end`,i?.navButtonSlotEnd),children:t===z.length-1&&z.length<12&&(0,r.jsx)(`button`,{...$({calendars:z}),className:a(`rmd-nav-button`,i?.navButton),"aria-label":I.forward,children:(0,r.jsx)(l,{})})})]}),(0,r.jsx)(`div`,{role:`row`,className:a(`rmd-weekday-grid`,i?.weekdayGrid),children:K.map(e=>(0,r.jsx)(`div`,{role:`columnheader`,"aria-label":e,className:a(`rmd-weekday`,i?.weekday),children:e},e))}),(0,r.jsx)(`div`,{role:`row`,className:a(`rmd-days-grid`,w===`left`&&`rmd-slide-left`,w===`right`&&`rmd-slide-right`,i?.daysGrid),children:e.weeks.map((e,t)=>e.map((e,n)=>{if(!e)return(0,r.jsx)(d,{dateObj:null,getDateProps:H,classNames:i},`${t}-${n}`);let a=m(e.date),s=g.isSame(g.date(e.date),g.date(G),`day`);return(0,r.jsx)(d,{dateObj:e,getDateProps:H,dayProps:b?.(e),classNames:i,tabIndex:s?0:-1,adapter:g,locale:o,onKeyDown:ee,onFocus:e=>{k(e.date)},buttonRef:e=>{e?P.current.set(a,e):P.current.delete(a)}},`${t}-${n}`)}))},`daysGrid-${e.month}-${e.year}`)]},`${e.month}-${e.year}`))]}),y&&(0,r.jsx)(`div`,{className:a(`rmd-footer`,i?.footer),children:y})]})};exports.Calendar=h,exports.CalendarHeader=u,exports.ChevronLeftIcon=c,exports.ChevronRightIcon=l,exports.Day=d,exports.DayjsAdapter=e.n,exports.MonthSelection=f,exports.YearSelection=p,exports.addMonth=t.addMonth,exports.composeEventHandlers=t.composeEventHandlers,exports.defaultAdapter=e.r,exports.getCalendars=t.getCalendars,exports.getDefaults=o,exports.getTranslations=s,exports.isBackDisabled=t.isBackDisabled,exports.isForwardDisabled=t.isForwardDisabled,exports.subtractMonth=t.subtractMonth,exports.useDates=e.t;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/i18n.ts","../src/components/CalendarHeader.tsx","../src/components/Day.tsx","../src/components/MonthSelection.tsx","../src/components/YearSelection.tsx","../src/components/Calendar.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { DateAdapter } from \"./types\";\nimport { defaultAdapter } from \"./adapters/dayjs\";\n\nexport interface Translations {\n months: string[];\n weekdays: string[];\n back: string;\n forward: string;\n selectMonth?: string;\n selectYear?: string;\n}\n\nexport function getDefaults(adapter: DateAdapter = defaultAdapter, locale?: string): Translations {\n return {\n months: adapter.getMonths(locale),\n weekdays: adapter.getWeekdays(locale),\n back: 'Previous month',\n forward: 'Next month',\n selectMonth: 'Select month',\n selectYear: 'Select year'\n };\n}\n\nexport function getTranslations(\n adapter: DateAdapter = defaultAdapter,\n locale?: string,\n custom?: Partial<Translations>\n): Translations {\n const base = getDefaults(adapter, locale);\n return { ...base, ...custom };\n}\n","import clsx from 'clsx';\nimport React from 'react';\nimport { Translations } from '../i18n';\nimport { Calendar, CalendarClassNames } from '../types';\n\nexport interface HeaderProps {\n calendars: Calendar[];\n getBackProps: (args: any) => any;\n getForwardProps: (args: any) => any;\n setView: (view: 'days' | 'months' | 'years') => void;\n monthNames: string[];\n t: Translations;\n classNames?: CalendarClassNames;\n slideDirection?: 'left' | 'right' | null;\n currentView?: 'days' | 'months' | 'years';\n}\n\nexport const ChevronLeftIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n);\n\nexport const ChevronRightIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n);\n\nexport const CalendarHeader: React.FC<HeaderProps> = ({\n calendars,\n getBackProps,\n getForwardProps,\n setView,\n monthNames,\n t,\n classNames,\n slideDirection,\n currentView\n}) => {\n if (calendars.length > 1 && calendars.length < 12) {\n return null;\n }\n\n const first = calendars[0];\n const last = calendars[calendars.length - 1];\n\n const isNavHidden = !!(currentView && currentView !== 'days');\n const navButtonClassName = clsx(\n 'rmd-nav-button',\n isNavHidden && 'rmd-nav-button-hidden',\n classNames?.navButton,\n isNavHidden && classNames?.navButtonHidden\n );\n\n const monthYearLabelClassName = clsx(\n 'rmd-month-year-label',\n slideDirection === 'left' && 'rmd-slide-left',\n slideDirection === 'right' && 'rmd-slide-right',\n classNames?.monthYearLabel\n );\n\n return (\n <div className={clsx(\n 'rmd-header',\n calendars.length > 1 && 'rmd-header-multi-month',\n classNames?.header,\n calendars.length > 1 && classNames?.headerMultiMonth\n )}>\n <button\n {...getBackProps({ calendars })}\n className={navButtonClassName}\n aria-label={t.back}\n >\n <ChevronLeftIcon />\n </button>\n\n <div className={clsx('rmd-month-year-container', classNames?.monthYearContainer)}>\n {calendars.length === 1 ? (\n <div key={`${calendars[0].month}-${calendars[0].year}`} className={monthYearLabelClassName}>\n <button\n onClick={() => setView(currentView === 'months' ? 'days' : 'months')}\n className={clsx('rmd-month-year-button', classNames?.monthYearButton)}\n aria-label={`${monthNames[calendars[0].month]}, ${t.selectMonth || 'Select month'}`}\n aria-expanded={currentView === 'months'}\n >\n {monthNames[calendars[0].month]}\n </button>\n <button\n onClick={() => setView(currentView === 'years' ? 'days' : 'years')}\n className={clsx('rmd-month-year-button', classNames?.monthYearButton)}\n aria-label={`${calendars[0].year}, ${t.selectYear || 'Select year'}`}\n aria-expanded={currentView === 'years'}\n >\n {calendars[0].year}\n </button>\n </div>\n ) : (\n <div className={monthYearLabelClassName}>\n <span>\n {first.year === last.year ? first.year : `${first.year} - ${last.year}`}\n </span>\n </div>\n )}\n </div>\n\n <button\n {...getForwardProps({ calendars })}\n className={navButtonClassName}\n aria-label={t.forward}\n >\n <ChevronRightIcon />\n </button>\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport type { CalendarClassNames, DateAdapter, DateObj } from '../types';\n\ninterface DayProps {\n dateObj: DateObj | null;\n getDateProps: (args: { dateObj: DateObj, [key: string]: any }) => any;\n dayProps?: Record<string, any>;\n classNames?: CalendarClassNames;\n tabIndex?: number;\n adapter?: DateAdapter;\n locale?: string;\n onKeyDown?: (e: React.KeyboardEvent, dateObj: DateObj) => void;\n onFocus?: (dateObj: DateObj) => void;\n buttonRef?: (el: HTMLButtonElement | null) => void;\n}\n\nexport const Day: React.FC<DayProps> = ({\n dateObj,\n getDateProps,\n dayProps,\n classNames,\n tabIndex = -1,\n adapter,\n locale,\n onKeyDown,\n onFocus,\n buttonRef\n}) => {\n if (!dateObj) {\n return <div role=\"gridcell\" aria-hidden=\"true\" className={clsx('rmd-day-empty', classNames?.day?.empty)} />;\n }\n\n const { date, selected, selectable, isRangeStart, isRangeEnd, isRangeBetween, isRangeHovering, isRangeActive } = dateObj;\n const dayClasses = classNames?.day;\n\n let semanticStateClass = '';\n let customStateClass = '';\n\n if (isRangeStart && isRangeEnd) {\n semanticStateClass = 'rmd-day-selected';\n customStateClass = dayClasses?.selected || '';\n } else if (isRangeStart) {\n semanticStateClass = clsx('rmd-day-range-start', isRangeActive && 'rmd-day-range-active');\n customStateClass = dayClasses?.rangeStart || '';\n } else if (isRangeEnd) {\n semanticStateClass = clsx('rmd-day-range-end', isRangeActive && 'rmd-day-range-active');\n customStateClass = dayClasses?.rangeEnd || '';\n } else if (isRangeBetween) {\n semanticStateClass = 'rmd-day-range-between';\n customStateClass = dayClasses?.rangeBetween || '';\n } else if (isRangeHovering) {\n semanticStateClass = 'rmd-day-range-hovering';\n customStateClass = dayClasses?.rangeHovering || '';\n } else if (selected) {\n semanticStateClass = 'rmd-day-selected';\n customStateClass = dayClasses?.selected || '';\n } else if (!selectable) {\n semanticStateClass = 'rmd-day-disabled';\n customStateClass = dayClasses?.disabled || '';\n } else {\n semanticStateClass = 'rmd-day-unselected';\n customStateClass = dayClasses?.unselected || '';\n }\n\n const modifierClasses = (dateObj.modifiers || [])\n .map(m => (dayClasses as any)?.[m] || m)\n .filter(Boolean);\n\n const formattedDateLabel = adapter\n ? adapter.format(adapter.date(date), 'dddd, MMMM D, YYYY', locale)\n : date.toDateString();\n\n const isSelected = !!(selected || isRangeStart || isRangeEnd);\n\n const baseProps = getDateProps({ dateObj, ...dayProps });\n\n return (\n <button\n role=\"gridcell\"\n aria-selected={isSelected}\n aria-disabled={!selectable}\n aria-label={formattedDateLabel}\n tabIndex={tabIndex}\n {...baseProps}\n ref={buttonRef}\n onKeyDown={(e) => {\n baseProps.onKeyDown?.(e);\n onKeyDown?.(e, dateObj);\n }}\n onFocus={(e) => {\n baseProps.onFocus?.(e);\n onFocus?.(dateObj);\n }}\n className={clsx(\n 'rmd-day',\n dayClasses?.day,\n semanticStateClass,\n customStateClass,\n modifierClasses\n )}\n >\n {date.getDate()}\n </button>\n );\n};\n","import React, { useState, useRef, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { CalendarClassNames } from '../types';\n\ninterface MonthSelectionProps {\n year: number;\n month: number;\n monthNames: string[];\n minDate?: Date | null;\n maxDate?: Date | null;\n onMonthSelect: (month: number) => void;\n classNames?: CalendarClassNames;\n}\n\nexport const MonthSelection: React.FC<MonthSelectionProps> = ({\n year,\n month,\n monthNames,\n minDate,\n maxDate,\n onMonthSelect,\n classNames,\n}) => {\n const [focusedMonth, setFocusedMonth] = useState<number>(month);\n const buttonRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n useEffect(() => {\n buttonRefs.current[focusedMonth]?.focus();\n }, [focusedMonth]);\n\n const isMonthDisabled = (monthIdx: number) => {\n if (minDate && year === minDate.getFullYear() && monthIdx < minDate.getMonth()) {\n return true;\n }\n if (maxDate && year === maxDate.getFullYear() && monthIdx > maxDate.getMonth()) {\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (e: React.KeyboardEvent, idx: number) => {\n let nextIndex = focusedMonth;\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n nextIndex = (idx - 1 + 12) % 12;\n break;\n case 'ArrowRight':\n e.preventDefault();\n nextIndex = (idx + 1) % 12;\n break;\n case 'ArrowUp':\n e.preventDefault();\n nextIndex = (idx - 3 + 12) % 12;\n break;\n case 'ArrowDown':\n e.preventDefault();\n nextIndex = (idx + 3) % 12;\n break;\n case 'Home':\n e.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n e.preventDefault();\n nextIndex = 11;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!isMonthDisabled(idx)) {\n onMonthSelect(idx);\n }\n return;\n default:\n return;\n }\n\n setFocusedMonth(nextIndex);\n };\n\n const gridClassName = clsx('rmd-months-grid', classNames?.monthsGrid);\n\n return (\n <div\n role=\"grid\"\n aria-label=\"Select month\"\n className={gridClassName}\n >\n {monthNames.map((name, idx) => {\n const disabled = isMonthDisabled(idx);\n const isSelected = idx === month;\n const isFocused = idx === focusedMonth;\n const buttonClassName = clsx(\n 'rmd-month-button',\n isSelected ? 'rmd-month-button-selected' : 'rmd-month-button-unselected',\n classNames?.monthButton,\n isSelected ? classNames?.monthButtonSelected : classNames?.monthButtonUnselected\n );\n\n return (\n <button\n key={name}\n ref={(el) => {\n buttonRefs.current[idx] = el;\n }}\n role=\"gridcell\"\n aria-selected={isSelected}\n aria-disabled={disabled}\n tabIndex={isFocused ? 0 : -1}\n onClick={() => !disabled && onMonthSelect(idx)}\n onKeyDown={(e) => handleKeyDown(e, idx)}\n onFocus={() => setFocusedMonth(idx)}\n className={buttonClassName}\n disabled={disabled}\n >\n {name}\n </button>\n );\n })}\n </div>\n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { CalendarClassNames, DateAdapter } from '../types';\n\ninterface YearSelectionProps {\n year: number;\n minDate?: Date | null;\n maxDate?: Date | null;\n adapter: DateAdapter;\n onYearSelect: (year: number) => void;\n classNames?: CalendarClassNames;\n}\n\nexport const YearSelection: React.FC<YearSelectionProps> = ({\n year,\n minDate,\n maxDate,\n adapter,\n onYearSelect,\n classNames,\n}) => {\n const yearListRef = useRef<HTMLDivElement>(null);\n const [focusedYear, setFocusedYear] = useState<number>(year);\n const buttonRefs = useRef<Map<number, HTMLButtonElement>>(new Map());\n\n const startYear = minDate ? adapter.get(adapter.date(minDate), 'year') : year - 50;\n const endYear = maxDate ? adapter.get(adapter.date(maxDate), 'year') : year + 50;\n const years: number[] = [];\n for (let y = startYear; y <= endYear; y++) {\n years.push(y);\n }\n\n useEffect(() => {\n if (yearListRef.current) {\n const container = yearListRef.current;\n const selectedYearBtn = container.querySelector('[data-selected=\"true\"]') as HTMLElement | null;\n if (selectedYearBtn) {\n const targetScrollTop =\n selectedYearBtn.offsetTop - container.clientHeight / 2 + selectedYearBtn.clientHeight / 2;\n container.scrollTop = Math.max(0, targetScrollTop);\n }\n }\n }, []);\n\n useEffect(() => {\n const btn = buttonRefs.current.get(focusedYear);\n if (btn) {\n btn.focus();\n }\n }, [focusedYear]);\n\n const handleKeyDown = (e: React.KeyboardEvent, y: number) => {\n let nextYear = focusedYear;\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n nextYear = Math.max(startYear, y - 1);\n break;\n case 'ArrowRight':\n e.preventDefault();\n nextYear = Math.min(endYear, y + 1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n nextYear = Math.max(startYear, y - 3);\n break;\n case 'ArrowDown':\n e.preventDefault();\n nextYear = Math.min(endYear, y + 3);\n break;\n case 'PageUp':\n e.preventDefault();\n nextYear = Math.max(startYear, y - 10);\n break;\n case 'PageDown':\n e.preventDefault();\n nextYear = Math.min(endYear, y + 10);\n break;\n case 'Home':\n e.preventDefault();\n nextYear = startYear;\n break;\n case 'End':\n e.preventDefault();\n nextYear = endYear;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n onYearSelect(y);\n return;\n default:\n return;\n }\n\n setFocusedYear(nextYear);\n };\n\n return (\n <div\n ref={yearListRef}\n role=\"grid\"\n aria-label=\"Select year\"\n className={clsx('rmd-years-grid', classNames?.yearsGrid)}\n >\n {years.map((y) => {\n const isSelected = y === year;\n const isFocused = y === focusedYear;\n const buttonClassName = clsx(\n 'rmd-year-button',\n isSelected ? 'rmd-year-button-selected' : 'rmd-year-button-unselected',\n classNames?.yearButton,\n isSelected ? classNames?.yearButtonSelected : classNames?.yearButtonUnselected\n );\n\n return (\n <button\n key={y}\n ref={(el) => {\n if (el) buttonRefs.current.set(y, el);\n else buttonRefs.current.delete(y);\n }}\n data-selected={isSelected}\n role=\"gridcell\"\n aria-selected={isSelected}\n tabIndex={isFocused ? 0 : -1}\n onClick={() => onYearSelect(y)}\n onKeyDown={(e) => handleKeyDown(e, y)}\n onFocus={() => setFocusedYear(y)}\n className={buttonClassName}\n >\n {y}\n </button>\n );\n })}\n </div>\n );\n};\n","import React, { useState, useRef, useEffect, useMemo } from 'react';\nimport clsx from 'clsx';\nimport { defaultAdapter } from '../adapters/dayjs';\nimport { getTranslations, Translations } from '../i18n';\nimport { CalendarClassNames, DateObj } from '../types';\nimport { useDates, UseDatesProps } from '../useDates';\nimport { CalendarHeader, ChevronLeftIcon, ChevronRightIcon } from './CalendarHeader';\nimport { Day } from './Day';\nimport { MonthSelection } from './MonthSelection';\nimport { YearSelection } from './YearSelection';\n\ninterface CalendarProps extends UseDatesProps {\n classNames?: CalendarClassNames;\n locale?: string;\n translations?: Partial<Translations>;\n header?: React.ReactNode | ((props: any) => React.ReactNode);\n footer?: React.ReactNode;\n getDayProps?: (dateObj: DateObj) => Record<string, any>;\n}\n\ntype CalendarView = 'days' | 'months' | 'years';\n\nconst getDateKey = (d: Date): string =>\n `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;\n\nexport const Calendar: React.FC<CalendarProps> = (props) => {\n const {\n classNames,\n locale,\n translations: customTranslations,\n adapter = defaultAdapter,\n firstDayOfWeek = 0,\n header,\n footer,\n getDayProps,\n ...useDatesProps\n } = props;\n\n const [view, setView] = useState<CalendarView>('days');\n const [slideDirection, setSlideDirection] = useState<'left' | 'right' | null>(null);\n const [daysHeight, setDaysHeight] = useState<number | null>(null);\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n const [announcement, setAnnouncement] = useState<string>('');\n\n const daysContainerRef = useRef<HTMLDivElement | null>(null);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const dayButtonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n const isKeyboardNavigating = useRef<boolean>(false);\n\n const t = getTranslations(adapter, locale, customTranslations);\n const weekdayNames = t.weekdays;\n const monthNames = t.months;\n\n const {\n calendars,\n getBackProps,\n getForwardProps,\n getDateProps,\n setOffset\n } = useDates({ ...useDatesProps, adapter, firstDayOfWeek });\n\n useEffect(() => {\n if (view === 'days' && daysContainerRef.current) {\n const el = daysContainerRef.current;\n const updateHeight = () => {\n if (el.offsetHeight > 0) {\n setDaysHeight(el.offsetHeight);\n }\n };\n updateHeight();\n\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n updateHeight();\n });\n observer.observe(el);\n return () => observer.disconnect();\n }\n }\n }, [view, calendars]);\n\n useEffect(() => {\n if (view === 'days' && calendars.length > 0) {\n if (calendars.length === 1) {\n setAnnouncement(`${monthNames[calendars[0].month]} ${calendars[0].year}`);\n } else {\n setAnnouncement(\n `${monthNames[calendars[0].month]} ${calendars[0].year} to ${\n monthNames[calendars[calendars.length - 1].month]\n } ${calendars[calendars.length - 1].year}`\n );\n }\n } else if (view === 'months') {\n setAnnouncement('Month selection view');\n } else if (view === 'years') {\n setAnnouncement('Year selection view');\n }\n }, [view, calendars, monthNames]);\n\n // Determine default active focused date if focusedDate is not set\n const defaultFocusedDate = useMemo(() => {\n for (const cal of calendars) {\n for (const week of cal.weeks) {\n for (const dateObj of week) {\n if (dateObj?.selectable && dateObj.selected) {\n return dateObj.date;\n }\n }\n }\n }\n for (const cal of calendars) {\n for (const week of cal.weeks) {\n for (const dateObj of week) {\n if (dateObj?.selectable && dateObj.today) {\n return dateObj.date;\n }\n }\n }\n }\n for (const cal of calendars) {\n for (const week of cal.weeks) {\n for (const dateObj of week) {\n if (dateObj?.selectable && !dateObj.prevMonth && !dateObj.nextMonth) {\n return dateObj.date;\n }\n }\n }\n }\n return calendars[0]?.weeks[0]?.find((d) => d?.selectable)?.date || new Date();\n }, [calendars]);\n\n const currentFocusedDate = focusedDate || defaultFocusedDate;\n\n useEffect(() => {\n if (view === 'days' && currentFocusedDate && isKeyboardNavigating.current) {\n const key = getDateKey(currentFocusedDate);\n const btn = dayButtonRefs.current.get(key);\n if (btn) {\n btn.focus();\n }\n }\n }, [currentFocusedDate, calendars, view]);\n\n const sortedWeekdays = [...weekdayNames.slice(firstDayOfWeek), ...weekdayNames.slice(0, firstDayOfWeek)];\n\n const currentCalendar = calendars[0];\n const { month, year } = currentCalendar;\n\n const handleMonthSelect = (newMonth: number) => {\n const currentMonth = adapter.set(adapter.set(adapter.date(props.date || new Date()), 'year', year), 'month', month);\n const targetMonth = adapter.set(currentMonth, 'month', newMonth);\n const baseMonth = adapter.startOf(adapter.date(props.date || new Date()), 'month');\n const newOffset = adapter.diff(targetMonth, baseMonth, 'month');\n setSlideDirection(null);\n setOffset(newOffset);\n setView('days');\n };\n\n const handleYearSelect = (newYear: number) => {\n const currentMonth = adapter.set(adapter.set(adapter.date(props.date || new Date()), 'year', year), 'month', month);\n const targetMonth = adapter.set(currentMonth, 'year', newYear);\n const baseMonth = adapter.startOf(adapter.date(props.date || new Date()), 'month');\n const newOffset = adapter.diff(targetMonth, baseMonth, 'month');\n setSlideDirection(null);\n setOffset(newOffset);\n setView('days');\n };\n\n const stepOffset = useDatesProps.monthsToDisplay || 1;\n\n const wrappedGetBackProps = (args: any) => {\n const props = getBackProps({ offset: stepOffset, ...args });\n return {\n ...props,\n onClick: (e: any) => {\n setSlideDirection('left');\n props.onClick?.(e);\n }\n };\n };\n\n const wrappedGetForwardProps = (args: any) => {\n const props = getForwardProps({ offset: stepOffset, ...args });\n return {\n ...props,\n onClick: (e: any) => {\n setSlideDirection('right');\n props.onClick?.(e);\n }\n };\n };\n\n const handleDayKeyDown = (e: React.KeyboardEvent, dateObj: DateObj) => {\n const isRTL = Boolean(\n rootRef.current?.closest('[dir=\"rtl\"]') ||\n (typeof document !== 'undefined' && document.documentElement.dir === 'rtl')\n );\n\n let newDate: Date | null = null;\n const current = adapter.date(dateObj.date);\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n newDate = adapter.toDate(adapter.add(current, isRTL ? 1 : -1, 'day'));\n break;\n case 'ArrowRight':\n e.preventDefault();\n newDate = adapter.toDate(adapter.add(current, isRTL ? -1 : 1, 'day'));\n break;\n case 'ArrowUp':\n e.preventDefault();\n newDate = adapter.toDate(adapter.subtract(current, 7, 'day'));\n break;\n case 'ArrowDown':\n e.preventDefault();\n newDate = adapter.toDate(adapter.add(current, 7, 'day'));\n break;\n case 'Home': {\n e.preventDefault();\n const currentDayOfWeek = adapter.toDate(current).getDay();\n const diff = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n newDate = adapter.toDate(adapter.subtract(current, diff, 'day'));\n break;\n }\n case 'End': {\n e.preventDefault();\n const currentDayOfWeek = adapter.toDate(current).getDay();\n const diff = 6 - ((currentDayOfWeek - firstDayOfWeek + 7) % 7);\n newDate = adapter.toDate(adapter.add(current, diff, 'day'));\n break;\n }\n case 'PageUp': {\n e.preventDefault();\n const unit = e.shiftKey ? 'year' : 'month';\n newDate = adapter.toDate(adapter.subtract(current, 1, unit));\n break;\n }\n case 'PageDown': {\n e.preventDefault();\n const unit = e.shiftKey ? 'year' : 'month';\n newDate = adapter.toDate(adapter.add(current, 1, unit));\n break;\n }\n case 'Enter':\n case ' ': {\n // Native button press handles click event\n return;\n }\n default:\n return;\n }\n\n if (newDate) {\n isKeyboardNavigating.current = true;\n setFocusedDate(newDate);\n\n const baseMonth = adapter.startOf(adapter.date(props.date || new Date()), 'month');\n const targetMonth = adapter.startOf(adapter.date(newDate), 'month');\n const newOffset = adapter.diff(targetMonth, baseMonth, 'month');\n setOffset(newOffset);\n }\n };\n\n const renderDefaultHeader = () => (\n <CalendarHeader\n calendars={calendars}\n getBackProps={wrappedGetBackProps}\n getForwardProps={wrappedGetForwardProps}\n setView={setView}\n monthNames={monthNames}\n t={t}\n classNames={classNames}\n slideDirection={slideDirection}\n currentView={view}\n />\n );\n\n return (\n <div ref={rootRef} className={clsx('rmd', 'rmd-root', classNames?.root)}>\n <div className=\"rmd-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </div>\n\n {typeof header === 'function' ? header({\n calendars,\n getBackProps: wrappedGetBackProps,\n getForwardProps: wrappedGetForwardProps,\n setView,\n monthNames,\n t,\n slideDirection,\n currentView: view\n }) : (header || renderDefaultHeader())}\n\n <div className={clsx('rmd-calendars-container', classNames?.calendarsContainer)}>\n {view === 'months' && calendars.map((calendar) => (\n <div\n key={`months-${calendar.year}`}\n className={clsx('rmd-calendar-container', classNames?.calendarContainer)}\n style={daysHeight ? { height: `${daysHeight}px` } : undefined}\n >\n <MonthSelection\n year={calendar.year}\n month={calendar.month}\n monthNames={monthNames}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onMonthSelect={handleMonthSelect}\n classNames={classNames}\n />\n </div>\n ))}\n {view === 'years' && calendars.map((calendar) => (\n <div\n key={`years-${calendar.year}`}\n className={clsx('rmd-calendar-container', classNames?.calendarContainer)}\n style={daysHeight ? { height: `${daysHeight}px` } : undefined}\n >\n <YearSelection\n year={calendar.year}\n minDate={props.minDate}\n maxDate={props.maxDate}\n adapter={adapter}\n onYearSelect={handleYearSelect}\n classNames={classNames}\n />\n </div>\n ))}\n {view === 'days' && calendars.map((calendar, index) => (\n <div\n key={`${calendar.month}-${calendar.year}`}\n ref={index === 0 ? daysContainerRef : undefined}\n role=\"grid\"\n aria-label={`${monthNames[calendar.month]} ${calendar.year}`}\n className={clsx('rmd-calendar-container', classNames?.calendarContainer)}\n >\n {calendars.length > 1 && (\n <div className={clsx('rmd-header', classNames?.header)}>\n <div className={clsx('rmd-nav-button-slot-start', classNames?.navButtonSlotStart)}>\n {index === 0 && calendars.length < 12 && (\n <button\n {...wrappedGetBackProps({ calendars })}\n className={clsx('rmd-nav-button', classNames?.navButton)}\n aria-label={t.back}\n >\n <ChevronLeftIcon />\n </button>\n )}\n </div>\n <span className={clsx('rmd-header-title-container', classNames?.headerTitleContainer)}>\n {monthNames[calendar.month]}\n {calendars.length < 12 ? ` ${calendar.year}` : ''}\n </span>\n <div className={clsx('rmd-nav-button-slot-end', classNames?.navButtonSlotEnd)}>\n {index === calendars.length - 1 && calendars.length < 12 && (\n <button\n {...wrappedGetForwardProps({ calendars })}\n className={clsx('rmd-nav-button', classNames?.navButton)}\n aria-label={t.forward}\n >\n <ChevronRightIcon />\n </button>\n )}\n </div>\n </div>\n )}\n <div role=\"row\" className={clsx('rmd-weekday-grid', classNames?.weekdayGrid)}>\n {sortedWeekdays.map((day) => (\n <div\n key={day}\n role=\"columnheader\"\n aria-label={day}\n className={clsx('rmd-weekday', classNames?.weekday)}\n >\n {day}\n </div>\n ))}\n </div>\n <div\n key={`daysGrid-${calendar.month}-${calendar.year}`}\n role=\"row\"\n className={clsx(\n 'rmd-days-grid',\n slideDirection === 'left' && 'rmd-slide-left',\n slideDirection === 'right' && 'rmd-slide-right',\n classNames?.daysGrid\n )}\n >\n {calendar.weeks.map((week, wi) =>\n week.map((dateObj, di) => {\n if (!dateObj) {\n return (\n <Day\n key={`${wi}-${di}`}\n dateObj={null}\n getDateProps={getDateProps}\n classNames={classNames}\n />\n );\n }\n\n const dateKey = getDateKey(dateObj.date);\n const isFocused = adapter.isSame(\n adapter.date(dateObj.date),\n adapter.date(currentFocusedDate),\n 'day'\n );\n\n return (\n <Day\n key={`${wi}-${di}`}\n dateObj={dateObj}\n getDateProps={getDateProps}\n dayProps={getDayProps?.(dateObj)}\n classNames={classNames}\n tabIndex={isFocused ? 0 : -1}\n adapter={adapter}\n locale={locale}\n onKeyDown={handleDayKeyDown}\n onFocus={(dObj) => {\n setFocusedDate(dObj.date);\n }}\n buttonRef={(el) => {\n if (el) {\n dayButtonRefs.current.set(dateKey, el);\n } else {\n dayButtonRefs.current.delete(dateKey);\n }\n }}\n />\n );\n })\n )}\n </div>\n </div>\n ))}\n </div>\n {footer && <div className={clsx('rmd-footer', classNames?.footer)}>{footer}</div>}\n </div>\n );\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/i18n.ts","../src/components/CalendarHeader.tsx","../src/components/Day.tsx","../src/components/MonthSelection.tsx","../src/components/YearSelection.tsx","../src/components/Calendar.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { DateAdapter } from \"./types\";\nimport { defaultAdapter } from \"./adapters/dayjs\";\n\nexport interface Translations {\n months: string[];\n weekdays: string[];\n back: string;\n forward: string;\n selectMonth?: string;\n selectYear?: string;\n}\n\nexport function getDefaults(adapter: DateAdapter = defaultAdapter, locale?: string): Translations {\n return {\n months: adapter.getMonths(locale),\n weekdays: adapter.getWeekdays(locale),\n back: 'Previous month',\n forward: 'Next month',\n selectMonth: 'Select month',\n selectYear: 'Select year'\n };\n}\n\nexport function getTranslations(\n adapter: DateAdapter = defaultAdapter,\n locale?: string,\n custom?: Partial<Translations>\n): Translations {\n const base = getDefaults(adapter, locale);\n return { ...base, ...custom };\n}\n","import clsx from 'clsx';\nimport React from 'react';\nimport { Translations } from '../i18n';\nimport { Calendar, CalendarClassNames } from '../types';\n\nexport interface HeaderProps {\n calendars: Calendar[];\n getBackProps: (args?: Record<string, unknown>) => Record<string, unknown>;\n getForwardProps: (args?: Record<string, unknown>) => Record<string, unknown>;\n setView: (view: 'days' | 'months' | 'years') => void;\n monthNames: string[];\n t: Translations;\n classNames?: CalendarClassNames;\n slideDirection?: 'left' | 'right' | null;\n currentView?: 'days' | 'months' | 'years';\n}\n\nexport const ChevronLeftIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n </svg>\n);\n\nexport const ChevronRightIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n);\n\nexport const CalendarHeader: React.FC<HeaderProps> = ({\n calendars,\n getBackProps,\n getForwardProps,\n setView,\n monthNames,\n t,\n classNames,\n slideDirection,\n currentView\n}) => {\n if (calendars.length > 1 && calendars.length < 12) {\n return null;\n }\n\n const first = calendars[0];\n const last = calendars[calendars.length - 1];\n\n const isNavHidden = !!(currentView && currentView !== 'days');\n const navButtonClassName = clsx(\n 'rmd-nav-button',\n isNavHidden && 'rmd-nav-button-hidden',\n classNames?.navButton,\n isNavHidden && classNames?.navButtonHidden\n );\n\n const monthYearLabelClassName = clsx(\n 'rmd-month-year-label',\n slideDirection === 'left' && 'rmd-slide-left',\n slideDirection === 'right' && 'rmd-slide-right',\n classNames?.monthYearLabel\n );\n\n return (\n <div className={clsx(\n 'rmd-header',\n calendars.length > 1 && 'rmd-header-multi-month',\n classNames?.header,\n calendars.length > 1 && classNames?.headerMultiMonth\n )}>\n <button\n {...(getBackProps({ calendars }) as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n className={navButtonClassName}\n aria-label={t.back}\n >\n <ChevronLeftIcon />\n </button>\n\n <div className={clsx('rmd-month-year-container', classNames?.monthYearContainer)}>\n {calendars.length === 1 ? (\n <div key={`${calendars[0].month}-${calendars[0].year}`} className={monthYearLabelClassName}>\n <button\n onClick={() => setView(currentView === 'months' ? 'days' : 'months')}\n className={clsx('rmd-month-year-button', classNames?.monthYearButton)}\n aria-label={`${monthNames[calendars[0].month]}, ${t.selectMonth || 'Select month'}`}\n aria-expanded={currentView === 'months'}\n >\n {monthNames[calendars[0].month]}\n </button>\n <button\n onClick={() => setView(currentView === 'years' ? 'days' : 'years')}\n className={clsx('rmd-month-year-button', classNames?.monthYearButton)}\n aria-label={`${calendars[0].year}, ${t.selectYear || 'Select year'}`}\n aria-expanded={currentView === 'years'}\n >\n {calendars[0].year}\n </button>\n </div>\n ) : (\n <div className={monthYearLabelClassName}>\n <span>\n {first.year === last.year ? first.year : `${first.year} - ${last.year}`}\n </span>\n </div>\n )}\n </div>\n\n <button\n {...(getForwardProps({ calendars }) as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n className={navButtonClassName}\n aria-label={t.forward}\n >\n <ChevronRightIcon />\n </button>\n </div>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport type { CalendarClassNames, DateAdapter, DateObj } from '../types';\n\ninterface DayProps {\n dateObj: DateObj | null;\n getDateProps: (args: { dateObj: DateObj, [key: string]: unknown }) => Record<string, unknown>;\n dayProps?: Record<string, unknown>;\n classNames?: CalendarClassNames;\n tabIndex?: number;\n adapter?: DateAdapter;\n locale?: string;\n onKeyDown?: (e: React.KeyboardEvent, dateObj: DateObj) => void;\n onFocus?: (dateObj: DateObj) => void;\n buttonRef?: (el: HTMLButtonElement | null) => void;\n}\n\nexport const Day: React.FC<DayProps> = ({\n dateObj,\n getDateProps,\n dayProps,\n classNames,\n tabIndex = -1,\n adapter,\n locale,\n onKeyDown,\n onFocus,\n buttonRef\n}) => {\n if (!dateObj) {\n return <div role=\"gridcell\" aria-hidden=\"true\" className={clsx('rmd-day-empty', classNames?.day?.empty)} />;\n }\n\n const { date, selected, selectable, isRangeStart, isRangeEnd, isRangeBetween, isRangeHovering, isRangeActive } = dateObj;\n const dayClasses = classNames?.day;\n\n let semanticStateClass = '';\n let customStateClass = '';\n\n if (isRangeStart && isRangeEnd) {\n semanticStateClass = 'rmd-day-selected';\n customStateClass = dayClasses?.selected || '';\n } else if (isRangeStart) {\n semanticStateClass = clsx('rmd-day-range-start', isRangeActive && 'rmd-day-range-active');\n customStateClass = dayClasses?.rangeStart || '';\n } else if (isRangeEnd) {\n semanticStateClass = clsx('rmd-day-range-end', isRangeActive && 'rmd-day-range-active');\n customStateClass = dayClasses?.rangeEnd || '';\n } else if (isRangeBetween) {\n semanticStateClass = 'rmd-day-range-between';\n customStateClass = dayClasses?.rangeBetween || '';\n } else if (isRangeHovering) {\n semanticStateClass = 'rmd-day-range-hovering';\n customStateClass = dayClasses?.rangeHovering || '';\n } else if (selected) {\n semanticStateClass = 'rmd-day-selected';\n customStateClass = dayClasses?.selected || '';\n } else if (!selectable) {\n semanticStateClass = 'rmd-day-disabled';\n customStateClass = dayClasses?.disabled || '';\n } else {\n semanticStateClass = 'rmd-day-unselected';\n customStateClass = dayClasses?.unselected || '';\n }\n\n const modifierClasses = (dateObj.modifiers || [])\n .map(m => (dayClasses as Record<string, string | undefined> | undefined)?.[m] || m)\n .filter(Boolean);\n\n const formattedDateLabel = adapter\n ? adapter.format(adapter.date(date), 'dddd, MMMM D, YYYY', locale)\n : date.toDateString();\n\n const isSelected = !!(selected || isRangeStart || isRangeEnd);\n\n const baseProps = getDateProps({ dateObj, ...dayProps }) as React.ButtonHTMLAttributes<HTMLButtonElement>;\n\n return (\n <button\n role=\"gridcell\"\n aria-selected={isSelected}\n aria-disabled={!selectable}\n aria-label={formattedDateLabel}\n tabIndex={tabIndex}\n {...(baseProps as React.HTMLAttributes<HTMLButtonElement>)}\n ref={buttonRef}\n onKeyDown={(e) => {\n baseProps.onKeyDown?.(e);\n onKeyDown?.(e, dateObj);\n }}\n onFocus={(e) => {\n baseProps.onFocus?.(e);\n onFocus?.(dateObj);\n }}\n className={clsx(\n 'rmd-day',\n dayClasses?.day,\n semanticStateClass,\n customStateClass,\n modifierClasses\n )}\n >\n {date.getDate()}\n </button>\n );\n};\n","import React, { useState, useRef, useEffect } from 'react';\nimport clsx from 'clsx';\nimport { CalendarClassNames } from '../types';\n\ninterface MonthSelectionProps {\n year: number;\n month: number;\n monthNames: string[];\n minDate?: Date | null;\n maxDate?: Date | null;\n onMonthSelect: (month: number) => void;\n classNames?: CalendarClassNames;\n}\n\nexport const MonthSelection: React.FC<MonthSelectionProps> = ({\n year,\n month,\n monthNames,\n minDate,\n maxDate,\n onMonthSelect,\n classNames,\n}) => {\n const [focusedMonth, setFocusedMonth] = useState<number>(month);\n const buttonRefs = useRef<(HTMLButtonElement | null)[]>([]);\n\n useEffect(() => {\n buttonRefs.current[focusedMonth]?.focus();\n }, [focusedMonth]);\n\n const isMonthDisabled = (monthIdx: number) => {\n if (minDate && year === minDate.getFullYear() && monthIdx < minDate.getMonth()) {\n return true;\n }\n if (maxDate && year === maxDate.getFullYear() && monthIdx > maxDate.getMonth()) {\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (e: React.KeyboardEvent, idx: number) => {\n let nextIndex = focusedMonth;\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n nextIndex = (idx - 1 + 12) % 12;\n break;\n case 'ArrowRight':\n e.preventDefault();\n nextIndex = (idx + 1) % 12;\n break;\n case 'ArrowUp':\n e.preventDefault();\n nextIndex = (idx - 3 + 12) % 12;\n break;\n case 'ArrowDown':\n e.preventDefault();\n nextIndex = (idx + 3) % 12;\n break;\n case 'Home':\n e.preventDefault();\n nextIndex = 0;\n break;\n case 'End':\n e.preventDefault();\n nextIndex = 11;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!isMonthDisabled(idx)) {\n onMonthSelect(idx);\n }\n return;\n default:\n return;\n }\n\n setFocusedMonth(nextIndex);\n };\n\n const gridClassName = clsx('rmd-months-grid', classNames?.monthsGrid);\n\n return (\n <div\n role=\"grid\"\n aria-label=\"Select month\"\n className={gridClassName}\n >\n {monthNames.map((name, idx) => {\n const disabled = isMonthDisabled(idx);\n const isSelected = idx === month;\n const isFocused = idx === focusedMonth;\n const buttonClassName = clsx(\n 'rmd-month-button',\n isSelected ? 'rmd-month-button-selected' : 'rmd-month-button-unselected',\n classNames?.monthButton,\n isSelected ? classNames?.monthButtonSelected : classNames?.monthButtonUnselected\n );\n\n return (\n <button\n key={name}\n ref={(el) => {\n buttonRefs.current[idx] = el;\n }}\n role=\"gridcell\"\n aria-selected={isSelected}\n aria-disabled={disabled}\n tabIndex={isFocused ? 0 : -1}\n onClick={() => !disabled && onMonthSelect(idx)}\n onKeyDown={(e) => handleKeyDown(e, idx)}\n onFocus={() => setFocusedMonth(idx)}\n className={buttonClassName}\n disabled={disabled}\n >\n {name}\n </button>\n );\n })}\n </div>\n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { CalendarClassNames, DateAdapter } from '../types';\n\ninterface YearSelectionProps {\n year: number;\n minDate?: Date | null;\n maxDate?: Date | null;\n adapter: DateAdapter;\n onYearSelect: (year: number) => void;\n classNames?: CalendarClassNames;\n}\n\nexport const YearSelection: React.FC<YearSelectionProps> = ({\n year,\n minDate,\n maxDate,\n adapter,\n onYearSelect,\n classNames,\n}) => {\n const yearListRef = useRef<HTMLDivElement>(null);\n const [focusedYear, setFocusedYear] = useState<number>(year);\n const buttonRefs = useRef<Map<number, HTMLButtonElement>>(new Map());\n\n const startYear = minDate ? adapter.get(adapter.date(minDate), 'year') : year - 50;\n const endYear = maxDate ? adapter.get(adapter.date(maxDate), 'year') : year + 50;\n const years: number[] = [];\n for (let y = startYear; y <= endYear; y++) {\n years.push(y);\n }\n\n useEffect(() => {\n if (yearListRef.current) {\n const container = yearListRef.current;\n const selectedYearBtn = container.querySelector('[data-selected=\"true\"]') as HTMLElement | null;\n if (selectedYearBtn) {\n const targetScrollTop =\n selectedYearBtn.offsetTop - container.clientHeight / 2 + selectedYearBtn.clientHeight / 2;\n container.scrollTop = Math.max(0, targetScrollTop);\n }\n }\n }, []);\n\n useEffect(() => {\n const btn = buttonRefs.current.get(focusedYear);\n if (btn) {\n btn.focus();\n }\n }, [focusedYear]);\n\n const handleKeyDown = (e: React.KeyboardEvent, y: number) => {\n let nextYear = focusedYear;\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n nextYear = Math.max(startYear, y - 1);\n break;\n case 'ArrowRight':\n e.preventDefault();\n nextYear = Math.min(endYear, y + 1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n nextYear = Math.max(startYear, y - 3);\n break;\n case 'ArrowDown':\n e.preventDefault();\n nextYear = Math.min(endYear, y + 3);\n break;\n case 'PageUp':\n e.preventDefault();\n nextYear = Math.max(startYear, y - 10);\n break;\n case 'PageDown':\n e.preventDefault();\n nextYear = Math.min(endYear, y + 10);\n break;\n case 'Home':\n e.preventDefault();\n nextYear = startYear;\n break;\n case 'End':\n e.preventDefault();\n nextYear = endYear;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n onYearSelect(y);\n return;\n default:\n return;\n }\n\n setFocusedYear(nextYear);\n };\n\n return (\n <div\n ref={yearListRef}\n role=\"grid\"\n aria-label=\"Select year\"\n className={clsx('rmd-years-grid', classNames?.yearsGrid)}\n >\n {years.map((y) => {\n const isSelected = y === year;\n const isFocused = y === focusedYear;\n const buttonClassName = clsx(\n 'rmd-year-button',\n isSelected ? 'rmd-year-button-selected' : 'rmd-year-button-unselected',\n classNames?.yearButton,\n isSelected ? classNames?.yearButtonSelected : classNames?.yearButtonUnselected\n );\n\n return (\n <button\n key={y}\n ref={(el) => {\n if (el) buttonRefs.current.set(y, el);\n else buttonRefs.current.delete(y);\n }}\n data-selected={isSelected}\n role=\"gridcell\"\n aria-selected={isSelected}\n tabIndex={isFocused ? 0 : -1}\n onClick={() => onYearSelect(y)}\n onKeyDown={(e) => handleKeyDown(e, y)}\n onFocus={() => setFocusedYear(y)}\n className={buttonClassName}\n >\n {y}\n </button>\n );\n })}\n </div>\n );\n};\n","import React, { useState, useRef, useEffect, useMemo } from 'react';\nimport clsx from 'clsx';\nimport { defaultAdapter } from '../adapters/dayjs';\nimport { getTranslations, Translations } from '../i18n';\nimport { CalendarClassNames, DateObj } from '../types';\nimport { useDates, UseDatesProps } from '../useDates';\nimport { CalendarHeader, ChevronLeftIcon, ChevronRightIcon, HeaderProps } from './CalendarHeader';\nimport { Day } from './Day';\nimport { MonthSelection } from './MonthSelection';\nimport { YearSelection } from './YearSelection';\n\ninterface CalendarProps extends UseDatesProps {\n classNames?: CalendarClassNames;\n locale?: string;\n translations?: Partial<Translations>;\n header?: React.ReactNode | ((props: HeaderProps) => React.ReactNode);\n footer?: React.ReactNode;\n getDayProps?: (dateObj: DateObj) => Record<string, unknown>;\n}\n\ntype CalendarView = 'days' | 'months' | 'years';\n\nconst getDateKey = (d: Date): string =>\n `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;\n\nexport const Calendar: React.FC<CalendarProps> = (props) => {\n const {\n classNames,\n locale,\n translations: customTranslations,\n adapter = defaultAdapter,\n firstDayOfWeek = 0,\n header,\n footer,\n getDayProps,\n ...useDatesProps\n } = props;\n\n const [view, setView] = useState<CalendarView>('days');\n const [slideDirection, setSlideDirection] = useState<'left' | 'right' | null>(null);\n const [daysHeight, setDaysHeight] = useState<number | null>(null);\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n const [announcement, setAnnouncement] = useState<string>('');\n\n const daysContainerRef = useRef<HTMLDivElement | null>(null);\n const rootRef = useRef<HTMLDivElement | null>(null);\n const dayButtonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n const isKeyboardNavigating = useRef<boolean>(false);\n\n const t = getTranslations(adapter, locale, customTranslations);\n const weekdayNames = t.weekdays;\n const monthNames = t.months;\n\n const {\n calendars,\n getBackProps,\n getForwardProps,\n getDateProps,\n setOffset\n } = useDates({ ...useDatesProps, adapter, firstDayOfWeek });\n\n useEffect(() => {\n if (view === 'days' && daysContainerRef.current) {\n const el = daysContainerRef.current;\n const updateHeight = () => {\n if (el.offsetHeight > 0) {\n setDaysHeight(el.offsetHeight);\n }\n };\n updateHeight();\n\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n updateHeight();\n });\n observer.observe(el);\n return () => observer.disconnect();\n }\n }\n }, [view, calendars]);\n\n useEffect(() => {\n if (view === 'days' && calendars.length > 0) {\n if (calendars.length === 1) {\n setAnnouncement(`${monthNames[calendars[0].month]} ${calendars[0].year}`);\n } else {\n setAnnouncement(\n `${monthNames[calendars[0].month]} ${calendars[0].year} to ${\n monthNames[calendars[calendars.length - 1].month]\n } ${calendars[calendars.length - 1].year}`\n );\n }\n } else if (view === 'months') {\n setAnnouncement('Month selection view');\n } else if (view === 'years') {\n setAnnouncement('Year selection view');\n }\n }, [view, calendars, monthNames]);\n\n // Determine default active focused date if focusedDate is not set\n const defaultFocusedDate = useMemo(() => {\n for (const cal of calendars) {\n for (const week of cal.weeks) {\n for (const dateObj of week) {\n if (dateObj?.selectable && dateObj.selected) {\n return dateObj.date;\n }\n }\n }\n }\n for (const cal of calendars) {\n for (const week of cal.weeks) {\n for (const dateObj of week) {\n if (dateObj?.selectable && dateObj.today) {\n return dateObj.date;\n }\n }\n }\n }\n for (const cal of calendars) {\n for (const week of cal.weeks) {\n for (const dateObj of week) {\n if (dateObj?.selectable && !dateObj.prevMonth && !dateObj.nextMonth) {\n return dateObj.date;\n }\n }\n }\n }\n return calendars[0]?.weeks[0]?.find((d) => d?.selectable)?.date || new Date();\n }, [calendars]);\n\n const currentFocusedDate = focusedDate || defaultFocusedDate;\n\n useEffect(() => {\n if (view === 'days' && currentFocusedDate && isKeyboardNavigating.current) {\n const key = getDateKey(currentFocusedDate);\n const btn = dayButtonRefs.current.get(key);\n if (btn) {\n btn.focus();\n }\n }\n }, [currentFocusedDate, calendars, view]);\n\n const sortedWeekdays = [...weekdayNames.slice(firstDayOfWeek), ...weekdayNames.slice(0, firstDayOfWeek)];\n\n const currentCalendar = calendars[0];\n const { month, year } = currentCalendar;\n\n const handleMonthSelect = (newMonth: number) => {\n const currentMonth = adapter.set(adapter.set(adapter.date(props.date || new Date()), 'year', year), 'month', month);\n const targetMonth = adapter.set(currentMonth, 'month', newMonth);\n const baseMonth = adapter.startOf(adapter.date(props.date || new Date()), 'month');\n const newOffset = adapter.diff(targetMonth, baseMonth, 'month');\n setSlideDirection(null);\n setOffset(newOffset);\n setView('days');\n };\n\n const handleYearSelect = (newYear: number) => {\n const currentMonth = adapter.set(adapter.set(adapter.date(props.date || new Date()), 'year', year), 'month', month);\n const targetMonth = adapter.set(currentMonth, 'year', newYear);\n const baseMonth = adapter.startOf(adapter.date(props.date || new Date()), 'month');\n const newOffset = adapter.diff(targetMonth, baseMonth, 'month');\n setSlideDirection(null);\n setOffset(newOffset);\n setView('days');\n };\n\n const stepOffset = useDatesProps.monthsToDisplay || 1;\n\n const wrappedGetBackProps = (args?: Record<string, unknown>) => {\n const props = getBackProps({ offset: stepOffset, ...args }) as { onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void; [key: string]: unknown };\n return {\n ...props,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n setSlideDirection('left');\n props.onClick?.(e);\n }\n };\n };\n\n const wrappedGetForwardProps = (args?: Record<string, unknown>) => {\n const props = getForwardProps({ offset: stepOffset, ...args }) as { onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void; [key: string]: unknown };\n return {\n ...props,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n setSlideDirection('right');\n props.onClick?.(e);\n }\n };\n };\n\n const handleDayKeyDown = (e: React.KeyboardEvent, dateObj: DateObj) => {\n const isRTL = Boolean(\n rootRef.current?.closest('[dir=\"rtl\"]') ||\n (typeof document !== 'undefined' && document.documentElement.dir === 'rtl')\n );\n\n let newDate: Date | null = null;\n const current = adapter.date(dateObj.date);\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n newDate = adapter.toDate(adapter.add(current, isRTL ? 1 : -1, 'day'));\n break;\n case 'ArrowRight':\n e.preventDefault();\n newDate = adapter.toDate(adapter.add(current, isRTL ? -1 : 1, 'day'));\n break;\n case 'ArrowUp':\n e.preventDefault();\n newDate = adapter.toDate(adapter.subtract(current, 7, 'day'));\n break;\n case 'ArrowDown':\n e.preventDefault();\n newDate = adapter.toDate(adapter.add(current, 7, 'day'));\n break;\n case 'Home': {\n e.preventDefault();\n const currentDayOfWeek = adapter.toDate(current).getDay();\n const diff = (currentDayOfWeek - firstDayOfWeek + 7) % 7;\n newDate = adapter.toDate(adapter.subtract(current, diff, 'day'));\n break;\n }\n case 'End': {\n e.preventDefault();\n const currentDayOfWeek = adapter.toDate(current).getDay();\n const diff = 6 - ((currentDayOfWeek - firstDayOfWeek + 7) % 7);\n newDate = adapter.toDate(adapter.add(current, diff, 'day'));\n break;\n }\n case 'PageUp': {\n e.preventDefault();\n const unit = e.shiftKey ? 'year' : 'month';\n newDate = adapter.toDate(adapter.subtract(current, 1, unit));\n break;\n }\n case 'PageDown': {\n e.preventDefault();\n const unit = e.shiftKey ? 'year' : 'month';\n newDate = adapter.toDate(adapter.add(current, 1, unit));\n break;\n }\n case 'Enter':\n case ' ': {\n // Native button press handles click event\n return;\n }\n default:\n return;\n }\n\n if (newDate) {\n isKeyboardNavigating.current = true;\n setFocusedDate(newDate);\n\n const baseMonth = adapter.startOf(adapter.date(props.date || new Date()), 'month');\n const targetMonth = adapter.startOf(adapter.date(newDate), 'month');\n const newOffset = adapter.diff(targetMonth, baseMonth, 'month');\n setOffset(newOffset);\n }\n };\n\n const renderDefaultHeader = () => (\n <CalendarHeader\n calendars={calendars}\n getBackProps={wrappedGetBackProps}\n getForwardProps={wrappedGetForwardProps}\n setView={setView}\n monthNames={monthNames}\n t={t}\n classNames={classNames}\n slideDirection={slideDirection}\n currentView={view}\n />\n );\n\n return (\n <div ref={rootRef} className={clsx('rmd', 'rmd-root', classNames?.root)}>\n <div className=\"rmd-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </div>\n\n {typeof header === 'function' ? header({\n calendars,\n getBackProps: wrappedGetBackProps,\n getForwardProps: wrappedGetForwardProps,\n setView,\n monthNames,\n t,\n slideDirection,\n currentView: view\n }) : (header || renderDefaultHeader())}\n\n <div className={clsx('rmd-calendars-container', classNames?.calendarsContainer)}>\n {view === 'months' && calendars.map((calendar) => (\n <div\n key={`months-${calendar.year}`}\n className={clsx('rmd-calendar-container', classNames?.calendarContainer)}\n style={daysHeight ? { height: `${daysHeight}px` } : undefined}\n >\n <MonthSelection\n year={calendar.year}\n month={calendar.month}\n monthNames={monthNames}\n minDate={props.minDate}\n maxDate={props.maxDate}\n onMonthSelect={handleMonthSelect}\n classNames={classNames}\n />\n </div>\n ))}\n {view === 'years' && calendars.map((calendar) => (\n <div\n key={`years-${calendar.year}`}\n className={clsx('rmd-calendar-container', classNames?.calendarContainer)}\n style={daysHeight ? { height: `${daysHeight}px` } : undefined}\n >\n <YearSelection\n year={calendar.year}\n minDate={props.minDate}\n maxDate={props.maxDate}\n adapter={adapter}\n onYearSelect={handleYearSelect}\n classNames={classNames}\n />\n </div>\n ))}\n {view === 'days' && calendars.map((calendar, index) => (\n <div\n key={`${calendar.month}-${calendar.year}`}\n ref={index === 0 ? daysContainerRef : undefined}\n role=\"grid\"\n aria-label={`${monthNames[calendar.month]} ${calendar.year}`}\n className={clsx('rmd-calendar-container', classNames?.calendarContainer)}\n >\n {calendars.length > 1 && (\n <div className={clsx('rmd-header', classNames?.header)}>\n <div className={clsx('rmd-nav-button-slot-start', classNames?.navButtonSlotStart)}>\n {index === 0 && calendars.length < 12 && (\n <button\n {...(wrappedGetBackProps({ calendars }) as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n className={clsx('rmd-nav-button', classNames?.navButton)}\n aria-label={t.back}\n >\n <ChevronLeftIcon />\n </button>\n )}\n </div>\n <span className={clsx('rmd-header-title-container', classNames?.headerTitleContainer)}>\n {monthNames[calendar.month]}\n {calendars.length < 12 ? ` ${calendar.year}` : ''}\n </span>\n <div className={clsx('rmd-nav-button-slot-end', classNames?.navButtonSlotEnd)}>\n {index === calendars.length - 1 && calendars.length < 12 && (\n <button\n {...(wrappedGetForwardProps({ calendars }) as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n className={clsx('rmd-nav-button', classNames?.navButton)}\n aria-label={t.forward}\n >\n <ChevronRightIcon />\n </button>\n )}\n </div>\n </div>\n )}\n <div role=\"row\" className={clsx('rmd-weekday-grid', classNames?.weekdayGrid)}>\n {sortedWeekdays.map((day) => (\n <div\n key={day}\n role=\"columnheader\"\n aria-label={day}\n className={clsx('rmd-weekday', classNames?.weekday)}\n >\n {day}\n </div>\n ))}\n </div>\n <div\n key={`daysGrid-${calendar.month}-${calendar.year}`}\n role=\"row\"\n className={clsx(\n 'rmd-days-grid',\n slideDirection === 'left' && 'rmd-slide-left',\n slideDirection === 'right' && 'rmd-slide-right',\n classNames?.daysGrid\n )}\n >\n {calendar.weeks.map((week, wi) =>\n week.map((dateObj, di) => {\n if (!dateObj) {\n return (\n <Day\n key={`${wi}-${di}`}\n dateObj={null}\n getDateProps={getDateProps}\n classNames={classNames}\n />\n );\n }\n\n const dateKey = getDateKey(dateObj.date);\n const isFocused = adapter.isSame(\n adapter.date(dateObj.date),\n adapter.date(currentFocusedDate),\n 'day'\n );\n\n return (\n <Day\n key={`${wi}-${di}`}\n dateObj={dateObj}\n getDateProps={getDateProps}\n dayProps={getDayProps?.(dateObj)}\n classNames={classNames}\n tabIndex={isFocused ? 0 : -1}\n adapter={adapter}\n locale={locale}\n onKeyDown={handleDayKeyDown}\n onFocus={(dObj) => {\n setFocusedDate(dObj.date);\n }}\n buttonRef={(el) => {\n if (el) {\n dayButtonRefs.current.set(dateKey, el);\n } else {\n dayButtonRefs.current.delete(dateKey);\n }\n }}\n />\n );\n })\n )}\n </div>\n </div>\n ))}\n </div>\n {footer && <div className={clsx('rmd-footer', classNames?.footer)}>{footer}</div>}\n </div>\n );\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
package/dist/index.css CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid;--tw-font-weight:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--rmd-color-gray-100:oklch(96.7% .003 264.542);--rmd-color-gray-400:oklch(70.7% .022 261.325);--rmd-color-white:#fff;--rmd-spacing:.25rem;--rmd-text-xs:.75rem;--rmd-text-xs--line-height:calc(1 / .75);--rmd-text-sm:.875rem;--rmd-text-sm--line-height:calc(1.25 / .875);--rmd-font-weight-medium:500;--rmd-font-weight-semibold:600;--rmd-radius-md:.375rem;--rmd-radius-lg:.5rem;--rmd-default-transition-duration:.15s;--rmd-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--rmd-color-brand-gold:#c5a059;--rmd-color-brand-gray-light:#b5bec6;--rmd-color-brand-text:#343a40;--rmd-animate-slide-in-top:slideInFromTop .2s ease-out forwards;--rmd-animate-slide-in-right:slideInRight .2s ease-out forwards;--rmd-animate-slide-in-left:slideInLeft .2s ease-out forwards}}@layer base;@layer components{.rmd-root{border-radius:var(--rmd-radius-lg);background-color:var(--rmd-color-white);width:fit-content;padding:calc(var(--rmd-spacing) * 4);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;display:flex}.rmd-header{border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--rmd-color-brand-gray-light);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.rmd-header{border-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 40%, transparent)}}.rmd-header{padding-bottom:calc(var(--rmd-spacing) * 2)}.rmd-header-multi-month{border-bottom-style:var(--tw-border-style);border-bottom-width:0;padding-bottom:0}.rmd-calendars-container{gap:calc(var(--rmd-spacing) * 4);flex-wrap:wrap;display:flex}.rmd-calendar-container{flex:1;min-width:240px;max-width:100%}.rmd-nav-button-slot-start{width:calc(var(--rmd-spacing) * 9);justify-content:flex-start;display:flex}.rmd-nav-button-slot-end{width:calc(var(--rmd-spacing) * 9);justify-content:flex-end;display:flex}.rmd-header-title-container{text-align:center;--tw-font-weight:var(--rmd-font-weight-semibold);font-weight:var(--rmd-font-weight-semibold);color:var(--rmd-color-brand-text);flex:1}.rmd-weekday-grid{margin-bottom:var(--rmd-spacing);gap:var(--rmd-spacing);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--rmd-color-brand-gray-light);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}@supports (color:color-mix(in lab, red, red)){.rmd-weekday-grid{border-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 40%, transparent)}}.rmd-weekday{padding-block:calc(var(--rmd-spacing) * 2);text-align:center;font-size:var(--rmd-text-xs);line-height:var(--tw-leading,var(--rmd-text-xs--line-height));color:var(--rmd-color-gray-400)}.rmd-days-grid{background-color:var(--rmd-color-brand-gray-light);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}@supports (color:color-mix(in lab, red, red)){.rmd-days-grid{background-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 20%, transparent)}}.rmd-footer{margin-top:calc(var(--rmd-spacing) * 4)}.rmd-sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rmd-nav-button{cursor:pointer;padding:calc(var(--rmd-spacing) * 2);color:var(--rmd-color-brand-text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration));border-radius:2147483647px}@media (hover:hover){.rmd-nav-button:hover{background-color:var(--rmd-color-gray-100)}}.rmd-nav-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-nav-button:disabled,.rmd-nav-button-hidden{pointer-events:none;visibility:hidden}.rmd-month-year-container{gap:calc(var(--rmd-spacing) * 8);display:flex}.rmd-month-year-label{align-items:center;gap:var(--rmd-spacing);--tw-font-weight:var(--rmd-font-weight-semibold);font-weight:var(--rmd-font-weight-semibold);color:var(--rmd-color-brand-text);display:flex}.rmd-month-year-button{cursor:pointer;padding-inline:calc(var(--rmd-spacing) * 2);padding-block:var(--rmd-spacing);border-radius:.25rem}@media (hover:hover){.rmd-month-year-button:hover{background-color:var(--rmd-color-gray-100)}}.rmd-month-year-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-day{aspect-ratio:1;font-size:var(--rmd-text-sm);line-height:var(--tw-leading,var(--rmd-text-sm--line-height));--tw-font-weight:var(--rmd-font-weight-medium);font-weight:var(--rmd-font-weight-medium);transition-property:all;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration));justify-content:center;align-items:center;padding:1px;display:flex;position:relative}.rmd-day:focus-visible{z-index:10;outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-day:enabled{cursor:pointer}.rmd-day-selected{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white);border-radius:2147483647px}.rmd-day-unselected{background-color:var(--rmd-color-white);color:var(--rmd-color-brand-text)}@media (hover:hover){.rmd-day-unselected:hover{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-day-unselected:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 25%, transparent)}}}.rmd-day-disabled{cursor:not-allowed;background-color:var(--rmd-color-white)}.rmd-day-empty{aspect-ratio:1;background-color:var(--rmd-color-white)}.rmd-day-range-start{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white);border-radius:2147483647px}.rmd-day-range-start.rmd-day-range-active{border-radius:2147483647px 0 0 2147483647px}.rmd-day-range-end{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white);border-radius:2147483647px}.rmd-day-range-end.rmd-day-range-active{border-radius:0 2147483647px 2147483647px 0}.rmd-day-range-between{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-day-range-between{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 25%, transparent)}}.rmd-day-range-between{color:var(--rmd-color-brand-text)}.rmd-day-range-hovering{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-day-range-hovering{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 25%, transparent)}}.rmd-day-range-hovering{color:var(--rmd-color-brand-text)}.rmd-months-grid{height:100%;animation:var(--rmd-animate-slide-in-top);align-items:center;gap:var(--rmd-spacing);grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rmd-month-button{cursor:pointer;border-radius:var(--rmd-radius-md);padding:var(--rmd-spacing);--tw-font-weight:var(--rmd-font-weight-medium);font-size:13px;font-weight:var(--rmd-font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration));justify-content:center;align-items:center;display:flex}@media (hover:hover){.rmd-month-button:hover{background-color:var(--rmd-color-brand-gray-light)}@supports (color:color-mix(in lab, red, red)){.rmd-month-button:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 30%, transparent)}}}.rmd-month-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-month-button:disabled{pointer-events:none;opacity:.3}.rmd-month-button-selected{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white)}@media (hover:hover){.rmd-month-button-selected:hover{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-month-button-selected:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 85%, transparent)}}.rmd-month-button-selected:hover{color:var(--rmd-color-white)}}.rmd-month-button-unselected{color:var(--rmd-color-brand-text)}.rmd-years-grid{height:100%;animation:var(--rmd-animate-slide-in-top);align-items:center;gap:var(--rmd-spacing);padding-right:calc(var(--rmd-spacing) * 2);scrollbar-width:thin;scrollbar-color:var(--color-brand-gray-light,#b5bec6) transparent;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow-y:auto}.rmd-years-grid::-webkit-scrollbar{width:6px}.rmd-years-grid::-webkit-scrollbar-track{background:0 0}.rmd-years-grid::-webkit-scrollbar-thumb{background-color:var(--color-brand-gray-light,#b5bec6);border-radius:9999px}.rmd-years-grid::-webkit-scrollbar-thumb:hover{background-color:var(--color-brand-gold,#c5a059)}.rmd-year-button{cursor:pointer;border-radius:var(--rmd-radius-md);padding-inline:calc(var(--rmd-spacing) * 2.5);padding-block:calc(var(--rmd-spacing) * 1.5);font-size:var(--rmd-text-sm);line-height:var(--tw-leading,var(--rmd-text-sm--line-height));--tw-font-weight:var(--rmd-font-weight-medium);font-weight:var(--rmd-font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration))}@media (hover:hover){.rmd-year-button:hover{background-color:var(--rmd-color-brand-gray-light)}@supports (color:color-mix(in lab, red, red)){.rmd-year-button:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 30%, transparent)}}}.rmd-year-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-year-button:disabled{pointer-events:none;opacity:.3}.rmd-year-button-selected{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white)}@media (hover:hover){.rmd-year-button-selected:hover{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-year-button-selected:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 85%, transparent)}}.rmd-year-button-selected:hover{color:var(--rmd-color-white)}}.rmd-year-button-unselected{color:var(--rmd-color-brand-text)}.rmd-slide-left{animation:var(--rmd-animate-slide-in-left)}.rmd-slide-right{animation:var(--rmd-animate-slide-in-right)}}@layer utilities;@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid;--tw-font-weight:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--rmd-color-gray-100:oklch(96.7% .003 264.542);--rmd-color-gray-400:oklch(70.7% .022 261.325);--rmd-color-white:#fff;--rmd-spacing:.25rem;--rmd-text-xs:.75rem;--rmd-text-xs--line-height:calc(1 / .75);--rmd-text-sm:.875rem;--rmd-text-sm--line-height:calc(1.25 / .875);--rmd-font-weight-medium:500;--rmd-font-weight-semibold:600;--rmd-radius-md:.375rem;--rmd-radius-lg:.5rem;--rmd-default-transition-duration:.15s;--rmd-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--rmd-color-brand-gold:#c5a059;--rmd-color-brand-gray-light:#b5bec6;--rmd-color-brand-text:#343a40;--rmd-animate-slide-in-top:slideInFromTop .2s ease-out forwards;--rmd-animate-slide-in-right:slideInRight .2s ease-out forwards;--rmd-animate-slide-in-left:slideInLeft .2s ease-out forwards}}@layer base{.rmd-root,.rmd-root *,.rmd-root :before,.rmd-root :after{box-sizing:border-box;border:0 solid}.rmd-root button,.rmd-root [type=button],.rmd-root [type=reset],.rmd-root [type=submit]{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;text-transform:none;appearance:button;cursor:pointer;background-color:#0000;background-image:none;border-style:none;margin:0;padding:0}.rmd-root button:disabled{cursor:default}.rmd-root svg{vertical-align:middle;display:block}.rmd-root h1,.rmd-root h2,.rmd-root h3,.rmd-root h4,.rmd-root h5,.rmd-root h6,.rmd-root p,.rmd-root ul,.rmd-root ol{margin:0;padding:0}}@layer components{.rmd-root{border-radius:var(--rmd-radius-lg);background-color:var(--rmd-color-white);width:fit-content;padding:calc(var(--rmd-spacing) * 4);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);flex-direction:column;display:flex}.rmd-header{border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--rmd-color-brand-gray-light);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.rmd-header{border-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 40%, transparent)}}.rmd-header{padding-bottom:calc(var(--rmd-spacing) * 2)}.rmd-header-multi-month{border-bottom-style:var(--tw-border-style);border-bottom-width:0;padding-bottom:0}.rmd-calendars-container{gap:calc(var(--rmd-spacing) * 4);flex-wrap:wrap;display:flex}.rmd-calendar-container{flex:1;min-width:240px;max-width:100%}.rmd-nav-button-slot-start{width:calc(var(--rmd-spacing) * 9);justify-content:flex-start;display:flex}.rmd-nav-button-slot-end{width:calc(var(--rmd-spacing) * 9);justify-content:flex-end;display:flex}.rmd-header-title-container{text-align:center;--tw-font-weight:var(--rmd-font-weight-semibold);font-weight:var(--rmd-font-weight-semibold);color:var(--rmd-color-brand-text);flex:1}.rmd-weekday-grid{margin-bottom:var(--rmd-spacing);gap:var(--rmd-spacing);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--rmd-color-brand-gray-light);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}@supports (color:color-mix(in lab, red, red)){.rmd-weekday-grid{border-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 40%, transparent)}}.rmd-weekday{padding-block:calc(var(--rmd-spacing) * 2);text-align:center;font-size:var(--rmd-text-xs);line-height:var(--tw-leading,var(--rmd-text-xs--line-height));color:var(--rmd-color-gray-400)}.rmd-days-grid{background-color:var(--rmd-color-brand-gray-light);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}@supports (color:color-mix(in lab, red, red)){.rmd-days-grid{background-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 20%, transparent)}}.rmd-footer{margin-top:calc(var(--rmd-spacing) * 4)}.rmd-sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rmd-nav-button{cursor:pointer;padding:calc(var(--rmd-spacing) * 2);color:var(--rmd-color-brand-text);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration));border-radius:2147483647px}@media (hover:hover){.rmd-nav-button:hover{background-color:var(--rmd-color-gray-100)}}.rmd-nav-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-nav-button:disabled,.rmd-nav-button-hidden{pointer-events:none;visibility:hidden}.rmd-month-year-container{gap:calc(var(--rmd-spacing) * 8);display:flex}.rmd-month-year-label{align-items:center;gap:var(--rmd-spacing);--tw-font-weight:var(--rmd-font-weight-semibold);font-weight:var(--rmd-font-weight-semibold);color:var(--rmd-color-brand-text);display:flex}.rmd-month-year-button{cursor:pointer;padding-inline:calc(var(--rmd-spacing) * 2);padding-block:var(--rmd-spacing);border-radius:.25rem}@media (hover:hover){.rmd-month-year-button:hover{background-color:var(--rmd-color-gray-100)}}.rmd-month-year-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-day{aspect-ratio:1;font-size:var(--rmd-text-sm);line-height:var(--tw-leading,var(--rmd-text-sm--line-height));--tw-font-weight:var(--rmd-font-weight-medium);font-weight:var(--rmd-font-weight-medium);transition-property:all;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration));justify-content:center;align-items:center;padding:1px;display:flex;position:relative}.rmd-day:focus-visible{z-index:10;outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-day:enabled{cursor:pointer}.rmd-day-selected{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white);border-radius:2147483647px}.rmd-day-unselected{background-color:var(--rmd-color-white);color:var(--rmd-color-brand-text)}@media (hover:hover){.rmd-day-unselected:hover{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-day-unselected:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 25%, transparent)}}}.rmd-day-disabled{cursor:not-allowed;background-color:var(--rmd-color-white)}.rmd-day-today{border-style:var(--tw-border-style);border-width:1px;border-color:var(--rmd-color-brand-gold)}.rmd-day-outside{pointer-events:none;color:#0000!important}.rmd-day-empty{aspect-ratio:1;background-color:var(--rmd-color-white)}.rmd-day-range-start{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white);border-radius:2147483647px}.rmd-day-range-start.rmd-day-range-active{border-radius:2147483647px 0 0 2147483647px}.rmd-day-range-end{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white);border-radius:2147483647px}.rmd-day-range-end.rmd-day-range-active{border-radius:0 2147483647px 2147483647px 0}.rmd-day-range-between{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-day-range-between{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 25%, transparent)}}.rmd-day-range-between{color:var(--rmd-color-brand-text)}.rmd-day-range-hovering{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-day-range-hovering{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 25%, transparent)}}.rmd-day-range-hovering{color:var(--rmd-color-brand-text)}.rmd-months-grid{height:100%;animation:var(--rmd-animate-slide-in-top);align-items:center;gap:var(--rmd-spacing);grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rmd-month-button{cursor:pointer;border-radius:var(--rmd-radius-md);padding:var(--rmd-spacing);--tw-font-weight:var(--rmd-font-weight-medium);font-size:13px;font-weight:var(--rmd-font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration));justify-content:center;align-items:center;display:flex}@media (hover:hover){.rmd-month-button:hover{background-color:var(--rmd-color-brand-gray-light)}@supports (color:color-mix(in lab, red, red)){.rmd-month-button:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 30%, transparent)}}}.rmd-month-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-month-button:disabled{pointer-events:none;opacity:.3}.rmd-month-button-selected{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white)}@media (hover:hover){.rmd-month-button-selected:hover{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-month-button-selected:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 85%, transparent)}}.rmd-month-button-selected:hover{color:var(--rmd-color-white)}}.rmd-month-button-unselected{color:var(--rmd-color-brand-text)}.rmd-years-grid{height:100%;animation:var(--rmd-animate-slide-in-top);align-items:center;gap:var(--rmd-spacing);padding-right:calc(var(--rmd-spacing) * 2);scrollbar-width:thin;scrollbar-color:var(--color-brand-gray-light,#b5bec6) transparent;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow-y:auto}.rmd-years-grid::-webkit-scrollbar{width:6px}.rmd-years-grid::-webkit-scrollbar-track{background:0 0}.rmd-years-grid::-webkit-scrollbar-thumb{background-color:var(--color-brand-gray-light,#b5bec6);border-radius:9999px}.rmd-years-grid::-webkit-scrollbar-thumb:hover{background-color:var(--color-brand-gold,#c5a059)}.rmd-year-button{cursor:pointer;border-radius:var(--rmd-radius-md);padding-inline:calc(var(--rmd-spacing) * 2.5);padding-block:calc(var(--rmd-spacing) * 1.5);font-size:var(--rmd-text-sm);line-height:var(--tw-leading,var(--rmd-text-sm--line-height));--tw-font-weight:var(--rmd-font-weight-medium);font-weight:var(--rmd-font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--rmd-default-transition-timing-function));transition-duration:var(--tw-duration,var(--rmd-default-transition-duration))}@media (hover:hover){.rmd-year-button:hover{background-color:var(--rmd-color-brand-gray-light)}@supports (color:color-mix(in lab, red, red)){.rmd-year-button:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gray-light) 30%, transparent)}}}.rmd-year-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--rmd-color-brand-gold)}.rmd-year-button:disabled{pointer-events:none;opacity:.3}.rmd-year-button-selected{background-color:var(--rmd-color-brand-gold);color:var(--rmd-color-white)}@media (hover:hover){.rmd-year-button-selected:hover{background-color:var(--rmd-color-brand-gold)}@supports (color:color-mix(in lab, red, red)){.rmd-year-button-selected:hover{background-color:color-mix(in oklab, var(--rmd-color-brand-gold) 85%, transparent)}}.rmd-year-button-selected:hover{color:var(--rmd-color-white)}}.rmd-year-button-unselected{color:var(--rmd-color-brand-text)}.rmd-slide-left{animation:var(--rmd-animate-slide-in-left)}.rmd-slide-right{animation:var(--rmd-animate-slide-in-right)}}@layer utilities;@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
3
3
  /*$vite$:1*/
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as e, r as t, t as n } from "./useDates-BVAPuyDo.js";
1
+ import { n as e, r as t, t as n } from "./useDates-Fd8zg58E.js";
2
2
  import { addMonth as r, composeEventHandlers as i, getCalendars as a, isBackDisabled as o, isForwardDisabled as s, subtractMonth as c } from "./utils.js";
3
3
  import { useEffect as l, useMemo as u, useRef as d, useState as f } from "react";
4
4
  import { jsx as p, jsxs as m } from "react/jsx-runtime";