@mui/x-date-pickers 7.0.0-alpha.2 → 7.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +10 -14
  2. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  3. package/AdapterDayjs/AdapterDayjs.js +11 -8
  4. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  5. package/AdapterLuxon/AdapterLuxon.js +29 -16
  6. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  7. package/AdapterMoment/AdapterMoment.js +14 -14
  8. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +0 -1
  9. package/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
  10. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +0 -2
  11. package/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
  12. package/CHANGELOG.md +241 -0
  13. package/DateCalendar/DateCalendar.js +2 -2
  14. package/DateCalendar/DayCalendar.d.ts +3 -3
  15. package/DatePicker/DatePicker.js +2 -2
  16. package/DateTimePicker/DateTimePicker.js +2 -2
  17. package/DesktopDatePicker/DesktopDatePicker.js +2 -2
  18. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  19. package/MobileDatePicker/MobileDatePicker.js +2 -2
  20. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  21. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  22. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +3 -2
  23. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  24. package/PickersShortcuts/PickersShortcuts.d.ts +1 -1
  25. package/PickersShortcuts/PickersShortcuts.js +1 -1
  26. package/README.md +0 -1
  27. package/StaticDatePicker/StaticDatePicker.js +2 -2
  28. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  29. package/index.js +1 -1
  30. package/internals/components/PickersTextField/Outline.d.ts +2 -0
  31. package/internals/components/PickersTextField/Outline.js +99 -0
  32. package/internals/components/PickersTextField/PickersInput.d.ts +4 -0
  33. package/internals/components/PickersTextField/PickersInput.js +264 -0
  34. package/internals/components/PickersTextField/PickersInput.types.d.ts +30 -0
  35. package/internals/components/PickersTextField/PickersInput.types.js +1 -0
  36. package/internals/components/PickersTextField/PickersTextField.d.ts +3 -0
  37. package/internals/components/PickersTextField/PickersTextField.js +120 -0
  38. package/internals/components/PickersTextField/PickersTextField.types.d.ts +18 -0
  39. package/internals/components/PickersTextField/PickersTextField.types.js +1 -0
  40. package/internals/components/PickersTextField/index.d.ts +1 -0
  41. package/internals/components/PickersTextField/index.js +1 -0
  42. package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +42 -0
  43. package/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
  44. package/internals/hooks/useField/useField.utils.js +23 -10
  45. package/internals/hooks/usePicker/usePickerValue.js +2 -6
  46. package/internals/hooks/usePicker/usePickerValue.types.d.ts +2 -2
  47. package/legacy/AdapterDateFns/AdapterDateFns.js +10 -14
  48. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  49. package/legacy/AdapterDayjs/AdapterDayjs.js +11 -8
  50. package/legacy/AdapterLuxon/AdapterLuxon.js +30 -17
  51. package/legacy/AdapterMoment/AdapterMoment.js +326 -320
  52. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +4 -25
  53. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -30
  54. package/legacy/DateCalendar/DateCalendar.js +2 -2
  55. package/legacy/DatePicker/DatePicker.js +2 -2
  56. package/legacy/DateTimePicker/DateTimePicker.js +2 -2
  57. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
  58. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  59. package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
  60. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  61. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  62. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  63. package/legacy/PickersShortcuts/PickersShortcuts.js +2 -1
  64. package/legacy/StaticDatePicker/StaticDatePicker.js +2 -2
  65. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  66. package/legacy/index.js +1 -1
  67. package/legacy/internals/components/PickersTextField/Outline.js +100 -0
  68. package/legacy/internals/components/PickersTextField/PickersInput.js +273 -0
  69. package/legacy/internals/components/PickersTextField/PickersInput.types.js +1 -0
  70. package/legacy/internals/components/PickersTextField/PickersTextField.js +129 -0
  71. package/legacy/internals/components/PickersTextField/PickersTextField.types.js +1 -0
  72. package/legacy/internals/components/PickersTextField/index.js +1 -0
  73. package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
  74. package/legacy/internals/hooks/useField/useField.utils.js +23 -10
  75. package/legacy/internals/hooks/usePicker/usePickerValue.js +2 -6
  76. package/locales/beBY.d.ts +18 -5
  77. package/locales/caES.d.ts +18 -5
  78. package/locales/csCZ.d.ts +18 -5
  79. package/locales/daDK.d.ts +18 -5
  80. package/locales/deDE.d.ts +18 -5
  81. package/locales/elGR.d.ts +18 -5
  82. package/locales/enUS.d.ts +18 -5
  83. package/locales/esES.d.ts +18 -5
  84. package/locales/eu.d.ts +18 -5
  85. package/locales/faIR.d.ts +18 -5
  86. package/locales/fiFI.d.ts +18 -5
  87. package/locales/frFR.d.ts +18 -5
  88. package/locales/heIL.d.ts +18 -5
  89. package/locales/huHU.d.ts +18 -5
  90. package/locales/isIS.d.ts +18 -5
  91. package/locales/itIT.d.ts +18 -5
  92. package/locales/jaJP.d.ts +18 -5
  93. package/locales/koKR.d.ts +18 -5
  94. package/locales/kzKZ.d.ts +18 -5
  95. package/locales/mk.d.ts +18 -5
  96. package/locales/nbNO.d.ts +18 -5
  97. package/locales/nlNL.d.ts +18 -5
  98. package/locales/plPL.d.ts +18 -5
  99. package/locales/ptBR.d.ts +18 -5
  100. package/locales/roRO.d.ts +18 -5
  101. package/locales/ruRU.d.ts +18 -5
  102. package/locales/skSK.d.ts +18 -5
  103. package/locales/svSE.d.ts +18 -5
  104. package/locales/trTR.d.ts +18 -5
  105. package/locales/ukUA.d.ts +18 -5
  106. package/locales/urPK.d.ts +18 -5
  107. package/locales/utils/getPickersLocalization.d.ts +18 -5
  108. package/locales/utils/pickersLocaleTextApi.d.ts +18 -5
  109. package/locales/viVN.d.ts +18 -5
  110. package/locales/zhCN.d.ts +18 -5
  111. package/locales/zhHK.d.ts +18 -5
  112. package/modern/AdapterDateFns/AdapterDateFns.js +10 -14
  113. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  114. package/modern/AdapterDayjs/AdapterDayjs.js +11 -8
  115. package/modern/AdapterLuxon/AdapterLuxon.js +28 -16
  116. package/modern/AdapterMoment/AdapterMoment.js +14 -14
  117. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
  118. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
  119. package/modern/DateCalendar/DateCalendar.js +2 -2
  120. package/modern/DatePicker/DatePicker.js +2 -2
  121. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  122. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -2
  123. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  124. package/modern/MobileDatePicker/MobileDatePicker.js +2 -2
  125. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  126. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  127. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  128. package/modern/PickersShortcuts/PickersShortcuts.js +1 -1
  129. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  130. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  131. package/modern/index.js +1 -1
  132. package/modern/internals/components/PickersTextField/Outline.js +99 -0
  133. package/modern/internals/components/PickersTextField/PickersInput.js +264 -0
  134. package/modern/internals/components/PickersTextField/PickersInput.types.js +1 -0
  135. package/modern/internals/components/PickersTextField/PickersTextField.js +119 -0
  136. package/modern/internals/components/PickersTextField/PickersTextField.types.js +1 -0
  137. package/modern/internals/components/PickersTextField/index.js +1 -0
  138. package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
  139. package/modern/internals/hooks/useField/useField.utils.js +23 -10
  140. package/modern/internals/hooks/usePicker/usePickerValue.js +2 -6
  141. package/node/AdapterDateFns/AdapterDateFns.js +10 -14
  142. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
  143. package/node/AdapterDayjs/AdapterDayjs.js +10 -7
  144. package/node/AdapterLuxon/AdapterLuxon.js +28 -16
  145. package/node/AdapterMoment/AdapterMoment.js +14 -14
  146. package/node/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
  147. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
  148. package/node/DateCalendar/DateCalendar.js +2 -2
  149. package/node/DatePicker/DatePicker.js +2 -2
  150. package/node/DateTimePicker/DateTimePicker.js +2 -2
  151. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
  152. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
  153. package/node/MobileDatePicker/MobileDatePicker.js +2 -2
  154. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  155. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
  156. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
  157. package/node/PickersShortcuts/PickersShortcuts.js +1 -1
  158. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  159. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  160. package/node/index.js +1 -1
  161. package/node/internals/components/PickersTextField/Outline.js +108 -0
  162. package/node/internals/components/PickersTextField/PickersInput.js +272 -0
  163. package/node/internals/components/PickersTextField/PickersInput.types.js +5 -0
  164. package/node/internals/components/PickersTextField/PickersTextField.js +127 -0
  165. package/node/internals/components/PickersTextField/PickersTextField.types.js +5 -0
  166. package/node/internals/components/PickersTextField/index.js +12 -0
  167. package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +17 -0
  168. package/node/internals/hooks/useField/useField.utils.js +23 -10
  169. package/node/internals/hooks/usePicker/usePickerValue.js +2 -6
  170. package/package.json +2 -2
  171. package/internals/components/FakeTextField/FakeTextField.d.ts +0 -22
  172. package/internals/components/FakeTextField/FakeTextField.js +0 -44
  173. package/internals/components/FakeTextField/index.d.ts +0 -1
  174. package/internals/components/FakeTextField/index.js +0 -1
  175. package/legacy/internals/components/FakeTextField/FakeTextField.js +0 -49
  176. package/legacy/internals/components/FakeTextField/index.js +0 -1
  177. package/modern/internals/components/FakeTextField/FakeTextField.js +0 -44
  178. package/modern/internals/components/FakeTextField/index.js +0 -1
  179. package/node/internals/components/FakeTextField/FakeTextField.js +0 -52
  180. package/node/internals/components/FakeTextField/index.js +0 -12
