@mui/x-date-pickers-pro 7.15.0 → 7.17.0

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 (187) hide show
  1. package/CHANGELOG.md +185 -1
  2. package/DateRangeCalendar/DateRangeCalendar.js +16 -13
  3. package/DateRangeCalendar/index.js +2 -2
  4. package/DateRangeCalendar/useDragRange.js +3 -1
  5. package/DateRangePicker/DateRangePicker.js +15 -13
  6. package/DateRangePicker/DateRangePickerToolbar.js +3 -1
  7. package/DateRangePicker/index.js +3 -3
  8. package/DateRangePicker/shared.js +1 -1
  9. package/DateRangePickerDay/DateRangePickerDay.js +4 -2
  10. package/DateRangePickerDay/index.js +2 -2
  11. package/DateTimeRangePicker/DateTimeRangePicker.js +15 -13
  12. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -1
  13. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  14. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +4 -2
  15. package/DateTimeRangePicker/index.js +5 -5
  16. package/DateTimeRangePicker/shared.js +2 -2
  17. package/DesktopDateRangePicker/DesktopDateRangePicker.js +20 -18
  18. package/DesktopDateRangePicker/index.js +1 -1
  19. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +23 -20
  20. package/DesktopDateTimeRangePicker/index.js +1 -1
  21. package/MobileDateRangePicker/MobileDateRangePicker.js +20 -18
  22. package/MobileDateRangePicker/index.js +1 -1
  23. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +23 -20
  24. package/MobileDateTimeRangePicker/index.js +1 -1
  25. package/MultiInputDateRangeField/MultiInputDateRangeField.js +16 -11
  26. package/MultiInputDateRangeField/index.js +2 -2
  27. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +16 -11
  28. package/MultiInputDateTimeRangeField/index.js +2 -2
  29. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -11
  30. package/MultiInputTimeRangeField/index.js +2 -2
  31. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -0
  32. package/PickersRangeCalendarHeader/index.js +1 -1
  33. package/SingleInputDateRangeField/SingleInputDateRangeField.js +12 -8
  34. package/SingleInputDateRangeField/index.js +2 -2
  35. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  36. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +7 -4
  37. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +12 -8
  38. package/SingleInputDateTimeRangeField/index.js +2 -2
  39. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  40. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +7 -4
  41. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +12 -8
  42. package/SingleInputTimeRangeField/index.js +2 -2
  43. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  44. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +7 -4
  45. package/StaticDateRangePicker/StaticDateRangePicker.js +18 -16
  46. package/StaticDateRangePicker/index.js +1 -1
  47. package/dateRangeViewRenderers/dateRangeViewRenderers.js +1 -1
  48. package/dateRangeViewRenderers/index.js +1 -1
  49. package/index.d.ts +1 -0
  50. package/index.js +20 -19
  51. package/internals/hooks/useDesktopRangePicker/index.js +1 -1
  52. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +3 -3
  53. package/internals/hooks/useMobileRangePicker/index.js +1 -1
  54. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +3 -3
  55. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -17
  56. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +17 -17
  57. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +17 -17
  58. package/internals/hooks/useStaticRangePicker/index.js +1 -1
  59. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -1
  60. package/internals/models/index.js +4 -4
  61. package/internals/utils/releaseInfo.js +1 -1
  62. package/internals/utils/valueManagers.js +1 -1
  63. package/models/index.js +5 -5
  64. package/modern/DateRangeCalendar/DateRangeCalendar.js +16 -13
  65. package/modern/DateRangeCalendar/index.js +2 -2
  66. package/modern/DateRangeCalendar/useDragRange.js +3 -1
  67. package/modern/DateRangePicker/DateRangePicker.js +15 -13
  68. package/modern/DateRangePicker/DateRangePickerToolbar.js +3 -1
  69. package/modern/DateRangePicker/index.js +3 -3
  70. package/modern/DateRangePicker/shared.js +1 -1
  71. package/modern/DateRangePickerDay/DateRangePickerDay.js +4 -2
  72. package/modern/DateRangePickerDay/index.js +2 -2
  73. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +15 -13
  74. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -1
  75. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  76. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +4 -2
  77. package/modern/DateTimeRangePicker/index.js +5 -5
  78. package/modern/DateTimeRangePicker/shared.js +2 -2
  79. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +20 -18
  80. package/modern/DesktopDateRangePicker/index.js +1 -1
  81. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +23 -20
  82. package/modern/DesktopDateTimeRangePicker/index.js +1 -1
  83. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +20 -18
  84. package/modern/MobileDateRangePicker/index.js +1 -1
  85. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +23 -20
  86. package/modern/MobileDateTimeRangePicker/index.js +1 -1
  87. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +16 -11
  88. package/modern/MultiInputDateRangeField/index.js +2 -2
  89. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +16 -11
  90. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  91. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -11
  92. package/modern/MultiInputTimeRangeField/index.js +2 -2
  93. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -0
  94. package/modern/PickersRangeCalendarHeader/index.js +1 -1
  95. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +12 -8
  96. package/modern/SingleInputDateRangeField/index.js +2 -2
  97. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +7 -4
  98. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +12 -8
  99. package/modern/SingleInputDateTimeRangeField/index.js +2 -2
  100. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +7 -4
  101. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +12 -8
  102. package/modern/SingleInputTimeRangeField/index.js +2 -2
  103. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +7 -4
  104. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +18 -16
  105. package/modern/StaticDateRangePicker/index.js +1 -1
  106. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +1 -1
  107. package/modern/dateRangeViewRenderers/index.js +1 -1
  108. package/modern/index.js +20 -19
  109. package/modern/internals/hooks/useDesktopRangePicker/index.js +1 -1
  110. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +3 -3
  111. package/modern/internals/hooks/useMobileRangePicker/index.js +1 -1
  112. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +3 -3
  113. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -17
  114. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +17 -17
  115. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +17 -17
  116. package/modern/internals/hooks/useStaticRangePicker/index.js +1 -1
  117. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -1
  118. package/modern/internals/models/index.js +4 -4
  119. package/modern/internals/utils/releaseInfo.js +1 -1
  120. package/modern/internals/utils/valueManagers.js +1 -1
  121. package/modern/models/index.js +5 -5
  122. package/modern/themeAugmentation/index.js +1 -4
  123. package/modern/validation/index.js +3 -0
  124. package/modern/{internals/utils/validation → validation}/validateDateRange.js +10 -5
  125. package/modern/{internals/utils/validation → validation}/validateDateTimeRange.js +10 -5
  126. package/{internals/utils → modern}/validation/validateTimeRange.js +10 -5
  127. package/node/DateRangeCalendar/DateRangeCalendar.js +7 -6
  128. package/node/DateRangeCalendar/useDragRange.js +3 -3
  129. package/node/DateRangePicker/DateRangePicker.js +14 -14
  130. package/node/DateRangePicker/DateRangePickerToolbar.js +3 -3
  131. package/node/DateRangePicker/shared.js +2 -3
  132. package/node/DateRangePickerDay/DateRangePickerDay.js +3 -3
  133. package/node/DateTimeRangePicker/DateTimeRangePicker.js +14 -14
  134. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  135. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +1 -1
  136. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +3 -3
  137. package/node/DateTimeRangePicker/dateTimeRangePickerTabsClasses.js +1 -1
  138. package/node/DateTimeRangePicker/shared.js +1 -1
  139. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +18 -18
  140. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +18 -17
  141. package/node/MobileDateRangePicker/MobileDateRangePicker.js +18 -18
  142. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -17
  143. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -12
  144. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -12
  145. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -12
  146. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +3 -3
  147. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +12 -10
  148. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +6 -5
  149. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +12 -10
  150. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +6 -5
  151. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +12 -10
  152. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +6 -5
  153. package/node/StaticDateRangePicker/StaticDateRangePicker.js +16 -16
  154. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +1 -2
  155. package/node/index.js +13 -1
  156. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -3
  157. package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +2 -3
  158. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -3
  159. package/node/internals/hooks/useMultiInputFieldSelectedSections.js +2 -3
  160. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +14 -14
  161. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +14 -14
  162. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +14 -14
  163. package/node/internals/hooks/useRangePosition.js +1 -1
  164. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +2 -3
  165. package/node/internals/utils/date-fields-utils.js +1 -1
  166. package/node/internals/utils/releaseInfo.js +1 -1
  167. package/node/internals/utils/valueManagers.js +1 -1
  168. package/node/themeAugmentation/index.js +0 -33
  169. package/node/validation/index.js +26 -0
  170. package/node/{internals/utils/validation → validation}/validateDateRange.js +13 -8
  171. package/node/{internals/utils/validation → validation}/validateDateTimeRange.js +13 -8
  172. package/node/{internals/utils/validation → validation}/validateTimeRange.js +12 -7
  173. package/package.json +5 -4
  174. package/themeAugmentation/index.d.ts +3 -3
  175. package/themeAugmentation/index.js +1 -4
  176. package/validation/index.d.ts +6 -0
  177. package/validation/index.js +3 -0
  178. package/validation/package.json +6 -0
  179. package/validation/validateDateRange.d.ts +8 -0
  180. package/{internals/utils/validation → validation}/validateDateRange.js +10 -5
  181. package/validation/validateDateTimeRange.d.ts +8 -0
  182. package/{internals/utils/validation → validation}/validateDateTimeRange.js +10 -5
  183. package/validation/validateTimeRange.d.ts +6 -0
  184. package/{modern/internals/utils/validation → validation}/validateTimeRange.js +10 -5
  185. package/internals/utils/validation/validateDateRange.d.ts +0 -7
  186. package/internals/utils/validation/validateDateTimeRange.d.ts +0 -7
  187. package/internals/utils/validation/validateTimeRange.d.ts +0 -6
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -10,7 +12,7 @@ import { useThemeProps } from '@mui/material/styles';
10
12
  import { refType } from '@mui/utils';
