@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
@@ -3,12 +3,12 @@ import { SlotComponentProps } from '@mui/base/utils';
3
3
  import IconButton from '@mui/material/IconButton';
4
4
  import SvgIcon from '@mui/material/SvgIcon';
5
5
  import { SxProps, Theme } from '@mui/material/styles';
6
- import { ExportedPickersArrowSwitcherProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps } from '../internals/components/PickersArrowSwitcher';
6
+ import { ExportedPickersArrowSwitcherProps, PickersArrowSwitcherSlots, PickersArrowSwitcherSlotProps } from '../internals/components/PickersArrowSwitcher';
7
7
  import { MonthValidationOptions } from '../internals/hooks/date-helpers-hooks';
8
8
  import { DateView } from '../models/views';
9
9
  import { SlideDirection } from '../DateCalendar/PickersSlideTransition';
10
10
  import { PickersCalendarHeaderClasses } from './pickersCalendarHeaderClasses';
11
- export interface PickersCalendarHeaderSlotsComponent extends PickersArrowSwitcherSlotsComponent {
11
+ export interface PickersCalendarHeaderSlots extends PickersArrowSwitcherSlots {
12
12
  /**
13
13
  * Button displayed to switch between different calendar views.
14
14
  * @default IconButton
@@ -20,24 +20,24 @@ export interface PickersCalendarHeaderSlotsComponent extends PickersArrowSwitche
20
20
  */
21
21
  switchViewIcon?: React.ElementType;
22
22
  }
23
- export interface PickersCalendarHeaderComponentsPropsOverrides {
23
+ export interface PickersCalendarHeaderSlotPropsOverrides {
24
24
  }
25
25
  export type PickersCalendarHeaderOwnerState<TDate> = PickersCalendarHeaderProps<TDate>;
26
- export interface PickersCalendarHeaderSlotsComponentsProps<TDate> extends PickersArrowSwitcherSlotsComponentsProps {
27
- switchViewButton?: SlotComponentProps<typeof IconButton, PickersCalendarHeaderComponentsPropsOverrides, PickersCalendarHeaderOwnerState<TDate>>;
28
- switchViewIcon?: SlotComponentProps<typeof SvgIcon, PickersCalendarHeaderComponentsPropsOverrides, undefined>;
26
+ export interface PickersCalendarHeaderSlotProps<TDate> extends PickersArrowSwitcherSlotProps {
27
+ switchViewButton?: SlotComponentProps<typeof IconButton, PickersCalendarHeaderSlotPropsOverrides, PickersCalendarHeaderOwnerState<TDate>>;
28
+ switchViewIcon?: SlotComponentProps<typeof SvgIcon, PickersCalendarHeaderSlotPropsOverrides, undefined>;
29
29
  }
30
30
  export interface PickersCalendarHeaderProps<TDate> extends ExportedPickersArrowSwitcherProps, MonthValidationOptions<TDate> {
31
31
  /**
32
32
  * Overridable component slots.
33
33
  * @default {}
34
34
  */
35
- slots?: PickersCalendarHeaderSlotsComponent;
35
+ slots?: PickersCalendarHeaderSlots;
36
36
  /**
37
37
  * The props used for each component slot.
38
38
  * @default {}
39
39
  */
40
- slotProps?: PickersCalendarHeaderSlotsComponentsProps<TDate>;
40
+ slotProps?: PickersCalendarHeaderSlotProps<TDate>;
41
41
  currentMonth: TDate;
42
42
  disabled?: boolean;
43
43
  views: readonly DateView[];
@@ -1,4 +1,4 @@
1
1
  export { pickersCalendarHeaderClasses } from './pickersCalendarHeaderClasses';
2
2
  export type { PickersCalendarHeaderClassKey, PickersCalendarHeaderClasses, } from './pickersCalendarHeaderClasses';
3
3
  export { PickersCalendarHeader } from './PickersCalendarHeader';
4
- export type { PickersCalendarHeaderProps, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps, ExportedPickersCalendarHeaderProps, } from './PickersCalendarHeader.types';
4
+ export type { PickersCalendarHeaderProps, PickersCalendarHeaderSlots, PickersCalendarHeaderSlotProps, ExportedPickersCalendarHeaderProps, } from './PickersCalendarHeader.types';
@@ -8,7 +8,7 @@ import { UsePickerLayoutPropsResponseLayoutProps } from '../internals/hooks/useP
8
8
  import { PickersLayoutClasses } from './pickersLayoutClasses';
9
9
  import { DateOrTimeViewWithMeridiem, WrapperVariant } from '../internals/models/common';
10
10
  import { PickersShortcutsProps } from '../PickersShortcuts';
11
- export interface ExportedPickersLayoutSlotsComponent<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> {
11
+ export interface ExportedPickersLayoutSlots<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> {
12
12
  /**
13
13
  * Custom component for the action bar, it is placed below the picker views.
14
14
  * @default PickersActionBar
@@ -31,7 +31,7 @@ interface PickersLayoutActionBarOwnerState<TValue, TDate, TView extends DateOrTi
31
31
  interface PickersShortcutsOwnerState<TValue> extends PickersShortcutsProps<TValue> {
32
32
  wrapperVariant: WrapperVariant;
33
33
  }
34
- export interface ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> {
34
+ export interface ExportedPickersLayoutSlotProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> {
35
35
  /**
36
36
  * Props passed down to the action bar component.
37
37
  */
@@ -45,7 +45,7 @@ export interface ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView
45
45
  */
46
46
  layout?: Partial<PickersLayoutProps<TValue, TDate, TView>>;
47
47
  }
48
- export interface PickersLayoutSlotsComponent<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotsComponent<TValue, TDate, TView> {
48
+ export interface PickersLayoutSlots<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlots<TValue, TDate, TView> {
49
49
  /**
50
50
  * Tabs enabling toggling between views.
51
51
  */
@@ -56,7 +56,7 @@ export interface PickersLayoutSlotsComponent<TValue, TDate, TView extends DateOr
56
56
  */
57
57
  toolbar?: React.JSXElementConstructor<BaseToolbarProps<TValue, TView>>;
58
58
  }
59
- export interface PickersLayoutSlotsComponentsProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView> {
59
+ export interface PickersLayoutSlotProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotProps<TValue, TDate, TView> {
60
60
  /**
61
61
  * Props passed down to the tabs component.
62
62
  */
@@ -80,12 +80,12 @@ export interface PickersLayoutProps<TValue, TDate, TView extends DateOrTimeViewW
80
80
  * Overridable component slots.
81
81
  * @default {}
82
82
  */
83
- slots?: PickersLayoutSlotsComponent<TValue, TDate, TView>;
83
+ slots?: PickersLayoutSlots<TValue, TDate, TView>;
84
84
  /**
85
85
  * The props used for each component slot.
86
86
  * @default {}
87
87
  */
88
- slotProps?: PickersLayoutSlotsComponentsProps<TValue, TDate, TView>;
88
+ slotProps?: PickersLayoutSlotProps<TValue, TDate, TView>;
89
89
  }
90
90
  export interface SubComponents {
91
91
  toolbar: React.ReactNode;
@@ -1,5 +1,5 @@
1
1
  export { PickersLayout, PickersLayoutRoot, PickersLayoutContentWrapper } from './PickersLayout';
2
- export type { PickersLayoutProps, PickersLayoutSlotsComponent, PickersLayoutSlotsComponentsProps, ExportedPickersLayoutSlotsComponent, ExportedPickersLayoutSlotsComponentsProps, } from './PickersLayout.types';
2
+ export type { PickersLayoutProps, PickersLayoutSlots, PickersLayoutSlotProps, ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, } from './PickersLayout.types';
3
3
  export { default as usePickerLayout } from './usePickerLayout';
4
4
  export { pickersLayoutClasses } from './pickersLayoutClasses';
5
5
  export type { PickersLayoutClassKey } from './pickersLayoutClasses';
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
4
4
  import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
5
5
  import { renderDateViewCalendar } from '../dateViewRenderers';
6
6
  import { useStaticPicker } from '../internals/hooks/useStaticPicker';
7
- import { validateDate } from '../internals';
7
+ import { validateDate } from '../internals/utils/validation/validateDate';
8
8
  import { singleItemValueManager } from '../internals/utils/valueManagers';
9
9
  /**
10
10
  * Demos:
@@ -1,20 +1,20 @@
1
- import { BaseDatePickerProps, BaseDatePickerSlotsComponent, BaseDatePickerSlotsComponentsProps } from '../DatePicker/shared';
2
- import { StaticOnlyPickerProps, UseStaticPickerSlotsComponent, UseStaticPickerSlotsComponentsProps } from '../internals/hooks/useStaticPicker';
3
- import { MakeOptional } from '../internals';
1
+ import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
2
+ import { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from '../internals/hooks/useStaticPicker';
3
+ import { MakeOptional } from '../internals/models/helpers';
4
4
  import { DateView } from '../models';
5
- export interface StaticDatePickerSlotsComponent<TDate> extends BaseDatePickerSlotsComponent<TDate>, UseStaticPickerSlotsComponent<TDate, DateView> {
5
+ export interface StaticDatePickerSlots<TDate> extends BaseDatePickerSlots<TDate>, UseStaticPickerSlots<TDate, DateView> {
6
6
  }
7
- export interface StaticDatePickerSlotsComponentsProps<TDate> extends BaseDatePickerSlotsComponentsProps<TDate>, UseStaticPickerSlotsComponentsProps<TDate, DateView> {
7
+ export interface StaticDatePickerSlotProps<TDate> extends BaseDatePickerSlotProps<TDate>, UseStaticPickerSlotProps<TDate, DateView> {
8
8
  }
9
9
  export interface StaticDatePickerProps<TDate> extends BaseDatePickerProps<TDate>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
10
10
  /**
11
11
  * Overridable component slots.
12
12
  * @default {}
13
13
  */
14
- slots?: StaticDatePickerSlotsComponent<TDate>;
14
+ slots?: StaticDatePickerSlots<TDate>;
15
15
  /**
16
16
  * The props used for each component slot.
17
17
  * @default {}
18
18
  */
19
- slotProps?: StaticDatePickerSlotsComponentsProps<TDate>;
19
+ slotProps?: StaticDatePickerSlotProps<TDate>;
20
20
  }
@@ -1,2 +1,2 @@
1
1
  export { StaticDatePicker } from './StaticDatePicker';
2
- export type { StaticDatePickerProps, StaticDatePickerSlotsComponent, StaticDatePickerSlotsComponentsProps, } from './StaticDatePicker.types';
2
+ export type { StaticDatePickerProps, StaticDatePickerSlots, StaticDatePickerSlotProps, } from './StaticDatePicker.types';
@@ -1,20 +1,20 @@
1
- import { BaseDateTimePickerProps, BaseDateTimePickerSlotsComponent, BaseDateTimePickerSlotsComponentsProps } from '../DateTimePicker/shared';
2
- import { StaticOnlyPickerProps, UseStaticPickerSlotsComponent, UseStaticPickerSlotsComponentsProps } from '../internals/hooks/useStaticPicker';
3
- import { MakeOptional } from '../internals';
1
+ import { BaseDateTimePickerProps, BaseDateTimePickerSlots, BaseDateTimePickerSlotProps } from '../DateTimePicker/shared';
2
+ import { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from '../internals/hooks/useStaticPicker';
3
+ import { MakeOptional } from '../internals/models/helpers';
4
4
  import { DateOrTimeView } from '../models';
5
- export interface StaticDateTimePickerSlotsComponent<TDate> extends BaseDateTimePickerSlotsComponent<TDate>, UseStaticPickerSlotsComponent<TDate, DateOrTimeView> {
5
+ export interface StaticDateTimePickerSlots<TDate> extends BaseDateTimePickerSlots<TDate>, UseStaticPickerSlots<TDate, DateOrTimeView> {
6
6
  }
7
- export interface StaticDateTimePickerSlotsComponentsProps<TDate> extends BaseDateTimePickerSlotsComponentsProps<TDate>, UseStaticPickerSlotsComponentsProps<TDate, DateOrTimeView> {
7
+ export interface StaticDateTimePickerSlotProps<TDate> extends BaseDateTimePickerSlotProps<TDate>, UseStaticPickerSlotProps<TDate, DateOrTimeView> {
8
8
  }
9
9
  export interface StaticDateTimePickerProps<TDate> extends BaseDateTimePickerProps<TDate, DateOrTimeView>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
10
10
  /**
11
11
  * Overridable component slots.
12
12
  * @default {}
13
13
  */
14
- slots?: StaticDateTimePickerSlotsComponent<TDate>;
14
+ slots?: StaticDateTimePickerSlots<TDate>;
15
15
  /**
16
16
  * The props used for each component slot.
17
17
  * @default {}
18
18
  */
19
- slotProps?: StaticDateTimePickerSlotsComponentsProps<TDate>;
19
+ slotProps?: StaticDateTimePickerSlotProps<TDate>;
20
20
  }
@@ -1,2 +1,2 @@
1
1
  export { StaticDateTimePicker } from './StaticDateTimePicker';
2
- export type { StaticDateTimePickerProps, StaticDateTimePickerSlotsComponent, StaticDateTimePickerSlotsComponentsProps, } from './StaticDateTimePicker.types';
2
+ export type { StaticDateTimePickerProps, StaticDateTimePickerSlots, StaticDateTimePickerSlotProps, } from './StaticDateTimePicker.types';
@@ -1,20 +1,20 @@
1
- import { BaseTimePickerProps, BaseTimePickerSlotsComponent, BaseTimePickerSlotsComponentsProps } from '../TimePicker/shared';
2
- import { StaticOnlyPickerProps, UseStaticPickerSlotsComponent, UseStaticPickerSlotsComponentsProps } from '../internals/hooks/useStaticPicker';
3
- import { MakeOptional } from '../internals';
1
+ import { BaseTimePickerProps, BaseTimePickerSlots, BaseTimePickerSlotProps } from '../TimePicker/shared';
2
+ import { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from '../internals/hooks/useStaticPicker';
3
+ import { MakeOptional } from '../internals/models/helpers';
4
4
  import { TimeView } from '../models';
5
- export interface StaticTimePickerSlotsComponent<TDate> extends BaseTimePickerSlotsComponent<TDate>, UseStaticPickerSlotsComponent<TDate, TimeView> {
5
+ export interface StaticTimePickerSlots<TDate> extends BaseTimePickerSlots<TDate>, UseStaticPickerSlots<TDate, TimeView> {
6
6
  }
7
- export interface StaticTimePickerSlotsComponentsProps<TDate> extends BaseTimePickerSlotsComponentsProps, UseStaticPickerSlotsComponentsProps<TDate, TimeView> {
7
+ export interface StaticTimePickerSlotProps<TDate> extends BaseTimePickerSlotProps, UseStaticPickerSlotProps<TDate, TimeView> {
8
8
  }
9
9
  export interface StaticTimePickerProps<TDate> extends BaseTimePickerProps<TDate, TimeView>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
10
10
  /**
11
11
  * Overridable component slots.
12
12
  * @default {}
13
13
  */
14
- slots?: StaticTimePickerSlotsComponent<TDate>;
14
+ slots?: StaticTimePickerSlots<TDate>;
15
15
  /**
16
16
  * The props used for each component slot.
17
17
  * @default {}
18
18
  */
19
- slotProps?: StaticTimePickerSlotsComponentsProps<TDate>;
19
+ slotProps?: StaticTimePickerSlotProps<TDate>;
20
20
  }
@@ -1,2 +1,2 @@
1
1
  export { StaticTimePicker } from './StaticTimePicker';
2
- export type { StaticTimePickerProps, StaticTimePickerSlotsComponent, StaticTimePickerSlotsComponentsProps, } from './StaticTimePicker.types';
2
+ export type { StaticTimePickerProps, StaticTimePickerSlots, StaticTimePickerSlotProps, } from './StaticTimePicker.types';
@@ -1,5 +1,5 @@
1
1
  import { TimeClockClasses } from './timeClockClasses';
2
- import { PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps } from '../internals/components/PickersArrowSwitcher';
2
+ import { PickersArrowSwitcherSlots, PickersArrowSwitcherSlotProps } from '../internals/components/PickersArrowSwitcher';
3
3
  import { BaseClockProps, ExportedBaseClockProps } from '../internals/models/props/clock';
4
4
  import { TimeView } from '../models';
5
5
  import { TimeViewWithMeridiem } from '../internals/models';
@@ -10,9 +10,9 @@ export interface ExportedTimeClockProps<TDate> extends ExportedBaseClockProps<TD
10
10
  */
11
11
  ampmInClock?: boolean;
12
12
  }
13
- export interface TimeClockSlotsComponent extends PickersArrowSwitcherSlotsComponent {
13
+ export interface TimeClockSlots extends PickersArrowSwitcherSlots {
14
14
  }
15
- export interface TimeClockSlotsComponentsProps extends PickersArrowSwitcherSlotsComponentsProps {
15
+ export interface TimeClockSlotProps extends PickersArrowSwitcherSlotProps {
16
16
  }
17
17
  export interface TimeClockProps<TDate, TView extends TimeViewWithMeridiem = TimeView> extends ExportedTimeClockProps<TDate>, BaseClockProps<TDate, TView> {
18
18
  /**
@@ -23,11 +23,11 @@ export interface TimeClockProps<TDate, TView extends TimeViewWithMeridiem = Time
23
23
  * Overridable component slots.
24
24
  * @default {}
25
25
  */
26
- slots?: TimeClockSlotsComponent;
26
+ slots?: TimeClockSlots;
27
27
  /**
28
28
  * The props used for each component slot.
29
29
  * @default {}
30
30
  */
31
- slotProps?: TimeClockSlotsComponentsProps;
31
+ slotProps?: TimeClockSlotProps;
32
32
  showViewSwitcher?: boolean;
33
33
  }
@@ -1,5 +1,5 @@
1
1
  export { TimeClock } from './TimeClock';
2
- export type { TimeClockProps, TimeClockSlotsComponent, TimeClockSlotsComponentsProps, } from './TimeClock.types';
2
+ export type { TimeClockProps, TimeClockSlots, TimeClockSlotProps } from './TimeClock.types';
3
3
  export { clockClasses } from './clockClasses';
4
4
  export type { ClockClasses, ClockClassKey } from './clockClasses';
5
5
  export type { ClockProps } from './Clock';
@@ -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 { useTimeField } from './useTimeField';
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
  * - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
24
23
  */
25
- const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref) {
24
+ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  const themeProps = useThemeProps({
28
27
  props: inProps,
@@ -37,58 +36,26 @@ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(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
+ 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 _useTimeField = useTimeField({
55
- props: textFieldProps,
56
- inputRef: externalInputRef
57
- }),
58
- {
59
- ref: inputRef,
60
- onPaste,
61
- onKeyDown,
62
- inputMode,
63
- readOnly,
64
- clearable,
65
- onClear
66
- } = _useTimeField,
67
- fieldProps = _objectWithoutPropertiesLoose(_useTimeField, _excluded3);
68
- const {
69
- InputProps: ProcessedInputProps,
70
- fieldProps: processedFieldProps
71
- } = useClearableField({
72
- onClear,
73
- clearable,
74
- fieldProps,
75
- InputProps: fieldProps.InputProps,
52
+ const fieldResponse = useTimeField(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" ? TimeField.propTypes = {
94
61
  // ----------------------------- Warning --------------------------------
@@ -283,7 +250,7 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
283
250
  * 4. If `null` is provided, no section will be selected
284
251
  * If not provided, the selected sections will be handled internally.
285
252
  */
286
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
253
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
287
254
  endIndex: PropTypes.number.isRequired,
288
255
  startIndex: PropTypes.number.isRequired
289
256
  })]),
@@ -6,11 +6,7 @@ import { DefaultizedProps, MakeOptional } from '../internals/models/helpers';
6
6
  import { BaseTimeValidationProps, TimeValidationProps } from '../internals/models/validation';
7
7
  import { FieldsTextFieldProps } from '../internals/models/fields';
8
8
  import { FieldSection, TimeValidationError } from '../models';
9
- import { FieldSlotsComponents, FieldSlotsComponentsProps } from '../internals';
10
- export interface UseTimeFieldParams<TDate, TChildProps extends {}> {
11
- props: UseTimeFieldComponentProps<TDate, TChildProps>;
12
- inputRef?: React.Ref<HTMLInputElement>;
13
- }
9
+ import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '../hooks/useClearableField';
14
10
  export interface UseTimeFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<TDate | null, TDate, FieldSection, TimeValidationError>, 'format'>, TimeValidationProps<TDate>, BaseTimeValidationProps {
15
11
  /**
16
12
  * 12h/24h view for hour selection clock.
@@ -25,15 +21,15 @@ export interface TimeFieldProps<TDate> extends UseTimeFieldComponentProps<TDate,
25
21
  * Overridable component slots.
26
22
  * @default {}
27
23
  */
28
- slots?: TimeFieldSlotsComponent;
24
+ slots?: TimeFieldSlots;
29
25
  /**
30
26
  * The props used for each component slot.
31
27
  * @default {}
32
28
  */
33
- slotProps?: TimeFieldSlotsComponentsProps<TDate>;
29
+ slotProps?: TimeFieldSlotProps<TDate>;
34
30
  }
35
31
  export type TimeFieldOwnerState<TDate> = TimeFieldProps<TDate>;
36
- export interface TimeFieldSlotsComponent extends FieldSlotsComponents {
32
+ export interface TimeFieldSlots 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 TimeFieldSlotsComponent extends FieldSlotsComponents {
41
37
  */
42
38
  textField?: React.ElementType;
43
39
  }
44
- export interface TimeFieldSlotsComponentsProps<TDate> extends FieldSlotsComponentsProps {
40
+ export interface TimeFieldSlotProps<TDate> extends UseClearableFieldSlotProps {
45
41
  textField?: SlotComponentProps<typeof TextField, {}, TimeFieldOwnerState<TDate>>;
46
42
  }
@@ -1,2 +1,2 @@
1
- import { UseTimeFieldProps, UseTimeFieldParams } from './TimeField.types';
2
- export declare const useTimeField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseTimeFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseTimeFieldProps<TDate>, "format" | keyof import("../internals").BaseTimeValidationProps> & Required<Pick<UseTimeFieldProps<TDate>, "format" | keyof import("../internals").BaseTimeValidationProps>>, keyof UseTimeFieldProps<any>>>;
1
+ import { UseTimeFieldProps, UseTimeFieldComponentProps } from './TimeField.types';
2
+ export declare const useTimeField: <TDate, TChildProps extends {}>(inProps: UseTimeFieldComponentProps<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseTimeFieldProps<TDate>, "format" | keyof import("../internals").BaseTimeValidationProps> & Required<Pick<UseTimeFieldProps<TDate>, "format" | keyof import("../internals").BaseTimeValidationProps>>, keyof UseTimeFieldProps<any>>>;
@@ -15,17 +15,13 @@ const useDefaultizedTimeField = props => {
15
15
  format: (_props$format = props.format) != null ? _props$format : defaultFormat
16
16
  });
17
17
  };
18
- export const useTimeField = ({
19
- props: inProps,
20
- inputRef
21
- }) => {
18
+ export const useTimeField = inProps => {
22
19
  const props = useDefaultizedTimeField(inProps);
23
20
  const {
24
21
  forwardedProps,
25
22
  internalProps
26
23
  } = splitFieldInternalAndForwardedProps(props, 'time');
27
24
  return useField({
28
- inputRef,
29
25
  forwardedProps,
30
26
  internalProps,
31
27
  valueManager: singleItemValueManager,
@@ -149,6 +149,10 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
149
149
  * @default 1
150
150
  */
151
151
  minutesStep: PropTypes.number,
152
+ /**
153
+ * Name attribute used by the `input` element in the Field.
154
+ */
155
+ name: PropTypes.string,
152
156
  /**
153
157
  * Callback fired when the value is accepted.
154
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.
@@ -229,7 +233,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
229
233
  * 4. If `null` is provided, no section will be selected
230
234
  * If not provided, the selected sections will be handled internally.
231
235
  */
232
- 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({
233
237
  endIndex: PropTypes.number.isRequired,
234
238
  startIndex: PropTypes.number.isRequired
235
239
  })]),
@@ -1,9 +1,9 @@
1
- import { DesktopTimePickerProps, DesktopTimePickerSlotsComponent, DesktopTimePickerSlotsComponentsProps } from '../DesktopTimePicker';
1
+ import { DesktopTimePickerProps, DesktopTimePickerSlots, DesktopTimePickerSlotProps } from '../DesktopTimePicker';
2
2
  import { TimeViewWithMeridiem } from '../internals/models';
3
- import { MobileTimePickerProps, MobileTimePickerSlotsComponent, MobileTimePickerSlotsComponentsProps } from '../MobileTimePicker';
4
- export interface TimePickerSlotsComponents<TDate> extends DesktopTimePickerSlotsComponent<TDate>, MobileTimePickerSlotsComponent<TDate, TimeViewWithMeridiem> {
3
+ import { MobileTimePickerProps, MobileTimePickerSlots, MobileTimePickerSlotProps } from '../MobileTimePicker';
4
+ export interface TimePickerSlots<TDate> extends DesktopTimePickerSlots<TDate>, MobileTimePickerSlots<TDate, TimeViewWithMeridiem> {
5
5
  }
6
- export interface TimePickerSlotsComponentsProps<TDate> extends DesktopTimePickerSlotsComponentsProps<TDate>, MobileTimePickerSlotsComponentsProps<TDate, TimeViewWithMeridiem> {
6
+ export interface TimePickerSlotProps<TDate> extends DesktopTimePickerSlotProps<TDate>, MobileTimePickerSlotProps<TDate, TimeViewWithMeridiem> {
7
7
  }
8
8
  export interface TimePickerProps<TDate> extends DesktopTimePickerProps<TDate>, Omit<MobileTimePickerProps<TDate, TimeViewWithMeridiem>, 'views'> {
9
9
  /**
@@ -16,10 +16,10 @@ export interface TimePickerProps<TDate> extends DesktopTimePickerProps<TDate>, O
16
16
  * Overridable component slots.
17
17
  * @default {}
18
18
  */
19
- slots?: TimePickerSlotsComponents<TDate>;
19
+ slots?: TimePickerSlots<TDate>;
20
20
  /**
21
21
  * The props used for each component slot.
22
22
  * @default {}
23
23
  */
24
- slotProps?: TimePickerSlotsComponentsProps<TDate>;
24
+ slotProps?: TimePickerSlotProps<TDate>;
25
25
  }
@@ -1,5 +1,5 @@
1
1
  export { TimePicker } from './TimePicker';
2
- export type { TimePickerProps, TimePickerSlotsComponents, TimePickerSlotsComponentsProps, } from './TimePicker.types';
2
+ export type { TimePickerProps, TimePickerSlots, TimePickerSlotProps } from './TimePicker.types';
3
3
  export { TimePickerToolbar } from './TimePickerToolbar';
4
4
  export type { TimePickerToolbarProps } from './TimePickerToolbar';
5
5
  export { timePickerToolbarClasses } from './timePickerToolbarClasses';
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DefaultizedProps } from '../internals/models/helpers';
3
- import { TimeClockSlotsComponent, TimeClockSlotsComponentsProps } from '../TimeClock/TimeClock.types';
3
+ import { TimeClockSlots, TimeClockSlotProps } from '../TimeClock/TimeClock.types';
4
4
  import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
5
5
  import { BaseTimeValidationProps } from '../internals/models/validation';
6
6
  import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
@@ -10,14 +10,14 @@ import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePicker
10
10
  import { TimeViewRendererProps } from '../timeViewRenderers';
11
11
  import { BaseClockProps, ExportedBaseClockProps } from '../internals/models/props/clock';
12
12
  import { TimeViewWithMeridiem } from '../internals/models';
13
- export interface BaseTimePickerSlotsComponent<TDate> extends TimeClockSlotsComponent {
13
+ export interface BaseTimePickerSlots<TDate> extends TimeClockSlots {
14
14
  /**
15
15
  * Custom component for the toolbar rendered above the views.
16
16
  * @default TimePickerToolbar
17
17
  */
18
18
  toolbar?: React.JSXElementConstructor<TimePickerToolbarProps<TDate>>;
19
19
  }
20
- export interface BaseTimePickerSlotsComponentsProps extends TimeClockSlotsComponentsProps {
20
+ export interface BaseTimePickerSlotProps extends TimeClockSlotProps {
21
21
  toolbar?: ExportedTimePickerToolbarProps;
22
22
  }
23
23
  export interface BaseTimePickerProps<TDate, TView extends TimeViewWithMeridiem> extends BasePickerInputProps<TDate | null, TDate, TView, TimeValidationError>, ExportedBaseClockProps<TDate> {
@@ -30,12 +30,12 @@ export interface BaseTimePickerProps<TDate, TView extends TimeViewWithMeridiem>
30
30
  * Overridable component slots.
31
31
  * @default {}
32
32
  */
33
- slots?: BaseTimePickerSlotsComponent<TDate>;
33
+ slots?: BaseTimePickerSlots<TDate>;
34
34
  /**
35
35
  * The props used for each component slot.
36
36
  * @default {}
37
37
  */
38
- slotProps?: BaseTimePickerSlotsComponentsProps;
38
+ slotProps?: BaseTimePickerSlotProps;
39
39
  /**
40
40
  * Define custom view renderers for each section.
41
41
  * If `null`, the section will only have field editing.
package/hooks/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export { useClearableField } from './useClearableField';
2
+ export type { UseClearableFieldSlots, UseClearableFieldSlotProps } from './useClearableField';
@@ -1,23 +1,35 @@
1
1
  import * as React from 'react';
2
- import { FieldSlotsComponents, FieldSlotsComponentsProps, FieldsTextFieldProps } from '../internals';
3
- type UseClearableFieldProps<TFieldProps extends FieldsTextFieldProps, TInputProps extends {
4
- endAdornment?: React.ReactNode;
5
- } | undefined, TFieldSlots extends FieldSlotsComponents, TFieldSlotsComponentsProps extends FieldSlotsComponentsProps> = {
6
- clearable: boolean;
7
- fieldProps: TFieldProps;
8
- InputProps: TInputProps;
9
- onClear: React.MouseEventHandler<HTMLButtonElement>;
10
- slots?: {
11
- [K in keyof TFieldSlots as Uncapitalize<K & string>]: TFieldSlots[K];
2
+ import { SlotComponentProps } from '@mui/base/utils';
3
+ import MuiIconButton from '@mui/material/IconButton';
4
+ import { SxProps } from '@mui/system';
5
+ import { ClearIcon } from '../icons';
6
+ export interface ExportedUseClearableFieldProps {
7
+ clearable?: boolean;
8
+ onClear?: React.MouseEventHandler<HTMLButtonElement>;
9
+ }
10
+ export interface UseClearableFieldSlots {
11
+ /**
12
+ * Icon to display inside the clear button.
13
+ * @default ClearIcon
14
+ */
15
+ clearIcon?: React.ElementType;
16
+ /**
17
+ * Button to clear the value.
18
+ * @default IconButton
19
+ */
20
+ clearButton?: React.ElementType;
21
+ }
22
+ export interface UseClearableFieldSlotProps {
23
+ clearIcon?: SlotComponentProps<typeof ClearIcon, {}, {}>;
24
+ clearButton?: SlotComponentProps<typeof MuiIconButton, {}, {}>;
25
+ }
26
+ interface UseClearableFieldProps extends ExportedUseClearableFieldProps {
27
+ InputProps?: {
28
+ endAdornment?: React.ReactNode;
12
29
  };
13
- slotProps?: TFieldSlotsComponentsProps;
14
- };
15
- export declare const useClearableField: <TFieldProps extends FieldsTextFieldProps, TInputProps extends {
16
- endAdornment?: React.ReactNode;
17
- } | undefined, TFieldSlotsComponents extends FieldSlotsComponents, TFieldSlotsComponentsProps extends FieldSlotsComponentsProps>({ clearable, fieldProps: forwardedFieldProps, InputProps: ForwardedInputProps, onClear, slots, slotProps, }: UseClearableFieldProps<TFieldProps, TInputProps, TFieldSlotsComponents, TFieldSlotsComponentsProps>) => {
18
- InputProps: TInputProps & {
19
- endAdornment: string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
20
- };
21
- fieldProps: TFieldProps;
22
- };
30
+ sx?: SxProps<any>;
31
+ slots?: UseClearableFieldSlots;
32
+ slotProps?: UseClearableFieldSlotProps;
33
+ }
34
+ export declare const useClearableField: <TFieldProps extends UseClearableFieldProps>(props: TFieldProps) => Omit<TFieldProps, "slotProps" | "slots" | "onClear" | "clearable">;
23
35
  export {};