@@ -198,21 +198,6 @@ export class AdapterMomentHijri extends AdapterMoment {
198
198
  this.setDate = (value, date) => {
199
199
  return value.clone().iDate(date);
200
200
  };
201
- this.getWeekArray = value => {
202
- const start = value.clone().startOf('iMonth').startOf('week');
203
- const end = value.clone().endOf('iMonth').endOf('week');
204
- let count = 0;
205
- let current = start;
206
- const nestedWeeks = [];
207
- while (current.isBefore(end)) {
208
- const weekNumber = Math.floor(count / 7);
209
- nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
210
- nestedWeeks[weekNumber].push(current);
211
- current = current.clone().add(1, 'day');
212
- count += 1;
213
- }
214
- return nestedWeeks;
215
- };
216
201
  this.getWeekNumber = value => {
217
202
  return value.iWeek();
218
203
  };
@@ -225,15 +210,7 @@ export class AdapterMomentHijri extends AdapterMoment {
225
210
  if (end.isAfter('2076-11-26')) {
226
211
  throw new Error('max date must be on or before 1499-12-29 H (2076-11-26)');
227
212
  }
228
- const startDate = this.moment(start).startOf('iYear');
229
- const endDate = this.moment(end).endOf('iYear');
230
- const years = [];
231
- let current = startDate;
232
- while (current.isBefore(endDate)) {
233
- years.push(current);
234
- current = current.clone().add(1, 'iYear');
235
- }
236
- return years;
213
+ return super.getYearRange([start, end]);
237
214
  };
238
215
  this.moment = instance || defaultHMoment;
239
216
  this.locale = 'ar-SA';
@@ -212,35 +212,9 @@ export class AdapterMomentJalaali extends AdapterMoment {
212
212
  this.setDate = (value, date) => {
213
213
  return value.clone().jDate(date);
214
214
  };
215
- this.getWeekArray = value => {
216
- const start = value.clone().startOf('jMonth').startOf('week');
217
- const end = value.clone().endOf('jMonth').endOf('week');
218
- let count = 0;
219
- let current = start;
220
- const nestedWeeks = [];
221
- while (current.isBefore(end)) {
222
- const weekNumber = Math.floor(count / 7);
223
- nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
224
- nestedWeeks[weekNumber].push(current);
225
- current = current.clone().add(1, 'day');
226
- count += 1;
227
- }
228
- return nestedWeeks;
229
- };
230
215
  this.getWeekNumber = value => {
231
216
  return value.jWeek();
232
217
  };
233
- this.getYearRange = ([start, end]) => {
234
- const startDate = this.moment(start).startOf('jYear');
235
- const endDate = this.moment(end).endOf('jYear');
236
- const years = [];
237
- let current = startDate;
238
- while (current.isBefore(endDate)) {
239
- years.push(current);
240
- current = current.clone().add(1, 'jYear');
241
- }
242
- return years;
243
- };
244
218
  this.moment = instance || defaultJMoment;
245
219
  this.locale = 'fa';
246
220
  this.formats = _extends({}, defaultFormats, formats);
@@ -393,8 +393,8 @@ process.env.NODE_ENV !== "production" ? DateCalendar.propTypes = {
393
393
  */
394
394
  displayWeekNumber: PropTypes.bool,
395
395
  /**
396
- * Calendar will show more weeks in order to match this value.
397
- * Put it to 6 for having fix number of week in Gregorian calendars
396
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
397
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
398
398
  * @default undefined
399
399
  */
400
400
  fixedWeekNumber: PropTypes.number,
@@ -112,8 +112,8 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
112
112
  */
113
113
  displayWeekNumber: PropTypes.bool,
114
114
  /**
115
- * Calendar will show more weeks in order to match this value.
116
- * Put it to 6 for having fix number of week in Gregorian calendars
115
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
116
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
117
117
  * @default undefined
118
118
  */
119
119
  fixedWeekNumber: PropTypes.number,
@@ -127,8 +127,8 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
127
127
  */
128
128
  displayWeekNumber: PropTypes.bool,
129
129
  /**
130
- * Calendar will show more weeks in order to match this value.
131
- * Put it to 6 for having fix number of week in Gregorian calendars
130
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
131
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
132
132
  * @default undefined
133
133
  */
134
134
  fixedWeekNumber: PropTypes.number,
@@ -126,8 +126,8 @@ DesktopDatePicker.propTypes = {
126
126
  */
127
127
  displayWeekNumber: PropTypes.bool,
128
128
  /**
129
- * Calendar will show more weeks in order to match this value.
130
- * Put it to 6 for having fix number of week in Gregorian calendars
129
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
130
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
131
131
  * @default undefined
132
132
  */
133
133
  fixedWeekNumber: PropTypes.number,
@@ -180,8 +180,8 @@ DesktopDateTimePicker.propTypes = {
180
180
  */
181
181
  displayWeekNumber: PropTypes.bool,
182
182
  /**
183
- * Calendar will show more weeks in order to match this value.
184
- * Put it to 6 for having fix number of week in Gregorian calendars
183
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
184
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
185
185
  * @default undefined
186
186
  */
187
187
  fixedWeekNumber: PropTypes.number,
@@ -123,8 +123,8 @@ MobileDatePicker.propTypes = {
123
123
  */
124
124
  displayWeekNumber: PropTypes.bool,
125
125
  /**
126
- * Calendar will show more weeks in order to match this value.
127
- * Put it to 6 for having fix number of week in Gregorian calendars
126
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
127
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
128
128
  * @default undefined
129
129
  */
130
130
  fixedWeekNumber: PropTypes.number,
@@ -149,8 +149,8 @@ MobileDateTimePicker.propTypes = {
149
149
  */
150
150
  displayWeekNumber: PropTypes.bool,
151
151
  /**
152
- * Calendar will show more weeks in order to match this value.
153
- * Put it to 6 for having fix number of week in Gregorian calendars
152
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
153
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
154
154
  * @default undefined
155
155
  */
156
156
  fixedWeekNumber: PropTypes.number,
@@ -249,6 +249,7 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
249
249
  },
250
250
  items: getTimeSectionOptions({
251
251
  value: utils.getMinutes(valueOrReferenceDate),
252
+ utils,
252
253
  isDisabled: minutes => disabled || isTimeDisabled(minutes, 'minutes'),
253
254
  resolveLabel: minutes => utils.format(utils.setMinutes(now, minutes), 'minutes'),
254
255
  timeStep: timeSteps.minutes,
@@ -265,6 +266,7 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
265
266
  },
266
267
  items: getTimeSectionOptions({
267
268
  value: utils.getSeconds(valueOrReferenceDate),
269
+ utils,
268
270
  isDisabled: seconds => disabled || isTimeDisabled(seconds, 'seconds'),
269
271
  resolveLabel: seconds => utils.format(utils.setSeconds(now, seconds), 'seconds'),
270
272
  timeStep: timeSteps.seconds,
@@ -44,6 +44,7 @@ export const getHourSectionOptions = ({
44
44
  };
45
45
  export const getTimeSectionOptions = ({
46
46
  value,
47
+ utils,
47
48
  isDisabled,
48
49
  timeStep,
49
50
  resolveLabel,
@@ -65,7 +66,7 @@ export const getTimeSectionOptions = ({
65
66
  const timeValue = timeStep * index;
66
67
  return {
67
68
  value: timeValue,
68
- label: resolveLabel(timeValue),
69
+ label: utils.formatNumber(resolveLabel(timeValue)),
69
70
  isDisabled,
70
71
  isSelected,
71
72
  isFocused,
@@ -21,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
21
21
  function PickersShortcuts(props) {
22
22
  const {
23
23
  items,
24
- changeImportance,
24
+ changeImportance = 'accept',
25
25
  onChange,
26
26
  isValid
27
27
  } = props,
@@ -105,8 +105,8 @@ StaticDatePicker.propTypes = {
105
105
  */
106
106
  displayWeekNumber: PropTypes.bool,
107
107
  /**
108
- * Calendar will show more weeks in order to match this value.
109
- * Put it to 6 for having fix number of week in Gregorian calendars
108
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
109
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
110
110
  * @default undefined
111
111
  */
112
112
  fixedWeekNumber: PropTypes.number,
@@ -130,8 +130,8 @@ StaticDateTimePicker.propTypes = {
130
130
  */
131
131
  displayWeekNumber: PropTypes.bool,
132
132
  /**
133
- * Calendar will show more weeks in order to match this value.
134
- * Put it to 6 for having fix number of week in Gregorian calendars
133
+ * The day view will show as many weeks as needed after the end of the current month to match this value.
134
+ * Put it to 6 to have a fixed number of weeks in Gregorian calendars
135
135
  * @default undefined
136
136
  */
137
137
  fixedWeekNumber: PropTypes.number,
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-alpha.2
2
+ * @mui/x-date-pickers v7.0.0-alpha.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -0,0 +1,99 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ const _excluded = ["children", "classes", "className", "label", "notched"];
4
+ import * as React from 'react';
5
+ import { styled } from '@mui/material/styles';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const OutlineRoot = styled('fieldset')({
8
+ textAlign: 'left',
9
+ position: 'absolute',
10
+ bottom: 0,
11
+ right: 0,
12
+ top: -5,
13
+ left: 0,
14
+ margin: 0,
15
+ padding: '0 8px',
16
+ pointerEvents: 'none',
17
+ borderRadius: 'inherit',
18
+ borderStyle: 'solid',
19
+ borderWidth: 1,
20
+ overflow: 'hidden',
21
+ minWidth: '0%'
22
+ });
23
+ const OutlineLegend = styled('legend')(({
24
+ ownerState,
25
+ theme
26
+ }) => _extends({
27
+ float: 'unset',
28
+ // Fix conflict with bootstrap
29
+ width: 'auto',
30
+ // Fix conflict with bootstrap
31
+ overflow: 'hidden'
32
+ }, !ownerState.withLabel && {
33
+ padding: 0,
34
+ lineHeight: '11px',
35
+ // sync with `height` in `legend` styles
36
+ transition: theme.transitions.create('width', {
37
+ duration: 150,
38
+ easing: theme.transitions.easing.easeOut
39
+ })
40
+ }, ownerState.withLabel && _extends({
41
+ display: 'block',
42
+ // Fix conflict with normalize.css and sanitize.css
43
+ padding: 0,
44
+ height: 11,
45
+ // sync with `lineHeight` in `legend` styles
46
+ fontSize: '0.75em',
47
+ visibility: 'hidden',
48
+ maxWidth: 0.01,
49
+ transition: theme.transitions.create('max-width', {
50
+ duration: 50,
51
+ easing: theme.transitions.easing.easeOut
52
+ }),
53
+ whiteSpace: 'nowrap',
54
+ '& > span': {
55
+ paddingLeft: 5,
56
+ paddingRight: 5,
57
+ display: 'inline-block',
58
+ opacity: 0,
59
+ visibility: 'visible'
60
+ }
61
+ }, ownerState.notched && {
62
+ maxWidth: '100%',
63
+ transition: theme.transitions.create('max-width', {
64
+ duration: 100,
65
+ easing: theme.transitions.easing.easeOut,
66
+ delay: 50
67
+ })
68
+ })));
69
+ export default function Outline(props) {
70
+ const {
71
+ className,
72
+ label,
73
+ notched
74
+ } = props,
75
+ other = _objectWithoutPropertiesLoose(props, _excluded);
76
+ const withLabel = label != null && label !== '';
77
+ const ownerState = _extends({}, props, {
78
+ notched,
79
+ withLabel
80
+ });
81
+ return /*#__PURE__*/_jsx(OutlineRoot, _extends({
82
+ "aria-hidden": true,
83
+ className: className,
84
+ ownerState: ownerState
85
+ }, other, {
86
+ children: /*#__PURE__*/_jsx(OutlineLegend, {
87
+ ownerState: ownerState,
88
+ children: withLabel ? /*#__PURE__*/_jsx("span", {
89
+ children: label
90
+ }) :
91
+ /*#__PURE__*/
92
+ // notranslate needed while Google Translate will not fix zero-width space issue
93
+ _jsx("span", {
94
+ className: "notranslate",
95
+ children: "\u200B"
96
+ })
97
+ })
98
+ }));
99
+ }
@@ -0,0 +1,264 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ const _excluded = ["elements", "defaultValue", "label", "onFocus", "onWrapperClick", "onBlur", "valueStr", "onValueStrChange", "id", "InputProps", "inputProps", "autoFocus", "ownerState", "endAdornment", "startAdornment"];
4
+ import * as React from 'react';
5
+ import clsx from 'clsx';
6
+ import Box from '@mui/material/Box';
7
+ import { useFormControl } from '@mui/material/FormControl';
8
+ import { styled } from '@mui/material/styles';
9
+ import useForkRef from '@mui/utils/useForkRef';
10
+ import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize, visuallyHidden } from '@mui/utils';
11
+ import { pickersInputClasses, getPickersInputUtilityClass } from './pickersTextFieldClasses';
12
+ import Outline from './Outline';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ const SectionsWrapper = styled(Box, {
16
+ name: 'MuiPickersInput',
17
+ slot: 'Root',
18
+ overridesResolver: (props, styles) => styles.root
19
+ })(({
20
+ theme,
21
+ ownerState
22
+ }) => {
23
+ const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
24
+ return _extends({
25
+ cursor: 'text',
26
+ padding: '16.5px 14px',
27
+ display: 'flex',
28
+ justifyContent: 'flex-start',
29
+ alignItems: 'center',
30
+ width: ownerState.fullWidth ? '100%' : '25ch',
31
+ position: 'relative',
32
+ borderRadius: (theme.vars || theme).shape.borderRadius,
33
+ [`&:hover .${pickersInputClasses.notchedOutline}`]: {
34
+ borderColor: (theme.vars || theme).palette.text.primary
35
+ },
36
+ // Reset on touch devices, it doesn't add specificity
37
+ '@media (hover: none)': {
38
+ [`&:hover .${pickersInputClasses.notchedOutline}`]: {
39
+ borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
40
+ }
41
+ },
42
+ [`&.${pickersInputClasses.focused} .${pickersInputClasses.notchedOutline}`]: {
43
+ borderStyle: 'solid',
44
+ borderColor: (theme.vars || theme).palette[ownerState.color].main,
45
+ borderWidth: 2
46
+ },
47
+ [`&.${pickersInputClasses.disabled}`]: {
48
+ [`& .${pickersInputClasses.notchedOutline}`]: {
49
+ borderColor: (theme.vars || theme).palette.action.disabled
50
+ },
51
+ '*': {
52
+ color: (theme.vars || theme).palette.action.disabled
53
+ }
54
+ },
55
+ [`&.${pickersInputClasses.error} .${pickersInputClasses.notchedOutline}`]: {
56
+ borderColor: (theme.vars || theme).palette.error.main
57
+ }
58
+ }, ownerState.size === 'small' && {
59
+ padding: '8.5px 14px'
60
+ });
61
+ });
62
+ const SectionsContainer = styled('div', {
63
+ name: 'MuiPickersInput',
64
+ slot: 'Input',
65
+ overridesResolver: (props, styles) => styles.input
66
+ })(({
67
+ theme,
68
+ ownerState
69
+ }) => ({
70
+ fontFamily: theme.typography.fontFamily,
71
+ fontSize: 'inherit',
72
+ lineHeight: '1.4375em',
73
+ // 23px
74
+ flexGrow: 1,
75
+ visibility: ownerState.adornedStart || ownerState.focused ? 'visible' : 'hidden'
76
+ }));
77
+ const SectionContainer = styled('span', {
78
+ name: 'MuiPickersInput',
79
+ slot: 'Section',
80
+ overridesResolver: (props, styles) => styles.section
81
+ })(({
82
+ theme
83
+ }) => ({
84
+ fontFamily: theme.typography.fontFamily,
85
+ fontSize: 'inherit',
86
+ lineHeight: '1.4375em',
87
+ // 23px
88
+ flexGrow: 1
89
+ }));
90
+ const SectionInput = styled('span', {
91
+ name: 'MuiPickersInput',
92
+ slot: 'Content',
93
+ overridesResolver: (props, styles) => styles.content
94
+ })(({
95
+ theme
96
+ }) => ({
97
+ fontFamily: theme.typography.fontFamily,
98
+ lineHeight: '1.4375em',
99
+ // 23px
100
+ letterSpacing: 'inherit',
101
+ width: 'fit-content'
102
+ }));
103
+ const SectionSeparator = styled('span', {
104
+ name: 'MuiPickersInput',
105
+ slot: 'Separator',
106
+ overridesResolver: (props, styles) => styles.separator
107
+ })(() => ({
108
+ whiteSpace: 'pre'
109
+ }));
110
+ const FakeHiddenInput = styled('input', {
111
+ name: 'MuiPickersInput',
112
+ slot: 'HiddenInput',
113
+ overridesResolver: (props, styles) => styles.hiddenInput
114
+ })(_extends({}, visuallyHidden));
115
+ const NotchedOutlineRoot = styled(Outline, {
116
+ name: 'MuiPickersInput',
117
+ slot: 'NotchedOutline',
118
+ overridesResolver: (props, styles) => styles.notchedOutline
119
+ })(({
120
+ theme
121
+ }) => {
122
+ const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
123
+ return {
124
+ borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
125
+ };
126
+ });
127
+ function InputContent({
128
+ elements,
129
+ contentEditable,
130
+ ownerState
131
+ }) {
132
+ if (contentEditable) {
133
+ return elements.map(({
134
+ content,
135
+ before,
136
+ after
137
+ }) => `${before.children}${content.children}${after.children}`).join('');
138
+ }
139
+ return /*#__PURE__*/_jsx(React.Fragment, {
140
+ children: elements.map(({
141
+ container,
142
+ content,
143
+ before,
144
+ after
145
+ }, elementIndex) => /*#__PURE__*/_jsxs(SectionContainer, _extends({}, container, {
146
+ children: [/*#__PURE__*/_jsx(SectionSeparator, _extends({}, before, {
147
+ className: clsx(pickersInputClasses.before, before?.className)
148
+ })), /*#__PURE__*/_jsx(SectionInput, _extends({}, content, {
149
+ className: clsx(pickersInputClasses.content, content?.className),
150
+ ownerState
151
+ })), /*#__PURE__*/_jsx(SectionSeparator, _extends({}, after, {
152
+ className: clsx(pickersInputClasses.after, after?.className)
153
+ }))]
154
+ }), elementIndex))
155
+ });
156
+ }
157
+ const useUtilityClasses = ownerState => {
158
+ const {
159
+ focused,
160
+ disabled,
161
+ error,
162
+ classes,
163
+ fullWidth,
164
+ color,
165
+ size,
166
+ endAdornment,
167
+ startAdornment
168
+ } = ownerState;
169
+ const slots = {
170
+ root: ['root', focused && !disabled && 'focused', disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', `color${capitalize(color)}`, size === 'small' && 'inputSizeSmall', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],
171
+ notchedOutline: ['notchedOutline'],
172
+ before: ['before'],
173
+ after: ['after'],
174
+ content: ['content'],
175
+ input: ['input']
176
+ };
177
+ return composeClasses(slots, getPickersInputUtilityClass, classes);
178
+ };
179
+
180
+ // TODO: move to utils
181
+ // Separates the state props from the form control
182
+ function formControlState({
183
+ props,
184
+ states,
185
+ muiFormControl
186
+ }) {
187
+ return states.reduce((acc, state) => {
188
+ acc[state] = props[state];
189
+ if (muiFormControl) {
190
+ if (typeof props[state] === 'undefined') {
191
+ acc[state] = muiFormControl[state];
192
+ }
193
+ }
194
+ return acc;
195
+ }, {});
196
+ }
197
+ const PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(props, ref) {
198
+ const {
199
+ elements,
200
+ label,
201
+ onWrapperClick,
202
+ valueStr,
203
+ onValueStrChange,
204
+ id,
205
+ ownerState: ownerStateProp,
206
+ endAdornment,
207
+ startAdornment
208
+ } = props,
209
+ other = _objectWithoutPropertiesLoose(props, _excluded);
210
+ const inputRef = React.useRef(null);
211
+ const handleInputRef = useForkRef(ref, inputRef);
212
+ const muiFormControl = useFormControl();
213
+ const fcs = formControlState({
214
+ props,
215
+ muiFormControl,
216
+ states: ['color', 'disabled', 'error', 'focused', 'size', 'required', 'fullWidth', 'adornedStart']
217
+ });
218
+ React.useEffect(() => {
219
+ if (muiFormControl) {
220
+ muiFormControl.setAdornedStart(Boolean(startAdornment));
221
+ }
222
+ }, [muiFormControl, startAdornment]);
223
+ const ownerState = _extends({}, props, ownerStateProp, {
224
+ color: fcs.color || 'primary',
225
+ disabled: fcs.disabled,
226
+ error: fcs.error,
227
+ focused: fcs.focused,
228
+ fullWidth: fcs.fullWidth,
229
+ size: fcs.size
230
+ });
231
+ const classes = useUtilityClasses(ownerState);
232
+ return /*#__PURE__*/_jsxs(SectionsWrapper, _extends({
233
+ ref: handleInputRef
234
+ }, other, {
235
+ className: classes.root,
236
+ onClick: onWrapperClick,
237
+ ownerState: ownerState,
238
+ "aria-invalid": fcs.error,
239
+ children: [startAdornment, /*#__PURE__*/_jsxs(SectionsContainer, {
240
+ ownerState: ownerState,
241
+ className: classes.input,
242
+ children: [/*#__PURE__*/_jsx(InputContent, {
243
+ elements: elements,
244
+ contentEditable: other.contentEditable,
245
+ ownerState: ownerState
246
+ }), /*#__PURE__*/_jsx(FakeHiddenInput, {
247
+ value: valueStr,
248
+ onChange: onValueStrChange,
249
+ id: id,
250
+ "aria-hidden": "true",
251
+ tabIndex: -1
252
+ })]
253
+ }), endAdornment, /*#__PURE__*/_jsx(NotchedOutlineRoot, {
254
+ shrink: fcs.adornedStart || fcs.focused,
255
+ notched: fcs.adornedStart || fcs.focused,
256
+ className: classes.notchedOutline,
257
+ label: label != null && label !== '' && fcs.required ? /*#__PURE__*/_jsxs(React.Fragment, {
258
+ children: [label, "\u2009", '*']
259
+ }) : label,
260
+ ownerState: ownerState
261
+ })]
262
+ }));
263
+ });
264
+ export default PickersInput;