11
13
  import useSlotProps from '@mui/utils/useSlotProps';
12
14
  import { useClearableField } from '@mui/x-date-pickers/hooks';
13
- import { useSingleInputDateTimeRangeField } from './useSingleInputDateTimeRangeField';
15
+ import { useSingleInputDateTimeRangeField } from "./useSingleInputDateTimeRangeField.js";
14
16
  import { jsx as _jsx } from "react/jsx-runtime";
15
17
  /**
16
18
  * Demos:
@@ -228,8 +230,8 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
228
230
  onBlur: PropTypes.func,
229
231
  /**
230
232
  * Callback fired when the value changes.
231
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
232
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
233
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
234
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
233
235
  * @param {TValue} value The new value.
234
236
  * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
235
237
  */
@@ -239,11 +241,13 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
239
241
  */
240
242
  onClear: PropTypes.func,
241
243
  /**
242
- * Callback fired when the error associated to the current value changes.
243
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
244
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
245
- * @param {TError} error The new error.
246
- * @param {TValue} value The value associated to the error.
244
+ * Callback fired when the error associated with the current value changes.
245
+ * When a validation error is detected, the `error` parameter contains a non-null value.
246
+ * This can be used to render an appropriate form error.
247
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
248
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
249
+ * @param {TError} error The reason why the current value is not valid.
250
+ * @param {TValue} value The value associated with the error.
247
251
  */
