@mantine/dates 3.1.9 → 3.2.3

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.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/cjs/components/Calendar/Calendar.js +68 -39
  3. package/cjs/components/Calendar/Calendar.js.map +1 -1
  4. package/cjs/components/Calendar/CalendarHeader/CalendarHeader.js +24 -6
  5. package/cjs/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  6. package/cjs/components/Calendar/CalendarLabel/CalendarLabel.js +4 -1
  7. package/cjs/components/Calendar/CalendarLabel/CalendarLabel.js.map +1 -1
  8. package/cjs/components/Calendar/CalendarWrapper/CalendarWrapper.js +5 -3
  9. package/cjs/components/Calendar/CalendarWrapper/CalendarWrapper.js.map +1 -1
  10. package/cjs/components/Calendar/get-disabled-state/get-disabled-state.js +2 -2
  11. package/cjs/components/Calendar/get-disabled-state/get-disabled-state.js.map +1 -1
  12. package/cjs/components/DatePicker/DatePicker.js +89 -17
  13. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  14. package/cjs/components/DatePickerBase/DatePickerBase.js +67 -24
  15. package/cjs/components/DatePickerBase/DatePickerBase.js.map +1 -1
  16. package/cjs/components/DatePickerBase/DatePickerBase.styles.js +5 -2
  17. package/cjs/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
  18. package/cjs/components/DateRangePicker/DateRangePicker.js +23 -9
  19. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  20. package/cjs/components/Month/Day/Day.styles.js +6 -6
  21. package/cjs/components/Month/Day/Day.styles.js.map +1 -1
  22. package/cjs/components/Month/Month.js +14 -6
  23. package/cjs/components/Month/Month.js.map +1 -1
  24. package/cjs/components/Month/Month.styles.js +1 -1
  25. package/cjs/components/Month/Month.styles.js.map +1 -1
  26. package/cjs/components/RangeCalendar/RangeCalendar.js +78 -49
  27. package/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
  28. package/cjs/components/TimeInput/TimeInput.styles.js +3 -3
  29. package/cjs/components/TimeInput/TimeInput.styles.js.map +1 -1
  30. package/cjs/components/TimeRangeInput/TimeRangeInput.styles.js +5 -5
  31. package/cjs/components/TimeRangeInput/TimeRangeInput.styles.js.map +1 -1
  32. package/cjs/utils/get-end-of-week/get-end-of-week.js +5 -3
  33. package/cjs/utils/get-end-of-week/get-end-of-week.js.map +1 -1
  34. package/cjs/utils/get-month-days/get-month-days.js +3 -3
  35. package/cjs/utils/get-month-days/get-month-days.js.map +1 -1
  36. package/cjs/utils/get-start-of-week/get-start-of-week.js +5 -3
  37. package/cjs/utils/get-start-of-week/get-start-of-week.js.map +1 -1
  38. package/cjs/utils/get-weekdays-names/get-weekdays-names.js +2 -2
  39. package/cjs/utils/get-weekdays-names/get-weekdays-names.js.map +1 -1
  40. package/esm/components/Calendar/Calendar.js +68 -39
  41. package/esm/components/Calendar/Calendar.js.map +1 -1
  42. package/esm/components/Calendar/CalendarHeader/CalendarHeader.js +25 -7
  43. package/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  44. package/esm/components/Calendar/CalendarLabel/CalendarLabel.js +4 -1
  45. package/esm/components/Calendar/CalendarLabel/CalendarLabel.js.map +1 -1
  46. package/esm/components/Calendar/CalendarWrapper/CalendarWrapper.js +6 -4
  47. package/esm/components/Calendar/CalendarWrapper/CalendarWrapper.js.map +1 -1
  48. package/esm/components/Calendar/get-disabled-state/get-disabled-state.js +2 -2
  49. package/esm/components/Calendar/get-disabled-state/get-disabled-state.js.map +1 -1
  50. package/esm/components/DatePicker/DatePicker.js +89 -17
  51. package/esm/components/DatePicker/DatePicker.js.map +1 -1
  52. package/esm/components/DatePickerBase/DatePickerBase.js +68 -25
  53. package/esm/components/DatePickerBase/DatePickerBase.js.map +1 -1
  54. package/esm/components/DatePickerBase/DatePickerBase.styles.js +6 -3
  55. package/esm/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
  56. package/esm/components/DateRangePicker/DateRangePicker.js +22 -8
  57. package/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
  58. package/esm/components/Month/Day/Day.styles.js +7 -7
  59. package/esm/components/Month/Day/Day.styles.js.map +1 -1
  60. package/esm/components/Month/Month.js +14 -6
  61. package/esm/components/Month/Month.js.map +1 -1
  62. package/esm/components/Month/Month.styles.js +2 -2
  63. package/esm/components/Month/Month.styles.js.map +1 -1
  64. package/esm/components/RangeCalendar/RangeCalendar.js +79 -50
  65. package/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
  66. package/esm/components/TimeInput/TimeInput.styles.js +4 -4
  67. package/esm/components/TimeInput/TimeInput.styles.js.map +1 -1
  68. package/esm/components/TimeRangeInput/TimeRangeInput.styles.js +6 -6
  69. package/esm/components/TimeRangeInput/TimeRangeInput.styles.js.map +1 -1
  70. package/esm/utils/get-end-of-week/get-end-of-week.js +5 -3
  71. package/esm/utils/get-end-of-week/get-end-of-week.js.map +1 -1
  72. package/esm/utils/get-month-days/get-month-days.js +3 -3
  73. package/esm/utils/get-month-days/get-month-days.js.map +1 -1
  74. package/esm/utils/get-start-of-week/get-start-of-week.js +5 -3
  75. package/esm/utils/get-start-of-week/get-start-of-week.js.map +1 -1
  76. package/esm/utils/get-weekdays-names/get-weekdays-names.js +2 -2
  77. package/esm/utils/get-weekdays-names/get-weekdays-names.js.map +1 -1
  78. package/lib/components/Calendar/Calendar.d.ts +5 -0
  79. package/lib/components/Calendar/Calendar.d.ts.map +1 -1
  80. package/lib/components/Calendar/CalendarHeader/CalendarHeader.d.ts +3 -1
  81. package/lib/components/Calendar/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  82. package/lib/components/Calendar/CalendarLabel/CalendarLabel.d.ts +2 -1
  83. package/lib/components/Calendar/CalendarLabel/CalendarLabel.d.ts.map +1 -1
  84. package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts +1 -0
  85. package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts.map +1 -1
  86. package/lib/components/Calendar/CalendarWrapper/CalendarWrapper.d.ts +1 -0
  87. package/lib/components/Calendar/CalendarWrapper/CalendarWrapper.d.ts.map +1 -1
  88. package/lib/components/Calendar/get-disabled-state/get-disabled-state.d.ts +3 -1
  89. package/lib/components/Calendar/get-disabled-state/get-disabled-state.d.ts.map +1 -1
  90. package/lib/components/DatePicker/DatePicker.d.ts +8 -1
  91. package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
  92. package/lib/components/DatePickerBase/DatePickerBase.d.ts +7 -3
  93. package/lib/components/DatePickerBase/DatePickerBase.d.ts.map +1 -1
  94. package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts +3 -2
  95. package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts.map +1 -1
  96. package/lib/components/DateRangePicker/DateRangePicker.d.ts +5 -0
  97. package/lib/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  98. package/lib/components/Month/Day/Day.styles.d.ts +1 -0
  99. package/lib/components/Month/Day/Day.styles.d.ts.map +1 -1
  100. package/lib/components/Month/Month.d.ts +8 -1
  101. package/lib/components/Month/Month.d.ts.map +1 -1
  102. package/lib/components/Month/Month.styles.d.ts +1 -0
  103. package/lib/components/Month/Month.styles.d.ts.map +1 -1
  104. package/lib/components/RangeCalendar/RangeCalendar.d.ts +3 -0
  105. package/lib/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
  106. package/lib/components/TimeInput/TimeInput.styles.d.ts +1 -0
  107. package/lib/components/TimeInput/TimeInput.styles.d.ts.map +1 -1
  108. package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts +3 -2
  109. package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts.map +1 -1
  110. package/lib/types.d.ts +2 -0
  111. package/lib/types.d.ts.map +1 -0
  112. package/lib/utils/get-end-of-week/get-end-of-week.d.ts +2 -1
  113. package/lib/utils/get-end-of-week/get-end-of-week.d.ts.map +1 -1
  114. package/lib/utils/get-month-days/get-month-days.d.ts +2 -1
  115. package/lib/utils/get-month-days/get-month-days.d.ts.map +1 -1
  116. package/lib/utils/get-start-of-week/get-start-of-week.d.ts +2 -1
  117. package/lib/utils/get-start-of-week/get-start-of-week.d.ts.map +1 -1
  118. package/lib/utils/get-weekdays-names/get-weekdays-names.d.ts +2 -1
  119. package/lib/utils/get-weekdays-names/get-weekdays-names.d.ts.map +1 -1
  120. package/package.json +3 -3
