@mui/x-date-pickers 7.0.0-alpha.4 → 7.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/DateCalendar/DateCalendar.types.d.ts +6 -6
  3. package/DateCalendar/DayCalendar.d.ts +4 -4
  4. package/DateCalendar/index.d.ts +1 -1
  5. package/DateField/DateField.js +17 -50
  6. package/DateField/DateField.types.d.ts +5 -9
  7. package/DateField/useDateField.d.ts +2 -2
  8. package/DateField/useDateField.js +1 -5
  9. package/DatePicker/DatePicker.js +5 -1
  10. package/DatePicker/DatePicker.types.d.ts +6 -6
  11. package/DatePicker/index.d.ts +1 -1
  12. package/DatePicker/shared.d.ts +6 -6
  13. package/DateTimeField/DateTimeField.js +17 -50
  14. package/DateTimeField/DateTimeField.types.d.ts +5 -9
  15. package/DateTimeField/useDateTimeField.d.ts +2 -2
  16. package/DateTimeField/useDateTimeField.js +1 -5
  17. package/DateTimePicker/DateTimePicker.js +5 -1
  18. package/DateTimePicker/DateTimePicker.types.d.ts +6 -6
  19. package/DateTimePicker/index.d.ts +1 -1
  20. package/DateTimePicker/shared.d.ts +6 -6
  21. package/DesktopDatePicker/DesktopDatePicker.js +7 -2
  22. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +6 -6
  23. package/DesktopDatePicker/index.d.ts +1 -1
  24. package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  25. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
  26. package/DesktopDateTimePicker/index.d.ts +1 -1
  27. package/DesktopTimePicker/DesktopTimePicker.js +5 -1
  28. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
  29. package/DesktopTimePicker/index.d.ts +1 -1
  30. package/DigitalClock/DigitalClock.types.d.ts +4 -4
  31. package/DigitalClock/index.d.ts +1 -1
  32. package/MobileDatePicker/MobileDatePicker.js +7 -2
  33. package/MobileDatePicker/MobileDatePicker.types.d.ts +6 -6
  34. package/MobileDatePicker/index.d.ts +1 -1
  35. package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  36. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +6 -6
  37. package/MobileDateTimePicker/index.d.ts +1 -1
  38. package/MobileTimePicker/MobileTimePicker.js +5 -1
  39. package/MobileTimePicker/MobileTimePicker.types.d.ts +6 -6
  40. package/MobileTimePicker/index.d.ts +1 -1
  41. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +4 -4
  42. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
  43. package/MultiSectionDigitalClock/index.d.ts +1 -1
  44. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +8 -8
  45. package/PickersCalendarHeader/index.d.ts +1 -1
  46. package/PickersLayout/PickersLayout.types.d.ts +6 -6
  47. package/PickersLayout/index.d.ts +1 -1
  48. package/StaticDatePicker/StaticDatePicker.js +1 -1
  49. package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
  50. package/StaticDatePicker/index.d.ts +1 -1
  51. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
  52. package/StaticDateTimePicker/index.d.ts +1 -1
  53. package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
  54. package/StaticTimePicker/index.d.ts +1 -1
  55. package/TimeClock/TimeClock.types.d.ts +5 -5
  56. package/TimeClock/index.d.ts +1 -1
  57. package/TimeField/TimeField.js +17 -50
  58. package/TimeField/TimeField.types.d.ts +5 -9
  59. package/TimeField/useTimeField.d.ts +2 -2
  60. package/TimeField/useTimeField.js +1 -5
  61. package/TimePicker/TimePicker.js +5 -1
  62. package/TimePicker/TimePicker.types.d.ts +6 -6
  63. package/TimePicker/index.d.ts +1 -1
  64. package/TimePicker/shared.d.ts +5 -5
  65. package/hooks/index.d.ts +1 -0
  66. package/hooks/useClearableField.d.ts +32 -20
  67. package/hooks/useClearableField.js +32 -33
  68. package/index.js +1 -1
  69. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +9 -9
  70. package/internals/components/PickersArrowSwitcher/index.d.ts +3 -1
  71. package/internals/components/PickersArrowSwitcher/index.js +2 -1
  72. package/internals/components/PickersModalDialog.d.ts +4 -4
  73. package/internals/components/PickersPopper.d.ts +4 -4
  74. package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
  75. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  76. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -8
  77. package/internals/hooks/useField/index.d.ts +1 -1
  78. package/internals/hooks/useField/useField.js +3 -3
  79. package/internals/hooks/useField/useField.types.d.ts +4 -24
  80. package/internals/hooks/useField/useField.utils.js +24 -4
  81. package/internals/hooks/useField/useFieldState.js +7 -3
  82. package/internals/hooks/useMobilePicker/index.d.ts +1 -1
  83. package/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  84. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
  85. package/internals/hooks/useStaticPicker/index.d.ts +1 -1
  86. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
  87. package/internals/index.d.ts +7 -6
  88. package/internals/index.js +1 -0
  89. package/internals/models/props/basePickerProps.d.ts +4 -0
  90. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +3 -0
  91. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  92. package/legacy/DateField/DateField.js +19 -47
  93. package/legacy/DateField/useDateField.js +1 -4
  94. package/legacy/DatePicker/DatePicker.js +5 -1
  95. package/legacy/DateTimeField/DateTimeField.js +19 -47
  96. package/legacy/DateTimeField/useDateTimeField.js +1 -4
  97. package/legacy/DateTimePicker/DateTimePicker.js +5 -1
  98. package/legacy/DesktopDatePicker/DesktopDatePicker.js +7 -2
  99. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  100. package/legacy/DesktopTimePicker/DesktopTimePicker.js +5 -1
  101. package/legacy/MobileDatePicker/MobileDatePicker.js +7 -2
  102. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  103. package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
  104. package/legacy/StaticDatePicker/StaticDatePicker.js +1 -1
  105. package/legacy/TimeField/TimeField.js +19 -47
  106. package/legacy/TimeField/useTimeField.js +1 -4
  107. package/legacy/TimePicker/TimePicker.js +5 -1
  108. package/legacy/hooks/useClearableField.js +30 -32
  109. package/legacy/index.js +1 -1
  110. package/legacy/internals/components/PickersArrowSwitcher/index.js +2 -1
  111. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  112. package/legacy/internals/hooks/useField/useField.js +4 -4
  113. package/legacy/internals/hooks/useField/useField.utils.js +26 -4
  114. package/legacy/internals/hooks/useField/useFieldState.js +7 -3
  115. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  116. package/legacy/internals/index.js +1 -0
  117. package/legacy/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +24 -0
  118. package/models/fields.d.ts +2 -1
  119. package/modern/DateField/DateField.js +17 -50
  120. package/modern/DateField/useDateField.js +1 -5
  121. package/modern/DatePicker/DatePicker.js +5 -1
  122. package/modern/DateTimeField/DateTimeField.js +17 -50
  123. package/modern/DateTimeField/useDateTimeField.js +1 -5
  124. package/modern/DateTimePicker/DateTimePicker.js +5 -1
  125. package/modern/DesktopDatePicker/DesktopDatePicker.js +7 -2
  126. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  127. package/modern/DesktopTimePicker/DesktopTimePicker.js +5 -1
  128. package/modern/MobileDatePicker/MobileDatePicker.js +7 -2
  129. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  130. package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
  131. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  132. package/modern/TimeField/TimeField.js +17 -50
  133. package/modern/TimeField/useTimeField.js +1 -5
  134. package/modern/TimePicker/TimePicker.js +5 -1
  135. package/modern/hooks/useClearableField.js +32 -33
  136. package/modern/index.js +1 -1
  137. package/modern/internals/components/PickersArrowSwitcher/index.js +2 -1
  138. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  139. package/modern/internals/hooks/useField/useField.js +3 -3
  140. package/modern/internals/hooks/useField/useField.utils.js +24 -4
  141. package/modern/internals/hooks/useField/useFieldState.js +7 -3
  142. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  143. package/modern/internals/index.js +1 -0
  144. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  145. package/node/DateField/DateField.js +18 -51
  146. package/node/DateField/useDateField.js +1 -5
  147. package/node/DatePicker/DatePicker.js +5 -1
  148. package/node/DateTimeField/DateTimeField.js +18 -51
  149. package/node/DateTimeField/useDateTimeField.js +1 -5
  150. package/node/DateTimePicker/DateTimePicker.js +5 -1
  151. package/node/DesktopDatePicker/DesktopDatePicker.js +10 -5
  152. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  153. package/node/DesktopTimePicker/DesktopTimePicker.js +5 -1
  154. package/node/MobileDatePicker/MobileDatePicker.js +10 -5
  155. package/node/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  156. package/node/MobileTimePicker/MobileTimePicker.js +5 -1
  157. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  158. package/node/TimeField/TimeField.js +18 -51
  159. package/node/TimeField/useTimeField.js +1 -5
  160. package/node/TimePicker/TimePicker.js +5 -1
  161. package/node/hooks/useClearableField.js +33 -34
  162. package/node/index.js +1 -1
  163. package/node/internals/components/PickersArrowSwitcher/index.js +14 -1
  164. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  165. package/node/internals/hooks/useField/useField.js +3 -3
  166. package/node/internals/hooks/useField/useField.utils.js +24 -4
  167. package/node/internals/hooks/useField/useFieldState.js +7 -3
  168. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  169. package/node/internals/index.js +7 -0
  170. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +34 -0
  171. package/package.json +2 -2
  172. package/themeAugmentation/overrides.d.ts +5 -7
  173. package/themeAugmentation/props.d.ts +6 -8