248
252
  onError: PropTypes.func,
249
253
  onFocus: PropTypes.func,
@@ -1,2 +1,2 @@
1
- export { SingleInputDateTimeRangeField } from './SingleInputDateTimeRangeField';
2
- export { useSingleInputDateTimeRangeField as unstable_useSingleInputDateTimeRangeField } from './useSingleInputDateTimeRangeField';
1
+ export { SingleInputDateTimeRangeField } from "./SingleInputDateTimeRangeField.js";
2
+ export { useSingleInputDateTimeRangeField as unstable_useSingleInputDateTimeRangeField } from "./useSingleInputDateTimeRangeField.js";
@@ -1,3 +1,3 @@
1
1
  import { PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
3
- export declare const useSingleInputDateTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>> & Required<Pick<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>>>, keyof UseSingleInputDateTimeRangeFieldProps<any, any>>>;
3
+ export declare const useSingleInputDateTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>> & Required<Pick<UseSingleInputDateTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps<any>>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "minDateTime" | "maxDateTime" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "dateSeparator">>;
@@ -1,13 +1,16 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
- import { useField, splitFieldInternalAndForwardedProps, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
3
- import { rangeValueManager, getRangeFieldValueManager } from '../internals/utils/valueManagers';
4
- import { validateDateTimeRange } from '../internals/utils/validation/validateDateTimeRange';
4
+ import { useField, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
6
+ import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
7
+ import { validateDateTimeRange } from "../validation/index.js";
5
8
  export const useSingleInputDateTimeRangeField = inProps => {
6
9
  const props = useDefaultizedDateTimeField(inProps);
7
10
  const {
8
11
  forwardedProps,
9
12
  internalProps
10
- } = splitFieldInternalAndForwardedProps(props, 'date-time');
13
+ } = useSplitFieldProps(props, 'date-time');
11
14
  const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
12
15
  dateSeparator: internalProps.dateSeparator
13
16
  }), [internalProps.dateSeparator]);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -10,7 +12,7 @@ import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
10
12
  import { useThemeProps } from '@mui/material/styles';
11
13
  import useSlotProps from '@mui/utils/useSlotProps';
12
14
  import { refType } from '@mui/utils';
