@mantine/dates 6.0.5 → 6.0.6

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 (29) hide show
  1. package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js +18 -0
  2. package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map +1 -1
  3. package/cjs/components/DateInput/DateInput.js +1 -1
  4. package/cjs/components/DateInput/DateInput.js.map +1 -1
  5. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js +2 -2
  6. package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js.map +1 -1
  7. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js +32 -2
  8. package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js.map +1 -1
  9. package/cjs/utils/handle-control-key-down.js +1 -0
  10. package/cjs/utils/handle-control-key-down.js.map +1 -1
  11. package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js +18 -0
  12. package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map +1 -1
  13. package/esm/components/DateInput/DateInput.js +1 -1
  14. package/esm/components/DateInput/DateInput.js.map +1 -1
  15. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js +2 -2
  16. package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js.map +1 -1
  17. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js +32 -2
  18. package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js.map +1 -1
  19. package/esm/utils/handle-control-key-down.js +1 -0
  20. package/esm/utils/handle-control-key-down.js.map +1 -1
  21. package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts +7 -1
  22. package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts.map +1 -1
  23. package/lib/components/DateInput/DateInput.d.ts +9 -1
  24. package/lib/components/DateInput/DateInput.d.ts.map +1 -1
  25. package/lib/hooks/use-dates-state/use-dates-state.d.ts +1 -1
  26. package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts +1 -1
  27. package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts.map +1 -1
  28. package/lib/utils/handle-control-key-down.d.ts.map +1 -1
  29. package/package.json +4 -4
