@mantine/dates 3.5.4 → 3.5.5

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.
@@ -77,7 +77,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
77
77
  previousMonthLabel,
78
78
  previousYearLabel,
79
79
  labelFormat = "MMMM YYYY",
80
- hideOutsideDates
80
+ hideOutsideDates,
81
+ isDateInRange,
82
+ isDateFirstInRange,
83
+ isDateLastInRange
81
84
  } = _b, others = __objRest(_b, [
82
85
  "className",
83
86
  "classNames",
@@ -112,7 +115,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
112
115
  "previousMonthLabel",
113
116
  "previousYearLabel",
114
117
  "labelFormat",
115
- "hideOutsideDates"
118
+ "hideOutsideDates",
119
+ "isDateInRange",
120
+ "isDateFirstInRange",
121
+ "isDateLastInRange"
116
122
  ]);
117
123
  const [selectionState, setSelectionState] = React.useState(initialLevel);
118
124
  const { classes, cx, theme } = CalendarBase_styles['default']({ size, fullWidth, amountOfMonths: selectionState === "date" ? amountOfMonths : 1 }, { name: __staticSelector, styles, classNames });
@@ -235,7 +241,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
235
241
  previousMonthLabel,
236
242
  labelFormat,
237
243
  onDayMouseEnter,
238
- hideOutsideDates
244
+ hideOutsideDates,
245
+ isDateInRange,
246
+ isDateFirstInRange,
247
+ isDateLastInRange
239
248
  }));
240
249
  });
241
250
  CalendarBase.displayName = "@mantine/dates/CalendarBase";
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":["forwardRef","useState","useStyles","useRef","useUncontrolled","React","Box","YearPicker","MonthPicker","MonthsList"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n isDateInRange,\n isDateFirstInRange,\n isDateLastInRange,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n isDateInRange={isDateInRange}\n isDateFirstInRange={isDateFirstInRange}\n isDateLastInRange={isDateLastInRange}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":["forwardRef","useState","useStyles","useRef","useUncontrolled","React","Box","YearPicker","MonthPicker","MonthsList"],"mappings":"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"}
@@ -46,8 +46,7 @@ var __objRest = (source, exclude) => {
46
46
  }
47
47
  return target;
48
48
  };