13
- import { useSingleInputTimeRangeField } from './useSingleInputTimeRangeField';
15
+ import { useSingleInputTimeRangeField } from "./useSingleInputTimeRangeField.js";
14
16
  import { jsx as _jsx } from "react/jsx-runtime";
15
17
  /**
16
18
  * Demos:
@@ -210,8 +212,8 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
210
212
  onBlur: PropTypes.func,
211
213
  /**
212
214
  * Callback fired when the value changes.
213
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
214
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
215
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
216
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
215
217
  * @param {TValue} value The new value.
216
218
  * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
217
219
  */
@@ -221,11 +223,13 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
221
223
  */
222
224
  onClear: PropTypes.func,
223
225
  /**
224
- * Callback fired when the error associated to the current value changes.
225
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
226
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
227
- * @param {TError} error The new error.
228
- * @param {TValue} value The value associated to the error.
226
+ * Callback fired when the error associated with the current value changes.
227
+ * When a validation error is detected, the `error` parameter contains a non-null value.
228
+ * This can be used to render an appropriate form error.
229
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
230
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
231
+ * @param {TError} error The reason why the current value is not valid.
232
+ * @param {TValue} value The value associated with the error.
229
233
  */
230
234
  onError: PropTypes.func,
231
235
  onFocus: PropTypes.func,
@@ -1,2 +1,2 @@
1
- export { SingleInputTimeRangeField } from './SingleInputTimeRangeField';
2
- export { useSingleInputTimeRangeField as unstable_useSingleInputTimeRangeField } from './useSingleInputTimeRangeField';
1
+ export { SingleInputTimeRangeField } from "./SingleInputTimeRangeField.js";
2
+ export { useSingleInputTimeRangeField as unstable_useSingleInputTimeRangeField } from "./useSingleInputTimeRangeField.js";
@@ -1,3 +1,3 @@
1
1
  import { PickerValidDate } from '@mui/x-date-pickers/models';
2
2
  import { UseSingleInputTimeRangeFieldProps } from './SingleInputTimeRangeField.types';
3
- export declare const useSingleInputTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps> & Required<Pick<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps>>, keyof UseSingleInputTimeRangeFieldProps<any, any>>>;
3
+ export declare const useSingleInputTimeRangeField: <TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps> & Required<Pick<UseSingleInputTimeRangeFieldProps<TDate, TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "referenceDate" | "timezone" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "shouldRespectLeadingZeros" | "unstableFieldRef" | "ampm" | keyof import("@mui/x-date-pickers/internals").BaseTimeValidationProps | keyof import("@mui/x-date-pickers/internals").TimeValidationProps<any> | "dateSeparator">>;
@@ -1,13 +1,16 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
- import { useField, splitFieldInternalAndForwardedProps, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
3
- import { rangeValueManager, getRangeFieldValueManager } from '../internals/utils/valueManagers';
4
- import { validateTimeRange } from '../internals/utils/validation/validateTimeRange';
4
+ import { useField, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
6
+ import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
7
+ import { validateTimeRange } from "../validation/index.js";
5
8
  export const useSingleInputTimeRangeField = inProps => {
6
9
  const props = useDefaultizedTimeField(inProps);
7
10
  const {
8
11
  forwardedProps,
9
12
  internalProps
10
- } = splitFieldInternalAndForwardedProps(props, 'time');
13
+ } = useSplitFieldProps(props, 'time');
11
14
  const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
12
15
  dateSeparator: internalProps.dateSeparator
13
16
  }), [internalProps.dateSeparator]);
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
4
- import { useStaticRangePicker } from '../internals/hooks/useStaticRangePicker';
5
- import { useDateRangePickerDefaultizedProps } from '../DateRangePicker/shared';
6
- import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
7
- import { rangeValueManager } from '../internals/utils/valueManagers';
8
- import { validateDateRange } from '../internals/utils/validation/validateDateRange';
6
+ import { useStaticRangePicker } from "../internals/hooks/useStaticRangePicker/index.js";
7
+ import { useDateRangePickerDefaultizedProps } from "../DateRangePicker/shared.js";
8
+ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js";
9
+ import { rangeValueManager } from "../internals/utils/valueManagers.js";
10
+ import { validateDateRange } from "../validation/index.js";
9
11
  /**
10
12
  * Demos:
11
13
  *
@@ -155,16 +157,16 @@ StaticDateRangePicker.propTypes = {
155
157
  minDate: PropTypes.object,
156
158
  /**
157
159
  * Callback fired when the value is accepted.
158
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
159
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
160
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
161
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
160
162
  * @param {TValue} value The value that was just accepted.
161
163
  * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
162
164
  */
