react-calendar-kit
Version:
React Calendar Kit is a powerful and flexible library for building accessible and highly customizable calendar and date/time picker components in your React applications. React Calendar Kit provides a solid foundation for creating inclusive user experienc
3 lines (2 loc) • 1.8 kB
JavaScript
'use client';
import{b as e}from"./chunk-WABH67VC.mjs";import o,{useRef as x}from"react";import{getDayOfWeek as H,isSameDay as y,isSameMonth as g,isToday as L}from"@internationalized/date";import{useCalendarCell as I}from"@react-aria/calendar";import{useFocusRing as T}from"@react-aria/focus";import{useLocale as V}from"@react-aria/i18n";import{useHover as W}from"@react-aria/interactions";import{mergeProps as w}from"@react-aria/utils";function Q({isPickerVisible:f,classNames:r,styles:b,state:t,currentMonth:d,...a}){let{locale:u}=V(),c=x(null),{cellProps:h,buttonProps:S,isPressed:P,isSelected:l,isDisabled:s,isFocused:p,isInvalid:n,formattedDate:v}=I({...a,date:a.date,isDisabled:!g(a.date,d)||f},t,c),m=t.isCellUnavailable(a.date),D=!s&&!n&&t.isCellUnavailable(a.date.add({days:1})),R=!s&&!n&&t.isCellUnavailable(a.date.subtract({days:1})),i="highlightedRange"in t&&t.highlightedRange,B=l&&i&&y(a.date,i.start),E=l&&i&&y(a.date,i.end),C=H(a.date,u),O=l&&(R||C===0||a.date.day===1),A=l&&(D||C===6||a.date.day===d.calendar.getDaysInMonth(d)),{focusProps:F,isFocusVisible:N}=T(),{hoverProps:U,isHovered:k}=W({isDisabled:s||m||t.isReadOnly});return o.createElement("td",{...h,role:"grid-body-cell",className:r.gridBodyCell},o.createElement("span",{...w(S,U,F),className:r.cellButton,style:b?.cellButton,ref:c,role:"button","data-disabled":e(s&&!n),"data-focus-visible":e(p&&N),"data-hover":e(k),"data-invalid":e(n),"data-outside-month":e(!g(a.date,d)),"data-pressed":e(P&&!t.isReadOnly),"data-range-end":e(A),"data-range-selection":e(l&&"highlightedRange"in t),"data-range-start":e(O),"data-readonly":e(t.isReadOnly),"data-selected":e(l),"data-selection-end":e(E),"data-selection-start":e(B),"data-today":e(L(a.date,t.timeZone)),"data-unavailable":e(m)},o.createElement("span",null,v)))}export{Q as a};