49
- const noop = () => {
50
- };
49
+ const no = () => false;
51
50
  const Month = React.forwardRef((_a, ref) => {
52
51
  var _b = _a, {
53
52
  className,
@@ -74,7 +73,10 @@ const Month = React.forwardRef((_a, ref) => {
74
73
  firstDayOfWeek = "monday",
75
74
  onDayKeyDown,
76
75
  daysRefs,
77
- hideOutsideDates = false
76
+ hideOutsideDates = false,
77
+ isDateInRange = no,
78
+ isDateFirstInRange = no,
79
+ isDateLastInRange = no
78
80
  } = _b, others = __objRest(_b, [
79
81
  "className",
80
82
  "month",
@@ -100,7 +102,10 @@ const Month = React.forwardRef((_a, ref) => {
100
102
  "firstDayOfWeek",
101
103
  "onDayKeyDown",
102
104
  "daysRefs",
103
- "hideOutsideDates"
105
+ "hideOutsideDates",
106
+ "isDateInRange",
107
+ "isDateFirstInRange",
108
+ "isDateLastInRange"
104
109
  ]);
105
110
  const { classes, cx, theme } = Month_styles['default']({ fullWidth }, { classNames, styles, name: __staticSelector });
106
111
  const finalLocale = locale || theme.datesLocale;
@@ -145,9 +150,9 @@ const Month = React.forwardRef((_a, ref) => {
145
150
  value: date,
146
151
  outside: dayProps.outside,
147
152
  weekend: dayProps.weekend,
148
- inRange: dayProps.inRange,
149
- firstInRange: dayProps.firstInRange,
150
- lastInRange: dayProps.lastInRange,
153
+ inRange: dayProps.inRange || isDateInRange(date, dayProps),
154
+ firstInRange: dayProps.firstInRange || isDateFirstInRange(date, dayProps),
155
+ lastInRange: dayProps.lastInRange || isDateLastInRange(date, dayProps),
151
156
  firstInMonth: hideOutsideDates ? isSameDate.isSameDate(date, dayjs__default(month).startOf("month").toDate()) : cellIndex === 0 && rowIndex === 0,
152
157
  selected: dayProps.selected || dayProps.selectedInRange,
153
158
  hasValue: hasValueInMonthRange,
@@ -155,7 +160,7 @@ const Month = React.forwardRef((_a, ref) => {
155
160
  className: typeof dayClassName === "function" ? dayClassName(date, dayProps) : null,
156
161
  style: typeof dayStyle === "function" ? dayStyle(date, dayProps) : null,
157
162
  disabled: dayProps.disabled,
158
- onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : noop,
163
+ onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : no,
159
164
  size,
160
165
  fullWidth,
161
166
  focusable,
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst noop = () => {};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":["forwardRef","useStyles","getMonthDays","getWeekdaysNames","React","Text","upperFirst","dayjs","getDayProps","Day","isSameDate","Box"],"mappings":"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"}
1
+ {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n\n /** Should date be displayed as in range */\n isDateInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as first in range */\n isDateFirstInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as last in range */\n isDateLastInRange?(date: Date, modifiers: DayModifiers): boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst no = () => false;\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n isDateInRange = no,\n isDateFirstInRange = no,\n isDateLastInRange = no,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange || isDateInRange(date, dayProps)}\n firstInRange={dayProps.firstInRange || isDateFirstInRange(date, dayProps)}\n lastInRange={dayProps.lastInRange || isDateLastInRange(date, dayProps)}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : no}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":["forwardRef","useStyles","getMonthDays","getWeekdaysNames","React","Text","upperFirst","dayjs","getDayProps","Day","isSameDate","Box"],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var core = require('@mantine/core');
7
6
  var dayjs = require('dayjs');
8
7
  var isSameDate = require('../../utils/is-same-date/is-same-date.js');
9
8
  var CalendarBase = require('../CalendarBase/CalendarBase.js');
@@ -14,8 +13,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
13
  var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
15
14
 
16
15
  var __defProp = Object.defineProperty;
17
- var __defProps = Object.defineProperties;
18
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
19
16
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
20
17
  var __hasOwnProp = Object.prototype.hasOwnProperty;
21
18
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -31,7 +28,6 @@ var __spreadValues = (a, b) => {
31
28
  }
32
29
  return a;
33
30
  };
34
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
35
31
  var __objRest = (source, exclude) => {
36
32
  var target = {};
37
33
  for (var prop in source)
@@ -62,7 +58,6 @@ const RangeCalendar = React.forwardRef((_a, ref) => {
62
58
  "allowSingleDateInRange",
63
59
  "amountOfMonths"
64
60
  ]);
65
- const theme = core.useMantineTheme();
66
61
  const [hoveredDay, setHoveredDay] = React.useState(null);
67
62
  const [pickedDate, setPickedDate] = React.useState(null);
68
63
  const setRangeDate = (date) => {
@@ -94,18 +89,24 @@ const RangeCalendar = React.forwardRef((_a, ref) => {
94
89
  }
95
90
  return false;
96
91
  };
97
- const dayStyles = (date, modifiers) => {
98
- const initialStyles = typeof dayStyle === "function" ? dayStyle(date, modifiers) : null;
99
- if (shouldHighlightDate(date, modifiers)) {
100
- return __spreadProps(__spreadValues({}, initialStyles), {
101
- backgroundColor: theme.colorScheme === "dark" ? theme.fn.rgba(theme.colors[theme.primaryColor][9], 0.3) : theme.colors[theme.primaryColor][0],
102
- borderRadius: 0
103
- });
92
+ const isPickedDateFirstInRange = (date, modifiers) => {
93
+ if (pickedDate instanceof Date && hoveredDay instanceof Date) {
94
+ const result = [hoveredDay, pickedDate];
95
+ result.sort((a, b) => a.getTime() - b.getTime());
96
+ return modifiers.selected && dayjs__default(date).isBefore(result[1]);
104
97
  }
105
- return __spreadValues({}, initialStyles);
98
+ return false;
99
+ };
100
+ const isPickedDateLastInRange = (date, modifiers) => {
101
+ if (pickedDate instanceof Date && hoveredDay instanceof Date) {
102
+ const result = [hoveredDay, pickedDate];
103
+ result.sort((a, b) => a.getTime() - b.getTime());
104
+ return modifiers.selected && dayjs__default(date).isAfter(result[0]);
105
+ }
106
+ return false;
106
107
  };
107
108
  return /* @__PURE__ */ React__default.createElement(CalendarBase.CalendarBase, __spreadValues({
108
- dayStyle: dayStyles,
109
+ dayStyle,
109
110
  onMouseLeave: handleMouseLeave,
110
111
  onDayMouseEnter: (date) => setHoveredDay(date),
111
112
  onChange: setRangeDate,
@@ -114,7 +115,10 @@ const RangeCalendar = React.forwardRef((_a, ref) => {
114
115
  ref,
115
116
  __staticSelector,
116
117
  amountOfMonths,
117
- hideOutsideDates: amountOfMonths > 1
118
+ hideOutsideDates: amountOfMonths > 1,
119
+ isDateInRange: shouldHighlightDate,
120
+ isDateFirstInRange: isPickedDateFirstInRange,
121
+ isDateLastInRange: isPickedDateLastInRange
118
122
  }, others));
119
123
  });
120
124
  RangeCalendar.displayName = "@mantine/dates/RangeCalendar";
@@ -1 +1 @@
1
- {"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { DayModifiers } from '../Month';\nimport { CalendarBase, CalendarBaseProps } from '../CalendarBase/CalendarBase';\n\nexport interface RangeCalendarProps extends Omit<CalendarBaseProps, 'value' | 'onChange'> {\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n value,\n onChange,\n dayStyle,\n onMouseLeave,\n __staticSelector = 'RangeCalendar',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: RangeCalendarProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const [hoveredDay, setHoveredDay] = useState<Date>(null);\n const [pickedDate, setPickedDate] = useState<Date>(null);\n\n const setRangeDate = (date: Date) => {\n if (pickedDate instanceof Date) {\n if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDay(null);\n return null;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n onChange(result);\n setPickedDate(null);\n return null;\n }\n\n onChange([null, null]);\n setPickedDate(date);\n return null;\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n setHoveredDay(null);\n };\n\n const shouldHighlightDate = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return (\n !modifiers.selected &&\n dayjs(date).subtract(1, 'day').isBefore(result[1]) &&\n dayjs(date).add(1, 'day').isAfter(result[0])\n );\n }\n\n return false;\n };\n\n const dayStyles = (date: Date, modifiers: DayModifiers) => {\n const initialStyles = typeof dayStyle === 'function' ? dayStyle(date, modifiers) : null;\n\n if (shouldHighlightDate(date, modifiers)) {\n return {\n ...initialStyles,\n backgroundColor:\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][9], 0.3)\n : theme.colors[theme.primaryColor][0],\n borderRadius: 0,\n };\n }\n\n return { ...initialStyles };\n };\n\n return (\n <CalendarBase\n dayStyle={dayStyles}\n onMouseLeave={handleMouseLeave}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n onChange={setRangeDate}\n value={pickedDate}\n range={value}\n ref={ref}\n __staticSelector={__staticSelector}\n amountOfMonths={amountOfMonths}\n hideOutsideDates={amountOfMonths > 1}\n {...others}\n />\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":["forwardRef","useMantineTheme","useState","isSameDate","dayjs","React","CalendarBase"],"mappings":"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"}
1
+ {"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { DayModifiers } from '../Month';\nimport { CalendarBase, CalendarBaseProps } from '../CalendarBase/CalendarBase';\n\nexport interface RangeCalendarProps extends Omit<CalendarBaseProps, 'value' | 'onChange'> {\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n value,\n onChange,\n dayStyle,\n onMouseLeave,\n __staticSelector = 'RangeCalendar',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: RangeCalendarProps,\n ref\n ) => {\n const [hoveredDay, setHoveredDay] = useState<Date>(null);\n const [pickedDate, setPickedDate] = useState<Date>(null);\n\n const setRangeDate = (date: Date) => {\n if (pickedDate instanceof Date) {\n if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDay(null);\n return null;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n onChange(result);\n setPickedDate(null);\n return null;\n }\n\n onChange([null, null]);\n setPickedDate(date);\n return null;\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n setHoveredDay(null);\n };\n\n const shouldHighlightDate = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return (\n !modifiers.selected &&\n dayjs(date).subtract(1, 'day').isBefore(result[1]) &&\n dayjs(date).add(1, 'day').isAfter(result[0])\n );\n }\n\n return false;\n };\n\n const isPickedDateFirstInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isBefore(result[1]);\n }\n\n return false;\n };\n\n const isPickedDateLastInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isAfter(result[0]);\n }\n\n return false;\n };\n\n return (\n <CalendarBase\n dayStyle={dayStyle}\n onMouseLeave={handleMouseLeave}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n onChange={setRangeDate}\n value={pickedDate}\n range={value}\n ref={ref}\n __staticSelector={__staticSelector}\n amountOfMonths={amountOfMonths}\n hideOutsideDates={amountOfMonths > 1}\n isDateInRange={shouldHighlightDate}\n isDateFirstInRange={isPickedDateFirstInRange}\n isDateLastInRange={isPickedDateLastInRange}\n {...others}\n />\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":["forwardRef","useState","isSameDate","dayjs","React","CalendarBase"],"mappings":"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"}
@@ -69,7 +69,10 @@ const CalendarBase = forwardRef((_a, ref) => {
69
69
  previousMonthLabel,
70
70
  previousYearLabel,
71
71
  labelFormat = "MMMM YYYY",
72
- hideOutsideDates
72
+ hideOutsideDates,
73
+ isDateInRange,
74
+ isDateFirstInRange,
75
+ isDateLastInRange
73
76
  } = _b, others = __objRest(_b, [
74
77
  "className",
75
78
  "classNames",
@@ -104,7 +107,10 @@ const CalendarBase = forwardRef((_a, ref) => {
104
107
  "previousMonthLabel",
105
108
  "previousYearLabel",
106
109
  "labelFormat",
107
- "hideOutsideDates"
110
+ "hideOutsideDates",
111
+ "isDateInRange",
112
+ "isDateFirstInRange",
113
+ "isDateLastInRange"
108
114
  ]);
109
115
  const [selectionState, setSelectionState] = useState(initialLevel);
110
116
  const { classes, cx, theme } = useStyles({ size, fullWidth, amountOfMonths: selectionState === "date" ? amountOfMonths : 1 }, { name: __staticSelector, styles, classNames });
@@ -227,7 +233,10 @@ const CalendarBase = forwardRef((_a, ref) => {
227
233
  previousMonthLabel,
228
234
  labelFormat,
229
235
  onDayMouseEnter,
230
- hideOutsideDates
236
+ hideOutsideDates,
237
+ isDateInRange,
238
+ isDateFirstInRange,
239
+ isDateLastInRange
231
240
  }));
232
241
  });
233
242
  CalendarBase.displayName = "@mantine/dates/CalendarBase";
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n isDateInRange,\n isDateFirstInRange,\n isDateLastInRange,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n isDateInRange={isDateInRange}\n isDateFirstInRange={isDateFirstInRange}\n isDateLastInRange={isDateLastInRange}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":[],"mappings":"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"}
@@ -37,8 +37,7 @@ var __objRest = (source, exclude) => {
37
37
  }
38
38
  return target;
39
39
  };
40
- const noop = () => {
41
- };
40
+ const no = () => false;
42
41
  const Month = forwardRef((_a, ref) => {
43
42
  var _b = _a, {
44
43
  className,
@@ -65,7 +64,10 @@ const Month = forwardRef((_a, ref) => {
65
64
  firstDayOfWeek = "monday",
66
65
  onDayKeyDown,
67
66
  daysRefs,
68
- hideOutsideDates = false
67
+ hideOutsideDates = false,
68
+ isDateInRange = no,
69
+ isDateFirstInRange = no,
70
+ isDateLastInRange = no
69
71
  } = _b, others = __objRest(_b, [
70
72
  "className",
71
73
  "month",
@@ -91,7 +93,10 @@ const Month = forwardRef((_a, ref) => {
91
93
  "firstDayOfWeek",
92
94
  "onDayKeyDown",
93
95
  "daysRefs",
94
- "hideOutsideDates"
96
+ "hideOutsideDates",
97
+ "isDateInRange",
98
+ "isDateFirstInRange",
99
+ "isDateLastInRange"
95
100
  ]);
96
101
  const { classes, cx, theme } = useStyles({ fullWidth }, { classNames, styles, name: __staticSelector });
97
102
  const finalLocale = locale || theme.datesLocale;
@@ -136,9 +141,9 @@ const Month = forwardRef((_a, ref) => {
136
141
  value: date,
137
142
  outside: dayProps.outside,
138
143
  weekend: dayProps.weekend,
139
- inRange: dayProps.inRange,
140
- firstInRange: dayProps.firstInRange,
141
- lastInRange: dayProps.lastInRange,
144
+ inRange: dayProps.inRange || isDateInRange(date, dayProps),
145
+ firstInRange: dayProps.firstInRange || isDateFirstInRange(date, dayProps),
146
+ lastInRange: dayProps.lastInRange || isDateLastInRange(date, dayProps),
142
147
  firstInMonth: hideOutsideDates ? isSameDate(date, dayjs(month).startOf("month").toDate()) : cellIndex === 0 && rowIndex === 0,
143
148
  selected: dayProps.selected || dayProps.selectedInRange,
144
149
  hasValue: hasValueInMonthRange,
@@ -146,7 +151,7 @@ const Month = forwardRef((_a, ref) => {
146
151
  className: typeof dayClassName === "function" ? dayClassName(date, dayProps) : null,
147
152
  style: typeof dayStyle === "function" ? dayStyle(date, dayProps) : null,
148
153
  disabled: dayProps.disabled,
149
- onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : noop,
154
+ onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : no,
150
155
  size,
151
156
  fullWidth,
152
157
  focusable,
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst noop = () => {};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n\n /** Should date be displayed as in range */\n isDateInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as first in range */\n isDateFirstInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as last in range */\n isDateLastInRange?(date: Date, modifiers: DayModifiers): boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst no = () => false;\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n isDateInRange = no,\n isDateFirstInRange = no,\n isDateLastInRange = no,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange || isDateInRange(date, dayProps)}\n firstInRange={dayProps.firstInRange || isDateFirstInRange(date, dayProps)}\n lastInRange={dayProps.lastInRange || isDateLastInRange(date, dayProps)}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : no}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,9 @@
1
1
  import React, { forwardRef, useState } from 'react';
2
- import { useMantineTheme } from '@mantine/core';
3
2
  import dayjs from 'dayjs';
4
3
  import { isSameDate } from '../../utils/is-same-date/is-same-date.js';
5
4
  import { CalendarBase } from '../CalendarBase/CalendarBase.js';
6
5
 
7
6
  var __defProp = Object.defineProperty;
8
- var __defProps = Object.defineProperties;
9
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
7
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
9
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -22,7 +19,6 @@ var __spreadValues = (a, b) => {
22
19
  }
23
20
  return a;
24
21
  };
25
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
22
  var __objRest = (source, exclude) => {
27
23
  var target = {};
28
24
  for (var prop in source)
@@ -53,7 +49,6 @@ const RangeCalendar = forwardRef((_a, ref) => {
53
49
  "allowSingleDateInRange",
54
50
  "amountOfMonths"
55
51
  ]);
56
- const theme = useMantineTheme();
57
52
  const [hoveredDay, setHoveredDay] = useState(null);
58
53
  const [pickedDate, setPickedDate] = useState(null);
59
54
  const setRangeDate = (date) => {
@@ -85,18 +80,24 @@ const RangeCalendar = forwardRef((_a, ref) => {
85
80
  }
86
81
  return false;
87
82
  };
88
- const dayStyles = (date, modifiers) => {
89
- const initialStyles = typeof dayStyle === "function" ? dayStyle(date, modifiers) : null;
90
- if (shouldHighlightDate(date, modifiers)) {
91
- return __spreadProps(__spreadValues({}, initialStyles), {
92
- backgroundColor: theme.colorScheme === "dark" ? theme.fn.rgba(theme.colors[theme.primaryColor][9], 0.3) : theme.colors[theme.primaryColor][0],
93
- borderRadius: 0
94
- });
83
+ const isPickedDateFirstInRange = (date, modifiers) => {
84
+ if (pickedDate instanceof Date && hoveredDay instanceof Date) {
85
+ const result = [hoveredDay, pickedDate];
86
+ result.sort((a, b) => a.getTime() - b.getTime());
87
+ return modifiers.selected && dayjs(date).isBefore(result[1]);
95
88
  }
96
- return __spreadValues({}, initialStyles);
89
+ return false;
90
+ };
91
+ const isPickedDateLastInRange = (date, modifiers) => {
92
+ if (pickedDate instanceof Date && hoveredDay instanceof Date) {
93
+ const result = [hoveredDay, pickedDate];
94
+ result.sort((a, b) => a.getTime() - b.getTime());
95
+ return modifiers.selected && dayjs(date).isAfter(result[0]);
96
+ }
97
+ return false;
97
98
  };
98
99
  return /* @__PURE__ */ React.createElement(CalendarBase, __spreadValues({
99
- dayStyle: dayStyles,
100
+ dayStyle,
100
101
  onMouseLeave: handleMouseLeave,
101
102
  onDayMouseEnter: (date) => setHoveredDay(date),
102
103
  onChange: setRangeDate,
@@ -105,7 +106,10 @@ const RangeCalendar = forwardRef((_a, ref) => {
105
106
  ref,
106
107
  __staticSelector,
107
108
  amountOfMonths,
108
- hideOutsideDates: amountOfMonths > 1
109
+ hideOutsideDates: amountOfMonths > 1,
110
+ isDateInRange: shouldHighlightDate,
111
+ isDateFirstInRange: isPickedDateFirstInRange,
112
+ isDateLastInRange: isPickedDateLastInRange
109
113
  }, others));
110
114
  });
111
115
  RangeCalendar.displayName = "@mantine/dates/RangeCalendar";
@@ -1 +1 @@
1
- {"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { DayModifiers } from '../Month';\nimport { CalendarBase, CalendarBaseProps } from '../CalendarBase/CalendarBase';\n\nexport interface RangeCalendarProps extends Omit<CalendarBaseProps, 'value' | 'onChange'> {\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n value,\n onChange,\n dayStyle,\n onMouseLeave,\n __staticSelector = 'RangeCalendar',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: RangeCalendarProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const [hoveredDay, setHoveredDay] = useState<Date>(null);\n const [pickedDate, setPickedDate] = useState<Date>(null);\n\n const setRangeDate = (date: Date) => {\n if (pickedDate instanceof Date) {\n if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDay(null);\n return null;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n onChange(result);\n setPickedDate(null);\n return null;\n }\n\n onChange([null, null]);\n setPickedDate(date);\n return null;\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n setHoveredDay(null);\n };\n\n const shouldHighlightDate = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return (\n !modifiers.selected &&\n dayjs(date).subtract(1, 'day').isBefore(result[1]) &&\n dayjs(date).add(1, 'day').isAfter(result[0])\n );\n }\n\n return false;\n };\n\n const dayStyles = (date: Date, modifiers: DayModifiers) => {\n const initialStyles = typeof dayStyle === 'function' ? dayStyle(date, modifiers) : null;\n\n if (shouldHighlightDate(date, modifiers)) {\n return {\n ...initialStyles,\n backgroundColor:\n theme.colorScheme === 'dark'\n ? theme.fn.rgba(theme.colors[theme.primaryColor][9], 0.3)\n : theme.colors[theme.primaryColor][0],\n borderRadius: 0,\n };\n }\n\n return { ...initialStyles };\n };\n\n return (\n <CalendarBase\n dayStyle={dayStyles}\n onMouseLeave={handleMouseLeave}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n onChange={setRangeDate}\n value={pickedDate}\n range={value}\n ref={ref}\n __staticSelector={__staticSelector}\n amountOfMonths={amountOfMonths}\n hideOutsideDates={amountOfMonths > 1}\n {...others}\n />\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { DayModifiers } from '../Month';\nimport { CalendarBase, CalendarBaseProps } from '../CalendarBase/CalendarBase';\n\nexport interface RangeCalendarProps extends Omit<CalendarBaseProps, 'value' | 'onChange'> {\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n value,\n onChange,\n dayStyle,\n onMouseLeave,\n __staticSelector = 'RangeCalendar',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: RangeCalendarProps,\n ref\n ) => {\n const [hoveredDay, setHoveredDay] = useState<Date>(null);\n const [pickedDate, setPickedDate] = useState<Date>(null);\n\n const setRangeDate = (date: Date) => {\n if (pickedDate instanceof Date) {\n if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDay(null);\n return null;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n onChange(result);\n setPickedDate(null);\n return null;\n }\n\n onChange([null, null]);\n setPickedDate(date);\n return null;\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n setHoveredDay(null);\n };\n\n const shouldHighlightDate = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return (\n !modifiers.selected &&\n dayjs(date).subtract(1, 'day').isBefore(result[1]) &&\n dayjs(date).add(1, 'day').isAfter(result[0])\n );\n }\n\n return false;\n };\n\n const isPickedDateFirstInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isBefore(result[1]);\n }\n\n return false;\n };\n\n const isPickedDateLastInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isAfter(result[0]);\n }\n\n return false;\n };\n\n return (\n <CalendarBase\n dayStyle={dayStyle}\n onMouseLeave={handleMouseLeave}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n onChange={setRangeDate}\n value={pickedDate}\n range={value}\n ref={ref}\n __staticSelector={__staticSelector}\n amountOfMonths={amountOfMonths}\n hideOutsideDates={amountOfMonths > 1}\n isDateInRange={shouldHighlightDate}\n isDateFirstInRange={isPickedDateFirstInRange}\n isDateLastInRange={isPickedDateLastInRange}\n {...others}\n />\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAO,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAe,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,oBAAY,uBAAuB,GAC/B,UAAU,CAAC,OAAO,SAAS,CAAC,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,uBAAuB,CAAC,EAAE,aAAa;IAC/F,oCAAoC;IACpC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,8CAA8C;IAC9C,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,gCAAgC;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAElC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qBAAqB;IACrB,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,oBAAoB;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAErB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,yDAAyD;IACzD,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAE5D,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBACf,SAAQ,mBAAmB,EACzB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAAG;AAExE,eAAO,MAAM,YAAY,0FAuMxB,CAAC"}
1
+ {"version":3,"file":"CalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAO,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAe,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,oBAAY,uBAAuB,GAC/B,UAAU,CAAC,OAAO,SAAS,CAAC,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,uBAAuB,CAAC,EAAE,aAAa;IAC/F,oCAAoC;IACpC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,8CAA8C;IAC9C,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,gCAAgC;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAElC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qBAAqB;IACrB,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,oBAAoB;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAErB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,yDAAyD;IACzD,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAE5D,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBACf,SAAQ,mBAAmB,EACzB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAAG;AAExE,eAAO,MAAM,YAAY,0FA6MxB,CAAC"}
@@ -31,6 +31,12 @@ export interface MonthSettings {
31
31
  firstDayOfWeek?: FirstDayOfWeek;
32
32
  /** Remove outside dates */
33
33
  hideOutsideDates?: boolean;
34
+ /** Should date be displayed as in range */
35
+ isDateInRange?(date: Date, modifiers: DayModifiers): boolean;
36
+ /** Should date be displayed as first in range */
37
+ isDateFirstInRange?(date: Date, modifiers: DayModifiers): boolean;
38
+ /** Should date be displayed as last in range */
39
+ isDateLastInRange?(date: Date, modifiers: DayModifiers): boolean;
34
40
  }
35
41
  export declare type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;
36
42
  export interface MonthProps extends DefaultProps<MonthStylesNames>, MonthSettings, Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {
@@ -1 +1 @@
1
- {"version":3,"file":"Month.d.ts","sourceRoot":"","sources":["../../../src/components/Month/Month.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAa,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGjF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAO,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,CAAC;IAE3D,2DAA2D;IAC3D,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IAEpE,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,+DAA+D;IAC/D,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAElC,0CAA0C;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,gCAAgC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,cAAc,CAAC;AAE7E,MAAM,WAAW,UACf,SAAQ,YAAY,CAAC,gBAAgB,CAAC,EACpC,aAAa,EACb,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IACrE,0CAA0C;IAC1C,KAAK,EAAE,IAAI,CAAC;IAEZ,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAErB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yDAAyD;IACzD,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAE5D,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,EAAE,CAAC;IAEjC,qDAAqD;IACrD,YAAY,CAAC,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;CAChG;AAID,eAAO,MAAM,KAAK,qFAmIjB,CAAC"}
1
+ {"version":3,"file":"Month.d.ts","sourceRoot":"","sources":["../../../src/components/Month/Month.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RangeCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAKpD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE/E,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC;IACvF,qBAAqB;IACrB,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAElC,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,2FA0FzB,CAAC"}
1
+ {"version":3,"file":"RangeCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE/E,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC;IACvF,qBAAqB;IACrB,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAElC,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,2FA+FzB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mantine/dates",
3
3
  "description": "Calendars, date and time pickers based on Mantine components",
4
- "version": "3.5.4",
4
+ "version": "3.5.5",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -9,8 +9,8 @@
9
9
  "author": "Vitaly Rtishchev <rtivital@gmail.com>",
10
10
  "homepage": "https://mantine.dev/dates/getting-started/",
11
11
  "peerDependencies": {
12
- "@mantine/core": "3.5.4",
13
- "@mantine/hooks": "3.5.4",
12
+ "@mantine/core": "3.5.5",
13
+ "@mantine/hooks": "3.5.5",
14
14
  "dayjs": "^1.10.5",
15
15
  "react": ">=16.8.0"
16
16
  },