163
165
  onAccept: PropTypes.func,
164
166
  /**
165
167
  * Callback fired when the value changes.
166
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
167
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
168
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
169
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
168
170
  * @param {TValue} value The new value.
169
171
  * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
170
172
  */
@@ -176,13 +178,13 @@ StaticDateRangePicker.propTypes = {
176
178
  */
177
179
  onClose: PropTypes.func,
178
180
  /**
179
- * Callback fired when the error associated to the current value changes.
180
- * If the error has a non-null value, then the `TextField` will be rendered in `error` state.
181
- *
182
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
183
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
184
- * @param {TError} error The new error describing why the current value is not valid.
185
- * @param {TValue} value The value associated to the error.
181
+ * Callback fired when the error associated with the current value changes.
182
+ * When a validation error is detected, the `error` parameter contains a non-null value.
183
+ * This can be used to render an appropriate form error.
184
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
185
+ * @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
186
+ * @param {TError} error The reason why the current value is not valid.
187
+ * @param {TValue} value The value associated with the error.
186
188
  */
187
189
  onError: PropTypes.func,
188
190
  /**
@@ -1 +1 @@
1
- export { StaticDateRangePicker } from './StaticDateRangePicker';
1
+ export { StaticDateRangePicker } from "./StaticDateRangePicker.js";
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { DateRangeCalendar } from '../DateRangeCalendar';
2
+ import { DateRangeCalendar } from "../DateRangeCalendar/index.js";
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  /**
5
5
  * We don't pass all the props down to `DateRangeCalendar`,
@@ -1 +1 @@
1
- export { renderDateRangeViewCalendar } from './dateRangeViewRenderers';
1
+ export { renderDateRangeViewCalendar } from "./dateRangeViewRenderers.js";
package/index.d.ts CHANGED
@@ -24,3 +24,4 @@ export * from './DesktopDateTimeRangePicker';
24
24
  export * from './MobileDateTimeRangePicker';
25
25
  export * from './dateRangeViewRenderers';
26
26
  export * from './models';
27
+ export * from './validation';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v7.15.0
2
+ * @mui/x-date-pickers-pro v7.17.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -12,29 +12,30 @@ import { LicenseInfo as LicenseInfoExport } from '@mui/x-license';
12
12
  */
13
13
  export class LicenseInfo extends LicenseInfoExport {}
14
14
  export * from '@mui/x-date-pickers';
15
- export * from './DateRangePickerDay';
15
+ export * from "./DateRangePickerDay/index.js";
16
16
 
17
17
  // Fields
18
- export * from './MultiInputDateRangeField';
19
- export * from './MultiInputTimeRangeField';
20
- export * from './MultiInputDateTimeRangeField';
21
- export * from './SingleInputDateRangeField';
22
- export * from './SingleInputTimeRangeField';
23
- export * from './SingleInputDateTimeRangeField';
18
+ export * from "./MultiInputDateRangeField/index.js";
19
+ export * from "./MultiInputTimeRangeField/index.js";
20
+ export * from "./MultiInputDateTimeRangeField/index.js";
21
+ export * from "./SingleInputDateRangeField/index.js";
22
+ export * from "./SingleInputTimeRangeField/index.js";
23
+ export * from "./SingleInputDateTimeRangeField/index.js";
24
24
 
25
25
  // Calendars
26
- export * from './DateRangeCalendar';
27
- export * from './PickersRangeCalendarHeader';
26
+ export * from "./DateRangeCalendar/index.js";
27
+ export * from "./PickersRangeCalendarHeader/index.js";
28
28
 
29
29
  // New pickers
30
- export * from './DateRangePicker';
31
- export * from './DesktopDateRangePicker';
32
- export * from './MobileDateRangePicker';
33
- export * from './StaticDateRangePicker';
34
- export * from './DateTimeRangePicker';
35
- export * from './DesktopDateTimeRangePicker';
36
- export * from './MobileDateTimeRangePicker';
30
+ export * from "./DateRangePicker/index.js";
31
+ export * from "./DesktopDateRangePicker/index.js";
32
+ export * from "./MobileDateRangePicker/index.js";
33
+ export * from "./StaticDateRangePicker/index.js";
34
+ export * from "./DateTimeRangePicker/index.js";
35
+ export * from "./DesktopDateTimeRangePicker/index.js";
36
+ export * from "./MobileDateTimeRangePicker/index.js";
37
37
 
38
38
  // View renderers
39
- export * from './dateRangeViewRenderers';
40
- export * from './models';
39
+ export * from "./dateRangeViewRenderers/index.js";
40
+ export * from "./models/index.js";
41
+ export * from "./validation/index.js";
@@ -1 +1 @@
1
- export { useDesktopRangePicker } from './useDesktopRangePicker';
1
+ export { useDesktopRangePicker } from "./useDesktopRangePicker.js";
@@ -7,9 +7,9 @@ import { useLicenseVerifier } from '@mui/x-license';
7
7
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
8
8
  import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
9
9
  import { executeInTheNextEventLoopTick, getActiveElement, usePicker, PickersPopper } from '@mui/x-date-pickers/internals';
10
- import { useEnrichedRangePickerFieldProps } from '../useEnrichedRangePickerFieldProps';
11
- import { getReleaseInfo } from '../../utils/releaseInfo';
12
- import { useRangePosition } from '../useRangePosition';
10
+ import { useEnrichedRangePickerFieldProps } from "../useEnrichedRangePickerFieldProps.js";
11
+ import { getReleaseInfo } from "../../utils/releaseInfo.js";
12
+ import { useRangePosition } from "../useRangePosition.js";
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  const releaseInfo = getReleaseInfo();
15
15
  export const useDesktopRangePicker = _ref => {
@@ -1 +1 @@
1
- export { useMobileRangePicker } from './useMobileRangePicker';
1
+ export { useMobileRangePicker } from "./useMobileRangePicker.js";
@@ -9,9 +9,9 @@ import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
9
9
  import { usePicker, PickersModalDialog } from '@mui/x-date-pickers/internals';
10
10
  import { usePickersTranslations } from '@mui/x-date-pickers/hooks';
11
11
  import useId from '@mui/utils/useId';
12
- import { useEnrichedRangePickerFieldProps } from '../useEnrichedRangePickerFieldProps';
13
- import { getReleaseInfo } from '../../utils/releaseInfo';
14
- import { useRangePosition } from '../useRangePosition';
12
+ import { useEnrichedRangePickerFieldProps } from "../useEnrichedRangePickerFieldProps.js";
13
+ import { getReleaseInfo } from "../../utils/releaseInfo.js";
14
+ import { useRangePosition } from "../useRangePosition.js";
15
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const releaseInfo = getReleaseInfo();
17
17
  export const useMobileRangePicker = _ref => {
@@ -1,11 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import useEventCallback from '@mui/utils/useEventCallback';
3
3
  import { unstable_useDateField as useDateField } from '@mui/x-date-pickers/DateField';
4
- import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
5
- import { validateDateRange } from '../../utils/validation/validateDateRange';
6
- import { rangeValueManager } from '../../utils/valueManagers';
7
- import { excludeProps } from './shared';
8
- import { useMultiInputFieldSelectedSections } from '../useMultiInputFieldSelectedSections';
4
+ import { useControlledValueWithTimezone, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
5
+ import { useValidation } from '@mui/x-date-pickers/validation';
6
+ import { validateDateRange } from "../../../validation/index.js";
7
+ import { rangeValueManager } from "../../utils/valueManagers.js";
8
+ import { excludeProps } from "./shared.js";
9
+ import { useMultiInputFieldSelectedSections } from "../useMultiInputFieldSelectedSections.js";
9
10
  export const useMultiInputDateRangeField = ({
10
11
  sharedProps: inSharedProps,
11
12
  startTextFieldProps,
@@ -14,7 +15,6 @@ export const useMultiInputDateRangeField = ({
14
15
  unstableEndFieldRef
15
16
  }) => {
16
17
  const sharedProps = useDefaultizedDateField(inSharedProps);
17
- const adapter = useLocalizationContext();
18
18
  const {
19
19
  value: valueProp,
20
20
  defaultValue,
@@ -42,29 +42,29 @@ export const useMultiInputDateRangeField = ({
42
42
  onChange,
43
43
  valueManager: rangeValueManager
44
44
  });
45
+ const {
46
+ validationError,
47
+ getValidationErrorForNewValue
48
+ } = useValidation({
49
+ props: sharedProps,
50
+ value,
51
+ timezone,
52
+ validator: validateDateRange,
53
+ onError: sharedProps.onError
54
+ });
45
55
 
46
56
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
47
57
  const buildChangeHandler = index => {
48
58
  return (newDate, rawContext) => {
49
59
  const newDateRange = index === 0 ? [newDate, value[1]] : [value[0], newDate];
50
60
  const context = _extends({}, rawContext, {
51
- validationError: validateDateRange({
52
- adapter,
53
- value: newDateRange,
54
- props: _extends({}, sharedProps, {
55
- timezone
56
- })
57
- })
61
+ validationError: getValidationErrorForNewValue(newDateRange)
58
62
  });
59
63
  handleValueChange(newDateRange, context);
60
64
  };
61
65
  };
62
66
  const handleStartDateChange = useEventCallback(buildChangeHandler(0));
63
67
  const handleEndDateChange = useEventCallback(buildChangeHandler(1));
64
- const validationError = useValidation(_extends({}, sharedProps, {
65
- value,
66
- timezone
67
- }), validateDateRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
68
68
  const selectedSectionsResponse = useMultiInputFieldSelectedSections({
69
69
  selectedSections,
70
70
  onSelectedSectionsChange,
@@ -1,11 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import useEventCallback from '@mui/utils/useEventCallback';
3
3
  import { unstable_useDateTimeField as useDateTimeField } from '@mui/x-date-pickers/DateTimeField';
4
- import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
5
- import { validateDateTimeRange } from '../../utils/validation/validateDateTimeRange';
6
- import { rangeValueManager } from '../../utils/valueManagers';
7
- import { excludeProps } from './shared';
8
- import { useMultiInputFieldSelectedSections } from '../useMultiInputFieldSelectedSections';
4
+ import { useControlledValueWithTimezone, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useValidation } from '@mui/x-date-pickers/validation';
6
+ import { validateDateTimeRange } from "../../../validation/index.js";
7
+ import { rangeValueManager } from "../../utils/valueManagers.js";
8
+ import { excludeProps } from "./shared.js";
9
+ import { useMultiInputFieldSelectedSections } from "../useMultiInputFieldSelectedSections.js";
9
10
  export const useMultiInputDateTimeRangeField = ({
10
11
  sharedProps: inSharedProps,
11
12
  startTextFieldProps,
@@ -14,7 +15,6 @@ export const useMultiInputDateTimeRangeField = ({
14
15
  unstableEndFieldRef
15
16
  }) => {
16
17
  const sharedProps = useDefaultizedDateTimeField(inSharedProps);
17
- const adapter = useLocalizationContext();
18
18
  const {
19
19
  value: valueProp,
20
20
  defaultValue,
@@ -42,29 +42,29 @@ export const useMultiInputDateTimeRangeField = ({
42
42
  onChange,
43
43
  valueManager: rangeValueManager
44
44
  });
45
+ const {
46
+ validationError,
47
+ getValidationErrorForNewValue
48
+ } = useValidation({
49
+ props: sharedProps,
50
+ value,
51
+ timezone,
52
+ validator: validateDateTimeRange,
53
+ onError: sharedProps.onError
54
+ });
45
55
 
46
56
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
47
57
  const buildChangeHandler = index => {
48
58
  return (newDate, rawContext) => {
49
59
  const newDateRange = index === 0 ? [newDate, value[1]] : [value[0], newDate];
50
60
  const context = _extends({}, rawContext, {
51
- validationError: validateDateTimeRange({
52
- adapter,
53
- value: newDateRange,
54
- props: _extends({}, sharedProps, {
55
- timezone
56
- })
57
- })
61
+ validationError: getValidationErrorForNewValue(newDateRange)
58
62
  });
59
63
  handleValueChange(newDateRange, context);
60
64
  };
61
65
  };
62
66
  const handleStartDateChange = useEventCallback(buildChangeHandler(0));
63
67
  const handleEndDateChange = useEventCallback(buildChangeHandler(1));
64
- const validationError = useValidation(_extends({}, sharedProps, {
65
- value,
66
- timezone
67
- }), validateDateTimeRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
68
68
  const selectedSectionsResponse = useMultiInputFieldSelectedSections({
69
69
  selectedSections,
70
70
  onSelectedSectionsChange,
@@ -1,11 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import useEventCallback from '@mui/utils/useEventCallback';
3
3
  import { unstable_useTimeField as useTimeField } from '@mui/x-date-pickers/TimeField';
4
- import { useLocalizationContext, useValidation, useControlledValueWithTimezone, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
5
- import { validateTimeRange } from '../../utils/validation/validateTimeRange';
6
- import { rangeValueManager } from '../../utils/valueManagers';
7
- import { excludeProps } from './shared';
8
- import { useMultiInputFieldSelectedSections } from '../useMultiInputFieldSelectedSections';
4
+ import { useControlledValueWithTimezone, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
5
+ import { useValidation } from '@mui/x-date-pickers/validation';
6
+ import { validateTimeRange } from "../../../validation/index.js";
7
+ import { rangeValueManager } from "../../utils/valueManagers.js";
8
+ import { excludeProps } from "./shared.js";
9
+ import { useMultiInputFieldSelectedSections } from "../useMultiInputFieldSelectedSections.js";
9
10
  export const useMultiInputTimeRangeField = ({
10
11
  sharedProps: inSharedProps,
11
12
  startTextFieldProps,
@@ -14,7 +15,6 @@ export const useMultiInputTimeRangeField = ({
14
15
  unstableEndFieldRef
15
16
  }) => {
16
17
  const sharedProps = useDefaultizedTimeField(inSharedProps);
17
- const adapter = useLocalizationContext();
18
18
  const {
19
19
  value: valueProp,
20
20
  defaultValue,
@@ -42,29 +42,29 @@ export const useMultiInputTimeRangeField = ({
42
42
  onChange,
43
43
  valueManager: rangeValueManager
44
44
  });
45
+ const {
46
+ validationError,
47
+ getValidationErrorForNewValue
48
+ } = useValidation({
49
+ props: sharedProps,
50
+ validator: validateTimeRange,
51
+ value,
52
+ timezone,
53
+ onError: sharedProps.onError
54
+ });
45
55
 
46
56
  // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
47
57
  const buildChangeHandler = index => {
48
58
  return (newDate, rawContext) => {
49
59
  const newDateRange = index === 0 ? [newDate, value[1]] : [value[0], newDate];
50
60
  const context = _extends({}, rawContext, {
51
- validationError: validateTimeRange({
52
- adapter,
53
- value: newDateRange,
54
- props: _extends({}, sharedProps, {
55
- timezone
56
- })
57
- })
61
+ validationError: getValidationErrorForNewValue(newDateRange)
58
62
  });
59
63
  handleValueChange(newDateRange, context);
60
64
  };
61
65
  };
62
66
  const handleStartDateChange = useEventCallback(buildChangeHandler(0));
63
67
  const handleEndDateChange = useEventCallback(buildChangeHandler(1));
64
- const validationError = useValidation(_extends({}, sharedProps, {
65
- value,
66
- timezone
67
- }), validateTimeRange, rangeValueManager.isSameError, rangeValueManager.defaultErrorState);
68
68
  const selectedSectionsResponse = useMultiInputFieldSelectedSections({
69
69
  selectedSections,
70
70
  onSelectedSectionsChange,
@@ -1 +1 @@
1
- export { useStaticRangePicker } from './useStaticRangePicker';
1
+ export { useStaticRangePicker } from "./useStaticRangePicker.js";
@@ -7,7 +7,7 @@ import { styled } from '@mui/material/styles';
7
7
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
8
8
  import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
9
9
  import { usePicker, DIALOG_WIDTH } from '@mui/x-date-pickers/internals';
10
- import { useRangePosition } from '../useRangePosition';
10
+ import { useRangePosition } from "../useRangePosition.js";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const PickerStaticLayout = styled(PickersLayout)(({
13
13
  theme
@@ -1,4 +1,4 @@
1
- export * from './dateRange';
2
- export * from './dateTimeRange';
3
- export * from './timeRange';
4
- export * from './rangePickerProps';
1
+ export * from "./dateRange.js";
2
+ export * from "./dateTimeRange.js";
3
+ export * from "./timeRange.js";
4
+ export * from "./rangePickerProps.js";
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTcyNDg4MjQwMDAwMA==";
3
+ const releaseInfo = "MTcyNjE5NjQwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["value", "referenceDate"];
4
4
  import { replaceInvalidDateByNull, createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections, areDatesEqual, getTodayDate, getDefaultReferenceDate } from '@mui/x-date-pickers/internals';
5
- import { splitDateRangeSections, removeLastSeparator } from './date-fields-utils';
5
+ import { splitDateRangeSections, removeLastSeparator } from "./date-fields-utils.js";
6
6
  export const rangeValueManager = {
7
7
  emptyValue: [null, null],
8
8
  getTodayValue: (utils, timezone, valueType) => [getTodayDate(utils, timezone, valueType), getTodayDate(utils, timezone, valueType)],
package/models/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export * from './dateRange';
2
- export * from './fields';
3
- export * from './range';
4
- export * from './validation';
5
- export * from './multiInputRangeFieldClasses';
1
+ export * from "./dateRange.js";
2
+ export * from "./fields.js";
3
+ export * from "./range.js";
4
+ export * from "./validation.js";
5
+ export * from "./multiInputRangeFieldClasses.js";