@@ -34,6 +34,12 @@ function pickCalendarProps(props) {
34
34
  onMonthSelect,
35
35
  onYearMouseEnter,
36
36
  onMonthMouseEnter,
37
+ onNextMonth,
38
+ onPreviousMonth,
39
+ onNextYear,
40
+ onPreviousYear,
41
+ onNextDecade,
42
+ onPreviousDecade,
37
43
  __updateDateOnYearSelect,
38
44
  __updateDateOnMonthSelect,
39
45
  firstDayOfWeek,
@@ -73,6 +79,12 @@ function pickCalendarProps(props) {
73
79
  "onMonthSelect",
74
80
  "onYearMouseEnter",
75
81
  "onMonthMouseEnter",
82
+ "onNextMonth",
83
+ "onPreviousMonth",
84
+ "onNextYear",
85
+ "onPreviousYear",
86
+ "onNextDecade",
87
+ "onPreviousDecade",
76
88
  "__updateDateOnYearSelect",
77
89
  "__updateDateOnMonthSelect",
78
90
  "firstDayOfWeek",
@@ -114,6 +126,12 @@ function pickCalendarProps(props) {
114
126
  onMonthSelect,
115
127
  onYearMouseEnter,
116
128
  onMonthMouseEnter,
129
+ onNextMonth,
130
+ onPreviousMonth,
131
+ onNextYear,
132
+ onPreviousYear,
133
+ onNextDecade,
134
+ onPreviousDecade,
117
135
  __updateDateOnYearSelect,
118
136
  __updateDateOnMonthSelect,
119
137
  firstDayOfWeek,
@@ -1 +1 @@
1
- {"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -137,7 +137,7 @@ const DateInput = React.forwardRef((props, ref) => {
137
137
  });
138
138
  const [_date, setDate] = hooks.useUncontrolled({
139
139
  value: date,
140
- defaultValue,
140
+ defaultValue: defaultValue || defaultDate,
141
141
  finalValue: null,
142
142
  onChange: onDateChange
143
143
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":["forwardRef","useInputProps","pickCalendarProps","useDatesContext","dayjs","dateStringParser","useUncontrolled","useEffect","useState","isDateValid","assignTime","React","CloseButton","useDidUpdate","Input","Popover","Calendar","HiddenDatesInput"],"mappings":"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"}
1
+ {"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue, CalendarLevel } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n\n /** Max level that user can go up to (decade, year, month), defaults to decade */\n maxLevel?: CalendarLevel;\n\n /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */\n defaultLevel?: CalendarLevel;\n\n /** Current level displayed to the user (decade, year, month), used for controlled component */\n level?: CalendarLevel;\n\n /** Called when level changes */\n onLevelChange?(level: CalendarLevel): void;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue: defaultValue || defaultDate,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":["forwardRef","useInputProps","pickCalendarProps","useDatesContext","dayjs","dateStringParser","useUncontrolled","useEffect","useState","isDateValid","assignTime","React","CloseButton","useDidUpdate","Input","Popover","Calendar","HiddenDatesInput"],"mappings":"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"}
@@ -13,12 +13,12 @@ function getWeekdayNames({
13
13
  format = "dd",
14
14
  firstDayOfWeek = 1
15
15
  }) {
16
- const baseDate = dayjs__default().startOf("week");
16
+ const baseDate = dayjs__default().day(firstDayOfWeek);
17
17
  const labels = [];
18
18
  for (let i = 0; i < 7; i += 1) {
19
19
  labels.push(dayjs__default(baseDate).add(i, "days").locale(locale).format(format));
20
20
  }
21
- return [...labels.slice(firstDayOfWeek), ...labels.slice(0, firstDayOfWeek)];
21
+ return labels;
22
22
  }
23
23
 
24
24
  exports.getWeekdayNames = getWeekdayNames;
@@ -1 +1 @@
1
- {"version":3,"file":"get-weekdays-names.js","sources":["../../../../src/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { DayOfWeek } from '../../../types';\n\ninterface GetWeekdaysNamesInput {\n locale: string;\n format?: string;\n firstDayOfWeek?: DayOfWeek;\n}\n\nexport function getWeekdayNames({\n locale,\n format = 'dd',\n firstDayOfWeek = 1,\n}: GetWeekdaysNamesInput) {\n const baseDate = dayjs().startOf('week');\n const labels: string[] = [];\n\n for (let i = 0; i < 7; i += 1) {\n labels.push(dayjs(baseDate).add(i, 'days').locale(locale).format(format));\n }\n\n return [...labels.slice(firstDayOfWeek), ...labels.slice(0, firstDayOfWeek)];\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,eAAe,CAAC;AAChC,EAAE,MAAM;AACR,EAAE,MAAM,GAAG,IAAI;AACf,EAAE,cAAc,GAAG,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,MAAM,QAAQ,GAAGA,cAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3C,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjC,IAAI,MAAM,CAAC,IAAI,CAACA,cAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC/E;;;;"}
1
+ {"version":3,"file":"get-weekdays-names.js","sources":["../../../../src/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { DayOfWeek } from '../../../types';\n\ninterface GetWeekdaysNamesInput {\n locale: string;\n format?: string;\n firstDayOfWeek?: DayOfWeek;\n}\n\nexport function getWeekdayNames({\n locale,\n format = 'dd',\n firstDayOfWeek = 1,\n}: GetWeekdaysNamesInput) {\n const baseDate = dayjs().day(firstDayOfWeek);\n const labels: string[] = [];\n\n for (let i = 0; i < 7; i += 1) {\n labels.push(dayjs(baseDate).add(i, 'days').locale(locale).format(format));\n }\n\n return labels;\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,eAAe,CAAC;AAChC,EAAE,MAAM;AACR,EAAE,MAAM,GAAG,IAAI;AACf,EAAE,cAAc,GAAG,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,MAAM,QAAQ,GAAGA,cAAK,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC/C,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjC,IAAI,MAAM,CAAC,IAAI,CAACA,cAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
@@ -3,19 +3,49 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var hooks = require('@mantine/hooks');
6
+ var React = require('react');
6
7
 
8
+ const getEmptyValue = (type) => type === "range" ? [null, null] : type === "multiple" ? [] : null;
7
9
  function useUncontrolledDates({
8
10
  type,
9
11
  value,
10
12
  defaultValue,
11
13
  onChange
12
14
  }) {
13
- return hooks.useUncontrolled({
15
+ const storedType = React.useRef(type);
16
+ const [_value, _setValue] = hooks.useUncontrolled({
14
17
  value,
15
18
  defaultValue,
16
19
  onChange,
17
- finalValue: type === "range" ? [null, null] : type === "multiple" ? [] : null
20
+ finalValue: getEmptyValue(type)
18
21
  });
22
+ let _finalValue = _value;
23
+ if (storedType.current !== type) {
24
+ storedType.current = type;
25
+ if (value === void 0) {
26
+ _finalValue = defaultValue !== void 0 ? defaultValue : getEmptyValue(type);
27
+ _setValue(_finalValue);
28
+ } else if (process.env.NODE_ENV === "development") {
29
+ switch (type) {
30
+ case "default":
31
+ if (value !== null && typeof value !== "string") {
32
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`");
33
+ }
34
+ break;
35
+ case "multiple":
36
+ if (!(value instanceof Array)) {
37
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`");
38
+ }
39
+ break;
40
+ case "range":
41
+ if (!(value instanceof Array) || value.length !== 2) {
42
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`");
43
+ }
44
+ break;
45
+ }
46
+ }
47
+ }
48
+ return [_finalValue, _setValue];
19
49
  }
20
50
 
21
51
  exports.useUncontrolledDates = useUncontrolledDates;
@@ -1 +1 @@
1
- {"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n return useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: type === 'range' ? [null, null] : type === 'multiple' ? [] : null,\n });\n}\n"],"names":["useUncontrolled"],"mappings":";;;;;;AACO,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,OAAOA,qBAAe,CAAC;AACzB,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI;AACjF,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { useRef } from 'react';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const [_value, _setValue] = useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: getEmptyValue(type),\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (process.env.NODE_ENV === 'development') {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`'\n );\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`'\n );\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`'\n );\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue];\n}\n"],"names":["useRef","useUncontrolled"],"mappings":";;;;;;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3F,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGC,qBAAe,CAAC;AAC9C,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC;AAC3B,EAAE,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE;AACnC,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC1B,MAAM,WAAW,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACjF,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;AAC7B,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AACvD,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,SAAS;AACtB,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU;AACvB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AACzC,YAAY,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;AACtG,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAClC;;;;"}
@@ -143,6 +143,7 @@ function handleControlKeyDown({
143
143
  }) {
144
144
  const direction = getDirection(event.key);
145
145
  if (direction) {
146
+ event.preventDefault();
146
147
  const size = getControlsSize(controlsRef);
147
148
  focusOnNextFocusableControl({
148
149
  controlsRef,
@@ -1 +1 @@
1
- {"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n const size = getControlsSize(controlsRef);\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -30,6 +30,12 @@ function pickCalendarProps(props) {
30
30
  onMonthSelect,
31
31
  onYearMouseEnter,
32
32
  onMonthMouseEnter,
33
+ onNextMonth,
34
+ onPreviousMonth,
35
+ onNextYear,
36
+ onPreviousYear,
37
+ onNextDecade,
38
+ onPreviousDecade,
33
39
  __updateDateOnYearSelect,
34
40
  __updateDateOnMonthSelect,
35
41
  firstDayOfWeek,
@@ -69,6 +75,12 @@ function pickCalendarProps(props) {
69
75
  "onMonthSelect",
70
76
  "onYearMouseEnter",
71
77
  "onMonthMouseEnter",
78
+ "onNextMonth",
79
+ "onPreviousMonth",
80
+ "onNextYear",
81
+ "onPreviousYear",
82
+ "onNextDecade",
83
+ "onPreviousDecade",
72
84
  "__updateDateOnYearSelect",
73
85
  "__updateDateOnMonthSelect",
74
86
  "firstDayOfWeek",
@@ -110,6 +122,12 @@ function pickCalendarProps(props) {
110
122
  onMonthSelect,
111
123
  onYearMouseEnter,
112
124
  onMonthMouseEnter,
125
+ onNextMonth,
126
+ onPreviousMonth,
127
+ onNextYear,
128
+ onPreviousYear,
129
+ onNextDecade,
130
+ onPreviousDecade,
113
131
  __updateDateOnYearSelect,
114
132
  __updateDateOnMonthSelect,
115
133
  firstDayOfWeek,
@@ -1 +1 @@
1
- {"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -128,7 +128,7 @@ const DateInput = forwardRef((props, ref) => {
128
128
  });
129
129
  const [_date, setDate] = useUncontrolled({
130
130
  value: date,
131
- defaultValue,
131
+ defaultValue: defaultValue || defaultDate,
132
132
  finalValue: null,
133
133
  onChange: onDateChange
134
134
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue, CalendarLevel } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n\n /** Max level that user can go up to (decade, year, month), defaults to decade */\n maxLevel?: CalendarLevel;\n\n /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */\n defaultLevel?: CalendarLevel;\n\n /** Current level displayed to the user (decade, year, month), used for controlled component */\n level?: CalendarLevel;\n\n /** Called when level changes */\n onLevelChange?(level: CalendarLevel): void;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue: defaultValue || defaultDate,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":[],"mappings":"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"}
@@ -5,12 +5,12 @@ function getWeekdayNames({
5
5
  format = "dd",
6
6
  firstDayOfWeek = 1
7
7
  }) {
8
- const baseDate = dayjs().startOf("week");
8
+ const baseDate = dayjs().day(firstDayOfWeek);
9
9
  const labels = [];
10
10
  for (let i = 0; i < 7; i += 1) {
11
11
  labels.push(dayjs(baseDate).add(i, "days").locale(locale).format(format));
12
12
  }
13
- return [...labels.slice(firstDayOfWeek), ...labels.slice(0, firstDayOfWeek)];
13
+ return labels;
14
14
  }
15
15
 
16
16
  export { getWeekdayNames };
@@ -1 +1 @@
1
- {"version":3,"file":"get-weekdays-names.js","sources":["../../../../src/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { DayOfWeek } from '../../../types';\n\ninterface GetWeekdaysNamesInput {\n locale: string;\n format?: string;\n firstDayOfWeek?: DayOfWeek;\n}\n\nexport function getWeekdayNames({\n locale,\n format = 'dd',\n firstDayOfWeek = 1,\n}: GetWeekdaysNamesInput) {\n const baseDate = dayjs().startOf('week');\n const labels: string[] = [];\n\n for (let i = 0; i < 7; i += 1) {\n labels.push(dayjs(baseDate).add(i, 'days').locale(locale).format(format));\n }\n\n return [...labels.slice(firstDayOfWeek), ...labels.slice(0, firstDayOfWeek)];\n}\n"],"names":[],"mappings":";;AACO,SAAS,eAAe,CAAC;AAChC,EAAE,MAAM;AACR,EAAE,MAAM,GAAG,IAAI;AACf,EAAE,cAAc,GAAG,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3C,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC/E;;;;"}
1
+ {"version":3,"file":"get-weekdays-names.js","sources":["../../../../src/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { DayOfWeek } from '../../../types';\n\ninterface GetWeekdaysNamesInput {\n locale: string;\n format?: string;\n firstDayOfWeek?: DayOfWeek;\n}\n\nexport function getWeekdayNames({\n locale,\n format = 'dd',\n firstDayOfWeek = 1,\n}: GetWeekdaysNamesInput) {\n const baseDate = dayjs().day(firstDayOfWeek);\n const labels: string[] = [];\n\n for (let i = 0; i < 7; i += 1) {\n labels.push(dayjs(baseDate).add(i, 'days').locale(locale).format(format));\n }\n\n return labels;\n}\n"],"names":[],"mappings":";;AACO,SAAS,eAAe,CAAC;AAChC,EAAE,MAAM;AACR,EAAE,MAAM,GAAG,IAAI;AACf,EAAE,cAAc,GAAG,CAAC;AACpB,CAAC,EAAE;AACH,EAAE,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC/C,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACjC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB;;;;"}
@@ -1,17 +1,47 @@
1
1
  import { useUncontrolled } from '@mantine/hooks';
2
+ import { useRef } from 'react';
2
3
 
4
+ const getEmptyValue = (type) => type === "range" ? [null, null] : type === "multiple" ? [] : null;
3
5
  function useUncontrolledDates({
4
6
  type,
5
7
  value,
6
8
  defaultValue,
7
9
  onChange
8
10
  }) {
9
- return useUncontrolled({
11
+ const storedType = useRef(type);
12
+ const [_value, _setValue] = useUncontrolled({
10
13
  value,
11
14
  defaultValue,
12
15
  onChange,
13
- finalValue: type === "range" ? [null, null] : type === "multiple" ? [] : null
16
+ finalValue: getEmptyValue(type)
14
17
  });
18
+ let _finalValue = _value;
19
+ if (storedType.current !== type) {
20
+ storedType.current = type;
21
+ if (value === void 0) {
22
+ _finalValue = defaultValue !== void 0 ? defaultValue : getEmptyValue(type);
23
+ _setValue(_finalValue);
24
+ } else if (process.env.NODE_ENV === "development") {
25
+ switch (type) {
26
+ case "default":
27
+ if (value !== null && typeof value !== "string") {
28
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`");
29
+ }
30
+ break;
31
+ case "multiple":
32
+ if (!(value instanceof Array)) {
33
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`");
34
+ }
35
+ break;
36
+ case "range":
37
+ if (!(value instanceof Array) || value.length !== 2) {
38
+ console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`");
39
+ }
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ return [_finalValue, _setValue];
15
45
  }
16
46
 
17
47
  export { useUncontrolledDates };
@@ -1 +1 @@
1
- {"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n return useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: type === 'range' ? [null, null] : type === 'multiple' ? [] : null,\n });\n}\n"],"names":[],"mappings":";;AACO,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,OAAO,eAAe,CAAC;AACzB,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI;AACjF,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { useRef } from 'react';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const [_value, _setValue] = useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: getEmptyValue(type),\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (process.env.NODE_ENV === 'development') {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`'\n );\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`'\n );\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`'\n );\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue];\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3F,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,eAAe,CAAC;AAC9C,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC;AAC3B,EAAE,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE;AACnC,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC1B,MAAM,WAAW,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACjF,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;AAC7B,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AACvD,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,SAAS;AACtB,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU;AACvB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AACzC,YAAY,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;AACtG,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAClC;;;;"}
@@ -139,6 +139,7 @@ function handleControlKeyDown({
139
139
  }) {
140
140
  const direction = getDirection(event.key);
141
141
  if (direction) {
142
+ event.preventDefault();
142
143
  const size = getControlsSize(controlsRef);
143
144
  focusOnNextFocusableControl({
144
145
  controlsRef,
@@ -1 +1 @@
1
- {"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n const size = getControlsSize(controlsRef);\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -15,6 +15,12 @@ export declare function pickCalendarProps<T extends Record<string, any>>(props:
15
15
  onMonthSelect: any;
16
16
  onYearMouseEnter: any;
17
17
  onMonthMouseEnter: any;
18
+ onNextMonth: any;
19
+ onPreviousMonth: any;
20
+ onNextYear: any;
21
+ onPreviousYear: any;
22
+ onNextDecade: any;
23
+ onPreviousDecade: any;
18
24
  __updateDateOnYearSelect: any;
19
25
  __updateDateOnMonthSelect: any;
20
26
  firstDayOfWeek: any;
@@ -39,6 +45,6 @@ export declare function pickCalendarProps<T extends Record<string, any>>(props:
39
45
  maxDate: any;
40
46
  locale: any;
41
47
  };
42
- others: Omit<T, "date" | "locale" | "firstDayOfWeek" | "weekendDays" | "weekdayFormat" | "renderDay" | "getDayProps" | "excludeDate" | "minDate" | "maxDate" | "hideOutsideDates" | "hideWeekdays" | "getDayAriaLabel" | "monthLabelFormat" | "numberOfColumns" | "monthsListFormat" | "getMonthControlProps" | "yearLabelFormat" | "yearsListFormat" | "getYearControlProps" | "decadeLabelFormat" | "defaultLevel" | "level" | "onLevelChange" | "onYearSelect" | "onMonthSelect" | "onYearMouseEnter" | "onMonthMouseEnter" | "maxLevel" | "minLevel" | "__updateDateOnYearSelect" | "__updateDateOnMonthSelect" | "defaultDate" | "onDateChange" | "columnsToScroll" | "ariaLabels" | "allowSingleDateInRange" | "allowDeselect">;
48
+ others: Omit<T, "date" | "locale" | "firstDayOfWeek" | "weekendDays" | "weekdayFormat" | "renderDay" | "getDayProps" | "excludeDate" | "minDate" | "maxDate" | "hideOutsideDates" | "hideWeekdays" | "getDayAriaLabel" | "monthLabelFormat" | "numberOfColumns" | "monthsListFormat" | "getMonthControlProps" | "yearLabelFormat" | "yearsListFormat" | "getYearControlProps" | "decadeLabelFormat" | "defaultLevel" | "level" | "onLevelChange" | "onYearSelect" | "onMonthSelect" | "onYearMouseEnter" | "onMonthMouseEnter" | "maxLevel" | "minLevel" | "__updateDateOnYearSelect" | "__updateDateOnMonthSelect" | "defaultDate" | "onDateChange" | "columnsToScroll" | "ariaLabels" | "onNextDecade" | "onPreviousDecade" | "onNextYear" | "onPreviousYear" | "onNextMonth" | "onPreviousMonth" | "allowSingleDateInRange" | "allowDeselect">;
43
49
  };
44
50
  //# sourceMappingURL=pick-calendar-levels-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pick-calendar-levels-props.d.ts","sourceRoot":"","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0GxE"}
1
+ {"version":3,"file":"pick-calendar-levels-props.d.ts","sourceRoot":"","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsHxE"}
@@ -4,7 +4,7 @@ import { CalendarBaseProps, CalendarStylesNames } from '../Calendar';
4
4
  import { DecadeLevelSettings } from '../DecadeLevel';
5
5
  import { YearLevelSettings } from '../YearLevel';
6
6
  import { MonthLevelSettings } from '../MonthLevel';
7
- import { DateValue } from '../../types';
7
+ import { DateValue, CalendarLevel } from '../../types';
8
8
  export type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;
9
9
  export interface DateInputProps extends DefaultProps<DateInputStylesNames>, InputSharedProps, InputWrapperBaseProps, CalendarBaseProps, DecadeLevelSettings, YearLevelSettings, MonthLevelSettings, Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {
10
10
  /** Parses user input to convert it to Date object */
@@ -29,6 +29,14 @@ export interface DateInputProps extends DefaultProps<DateInputStylesNames>, Inpu
29
29
  allowDeselect?: boolean;
30
30
  /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */
31
31
  preserveTime?: boolean;
32
+ /** Max level that user can go up to (decade, year, month), defaults to decade */
33
+ maxLevel?: CalendarLevel;
34
+ /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */
35
+ defaultLevel?: CalendarLevel;
36
+ /** Current level displayed to the user (decade, year, month), used for controlled component */
37
+ level?: CalendarLevel;
38
+ /** Called when level changes */
39
+ onLevelChange?(level: CalendarLevel): void;
32
40
  }
33
41
  export declare const DateInput: React.ForwardRefExoticComponent<DateInputProps & React.RefAttributes<HTMLInputElement>>;
34
42
  //# sourceMappingURL=DateInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../src/components/DateInput/DateInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EAGvB,YAAY,EAGb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAY,iBAAiB,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAEpG,MAAM,WAAW,cACf,SAAQ,YAAY,CAAC,oBAAoB,CAAC,EACxC,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC;IAC/F,qDAAqD;IACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAE5C,qCAAqC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,gCAAgC;IAChC,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAElC,uCAAuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvD,0GAA0G;IAC1G,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAE5D,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2GAA2G;IAC3G,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2LAA2L;IAC3L,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sIAAsI;IACtI,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AASD,eAAO,MAAM,SAAS,yFAiMpB,CAAC"}
1
+ {"version":3,"file":"DateInput.d.ts","sourceRoot":"","sources":["../../../src/components/DateInput/DateInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EAGvB,YAAY,EAGb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAY,iBAAiB,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAEpG,MAAM,WAAW,cACf,SAAQ,YAAY,CAAC,oBAAoB,CAAC,EACxC,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC;IAC/F,qDAAqD;IACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAE5C,qCAAqC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,gCAAgC;IAChC,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAElC,uCAAuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvD,0GAA0G;IAC1G,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAE5D,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2GAA2G;IAC3G,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2LAA2L;IAC3L,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sIAAsI;IACtI,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,iGAAiG;IACjG,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,+FAA+F;IAC/F,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,gCAAgC;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC5C;AASD,eAAO,MAAM,SAAS,yFAiMpB,CAAC"}
@@ -23,7 +23,7 @@ export declare function useDatesState<Type extends DatePickerType = 'default'>({
23
23
  lastInRange?: undefined;
24
24
  };
25
25
  _value: any;
26
- setValue: (value: any) => void;
26
+ setValue: any;
27
27
  };
28
28
  export {};
29
29
  //# sourceMappingURL=use-dates-state.d.ts.map
@@ -5,6 +5,6 @@ interface UseUncontrolledDates<Type extends DatePickerType = 'default'> {
5
5
  defaultValue: DatePickerValue<Type>;
6
6
  onChange(value: DatePickerValue<Type>): void;
7
7
  }
8
- export declare function useUncontrolledDates<Type extends DatePickerType = 'default'>({ type, value, defaultValue, onChange, }: UseUncontrolledDates<Type>): [any, (value: any) => void, boolean];
8
+ export declare function useUncontrolledDates<Type extends DatePickerType = 'default'>({ type, value, defaultValue, onChange, }: UseUncontrolledDates<Type>): any[];
9
9
  export {};
10
10
  //# sourceMappingURL=use-uncontrolled-dates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-uncontrolled-dates.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D,UAAU,oBAAoB,CAAC,IAAI,SAAS,cAAc,GAAG,SAAS;IACpE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,SAAS,cAAc,GAAG,SAAS,EAAE,EAC5E,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE,oBAAoB,CAAC,IAAI,CAAC,wCAO5B"}
1
+ {"version":3,"file":"use-uncontrolled-dates.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D,UAAU,oBAAoB,CAAC,IAAI,SAAS,cAAc,GAAG,SAAS;IACpE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9C;AAKD,wBAAgB,oBAAoB,CAAC,IAAI,SAAS,cAAc,GAAG,SAAS,EAAE,EAC5E,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAmD5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"handle-control-key-down.d.ts","sourceRoot":"","sources":["../../src/utils/handle-control-key-down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,KAAK,WAAW,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;AA2KtD,UAAU,yBAAyB;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,KAAK,GACN,EAAE,yBAAyB,QAe3B"}
1
+ {"version":3,"file":"handle-control-key-down.d.ts","sourceRoot":"","sources":["../../src/utils/handle-control-key-down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,KAAK,WAAW,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;AA2KtD,UAAU,yBAAyB;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC/C;AAED,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,KAAK,GACN,EAAE,yBAAyB,QAiB3B"}
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": "6.0.5",
4
+ "version": "6.0.6",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -29,13 +29,13 @@
29
29
  "picker"
30
30
  ],
31
31
  "peerDependencies": {
32
- "@mantine/core": "6.0.5",
33
- "@mantine/hooks": "6.0.5",
32
+ "@mantine/core": "6.0.6",
33
+ "@mantine/hooks": "6.0.6",
34
34
  "dayjs": ">=1.0.0",
35
35
  "react": ">=16.8.0"
36
36
  },
37
37
  "dependencies": {
38
- "@mantine/utils": "6.0.5"
38
+ "@mantine/utils": "6.0.6"
39
39
  },
40
40
  "devDependencies": {}
41
41
  }