package/CHANGELOG.md CHANGED
@@ -3,6 +3,86 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 7.0.0-alpha.5
7
+
8
+ _Dec 14, 2023_
9
+
10
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 💫 New recipe added for the Data Grid
13
+ - 🌍 Improve Swedish (sv-SE) and Urdu (ur-PK) locales on the Data Grid
14
+ - 🐞 Bugfixes
15
+
16
+ ### Data Grid
17
+
18
+ #### Breaking changes
19
+
20
+ - The `instanceId` prop is now required for state selectors.
21
+ This prop is used to distinguish between multiple Data Grid instances on the same page.
22
+ See [migration docs](https://next.mui.com/x/migration/migration-data-grid-v6/#instanceid-prop-is-required-for-state-selectors) for more details.
23
+
24
+ #### `@mui/x-data-grid@7.0.0-alpha.5`
25
+
26
+ - [DataGrid] Make `instanceId` required for state selectors (#11395) @cherniavskii
27
+ - [DataGrid] Recipe for grouped rows autosizing (#11401) @michelengelen
28
+ - [l10n] Improve Swedish (sv-SE) locale (#11373) @fredrikcarlbom
29
+ - [l10n] Improve Urdu (ur-PK) locale (#11400) @MBilalShafi
30
+
31
+ #### `@mui/x-data-grid-pro@7.0.0-alpha.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
32
+
33
+ Same changes as in `@mui/x-data-grid@7.0.0-alpha.5`.
34
+
35
+ #### `@mui/x-data-grid-premium@7.0.0-alpha.5` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
36
+
37
+ Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.5`.
38
+
39
+ ### Date Pickers
40
+
41
+ #### Breaking changes
42
+
43
+ - The slot interfaces got renamed to match with `@mui/base` naming.
44
+ The `SlotsComponent` suffix has been replaced with `Slots` and `SlotsComponentsProps` with `SlotProps`.
45
+
46
+ ```diff
47
+ - DateCalendarSlotsComponent
48
+ + DateCalendarSlots
49
+ - DateCalendarSlotsComponentsProps
50
+ + DateCalendarSlotProps
51
+ ```
52
+
53
+ #### `@mui/x-date-pickers@7.0.0-alpha.5`
54
+
55
+ - [fields] Support empty sections (#10307) @flaviendelangle
56
+ - [pickers] Fix field types to avoid error on latest `@types/react` version (#11397) @LukasTy
57
+ - [pickers] Remove all relative imports to the internals index file (#11375) @flaviendelangle
58
+ - [pickers] Rename slots interfaces (#11339) @alexfauquette
59
+ - [pickers] Simplify the API of the field hooks (#11371) @flaviendelangle
60
+ - [pickers] Support name prop (#11025) @gitstart
61
+
62
+ #### `@mui/x-date-pickers-pro@7.0.0-alpha.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
63
+
64
+ Same changes as in `@mui/x-date-pickers@7.0.0-alpha.5`, plus:
65
+
66
+ - [DateRangePicker] Fix `autoFocus` behavior (#11273) @kealjones-wk
67
+
68
+ ### Charts / `@mui/x-charts@7.0.0-alpha.5`
69
+
70
+ - [charts] Fix size overflow (#11385) @alexfauquette
71
+
72
+ ### `@mui/x-codemod@7.0.0-alpha.5`
73
+
74
+ - [codemod] Add `cellSelection` codemod and update migration guide (#11353) @MBilalShafi
75
+
76
+ ### Docs
77
+
78
+ - [docs] Respect GoT books (@janoma) (#11387) @alexfauquette
79
+
80
+ ### Core
81
+
82
+ - [core] Automate cherry-pick of PRs from `next` -> `master` (#11382) @MBilalShafi
83
+ - [github] Update `no-response` workflow (#11369) @MBilalShafi
84
+ - [test] Fix flaky screenshots (#11388) @cherniavskii
85
+
6
86
  ## 7.0.0-alpha.4
7
87
 
8
88
  _Dec 8, 2023_
@@ -949,6 +1029,48 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
949
1029
  - [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
950
1030
  - [license] Correctly throw errors (#10924) @oliviertassinari
951
1031
 
1032
+ ## 6.18.5
1033
+
1034
+ _Dec 14, 2023_
1035
+
1036
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
1037
+
1038
+ - 🌍 Improve Swedish (sv-SE) and Urdu (ur-PK) locales on the Data Grid
1039
+ - 🐞 Bugfixes
1040
+
1041
+ ### Data Grid
1042
+
1043
+ #### `@mui/x-data-grid@6.18.5`
1044
+
1045
+ - [l10n] Improve Swedish (sv-SE) locale (#11379) @fredrikcarlbom
1046
+ - [l10n] Improve Urdu (ur-PK) locale for data grid (#11409) @MBilalShafi
1047
+
1048
+ #### `@mui/x-data-grid-pro@6.18.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
1049
+
1050
+ Same changes as in `@mui/x-data-grid@6.18.5`.
1051
+
1052
+ #### `@mui/x-data-grid-premium@6.18.5` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
1053
+
1054
+ Same changes as in `@mui/x-data-grid-pro@6.18.5`.
1055
+
1056
+ ### Date Pickers
1057
+
1058
+ #### `@mui/x-date-pickers@6.18.5`
1059
+
1060
+ - [pickers] Fix field types to avoid error on latest `@types/react` version (#11398) @LukasTy
1061
+ - [pickers] Support name prop (#11380) @gitstart
1062
+
1063
+ #### `@mui/x-date-pickers-pro@6.18.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
1064
+
1065
+ Same changes as in `@mui/x-date-pickers@6.18.5`, plus:
1066
+
1067
+ - [DateRangePicker] Fix `autoFocus` behavior (#11376) @kealjones-wk
1068
+
1069
+ ### Docs
1070
+
1071
+ - [docs] Respect GoT books (#11294) @janoma
1072
+ - [test] Fix flaky screenshots (#11391) @cherniavskii
1073
+
952
1074
  ## 6.18.4
953
1075
 
954
1076
  _Dec 8, 2023_
@@ -2,8 +2,8 @@ import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
3
  import { Theme } from '@mui/material/styles';
4
4
  import { SlotComponentProps } from '@mui/base/utils';
5
- import { PickersCalendarHeader, PickersCalendarHeaderProps, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps } from '../PickersCalendarHeader';
6
- import { DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, ExportedDayCalendarProps } from './DayCalendar';
5
+ import { PickersCalendarHeader, PickersCalendarHeaderProps, PickersCalendarHeaderSlots, PickersCalendarHeaderSlotProps } from '../PickersCalendarHeader';
6
+ import { DayCalendarSlots, DayCalendarSlotProps, ExportedDayCalendarProps } from './DayCalendar';
7
7
  import { DateCalendarClasses } from './dateCalendarClasses';
8
8
  import { BaseDateValidationProps, YearValidationProps, MonthValidationProps, DayValidationProps } from '../internals/models/validation';
9
9
  import { PickerSelectionState } from '../internals/hooks/usePicker/usePickerValue.types';
@@ -12,7 +12,7 @@ import { DateView, TimezoneProps } from '../models';
12
12
  import { DefaultizedProps } from '../internals/models/helpers';
13
13
  import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
14
14
  import { ExportedMonthCalendarProps } from '../MonthCalendar/MonthCalendar.types';
15
- export interface DateCalendarSlotsComponent<TDate> extends PickersCalendarHeaderSlotsComponent, DayCalendarSlotsComponent<TDate> {
15
+ export interface DateCalendarSlots<TDate> extends PickersCalendarHeaderSlots, DayCalendarSlots<TDate> {
16
16
  /**
17
17
  * Custom component for calendar header.
18
18
  * Check the [PickersCalendarHeader](https://mui.com/x/api/date-pickers/pickers-calendar-header/) component.
@@ -20,7 +20,7 @@ export interface DateCalendarSlotsComponent<TDate> extends PickersCalendarHeader
20
20
  */
21
21
  calendarHeader?: React.ElementType<PickersCalendarHeaderProps<TDate>>;
22
22
  }
23
- export interface DateCalendarSlotsComponentsProps<TDate> extends PickersCalendarHeaderSlotsComponentsProps<TDate>, DayCalendarSlotsComponentsProps<TDate> {
23
+ export interface DateCalendarSlotProps<TDate> extends PickersCalendarHeaderSlotProps<TDate>, DayCalendarSlotProps<TDate> {
24
24
  calendarHeader?: SlotComponentProps<typeof PickersCalendarHeader, {}, DateCalendarProps<TDate>>;
25
25
  }
26
26
  export interface ExportedDateCalendarProps<TDate> extends ExportedDayCalendarProps<TDate>, ExportedMonthCalendarProps, ExportedYearCalendarProps, BaseDateValidationProps<TDate>, DayValidationProps<TDate>, YearValidationProps<TDate>, MonthValidationProps<TDate>, TimezoneProps {
@@ -91,11 +91,11 @@ export interface DateCalendarProps<TDate> extends ExportedDateCalendarProps<TDat
91
91
  * Overridable component slots.
92
92
  * @default {}
93
93
  */
94
- slots?: DateCalendarSlotsComponent<TDate>;
94
+ slots?: DateCalendarSlots<TDate>;
95
95
  /**
96
96
  * The props used for each component slot.
97
97
  * @default {}
98
98
  */
99
- slotProps?: DateCalendarSlotsComponentsProps<TDate>;
99
+ slotProps?: DateCalendarSlotProps<TDate>;
100
100
  }
101
101
  export type DateCalendarDefaultizedProps<TDate> = DefaultizedProps<DateCalendarProps<TDate>, 'views' | 'openTo' | 'loading' | 'reduceAnimations' | 'renderLoading' | keyof BaseDateValidationProps<TDate>>;
@@ -7,7 +7,7 @@ import { BaseDateValidationProps, DayValidationProps, MonthValidationProps, Year
7
7
  import { DayCalendarClasses } from './dayCalendarClasses';
8
8
  import { TimezoneProps } from '../models';
9
9
  import { DefaultizedProps } from '../internals/models/helpers';
10
- export interface DayCalendarSlotsComponent<TDate> {
10
+ export interface DayCalendarSlots<TDate> {
11
11
  /**
12
12
  * Custom component for day.
13
13
  * Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.
@@ -15,7 +15,7 @@ export interface DayCalendarSlotsComponent<TDate> {
15
15
  */
16
16
  day?: React.ElementType<PickersDayProps<TDate>>;
17
17
  }
18
- export interface DayCalendarSlotsComponentsProps<TDate> {
18
+ export interface DayCalendarSlotProps<TDate> {
19
19
  day?: SlotComponentProps<typeof PickersDay, {}, DayCalendarProps<TDate> & {
20
20
  day: TDate;
21
21
  selected: boolean;
@@ -75,12 +75,12 @@ export interface DayCalendarProps<TDate> extends ExportedDayCalendarProps<TDate>
75
75
  * Overridable component slots.
76
76
  * @default {}
77
77
  */
78
- slots?: DayCalendarSlotsComponent<TDate>;
78
+ slots?: DayCalendarSlots<TDate>;
79
79
  /**
80
80
  * The props used for each component slot.
81
81
  * @default {}
82
82
  */
83
- slotProps?: DayCalendarSlotsComponentsProps<TDate>;
83
+ slotProps?: DayCalendarSlotProps<TDate>;
84
84
  }
85
85
  /**
86
86
  * @ignore - do not document.
@@ -1,5 +1,5 @@
1
1
  export { DateCalendar } from './DateCalendar';
2
- export type { DateCalendarProps, DateCalendarSlotsComponent, DateCalendarSlotsComponentsProps, } from './DateCalendar.types';
2
+ export type { DateCalendarProps, DateCalendarSlots, DateCalendarSlotProps, } from './DateCalendar.types';
3
3
  export { getDateCalendarUtilityClass, dateCalendarClasses } from './dateCalendarClasses';
4
4
  export type { DateCalendarClassKey, DateCalendarClasses } from './dateCalendarClasses';
5
5
  export { dayCalendarClasses } from './dayCalendarClasses';
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
6
  import MuiTextField from '@mui/material/TextField';
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
11
9
  import { refType } from '@mui/utils';
12
10
  import { useDateField } from './useDateField';
13
11
  import { useClearableField } from '../hooks';
12
+ import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  /**
16
15
  * Demos:
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
24
23
  */
25
- const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
24
+ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  const themeProps = useThemeProps({
28
27
  props: inProps,
@@ -37,58 +36,26 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref)
37
36
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
38
37
  const ownerState = themeProps;
39
38
  const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
40
- const _useSlotProps = useSlotProps({
41
- elementType: TextField,
42
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
43
- externalForwardedProps: other,
44
- ownerState
45
- }),
46
- {
47
- inputRef: externalInputRef
48
- } = _useSlotProps,
49
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
39
+ const textFieldProps = useSlotProps({
40
+ elementType: TextField,
41
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
42
+ externalForwardedProps: other,
43
+ additionalProps: {
44
+ ref: inRef
45
+ },
46
+ ownerState
47
+ });
50
48
 
51
49
  // TODO: Remove when mui/material-ui#35088 will be merged
52
50
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
51
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
- const _useDateField = useDateField({
55
- props: textFieldProps,
56
- inputRef: externalInputRef
57
- }),
58
- {
59
- ref: inputRef,
60
- onPaste,
61
- onKeyDown,
62
- inputMode,
63
- readOnly,
64
- clearable,
65
- onClear
66
- } = _useDateField,
67
- fieldProps = _objectWithoutPropertiesLoose(_useDateField, _excluded3);
68
- const {
69
- InputProps: ProcessedInputProps,
70
- fieldProps: processedFieldProps
71
- } = useClearableField({
72
- onClear,
73
- clearable,
74
- fieldProps,
75
- InputProps: fieldProps.InputProps,
52
+ const fieldResponse = useDateField(textFieldProps);
53
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
54
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
76
55
  slots,
77
56
  slotProps
78
- });
79
- return /*#__PURE__*/_jsx(TextField, _extends({
80
- ref: ref
81
- }, processedFieldProps, {
82
- InputProps: _extends({}, ProcessedInputProps, {
83
- readOnly
84
- }),
85
- inputProps: _extends({}, fieldProps.inputProps, {
86
- inputMode,
87
- onPaste,
88
- onKeyDown,
89
- ref: inputRef
90
- })
91
57
  }));
58
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
92
59
  });
93
60
  process.env.NODE_ENV !== "production" ? DateField.propTypes = {
94
61
  // ----------------------------- Warning --------------------------------
@@ -266,7 +233,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
266
233
  * 4. If `null` is provided, no section will be selected
267
234
  * If not provided, the selected sections will be handled internally.
268
235
  */
269
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
236
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
270
237
  endIndex: PropTypes.number.isRequired,
271
238
  startIndex: PropTypes.number.isRequired
272
239
  })]),
@@ -1,16 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/base/utils';
3
3
  import TextField from '@mui/material/TextField';
4
- import { FieldSlotsComponents, FieldSlotsComponentsProps } from '../internals';
4
+ import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '../hooks/useClearableField';
5
5
  import { DateValidationError, FieldSection } from '../models';
6
6
  import { UseFieldInternalProps } from '../internals/hooks/useField';
7
7
  import { DefaultizedProps, MakeOptional } from '../internals/models/helpers';
8
8
  import { BaseDateValidationProps, DayValidationProps, MonthValidationProps, YearValidationProps } from '../internals/models/validation';
9
9
  import { FieldsTextFieldProps } from '../internals/models/fields';
10
- export interface UseDateFieldParams<TDate, TChildProps extends {}> {
11
- props: UseDateFieldComponentProps<TDate, TChildProps>;
12
- inputRef?: React.Ref<HTMLInputElement>;
13
- }
14
10
  export interface UseDateFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<TDate | null, TDate, FieldSection, DateValidationError>, 'format'>, DayValidationProps<TDate>, MonthValidationProps<TDate>, YearValidationProps<TDate>, BaseDateValidationProps<TDate> {
15
11
  }
16
12
  export type UseDateFieldDefaultizedProps<TDate> = DefaultizedProps<UseDateFieldProps<TDate>, keyof BaseDateValidationProps<any> | 'format'>;
@@ -20,15 +16,15 @@ export interface DateFieldProps<TDate> extends UseDateFieldComponentProps<TDate,
20
16
  * Overridable component slots.
21
17
  * @default {}
22
18
  */
23
- slots?: DateFieldSlotsComponent;
19
+ slots?: DateFieldSlots;
24
20
  /**
25
21
  * The props used for each component slot.
26
22
  * @default {}
27
23
  */
28
- slotProps?: DateFieldSlotsComponentsProps<TDate>;
24
+ slotProps?: DateFieldSlotProps<TDate>;
29
25
  }
30
26
  export type DateFieldOwnerState<TDate> = DateFieldProps<TDate>;
31
- export interface DateFieldSlotsComponent extends FieldSlotsComponents {
27
+ export interface DateFieldSlots extends UseClearableFieldSlots {
32
28
  /**
33
29
  * Form control with an input to render the value.
34
30
  * Receives the same props as `@mui/material/TextField`.
@@ -36,6 +32,6 @@ export interface DateFieldSlotsComponent extends FieldSlotsComponents {
36
32
  */
37
33
  textField?: React.ElementType;
38
34
  }
39
- export interface DateFieldSlotsComponentsProps<TDate> extends FieldSlotsComponentsProps {
35
+ export interface DateFieldSlotProps<TDate> extends UseClearableFieldSlotProps {
40
36
  textField?: SlotComponentProps<typeof TextField, {}, DateFieldOwnerState<TDate>>;
41
37
  }
@@ -1,2 +1,2 @@
1
- import { UseDateFieldProps, UseDateFieldParams } from './DateField.types';
2
- export declare const useDateField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseDateFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseDateFieldProps<TDate>, "format" | keyof import("../internals").BaseDateValidationProps<any>> & Required<Pick<UseDateFieldProps<TDate>, "format" | keyof import("../internals").BaseDateValidationProps<any>>>, keyof UseDateFieldProps<TDate>>>;
1
+ import { UseDateFieldProps, UseDateFieldComponentProps } from './DateField.types';
2
+ export declare const useDateField: <TDate, TChildProps extends {}>(inProps: UseDateFieldComponentProps<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseDateFieldProps<TDate>, "format" | keyof import("../internals").BaseDateValidationProps<any>> & Required<Pick<UseDateFieldProps<TDate>, "format" | keyof import("../internals").BaseDateValidationProps<any>>>, keyof UseDateFieldProps<TDate>>>;
@@ -17,17 +17,13 @@ const useDefaultizedDateField = props => {
17
17
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
18
18
  });
19
19
  };
20
- export const useDateField = ({
21
- props: inProps,
22
- inputRef
23
- }) => {
20
+ export const useDateField = inProps => {
24
21
  const props = useDefaultizedDateField(inProps);
25
22
  const {
26
23
  forwardedProps,
27
24
  internalProps
28
25
  } = splitFieldInternalAndForwardedProps(props, 'date');
29
26
  return useField({
30
- inputRef,
31
27
  forwardedProps,
32
28
  internalProps,
33
29
  valueManager: singleItemValueManager,
@@ -160,6 +160,10 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
160
160
  * @default 3
161
161
  */
162
162
  monthsPerRow: PropTypes.oneOf([3, 4]),
163
+ /**
164
+ * Name attribute used by the `input` element in the Field.
165
+ */
166
+ name: PropTypes.string,
163
167
  /**
164
168
  * Callback fired when the value is accepted.
165
169
  * @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.
@@ -258,7 +262,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
258
262
  * 4. If `null` is provided, no section will be selected
259
263
  * If not provided, the selected sections will be handled internally.
260
264
  */
261
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
265
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
262
266
  endIndex: PropTypes.number.isRequired,
263
267
  startIndex: PropTypes.number.isRequired
264
268
  })]),
@@ -1,8 +1,8 @@
1
- import { DesktopDatePickerProps, DesktopDatePickerSlotsComponent, DesktopDatePickerSlotsComponentsProps } from '../DesktopDatePicker';
2
- import { MobileDatePickerProps, MobileDatePickerSlotsComponent, MobileDatePickerSlotsComponentsProps } from '../MobileDatePicker';
3
- export interface DatePickerSlotsComponents<TDate> extends DesktopDatePickerSlotsComponent<TDate>, MobileDatePickerSlotsComponent<TDate> {
1
+ import { DesktopDatePickerProps, DesktopDatePickerSlots, DesktopDatePickerSlotProps } from '../DesktopDatePicker';
2
+ import { MobileDatePickerProps, MobileDatePickerSlots, MobileDatePickerSlotProps } from '../MobileDatePicker';
3
+ export interface DatePickerSlots<TDate> extends DesktopDatePickerSlots<TDate>, MobileDatePickerSlots<TDate> {
4
4
  }
5
- export interface DatePickerSlotsComponentsProps<TDate> extends DesktopDatePickerSlotsComponentsProps<TDate>, MobileDatePickerSlotsComponentsProps<TDate> {
5
+ export interface DatePickerSlotProps<TDate> extends DesktopDatePickerSlotProps<TDate>, MobileDatePickerSlotProps<TDate> {
6
6
  }
7
7
  export interface DatePickerProps<TDate> extends DesktopDatePickerProps<TDate>, MobileDatePickerProps<TDate> {
8
8
  /**
@@ -20,10 +20,10 @@ export interface DatePickerProps<TDate> extends DesktopDatePickerProps<TDate>, M
20
20
  * Overridable component slots.
21
21
  * @default {}
22
22
  */
23
- slots?: DatePickerSlotsComponents<TDate>;
23
+ slots?: DatePickerSlots<TDate>;
24
24
  /**
25
25
  * The props used for each component slot.
26
26
  * @default {}
27
27
  */
28
- slotProps?: DatePickerSlotsComponentsProps<TDate>;
28
+ slotProps?: DatePickerSlotProps<TDate>;
29
29
  }
@@ -1,5 +1,5 @@
1
1
  export { DatePicker } from './DatePicker';
2
- export type { DatePickerProps, DatePickerSlotsComponents, DatePickerSlotsComponentsProps, } from './DatePicker.types';
2
+ export type { DatePickerProps, DatePickerSlots, DatePickerSlotProps } from './DatePicker.types';
3
3
  export { DatePickerToolbar } from './DatePickerToolbar';
4
4
  export type { DatePickerToolbarProps } from './DatePickerToolbar';
5
5
  export { datePickerToolbarClasses } from './datePickerToolbarClasses';
@@ -1,21 +1,21 @@
1
1
  import * as React from 'react';
2
2
  import { DefaultizedProps } from '../internals/models/helpers';
3
- import { DateCalendarSlotsComponent, DateCalendarSlotsComponentsProps, ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
3
+ import { DateCalendarSlots, DateCalendarSlotProps, ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
4
4
  import { DateValidationError, DateView } from '../models';
5
5
  import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
6
- import { BaseDateValidationProps } from '../internals';
6
+ import { BaseDateValidationProps } from '../internals/models/validation';
7
7
  import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
8
8
  import { DatePickerToolbarProps, ExportedDatePickerToolbarProps } from './DatePickerToolbar';
9
9
  import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
10
10
  import { DateViewRendererProps } from '../dateViewRenderers';
11
- export interface BaseDatePickerSlotsComponent<TDate> extends DateCalendarSlotsComponent<TDate> {
11
+ export interface BaseDatePickerSlots<TDate> extends DateCalendarSlots<TDate> {
12
12
  /**
13
13
  * Custom component for the toolbar rendered above the views.
14
14
  * @default DatePickerToolbar
15
15
  */
16
16
  toolbar?: React.JSXElementConstructor<DatePickerToolbarProps<TDate>>;
17
17
  }
18
- export interface BaseDatePickerSlotsComponentsProps<TDate> extends DateCalendarSlotsComponentsProps<TDate> {
18
+ export interface BaseDatePickerSlotProps<TDate> extends DateCalendarSlotProps<TDate> {
19
19
  toolbar?: ExportedDatePickerToolbarProps;
20
20
  }
21
21
  export interface BaseDatePickerProps<TDate> extends BasePickerInputProps<TDate | null, TDate, DateView, DateValidationError>, ExportedDateCalendarProps<TDate> {
@@ -23,12 +23,12 @@ export interface BaseDatePickerProps<TDate> extends BasePickerInputProps<TDate |
23
23
  * Overridable component slots.
24
24
  * @default {}
25
25
  */
26
- slots?: BaseDatePickerSlotsComponent<TDate>;
26
+ slots?: BaseDatePickerSlots<TDate>;
27
27
  /**
28
28
  * The props used for each component slot.
29
29
  * @default {}
30
30
  */
31
- slotProps?: BaseDatePickerSlotsComponentsProps<TDate>;
31
+ slotProps?: BaseDatePickerSlotProps<TDate>;
32
32
  /**
33
33
  * Define custom view renderers for each section.
34
34
  * If `null`, the section will only have field editing.
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
6
  import MuiTextField from '@mui/material/TextField';
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
11
9
  import { refType } from '@mui/utils';
12
10
  import { useDateTimeField } from './useDateTimeField';
13
11
  import { useClearableField } from '../hooks';
12
+ import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  /**
16
15
  * Demos:
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
24
23
  */
25
- const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, ref) {
24
+ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  const themeProps = useThemeProps({
28
27
  props: inProps,
@@ -37,58 +36,26 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
37
36
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
38
37
  const ownerState = themeProps;
39
38
  const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
40
- const _useSlotProps = useSlotProps({
41
- elementType: TextField,
42
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
43
- externalForwardedProps: other,
44
- ownerState
45
- }),
46
- {
47
- inputRef: externalInputRef
48
- } = _useSlotProps,
49
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
39
+ const textFieldProps = useSlotProps({
40
+ elementType: TextField,
41
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
42
+ externalForwardedProps: other,
43
+ ownerState,
44
+ additionalProps: {
45
+ ref: inRef
46
+ }
47
+ });
50
48
 
51
49
  // TODO: Remove when mui/material-ui#35088 will be merged
52
50
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
51
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
- const _useDateTimeField = useDateTimeField({
55
- props: textFieldProps,
56
- inputRef: externalInputRef
57
- }),
58
- {
59
- ref: inputRef,
60
- onPaste,
61
- onKeyDown,
62
- inputMode,
63
- readOnly,
64
- clearable,
65
- onClear
66
- } = _useDateTimeField,
67
- fieldProps = _objectWithoutPropertiesLoose(_useDateTimeField, _excluded3);
68
- const {
69
- InputProps: ProcessedInputProps,
70
- fieldProps: processedFieldProps
71
- } = useClearableField({
72
- onClear,
73
- clearable,
74
- fieldProps,
75
- InputProps: fieldProps.InputProps,
52
+ const fieldResponse = useDateTimeField(textFieldProps);
53
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
54
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
76
55
  slots,
77
56
  slotProps
78
- });
79
- return /*#__PURE__*/_jsx(TextField, _extends({
80
- ref: ref
81
- }, processedFieldProps, {
82
- InputProps: _extends({}, ProcessedInputProps, {
83
- readOnly
84
- }),
85
- inputProps: _extends({}, fieldProps.inputProps, {
86
- inputMode,
87
- onPaste,
88
- onKeyDown,
89
- ref: inputRef
90
- })
91
57
  }));
58
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
92
59
  });
93
60
  process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
94
61
  // ----------------------------- Warning --------------------------------
@@ -299,7 +266,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
299
266
  * 4. If `null` is provided, no section will be selected
300
267
  * If not provided, the selected sections will be handled internally.
301
268
  */
302
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
269
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
303
270
  endIndex: PropTypes.number.isRequired,
304
271
  startIndex: PropTypes.number.isRequired
305
272
  })]),
@@ -6,11 +6,7 @@ import { UseFieldInternalProps } from '../internals/hooks/useField';
6
6
  import { DefaultizedProps, MakeOptional } from '../internals/models/helpers';
7
7
  import { BaseDateValidationProps, BaseTimeValidationProps, DateTimeValidationProps, DayValidationProps, MonthValidationProps, TimeValidationProps, YearValidationProps } from '../internals/models/validation';
8
8
  import { FieldsTextFieldProps } from '../internals/models/fields';
9
- import { FieldSlotsComponents, FieldSlotsComponentsProps } from '../internals';
10
- export interface UseDateTimeFieldParams<TDate, TChildProps extends {}> {
11
- props: UseDateTimeFieldComponentProps<TDate, TChildProps>;
12
- inputRef?: React.Ref<HTMLInputElement>;
13
- }
9
+ import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '../hooks/useClearableField';
14
10
  export interface UseDateTimeFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<TDate | null, TDate, FieldSection, DateTimeValidationError>, 'format'>, DayValidationProps<TDate>, MonthValidationProps<TDate>, YearValidationProps<TDate>, BaseDateValidationProps<TDate>, TimeValidationProps<TDate>, BaseTimeValidationProps, DateTimeValidationProps<TDate> {
15
11
  /**
16
12
  * 12h/24h view for hour selection clock.
@@ -25,15 +21,15 @@ export interface DateTimeFieldProps<TDate> extends UseDateTimeFieldComponentProp
25
21
  * Overridable component slots.
26
22
  * @default {}
27
23
  */
28
- slots?: DateTimeFieldSlotsComponent;
24
+ slots?: DateTimeFieldSlots;
29
25
  /**
30
26
  * The props used for each component slot.
31
27
  * @default {}
32
28
  */
33
- slotProps?: DateTimeFieldSlotsComponentsProps<TDate>;
29
+ slotProps?: DateTimeFieldSlotProps<TDate>;
34
30
  }
35
31
  export type DateTimeFieldOwnerState<TDate> = DateTimeFieldProps<TDate>;
36
- export interface DateTimeFieldSlotsComponent extends FieldSlotsComponents {
32
+ export interface DateTimeFieldSlots extends UseClearableFieldSlots {
37
33
  /**
38
34
  * Form control with an input to render the value.
39
35
  * Receives the same props as `@mui/material/TextField`.
@@ -41,6 +37,6 @@ export interface DateTimeFieldSlotsComponent extends FieldSlotsComponents {
41
37
  */
42
38
  textField?: React.ElementType;
43
39
  }
44
- export interface DateTimeFieldSlotsComponentsProps<TDate> extends FieldSlotsComponentsProps {
40
+ export interface DateTimeFieldSlotProps<TDate> extends UseClearableFieldSlotProps {
45
41
  textField?: SlotComponentProps<typeof TextField, {}, DateTimeFieldOwnerState<TDate>>;
46
42
  }