import clsx from 'clsx'; import Days from './MonthView/Days.js'; import Weekdays from './MonthView/Weekdays.js'; import WeekNumbers from './MonthView/WeekNumbers.js'; import { CALENDAR_TYPE_LOCALES, CALENDAR_TYPES } from './shared/const.js'; import type { CalendarType } from './shared/types.js'; function getCalendarTypeFromLocale(locale: string | undefined): CalendarType { if (locale) { for (const [calendarType, locales] of Object.entries(CALENDAR_TYPE_LOCALES)) { if (locales.includes(locale)) { return calendarType as CalendarType; } } } return CALENDAR_TYPES.ISO_8601; } type MonthViewProps = { /** * Type of calendar that should be used. Can be `'gregory`, `'hebrew'`, `'islamic'`, `'iso8601'`. Setting to `"gregory"` or `"hebrew"` will change the first day of the week to Sunday. Setting to `"islamic"` will change the first day of the week to Saturday. Setting to `"islamic"` or `"hebrew"` will make weekends appear on Friday to Saturday. * * @example 'iso8601' */ calendarType?: CalendarType; /** * Whether week numbers shall be shown at the left of MonthView or not. * * @default false * @example true */ showWeekNumbers?: boolean; /** * Render a custom month view. * * @example (props, state) =>