@@ -51,6 +51,7 @@ function Month(_a) {
51
51
  locale = "en",
52
52
  dayClassName,
53
53
  dayStyle,
54
+ disableOutsideDayStyle = false,
54
55
  classNames,
55
56
  styles,
56
57
  minDate,
@@ -62,7 +63,9 @@ function Month(_a) {
62
63
  __staticSelector = "Month",
63
64
  size = "sm",
64
65
  fullWidth = false,
65
- sx
66
+ preventFocus = false,
67
+ sx,
68
+ firstDayOfWeek = "monday"
66
69
  } = _b, others = __objRest(_b, [
67
70
  "className",
68
71
  "style",
@@ -74,6 +77,7 @@ function Month(_a) {
74
77
  "locale",
75
78
  "dayClassName",
76
79
  "dayStyle",
80
+ "disableOutsideDayStyle",
77
81
  "classNames",
78
82
  "styles",
79
83
  "minDate",
@@ -85,12 +89,14 @@ function Month(_a) {
85
89
  "__staticSelector",
86
90
  "size",
87
91
  "fullWidth",
88
- "sx"
92
+ "preventFocus",
93
+ "sx",
94
+ "firstDayOfWeek"
89
95
  ]);
90
96
  const { classes, cx } = useStyles({ fullWidth }, { sx, classNames, styles, name: __staticSelector });
91
97
  const { mergedStyles, rest } = useExtractedMargins({ others, style });
92
98
  const daysRefs = useRef({});
93
- const days = getMonthDays(month);
99
+ const days = getMonthDays(month, firstDayOfWeek);
94
100
  const focusDay = (date, diff) => {
95
101
  const offset = new Date(date);
96
102
  offset.setDate(date.getDate() + diff);
@@ -127,7 +133,7 @@ function Month(_a) {
127
133
  }
128
134
  }
129
135
  }, []);
130
- const weekdays = getWeekdaysNames(locale).map((weekday) => /* @__PURE__ */ React.createElement("th", {
136
+ const weekdays = getWeekdaysNames(locale, firstDayOfWeek).map((weekday) => /* @__PURE__ */ React.createElement("th", {
131
137
  className: classes.weekdayCell,
132
138
  key: weekday
133
139
  }, /* @__PURE__ */ React.createElement(Text, {
@@ -149,6 +155,7 @@ function Month(_a) {
149
155
  disableOutsideEvents,
150
156
  range
151
157
  });
158
+ const withoutStylesOutsideMonth = disableOutsideDayStyle && dayProps.outside;
152
159
  return /* @__PURE__ */ React.createElement("td", {
153
160
  className: classes.cell,
154
161
  key: cellIndex
@@ -157,14 +164,15 @@ function Month(_a) {
157
164
  daysRefs.current[date.toISOString()] = button;
158
165
  },
159
166
  onClick: () => typeof onChange === "function" && onChange(date),
167
+ onMouseDown: (event) => preventFocus && event.preventDefault(),
160
168
  value: date,
161
169
  outside: dayProps.outside,
162
170
  weekend: dayProps.weekend,
163
- inRange: dayProps.inRange,
171
+ inRange: dayProps.inRange && !withoutStylesOutsideMonth,
164
172
  firstInRange: dayProps.firstInRange,
165
173
  lastInRange: dayProps.lastInRange,
166
174
  firstInMonth: cellIndex === 0 && rowIndex === 0,
167
- selected: dayProps.selected || dayProps.selectedInRange,
175
+ selected: (dayProps.selected || dayProps.selectedInRange) && !withoutStylesOutsideMonth,
168
176
  hasValue: hasValueInMonthRange,
169
177
  onKeyDown: handleKeyDown,
170
178
  className: typeof dayClassName === "function" ? dayClassName(date, dayProps) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { DefaultProps, Text, MantineSize, ClassNames, useExtractedMargins } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { getMonthDays, isSameMonth, getWeekdaysNames } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps, DayModifiers } from './get-day-props/get-day-props';\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\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 /** Autofocus selected date on mount, if no date is selected autofocus is applied to first month day */\n autoFocus?: boolean;\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\nconst noop = () => {};\n\nexport function Month({\n className,\n style,\n month,\n value,\n onChange,\n autoFocus = false,\n disableOutsideEvents = false,\n locale = 'en',\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 sx,\n ...others\n}: MonthProps) {\n const { classes, cx } = useStyles(\n { fullWidth },\n { sx, classNames, styles, name: __staticSelector }\n );\n const { mergedStyles, rest } = useExtractedMargins({ others, style });\n const daysRefs = useRef<Record<string, HTMLButtonElement>>({});\n const days = getMonthDays(month);\n\n const focusDay = (date: Date, diff: number) => {\n const offset = new Date(date);\n offset.setDate(date.getDate() + diff);\n\n if (offset.toISOString() in daysRefs.current) {\n if (!(!isSameMonth(month, offset) && disableOutsideEvents)) {\n daysRefs.current[offset.toISOString()].focus();\n }\n }\n };\n\n const handleKeyDown = (currentDate: Date, event: React.KeyboardEvent) => {\n const { code } = event.nativeEvent;\n\n if (code === 'ArrowUp') {\n event.preventDefault();\n focusDay(currentDate, -7);\n }\n\n if (code === 'ArrowDown') {\n event.preventDefault();\n focusDay(currentDate, 7);\n }\n\n if (code === 'ArrowRight') {\n event.preventDefault();\n currentDate.getDay() !== 0 && focusDay(currentDate, 1);\n }\n\n if (code === 'ArrowLeft') {\n event.preventDefault();\n currentDate.getDay() !== 1 && focusDay(currentDate, -1);\n }\n };\n\n useEffect(() => {\n if (autoFocus) {\n const date = new Date(\n month.getFullYear(),\n month.getMonth(),\n value ? value.getDate() : 1\n ).toISOString();\n\n if (date in daysRefs.current) {\n daysRefs.current[date].focus();\n }\n }\n }, []);\n\n const weekdays = getWeekdaysNames(locale).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 return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n daysRefs.current[date.toISOString()] = button;\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\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={cellIndex === 0 && rowIndex === 0}\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={handleKeyDown}\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n styles={styles}\n classNames={classNames}\n disabled={dayProps.disabled}\n __staticSelector={__staticSelector}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <table className={cx(classes.root, className)} style={mergedStyles} {...rest}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </table>\n );\n}\n\nMonth.displayName = '@mantine/core/Month';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { DefaultProps, Text, MantineSize, ClassNames, useExtractedMargins } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, isSameMonth, getWeekdaysNames } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps, DayModifiers } from './get-day-props/get-day-props';\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 are not styled */\n disableOutsideDayStyle?: boolean;\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\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 /** Autofocus selected date on mount, if no date is selected autofocus is applied to first month day */\n autoFocus?: boolean;\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 /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n}\n\nconst noop = () => {};\n\nexport function Month({\n className,\n style,\n month,\n value,\n onChange,\n autoFocus = false,\n disableOutsideEvents = false,\n locale = 'en',\n dayClassName,\n dayStyle,\n disableOutsideDayStyle = false,\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 sx,\n firstDayOfWeek = 'monday',\n ...others\n}: MonthProps) {\n const { classes, cx } = useStyles(\n { fullWidth },\n { sx, classNames, styles, name: __staticSelector }\n );\n const { mergedStyles, rest } = useExtractedMargins({ others, style });\n const daysRefs = useRef<Record<string, HTMLButtonElement>>({});\n const days = getMonthDays(month, firstDayOfWeek);\n\n const focusDay = (date: Date, diff: number) => {\n const offset = new Date(date);\n offset.setDate(date.getDate() + diff);\n\n if (offset.toISOString() in daysRefs.current) {\n if (!(!isSameMonth(month, offset) && disableOutsideEvents)) {\n daysRefs.current[offset.toISOString()].focus();\n }\n }\n };\n\n const handleKeyDown = (currentDate: Date, event: React.KeyboardEvent) => {\n const { code } = event.nativeEvent;\n\n if (code === 'ArrowUp') {\n event.preventDefault();\n focusDay(currentDate, -7);\n }\n\n if (code === 'ArrowDown') {\n event.preventDefault();\n focusDay(currentDate, 7);\n }\n\n if (code === 'ArrowRight') {\n event.preventDefault();\n currentDate.getDay() !== 0 && focusDay(currentDate, 1);\n }\n\n if (code === 'ArrowLeft') {\n event.preventDefault();\n currentDate.getDay() !== 1 && focusDay(currentDate, -1);\n }\n };\n\n useEffect(() => {\n if (autoFocus) {\n const date = new Date(\n month.getFullYear(),\n month.getMonth(),\n value ? value.getDate() : 1\n ).toISOString();\n\n if (date in daysRefs.current) {\n daysRefs.current[date].focus();\n }\n }\n }, []);\n\n const weekdays = getWeekdaysNames(locale, 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 withoutStylesOutsideMonth = disableOutsideDayStyle && dayProps.outside;\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n daysRefs.current[date.toISOString()] = button;\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 && !withoutStylesOutsideMonth}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={cellIndex === 0 && rowIndex === 0}\n selected={(dayProps.selected || dayProps.selectedInRange) && !withoutStylesOutsideMonth}\n hasValue={hasValueInMonthRange}\n onKeyDown={handleKeyDown}\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n styles={styles}\n classNames={classNames}\n disabled={dayProps.disabled}\n __staticSelector={__staticSelector}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <table className={cx(classes.root, className)} style={mergedStyles} {...rest}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </table>\n );\n}\n\nMonth.displayName = '@mantine/core/Month';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createStyles, getFontStyles } from '@mantine/core';
1
+ import { createStyles } from '@mantine/core';
2
2
 
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defProps = Object.defineProperties;
@@ -23,7 +23,7 @@ var useStyles = createStyles((theme, { fullWidth }) => ({
23
23
  weekday: {
24
24
  color: theme.colorScheme === "dark" ? theme.colors.dark[1] : theme.colors.gray[5]
25
25
  },
26
- root: __spreadProps(__spreadValues({}, getFontStyles(theme)), {
26
+ root: __spreadProps(__spreadValues({}, theme.fn.fontStyles()), {
27
27
  borderCollapse: "collapse",
28
28
  width: fullWidth ? "100%" : "auto",
29
29
  tableLayout: "fixed"
@@ -1 +1 @@
1
- {"version":3,"file":"Month.styles.js","sources":["../../../src/components/Month/Month.styles.ts"],"sourcesContent":["import { getFontStyles, createStyles } from '@mantine/core';\n\ninterface MonthStyles {\n fullWidth: boolean;\n}\n\nexport default createStyles((theme, { fullWidth }: MonthStyles) => ({\n weekday: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[5],\n },\n\n root: {\n ...getFontStyles(theme),\n borderCollapse: 'collapse',\n width: fullWidth ? '100%' : 'auto',\n tableLayout: 'fixed',\n },\n\n cell: {\n boxSizing: 'border-box',\n padding: 0,\n borderTop: '1px solid transparent',\n },\n\n weekdayCell: {\n boxSizing: 'border-box',\n padding: 0,\n fontWeight: 'normal',\n paddingBottom: theme.spacing.xs / 2,\n textAlign: 'center',\n cursor: 'default',\n userSelect: 'none',\n },\n}));\n"],"names":[],"mappings":";;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM;AACvD,EAAE,OAAO,EAAE;AACX,IAAI,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;AAChE,IAAI,cAAc,EAAE,UAAU;AAC9B,IAAI,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM;AACtC,IAAI,WAAW,EAAE,OAAO;AACxB,GAAG,CAAC;AACJ,EAAE,IAAI,EAAE;AACR,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,uBAAuB;AACtC,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AACvC,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,UAAU,EAAE,MAAM;AACtB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"Month.styles.js","sources":["../../../src/components/Month/Month.styles.ts"],"sourcesContent":["import { createStyles } from '@mantine/core';\n\ninterface MonthStyles {\n fullWidth: boolean;\n}\n\nexport default createStyles((theme, { fullWidth }: MonthStyles) => ({\n weekday: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[5],\n },\n\n root: {\n ...theme.fn.fontStyles(),\n borderCollapse: 'collapse',\n width: fullWidth ? '100%' : 'auto',\n tableLayout: 'fixed',\n },\n\n cell: {\n boxSizing: 'border-box',\n padding: 0,\n borderTop: '1px solid transparent',\n },\n\n weekdayCell: {\n boxSizing: 'border-box',\n padding: 0,\n fontWeight: 'normal',\n paddingBottom: theme.spacing.xs / 2,\n textAlign: 'center',\n cursor: 'default',\n userSelect: 'none',\n },\n}));\n"],"names":[],"mappings":";;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM;AACvD,EAAE,OAAO,EAAE;AACX,IAAI,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE;AACjE,IAAI,cAAc,EAAE,UAAU;AAC9B,IAAI,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM;AACtC,IAAI,WAAW,EAAE,OAAO;AACxB,GAAG,CAAC;AACJ,EAAE,IAAI,EAAE;AACR,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,uBAAuB;AACtC,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AACvC,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,UAAU,EAAE,MAAM;AACtB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -1,8 +1,9 @@
1
1
  import React, { forwardRef, useState } from 'react';
2
- import { useMantineTheme, hexToRgba } from '@mantine/core';
2
+ import { useMantineTheme, Group } from '@mantine/core';
3
3
  import { useUncontrolled } from '@mantine/hooks';
4
4
  import dayjs from 'dayjs';
5
5
  import { isSameDate } from '../../utils/is-same-date/is-same-date.js';
6
+ import { isSameMonth } from '../../utils/is-same-month/is-same-month.js';
6
7
  import { Month } from '../Month/Month.js';
7
8
  import { CalendarHeader } from '../Calendar/CalendarHeader/CalendarHeader.js';
8
9
  import { CalendarWrapper } from '../Calendar/CalendarWrapper/CalendarWrapper.js';
@@ -64,7 +65,9 @@ const RangeCalendar = forwardRef((_a, ref) => {
64
65
  size = "sm",
65
66
  onMouseLeave,
66
67
  __staticSelector = "range-calendar",
67
- allowSingleDateInRange = false
68
+ firstDayOfWeek = "monday",
69
+ allowSingleDateInRange = false,
70
+ amountOfMonths = 1
68
71
  } = _b, others = __objRest(_b, [
69
72
  "classNames",
70
73
  "styles",
@@ -89,11 +92,14 @@ const RangeCalendar = forwardRef((_a, ref) => {
89
92
  "size",
90
93
  "onMouseLeave",
91
94
  "__staticSelector",
92
- "allowSingleDateInRange"
95
+ "firstDayOfWeek",
96
+ "allowSingleDateInRange",
97
+ "amountOfMonths"
93
98
  ]);
94
99
  const theme = useMantineTheme();
95
100
  const [hoveredDay, setHoveredDay] = useState(null);
96
101
  const [pickedDate, setPickedDate] = useState(null);
102
+ const hasMultipleMonths = amountOfMonths > 1;
97
103
  const setRangeDate = (date) => {
98
104
  if (pickedDate instanceof Date) {
99
105
  if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {
@@ -115,8 +121,9 @@ const RangeCalendar = forwardRef((_a, ref) => {
115
121
  typeof onMouseLeave === "function" && onMouseLeave(event);
116
122
  setHoveredDay(null);
117
123
  };
118
- const shouldHighlightDate = (date, modifiers) => {
119
- if (pickedDate instanceof Date && hoveredDay instanceof Date) {
124
+ const shouldHighlightDate = (date, modifiers, currentMonth) => {
125
+ const isInCurrentMonth = hasMultipleMonths ? isSameMonth(date, currentMonth) : true;
126
+ if (pickedDate instanceof Date && hoveredDay instanceof Date && isInCurrentMonth) {
120
127
  const result = [hoveredDay, pickedDate];
121
128
  result.sort((a, b) => a.getTime() - b.getTime());
122
129
  return !modifiers.selected && dayjs(date).subtract(1, "day").isBefore(result[1]) && dayjs(date).add(1, "day").isAfter(result[0]);
@@ -130,56 +137,78 @@ const RangeCalendar = forwardRef((_a, ref) => {
130
137
  onChange: onMonthChange,
131
138
  rule: (val) => val instanceof Date
132
139
  });
133
- const disabledState = getDisabledState({ month: _month, minDate, maxDate });
140
+ const disabledState = getDisabledState({
141
+ month: _month,
142
+ minDate,
143
+ maxDate,
144
+ amountOfMonths
145
+ });
146
+ const dayStyles = (date, modifiers, currentMonth) => {
147
+ const initialStyles = typeof dayStyle === "function" ? dayStyle(date, modifiers) : null;
148
+ const outsideStyles = modifiers.outside && hasMultipleMonths ? { display: "none" } : null;
149
+ if (shouldHighlightDate(date, modifiers, currentMonth)) {
150
+ return __spreadProps(__spreadValues(__spreadValues({}, initialStyles), outsideStyles), {
151
+ backgroundColor: theme.colorScheme === "dark" ? theme.fn.rgba(theme.colors[theme.primaryColor][9], 0.3) : theme.colors[theme.primaryColor][0],
152
+ borderRadius: 0
153
+ });
154
+ }
155
+ return __spreadValues(__spreadValues({}, initialStyles), outsideStyles);
156
+ };
134
157
  return /* @__PURE__ */ React.createElement(CalendarWrapper, __spreadValues({
135
158
  size,
136
159
  fullWidth,
160
+ amountOfMonths,
137
161
  onMouseLeave: handleMouseLeave,
138
162
  ref
139
- }, others), /* @__PURE__ */ React.createElement(CalendarHeader, {
140
- size,
141
- nextMonthLabel,
142
- previousMonthLabel,
143
- previousMonthDisabled: disabledState.previousDisabled,
144
- nextMonthDisabled: disabledState.nextDisabled,
145
- onPreviousMonth: () => setMonth(dayjs(_month).subtract(1, "month").toDate()),
146
- onNextMonth: () => setMonth(dayjs(_month).add(1, "month").toDate()),
147
- classNames,
148
- styles,
149
- locale,
150
- withSelect,
151
- yearsRange,
152
- month: _month,
153
- setMonth,
154
- labelFormat,
155
- __staticSelector
156
- }), /* @__PURE__ */ React.createElement(Month, {
157
- month: _month,
158
- range: value,
159
- value: pickedDate,
160
- onChange: setRangeDate,
161
- dayClassName,
162
- dayStyle: (date, modifiers) => {
163
- const initialStyles = typeof dayStyle === "function" ? dayStyle(date, modifiers) : {};
164
- if (shouldHighlightDate(date, modifiers)) {
165
- return __spreadProps(__spreadValues({}, initialStyles), {
166
- backgroundColor: theme.colorScheme === "dark" ? hexToRgba(theme.colors[theme.primaryColor][9], 0.3) : theme.colors[theme.primaryColor][0],
167
- borderRadius: 0
168
- });
169
- }
170
- return initialStyles;
171
- },
172
- disableOutsideEvents,
173
- minDate,
174
- maxDate,
175
- excludeDate,
176
- classNames,
177
- styles,
178
- fullWidth,
179
- size,
180
- onDayMouseEnter: (date) => setHoveredDay(date),
181
- __staticSelector
182
- }));
163
+ }, others), /* @__PURE__ */ React.createElement(Group, {
164
+ noWrap: true,
165
+ style: { alignItems: "flex-start" }
166
+ }, Array(amountOfMonths).fill(0).map((_, monthIndex) => {
167
+ const isFirstMonth = monthIndex === 0;
168
+ const isLastMonth = monthIndex === amountOfMonths - 1;
169
+ const monthToRender = isFirstMonth ? _month : dayjs(_month).add(monthIndex, "month").toDate();
170
+ const hiddenMonth = isFirstMonth ? "next" : isLastMonth ? "prev" : "both";
171
+ return /* @__PURE__ */ React.createElement("div", {
172
+ key: `month-${monthIndex}`
173
+ }, /* @__PURE__ */ React.createElement(CalendarHeader, {
174
+ size,
175
+ nextMonthLabel,
176
+ previousMonthLabel,
177
+ previousMonthDisabled: disabledState.previousDisabled,
178
+ nextMonthDisabled: disabledState.nextDisabled,
179
+ onPreviousMonth: () => setMonth(dayjs(_month).subtract(1, "month").toDate()),
180
+ onNextMonth: () => setMonth(dayjs(_month).add(1, "month").toDate()),
181
+ classNames,
182
+ styles,
183
+ locale,
184
+ withSelect,
185
+ yearsRange,
186
+ month: monthToRender,
187
+ setMonth,
188
+ labelFormat,
189
+ hiddenMonth: hasMultipleMonths ? hiddenMonth : void 0,
190
+ __staticSelector: isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`
191
+ }), /* @__PURE__ */ React.createElement(Month, {
192
+ month: monthToRender,
193
+ range: value,
194
+ value: pickedDate,
195
+ onChange: setRangeDate,
196
+ dayClassName,
197
+ dayStyle: (date, modifiers) => dayStyles(date, modifiers, monthToRender),
198
+ disableOutsideDayStyle: hasMultipleMonths,
199
+ disableOutsideEvents,
200
+ minDate,
201
+ maxDate,
202
+ excludeDate,
203
+ classNames,
204
+ styles,
205
+ fullWidth,
206
+ size,
207
+ onDayMouseEnter: (date) => setHoveredDay(date),
208
+ firstDayOfWeek,
209
+ __staticSelector: isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`
210
+ }));
211
+ })));
183
212
  });
184
213
  RangeCalendar.displayName = "@mantine/dates/RangeCalendar";
185
214
 
@@ -1 +1 @@
1
- {"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport { DefaultProps, useMantineTheme, hexToRgba } from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { Month } from '../Month/Month';\nimport { DayModifiers } from '../Month/get-day-props/get-day-props';\nimport { CalendarHeader } from '../Calendar/CalendarHeader/CalendarHeader';\nimport { CalendarWrapper } from '../Calendar/CalendarWrapper/CalendarWrapper';\nimport { getDisabledState } from '../Calendar/get-disabled-state/get-disabled-state';\nimport { CalendarSettings, CalendarStylesNames } from '../Calendar/Calendar';\n\nexport interface RangeCalendarProps\n extends DefaultProps<CalendarStylesNames>,\n CalendarSettings,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Current month */\n month?: Date;\n\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Called when month changes */\n onMonthChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n classNames,\n styles,\n locale = 'en',\n nextMonthLabel,\n previousMonthLabel,\n initialMonth,\n month,\n onMonthChange,\n value,\n onChange,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange = { from: 2020, to: 2030 },\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n fullWidth = false,\n size = 'sm',\n onMouseLeave,\n __staticSelector = 'range-calendar',\n allowSingleDateInRange = false,\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 [_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 disabledState = getDisabledState({ month: _month, minDate, maxDate });\n\n return (\n <CalendarWrapper\n size={size}\n fullWidth={fullWidth}\n onMouseLeave={handleMouseLeave}\n ref={ref}\n {...others}\n >\n <CalendarHeader\n size={size}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n previousMonthDisabled={disabledState.previousDisabled}\n nextMonthDisabled={disabledState.nextDisabled}\n onPreviousMonth={() => setMonth(dayjs(_month).subtract(1, 'month').toDate())}\n onNextMonth={() => setMonth(dayjs(_month).add(1, 'month').toDate())}\n classNames={classNames}\n styles={styles}\n locale={locale}\n withSelect={withSelect}\n yearsRange={yearsRange}\n month={_month}\n setMonth={setMonth}\n labelFormat={labelFormat}\n __staticSelector={__staticSelector}\n />\n\n <Month\n month={_month}\n range={value}\n value={pickedDate}\n onChange={setRangeDate}\n dayClassName={dayClassName}\n dayStyle={(date, modifiers) => {\n const initialStyles = typeof dayStyle === 'function' ? dayStyle(date, modifiers) : {};\n if (shouldHighlightDate(date, modifiers)) {\n return {\n ...initialStyles,\n backgroundColor:\n theme.colorScheme === 'dark'\n ? hexToRgba(theme.colors[theme.primaryColor][9], 0.3)\n : theme.colors[theme.primaryColor][0],\n borderRadius: 0,\n };\n }\n\n return initialStyles;\n }}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n classNames={classNames}\n styles={styles}\n fullWidth={fullWidth}\n size={size}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n __staticSelector={__staticSelector}\n />\n </CalendarWrapper>\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 { DefaultProps, useMantineTheme, Group } from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { isSameDate, isSameMonth } from '../../utils';\nimport { FirstDayOfWeek } from '../../types';\nimport { Month } from '../Month/Month';\nimport { DayModifiers } from '../Month/get-day-props/get-day-props';\nimport { CalendarHeader } from '../Calendar/CalendarHeader/CalendarHeader';\nimport { CalendarWrapper } from '../Calendar/CalendarWrapper/CalendarWrapper';\nimport { getDisabledState } from '../Calendar/get-disabled-state/get-disabled-state';\nimport { CalendarSettings, CalendarStylesNames } from '../Calendar/Calendar';\n\nexport interface RangeCalendarProps\n extends DefaultProps<CalendarStylesNames>,\n CalendarSettings,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Current month */\n month?: Date;\n\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Called when month changes */\n onMonthChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n classNames,\n styles,\n locale = 'en',\n nextMonthLabel,\n previousMonthLabel,\n initialMonth,\n month,\n onMonthChange,\n value,\n onChange,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange = { from: 2020, to: 2030 },\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n fullWidth = false,\n size = 'sm',\n onMouseLeave,\n __staticSelector = 'range-calendar',\n firstDayOfWeek = 'monday',\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 const hasMultipleMonths = amountOfMonths > 1;\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, currentMonth: Date) => {\n const isInCurrentMonth = hasMultipleMonths ? isSameMonth(date, currentMonth) : true;\n if (pickedDate instanceof Date && hoveredDay instanceof Date && isInCurrentMonth) {\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 [_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 disabledState = getDisabledState({\n month: _month,\n minDate,\n maxDate,\n amountOfMonths,\n });\n\n const dayStyles = (date: Date, modifiers: DayModifiers, currentMonth: Date) => {\n const initialStyles = typeof dayStyle === 'function' ? dayStyle(date, modifiers) : null;\n const outsideStyles = modifiers.outside && hasMultipleMonths ? { display: 'none' } : null;\n\n if (shouldHighlightDate(date, modifiers, currentMonth)) {\n return {\n ...initialStyles,\n ...outsideStyles,\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, ...outsideStyles };\n };\n\n return (\n <CalendarWrapper\n size={size}\n fullWidth={fullWidth}\n amountOfMonths={amountOfMonths}\n onMouseLeave={handleMouseLeave}\n ref={ref}\n {...others}\n >\n <Group noWrap style={{ alignItems: 'flex-start' }}>\n {Array(amountOfMonths)\n .fill(0)\n .map((_, monthIndex) => {\n const isFirstMonth = monthIndex === 0;\n const isLastMonth = monthIndex === amountOfMonths - 1;\n const monthToRender = isFirstMonth\n ? _month\n : dayjs(_month).add(monthIndex, 'month').toDate();\n const hiddenMonth = isFirstMonth ? 'next' : isLastMonth ? 'prev' : 'both';\n\n return (\n <div key={`month-${monthIndex}`}>\n <CalendarHeader\n size={size}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n previousMonthDisabled={disabledState.previousDisabled}\n nextMonthDisabled={disabledState.nextDisabled}\n onPreviousMonth={() => setMonth(dayjs(_month).subtract(1, 'month').toDate())}\n onNextMonth={() => setMonth(dayjs(_month).add(1, 'month').toDate())}\n classNames={classNames}\n styles={styles}\n locale={locale}\n withSelect={withSelect}\n yearsRange={yearsRange}\n month={monthToRender}\n setMonth={setMonth}\n labelFormat={labelFormat}\n hiddenMonth={hasMultipleMonths ? hiddenMonth : undefined}\n __staticSelector={\n isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`\n }\n />\n\n <Month\n month={monthToRender}\n range={value}\n value={pickedDate}\n onChange={setRangeDate}\n dayClassName={dayClassName}\n dayStyle={(date, modifiers) => dayStyles(date, modifiers, monthToRender)}\n disableOutsideDayStyle={hasMultipleMonths}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n classNames={classNames}\n styles={styles}\n fullWidth={fullWidth}\n size={size}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n firstDayOfWeek={firstDayOfWeek}\n __staticSelector={\n isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`\n }\n />\n </div>\n );\n })}\n </Group>\n </CalendarWrapper>\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createStyles, getSizeValue, INPUT_SIZES } from '@mantine/core';
1
+ import { createStyles, INPUT_SIZES } from '@mantine/core';
2
2
 
3
3
  const inputSizes = {
4
4
  xs: 20,
@@ -15,17 +15,17 @@ var useStyles = createStyles((theme, { size }) => ({
15
15
  controls: {
16
16
  display: "flex",
17
17
  alignItems: "center",
18
- height: getSizeValue({ size, sizes: INPUT_SIZES }) - 2
18
+ height: theme.fn.size({ size, sizes: INPUT_SIZES }) - 2
19
19
  },
20
20
  timeInput: {
21
- width: getSizeValue({ size, sizes: inputSizes }),
21
+ width: theme.fn.size({ size, sizes: inputSizes }),
22
22
  appearance: "none",
23
23
  backgroundColor: "transparent",
24
24
  color: "inherit",
25
25
  padding: 0,
26
26
  textAlign: "center",
27
27
  border: "1px solid transparent",
28
- fontSize: getSizeValue({ size, sizes: theme.fontSizes }),
28
+ fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),
29
29
  lineHeight: 1,
30
30
  outline: 0,
31
31
  "&[disabled]": {
@@ -1 +1 @@
1
- {"version":3,"file":"TimeInput.styles.js","sources":["../../../src/components/TimeInput/TimeInput.styles.ts"],"sourcesContent":["import { createStyles, INPUT_SIZES, MantineSize, getSizeValue } from '@mantine/core';\n\ninterface TimeInputStyles {\n size: MantineSize;\n}\n\nexport const inputSizes = {\n xs: 20,\n sm: 23,\n md: 25,\n lg: 27,\n xl: 29,\n};\n\nexport default createStyles((theme, { size }: TimeInputStyles) => ({\n disabled: {\n opacity: 0.6,\n cursor: 'not-allowed',\n },\n\n controls: {\n display: 'flex',\n alignItems: 'center',\n // -2 for border offset\n height: getSizeValue({ size, sizes: INPUT_SIZES }) - 2,\n },\n\n timeInput: {\n width: getSizeValue({ size, sizes: inputSizes }),\n appearance: 'none',\n backgroundColor: 'transparent',\n color: 'inherit',\n padding: 0,\n textAlign: 'center',\n border: '1px solid transparent',\n fontSize: getSizeValue({ size, sizes: theme.fontSizes }),\n lineHeight: 1,\n outline: 0,\n\n '&[disabled]': {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7],\n cursor: 'not-allowed',\n },\n },\n}));\n"],"names":[],"mappings":";;AACY,MAAC,UAAU,GAAG;AAC1B,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE;AACF,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM;AAClD,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE,GAAG;AAChB,IAAI,MAAM,EAAE,aAAa;AACzB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;AAC1D,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACpD,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,eAAe,EAAE,aAAa;AAClC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,uBAAuB;AACnC,IAAI,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC5D,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,aAAa,EAAE;AACnB,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,EAAE,aAAa;AAC3B,KAAK;AACL,GAAG;AACH,CAAC,CAAC,CAAC;;;;;"}
1
+ {"version":3,"file":"TimeInput.styles.js","sources":["../../../src/components/TimeInput/TimeInput.styles.ts"],"sourcesContent":["import { createStyles, INPUT_SIZES, MantineSize } from '@mantine/core';\n\ninterface TimeInputStyles {\n size: MantineSize;\n}\n\nexport const inputSizes = {\n xs: 20,\n sm: 23,\n md: 25,\n lg: 27,\n xl: 29,\n};\n\nexport default createStyles((theme, { size }: TimeInputStyles) => ({\n disabled: {\n opacity: 0.6,\n cursor: 'not-allowed',\n },\n\n controls: {\n display: 'flex',\n alignItems: 'center',\n // -2 for border offset\n height: theme.fn.size({ size, sizes: INPUT_SIZES }) - 2,\n },\n\n timeInput: {\n width: theme.fn.size({ size, sizes: inputSizes }),\n appearance: 'none',\n backgroundColor: 'transparent',\n color: 'inherit',\n padding: 0,\n textAlign: 'center',\n border: '1px solid transparent',\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n lineHeight: 1,\n outline: 0,\n\n '&[disabled]': {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7],\n cursor: 'not-allowed',\n },\n },\n}));\n"],"names":[],"mappings":";;AACY,MAAC,UAAU,GAAG;AAC1B,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE;AACF,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM;AAClD,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE,GAAG;AAChB,IAAI,MAAM,EAAE,aAAa;AACzB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;AAC3D,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACrD,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,eAAe,EAAE,aAAa;AAClC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,uBAAuB;AACnC,IAAI,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC7D,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,aAAa,EAAE;AACnB,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,EAAE,aAAa;AAC3B,KAAK;AACL,GAAG;AACH,CAAC,CAAC,CAAC;;;;;"}
@@ -1,4 +1,4 @@
1
- import { createStyles, getSizeValue, INPUT_SIZES } from '@mantine/core';
1
+ import { createStyles, INPUT_SIZES } from '@mantine/core';
2
2
  import { inputSizes } from '../TimeInput/TimeInput.styles.js';
3
3
 
4
4
  var useStyles = createStyles((theme, { size }) => ({
@@ -9,17 +9,17 @@ var useStyles = createStyles((theme, { size }) => ({
9
9
  inputWrapper: {
10
10
  display: "inline-flex",
11
11
  alignItems: "center",
12
- height: getSizeValue({ size, sizes: INPUT_SIZES }) - 2
12
+ height: theme.fn.size({ size, sizes: INPUT_SIZES }) - 2
13
13
  },
14
14
  timeField: {
15
- width: getSizeValue({ size, sizes: inputSizes }),
15
+ width: theme.fn.size({ size, sizes: inputSizes }),
16
16
  appearance: "none",
17
17
  backgroundColor: "transparent",
18
18
  color: "inherit",
19
19
  padding: 0,
20
20
  textAlign: "center",
21
21
  border: "1px solid transparent",
22
- fontSize: getSizeValue({ size, sizes: theme.fontSizes }),
22
+ fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),
23
23
  lineHeight: 1,
24
24
  outline: 0,
25
25
  "&[disabled]": {
@@ -28,8 +28,8 @@ var useStyles = createStyles((theme, { size }) => ({
28
28
  }
29
29
  },
30
30
  separator: {
31
- paddingLeft: getSizeValue({ size, sizes: theme.spacing }) / 2,
32
- paddingRight: getSizeValue({ size, sizes: theme.spacing }) / 2,
31
+ paddingLeft: theme.fn.size({ size, sizes: theme.spacing }) / 2,
32
+ paddingRight: theme.fn.size({ size, sizes: theme.spacing }) / 2,
33
33
  lineHeight: 1,
34
34
  marginBottom: 3
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimeRangeInput.styles.js","sources":["../../../src/components/TimeRangeInput/TimeRangeInput.styles.ts"],"sourcesContent":["import { createStyles, INPUT_SIZES, MantineSize, getSizeValue } from '@mantine/core';\n\nimport { inputSizes } from '../TimeInput/TimeInput.styles';\n\ninterface TimeRangeInputStyles {\n size: MantineSize;\n}\n\nexport default createStyles((theme, { size }: TimeRangeInputStyles) => ({\n disabled: {\n opacity: 0.6,\n cursor: 'not-allowed',\n },\n\n inputWrapper: {\n display: 'inline-flex',\n alignItems: 'center',\n // -2 for border offset\n height: getSizeValue({ size, sizes: INPUT_SIZES }) - 2,\n },\n\n timeField: {\n width: getSizeValue({ size, sizes: inputSizes }),\n appearance: 'none',\n backgroundColor: 'transparent',\n color: 'inherit',\n padding: 0,\n textAlign: 'center',\n border: '1px solid transparent',\n fontSize: getSizeValue({ size, sizes: theme.fontSizes }),\n lineHeight: 1,\n outline: 0,\n\n '&[disabled]': {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7],\n cursor: 'not-allowed',\n },\n },\n\n separator: {\n paddingLeft: getSizeValue({ size, sizes: theme.spacing }) / 2,\n paddingRight: getSizeValue({ size, sizes: theme.spacing }) / 2,\n lineHeight: 1,\n marginBottom: 3,\n },\n}));\n"],"names":[],"mappings":";;;AAEA,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM;AAClD,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE,GAAG;AAChB,IAAI,MAAM,EAAE,aAAa;AACzB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;AAC1D,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACpD,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,eAAe,EAAE,aAAa;AAClC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,uBAAuB;AACnC,IAAI,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC5D,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,aAAa,EAAE;AACnB,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,EAAE,aAAa;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,WAAW,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;AACjE,IAAI,YAAY,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;AAClE,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,YAAY,EAAE,CAAC;AACnB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"TimeRangeInput.styles.js","sources":["../../../src/components/TimeRangeInput/TimeRangeInput.styles.ts"],"sourcesContent":["import { createStyles, INPUT_SIZES, MantineSize } from '@mantine/core';\n\nimport { inputSizes } from '../TimeInput/TimeInput.styles';\n\ninterface TimeRangeInputStyles {\n size: MantineSize;\n}\n\nexport default createStyles((theme, { size }: TimeRangeInputStyles) => ({\n disabled: {\n opacity: 0.6,\n cursor: 'not-allowed',\n },\n\n inputWrapper: {\n display: 'inline-flex',\n alignItems: 'center',\n // -2 for border offset\n height: theme.fn.size({ size, sizes: INPUT_SIZES }) - 2,\n },\n\n timeField: {\n width: theme.fn.size({ size, sizes: inputSizes }),\n appearance: 'none',\n backgroundColor: 'transparent',\n color: 'inherit',\n padding: 0,\n textAlign: 'center',\n border: '1px solid transparent',\n fontSize: theme.fn.size({ size, sizes: theme.fontSizes }),\n lineHeight: 1,\n outline: 0,\n\n '&[disabled]': {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[7],\n cursor: 'not-allowed',\n },\n },\n\n separator: {\n paddingLeft: theme.fn.size({ size, sizes: theme.spacing }) / 2,\n paddingRight: theme.fn.size({ size, sizes: theme.spacing }) / 2,\n lineHeight: 1,\n marginBottom: 3,\n },\n}));\n"],"names":[],"mappings":";;;AAEA,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM;AAClD,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE,GAAG;AAChB,IAAI,MAAM,EAAE,aAAa;AACzB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;AAC3D,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACrD,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,eAAe,EAAE,aAAa;AAClC,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,MAAM,EAAE,uBAAuB;AACnC,IAAI,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AAC7D,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,aAAa,EAAE;AACnB,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,EAAE,aAAa;AAC3B,KAAK;AACL,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;AAClE,IAAI,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;AACnE,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,YAAY,EAAE,CAAC;AACnB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -1,8 +1,10 @@
1
- function getEndOfWeek(date) {
1
+ function getEndOfWeek(date, firstDayOfWeek = "monday") {
2
2
  const value = new Date(date);
3
3
  const day = value.getDay();
4
- if (day !== 0) {
5
- value.setDate(value.getDate() + (7 - day));
4
+ const isSunday = firstDayOfWeek === "sunday";
5
+ const clampToLastDay = 7 - (isSunday ? day + 1 : day);
6
+ if (isSunday && day !== 6 || day !== 0) {
7
+ value.setDate(value.getDate() + clampToLastDay);
6
8
  }
7
9
  return value;
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-end-of-week.js","sources":["../../../src/utils/get-end-of-week/get-end-of-week.ts"],"sourcesContent":["export function getEndOfWeek(date: Date) {\n const value = new Date(date);\n const day = value.getDay();\n if (day !== 0) {\n value.setDate(value.getDate() + (7 - day));\n }\n\n return value;\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AAC7B,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE;AACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"get-end-of-week.js","sources":["../../../src/utils/get-end-of-week/get-end-of-week.ts"],"sourcesContent":["import { FirstDayOfWeek } from '../../types';\n\nexport function getEndOfWeek(date: Date, firstDayOfWeek: FirstDayOfWeek = 'monday') {\n const value = new Date(date);\n const day = value.getDay();\n const isSunday = firstDayOfWeek === 'sunday';\n\n const clampToLastDay = 7 - (isSunday ? day + 1 : day);\n\n if ((isSunday && day !== 6) || day !== 0) {\n value.setDate(value.getDate() + clampToLastDay);\n }\n\n return value;\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,EAAE;AAC9D,EAAE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AAC7B,EAAE,MAAM,QAAQ,GAAG,cAAc,KAAK,QAAQ,CAAC;AAC/C,EAAE,MAAM,cAAc,GAAG,CAAC,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACxD,EAAE,IAAI,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
@@ -1,12 +1,12 @@
1
1
  import { getStartOfWeek } from '../get-start-of-week/get-start-of-week.js';
2
2
  import { getEndOfWeek } from '../get-end-of-week/get-end-of-week.js';
3
3
 
4
- function getMonthDays(month) {
4
+ function getMonthDays(month, firstDayOfWeek = "monday") {
5
5
  const currentMonth = month.getMonth();
6
6
  const startOfMonth = new Date(month.getFullYear(), currentMonth, 1);
7
7
  const endOfMonth = new Date(month.getFullYear(), month.getMonth() + 1, 0);
8
- const endDate = getEndOfWeek(endOfMonth);
9
- const date = getStartOfWeek(startOfMonth);
8
+ const endDate = getEndOfWeek(endOfMonth, firstDayOfWeek);
9
+ const date = getStartOfWeek(startOfMonth, firstDayOfWeek);
10
10
  const weeks = [];
11
11
  while (date <= endDate) {
12
12
  const days = [];
@@ -1 +1 @@
1
- {"version":3,"file":"get-month-days.js","sources":["../../../src/utils/get-month-days/get-month-days.ts"],"sourcesContent":["import { getStartOfWeek } from '../get-start-of-week/get-start-of-week';\nimport { getEndOfWeek } from '../get-end-of-week/get-end-of-week';\n\nexport function getMonthDays(month: Date): Date[][] {\n const currentMonth = month.getMonth();\n const startOfMonth = new Date(month.getFullYear(), currentMonth, 1);\n const endOfMonth = new Date(month.getFullYear(), month.getMonth() + 1, 0);\n const endDate = getEndOfWeek(endOfMonth);\n const date = getStartOfWeek(startOfMonth);\n const weeks: Date[][] = [];\n\n while (date <= endDate) {\n const days: Date[] = [];\n\n for (let i = 0; i < 7; i += 1) {\n days.push(new Date(date));\n date.setDate(date.getDate() + 1);\n }\n\n weeks.push(days);\n }\n\n return weeks;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACxC,EAAE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACtE,EAAE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,EAAE,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAC3C,EAAE,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAC5C,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;AACnB,EAAE,OAAO,IAAI,IAAI,OAAO,EAAE;AAC1B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"get-month-days.js","sources":["../../../src/utils/get-month-days/get-month-days.ts"],"sourcesContent":["import { FirstDayOfWeek } from '../../types';\nimport { getStartOfWeek } from '../get-start-of-week/get-start-of-week';\nimport { getEndOfWeek } from '../get-end-of-week/get-end-of-week';\n\nexport function getMonthDays(month: Date, firstDayOfWeek: FirstDayOfWeek = 'monday'): Date[][] {\n const currentMonth = month.getMonth();\n const startOfMonth = new Date(month.getFullYear(), currentMonth, 1);\n const endOfMonth = new Date(month.getFullYear(), month.getMonth() + 1, 0);\n const endDate = getEndOfWeek(endOfMonth, firstDayOfWeek);\n const date = getStartOfWeek(startOfMonth, firstDayOfWeek);\n const weeks: Date[][] = [];\n\n while (date <= endDate) {\n const days: Date[] = [];\n\n for (let i = 0; i < 7; i += 1) {\n days.push(new Date(date));\n date.setDate(date.getDate() + 1);\n }\n\n weeks.push(days);\n }\n\n return weeks;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,EAAE;AAC/D,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACxC,EAAE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACtE,EAAE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,EAAE,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC5D,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;AACnB,EAAE,OAAO,IAAI,IAAI,OAAO,EAAE;AAC1B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
@@ -1,8 +1,10 @@
1
- function getStartOfWeek(date) {
1
+ function getStartOfWeek(date, firstDayOfWeek = "monday") {
2
2
  const value = new Date(date);
3
3
  const day = value.getDay() || 7;
4
- if (day !== 1) {
5
- value.setHours(-24 * (day - 1));
4
+ const isSunday = firstDayOfWeek === "sunday";
5
+ const clampToFirstDay = isSunday ? day : day - 1;
6
+ if (isSunday && day !== 0 || day !== 1) {
7
+ value.setHours(-24 * clampToFirstDay);
6
8
  }
7
9
  return value;
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-start-of-week.js","sources":["../../../src/utils/get-start-of-week/get-start-of-week.ts"],"sourcesContent":["export function getStartOfWeek(date: Date) {\n const value = new Date(date);\n const day = value.getDay() || 7;\n\n if (day !== 1) {\n value.setHours(-24 * (day - 1));\n }\n\n return value;\n}\n"],"names":[],"mappings":"AAAO,SAAS,cAAc,CAAC,IAAI,EAAE;AACrC,EAAE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE;AACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"get-start-of-week.js","sources":["../../../src/utils/get-start-of-week/get-start-of-week.ts"],"sourcesContent":["import { FirstDayOfWeek } from '../../types';\n\nexport function getStartOfWeek(date: Date, firstDayOfWeek: FirstDayOfWeek = 'monday') {\n const value = new Date(date);\n const day = value.getDay() || 7;\n const isSunday = firstDayOfWeek === 'sunday';\n\n const clampToFirstDay = isSunday ? day : day - 1;\n\n if ((isSunday && day !== 0) || day !== 1) {\n value.setHours(-24 * clampToFirstDay);\n }\n\n return value;\n}\n"],"names":[],"mappings":"AAAO,SAAS,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,EAAE;AAChE,EAAE,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,QAAQ,GAAG,cAAc,KAAK,QAAQ,CAAC;AAC/C,EAAE,MAAM,eAAe,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACnD,EAAE,IAAI,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf;;;;"}
@@ -1,9 +1,9 @@
1
1
  import dayjs from 'dayjs';
2
2
  import { getStartOfWeek } from '../get-start-of-week/get-start-of-week.js';
3
3
 
4
- function getWeekdaysNames(locale) {
4
+ function getWeekdaysNames(locale, firstDayOfWeek = "monday") {
5
5
  const names = [];
6
- const date = getStartOfWeek(new Date());
6
+ const date = getStartOfWeek(new Date(), firstDayOfWeek);
7
7
  for (let i = 0; i < 7; i += 1) {
8
8
  names.push(dayjs(date).locale(locale).format("dd"));
9
9
  date.setDate(date.getDate() + 1);