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

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 (116) hide show
  1. package/CHANGELOG.md +408 -6
  2. package/DateCalendar/DateCalendar.js +6 -4
  3. package/DateCalendar/DateCalendar.types.d.ts +0 -8
  4. package/DigitalClock/DigitalClock.js +3 -2
  5. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  6. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
  7. package/PickersSectionList/PickersSectionList.d.ts +11 -0
  8. package/PickersSectionList/PickersSectionList.js +223 -0
  9. package/PickersSectionList/PickersSectionList.types.d.ts +56 -0
  10. package/PickersSectionList/index.d.ts +4 -0
  11. package/PickersSectionList/index.js +2 -0
  12. package/PickersSectionList/package.json +6 -0
  13. package/PickersSectionList/pickersSectionListClasses.d.ts +11 -0
  14. package/PickersSectionList/pickersSectionListClasses.js +6 -0
  15. package/TimeClock/TimeClock.js +3 -2
  16. package/index.d.ts +1 -0
  17. package/index.js +4 -1
  18. package/internals/components/{PickersTextField → PickersInput}/Outline.d.ts +1 -0
  19. package/internals/components/{PickersTextField → PickersInput}/Outline.js +35 -19
  20. package/internals/components/PickersInput/PickersFilledInput.d.ts +3 -0
  21. package/internals/components/PickersInput/PickersFilledInput.js +166 -0
  22. package/internals/components/PickersInput/PickersInput.d.ts +15 -0
  23. package/internals/components/{PickersTextField → PickersInput}/PickersInput.js +78 -106
  24. package/internals/components/PickersInput/PickersInput.types.d.ts +60 -0
  25. package/internals/components/PickersInput/PickersOutlinedInput.d.ts +3 -0
  26. package/internals/components/PickersInput/PickersOutlinedInput.js +117 -0
  27. package/internals/components/PickersInput/PickersStandardInput.d.ts +3 -0
  28. package/internals/components/PickersInput/PickersStandardInput.js +123 -0
  29. package/internals/components/PickersInput/index.d.ts +4 -0
  30. package/internals/components/PickersInput/index.js +3 -0
  31. package/internals/components/PickersInput/pickersInputClasses.d.ts +84 -0
  32. package/internals/components/PickersInput/pickersInputClasses.js +18 -0
  33. package/internals/components/PickersTextField/PickersTextField.d.ts +1 -2
  34. package/internals/components/PickersTextField/PickersTextField.js +15 -6
  35. package/internals/components/PickersTextField/PickersTextField.types.d.ts +46 -3
  36. package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +0 -31
  37. package/internals/components/PickersTextField/pickersTextFieldClasses.js +3 -6
  38. package/internals/hooks/useField/useField.js +8 -1
  39. package/internals/hooks/useViews.d.ts +4 -4
  40. package/internals/hooks/useViews.js +13 -13
  41. package/internals/models/props/clock.d.ts +0 -9
  42. package/legacy/DateCalendar/DateCalendar.js +6 -4
  43. package/legacy/DigitalClock/DigitalClock.js +3 -2
  44. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  45. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
  46. package/legacy/PickersSectionList/PickersSectionList.js +230 -0
  47. package/legacy/PickersSectionList/index.js +2 -0
  48. package/legacy/PickersSectionList/pickersSectionListClasses.js +6 -0
  49. package/legacy/TimeClock/TimeClock.js +3 -2
  50. package/legacy/index.js +4 -1
  51. package/legacy/internals/components/{PickersTextField → PickersInput}/Outline.js +40 -22
  52. package/legacy/internals/components/PickersInput/PickersFilledInput.js +161 -0
  53. package/legacy/internals/components/{PickersTextField → PickersInput}/PickersInput.js +75 -90
  54. package/legacy/internals/components/PickersInput/PickersInput.types.js +1 -0
  55. package/legacy/internals/components/PickersInput/PickersOutlinedInput.js +110 -0
  56. package/legacy/internals/components/PickersInput/PickersStandardInput.js +117 -0
  57. package/legacy/internals/components/PickersInput/index.js +3 -0
  58. package/legacy/internals/components/PickersInput/pickersInputClasses.js +18 -0
  59. package/legacy/internals/components/PickersTextField/PickersTextField.js +16 -7
  60. package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +3 -6
  61. package/legacy/internals/hooks/useField/useField.js +8 -1
  62. package/legacy/internals/hooks/useViews.js +13 -13
  63. package/legacy/locales/ruRU.js +1 -2
  64. package/locales/ruRU.js +1 -2
  65. package/modern/DateCalendar/DateCalendar.js +6 -4
  66. package/modern/DigitalClock/DigitalClock.js +3 -2
  67. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  68. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
  69. package/modern/PickersSectionList/PickersSectionList.js +221 -0
  70. package/modern/PickersSectionList/PickersSectionList.types.js +1 -0
  71. package/modern/PickersSectionList/index.js +2 -0
  72. package/modern/PickersSectionList/pickersSectionListClasses.js +6 -0
  73. package/modern/TimeClock/TimeClock.js +3 -2
  74. package/modern/index.js +4 -1
  75. package/modern/internals/components/{PickersTextField → PickersInput}/Outline.js +35 -19
  76. package/modern/internals/components/PickersInput/PickersFilledInput.js +165 -0
  77. package/modern/internals/components/{PickersTextField → PickersInput}/PickersInput.js +78 -106
  78. package/modern/internals/components/PickersInput/PickersInput.types.js +1 -0
  79. package/modern/internals/components/PickersInput/PickersOutlinedInput.js +117 -0
  80. package/modern/internals/components/PickersInput/PickersStandardInput.js +123 -0
  81. package/modern/internals/components/PickersInput/index.js +3 -0
  82. package/modern/internals/components/PickersInput/pickersInputClasses.js +18 -0
  83. package/modern/internals/components/PickersTextField/PickersTextField.js +15 -6
  84. package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +3 -6
  85. package/modern/internals/hooks/useField/useField.js +8 -1
  86. package/modern/internals/hooks/useViews.js +13 -13
  87. package/modern/locales/ruRU.js +1 -2
  88. package/node/DateCalendar/DateCalendar.js +6 -4
  89. package/node/DigitalClock/DigitalClock.js +3 -2
  90. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  91. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -8
  92. package/node/PickersSectionList/PickersSectionList.js +228 -0
  93. package/node/PickersSectionList/index.js +49 -0
  94. package/node/PickersSectionList/pickersSectionListClasses.js +14 -0
  95. package/node/TimeClock/TimeClock.js +3 -2
  96. package/node/index.js +13 -1
  97. package/node/internals/components/{PickersTextField → PickersInput}/Outline.js +35 -19
  98. package/node/internals/components/PickersInput/PickersFilledInput.js +174 -0
  99. package/node/internals/components/{PickersTextField → PickersInput}/PickersInput.js +80 -108
  100. package/node/internals/components/PickersInput/PickersInput.types.js +5 -0
  101. package/node/internals/components/PickersInput/PickersOutlinedInput.js +125 -0
  102. package/node/internals/components/PickersInput/PickersStandardInput.js +132 -0
  103. package/node/internals/components/PickersInput/index.js +32 -0
  104. package/node/internals/components/PickersInput/pickersInputClasses.js +29 -0
  105. package/node/internals/components/PickersTextField/PickersTextField.js +15 -6
  106. package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +6 -9
  107. package/node/internals/hooks/useField/useField.js +8 -1
  108. package/node/internals/hooks/useViews.js +13 -13
  109. package/node/locales/ruRU.js +1 -2
  110. package/package.json +5 -5
  111. package/internals/components/PickersTextField/PickersInput.d.ts +0 -3
  112. package/internals/components/PickersTextField/PickersInput.types.d.ts +0 -45
  113. /package/{internals/components/PickersTextField/PickersInput.types.js → PickersSectionList/PickersSectionList.types.js} +0 -0
  114. /package/{legacy/internals/components/PickersTextField → internals/components/PickersInput}/PickersInput.types.js +0 -0
  115. /package/{modern/internals/components/PickersTextField/PickersInput.types.js → legacy/PickersSectionList/PickersSectionList.types.js} +0 -0
  116. /package/node/{internals/components/PickersTextField/PickersInput.types.js → PickersSectionList/PickersSectionList.types.js} +0 -0
@@ -1,9 +1,7 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
2
  import _extends from "@babel/runtime/helpers/esm/extends";
4
- var _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "contentEditable", "tabIndex", "fullWidth", "inputProps", "inputRef", "sectionsContainerRef"];
3
+ var _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "renderSuffix", "slots", "contentEditable", "tabIndex", "onInput", "onPaste", "onKeyDown", "fullWidth", "inputProps", "inputRef", "sectionListRef"];
5
4
  import * as React from 'react';
6
- import clsx from 'clsx';
7
5
  import Box from '@mui/material/Box';
8
6
  import { useFormControl } from '@mui/material/FormControl';
9
7
  import { styled } from '@mui/material/styles';
@@ -11,11 +9,14 @@ import useForkRef from '@mui/utils/useForkRef';
11
9
  import composeClasses from '@mui/utils/composeClasses';
12
10
  import capitalize from '@mui/utils/capitalize';
13
11
  import visuallyHidden from '@mui/utils/visuallyHidden';
14
- import { pickersInputClasses, getPickersInputUtilityClass } from './pickersTextFieldClasses';
15
- import Outline from './Outline';
12
+ import { pickersInputClasses, getPickersInputUtilityClass } from './pickersInputClasses';
13
+ import { Unstable_PickersSectionList as PickersSectionList, Unstable_PickersSectionListRoot as PickersSectionListRoot, Unstable_PickersSectionListSection as PickersSectionListSection, Unstable_PickersSectionListSectionSeparator as PickersSectionListSectionSeparator, Unstable_PickersSectionListSectionContent as PickersSectionListSectionContent } from '../../../PickersSectionList';
16
14
  import { jsx as _jsx } from "react/jsx-runtime";
17
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
- var PickersInputRoot = styled(Box, {
16
+ var round = function round(value) {
17
+ return Math.round(value * 1e5) / 1e5;
18
+ };
19
+ export var PickersInputRoot = styled(Box, {
19
20
  name: 'MuiPickersInput',
20
21
  slot: 'Root',
21
22
  overridesResolver: function overridesResolver(props, styles) {
@@ -24,36 +25,22 @@ var PickersInputRoot = styled(Box, {
24
25
  })(function (_ref) {
25
26
  var theme = _ref.theme,
26
27
  ownerState = _ref.ownerState;
27
- var borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
28
- return _extends(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
28
+ return _extends({}, theme.typography.body1, {
29
+ color: (theme.vars || theme).palette.text.primary,
29
30
  cursor: 'text',
30
- padding: '16.5px 14px',
31
+ padding: 0,
31
32
  display: 'flex',
32
33
  justifyContent: 'flex-start',
33
34
  alignItems: 'center',
34
- width: ownerState.fullWidth ? '100%' : '25ch',
35
35
  position: 'relative',
36
- outline: 'none',
37
- borderRadius: (theme.vars || theme).shape.borderRadius
38
- }, "&:hover .".concat(pickersInputClasses.notchedOutline), {
39
- borderColor: (theme.vars || theme).palette.text.primary
40
- }), '@media (hover: none)', _defineProperty({}, "&:hover .".concat(pickersInputClasses.notchedOutline), {
41
- borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / 0.23)") : borderColor
42
- })), "&.".concat(pickersInputClasses.focused, " .").concat(pickersInputClasses.notchedOutline), {
43
- borderStyle: 'solid',
44
- borderColor: (theme.vars || theme).palette[ownerState.color].main,
45
- borderWidth: 2
46
- }), "&.".concat(pickersInputClasses.disabled), _defineProperty(_defineProperty({}, "& .".concat(pickersInputClasses.notchedOutline), {
47
- borderColor: (theme.vars || theme).palette.action.disabled
48
- }), '*', {
49
- color: (theme.vars || theme).palette.action.disabled
50
- })), "&.".concat(pickersInputClasses.error, " .").concat(pickersInputClasses.notchedOutline), {
51
- borderColor: (theme.vars || theme).palette.error.main
52
- }), ownerState.size === 'small' && {
53
- padding: '8.5px 14px'
36
+ boxSizing: 'border-box',
37
+ // Prevent padding issue with fullWidth.
38
+ letterSpacing: "".concat(round(0.15 / 16), "em")
39
+ }, ownerState.fullWidth && {
40
+ width: '100%'
54
41
  });
55
42
  });
56
- var PickersInputSectionsContainer = styled('div', {
43
+ export var PickersInputSectionsContainer = styled(PickersSectionListRoot, {
57
44
  name: 'MuiPickersInput',
58
45
  slot: 'SectionsContainer',
59
46
  overridesResolver: function overridesResolver(props, styles) {
@@ -63,12 +50,23 @@ var PickersInputSectionsContainer = styled('div', {
63
50
  var theme = _ref2.theme,
64
51
  ownerState = _ref2.ownerState;
65
52
  return _extends({
53
+ padding: '4px 0 5px',
66
54
  fontFamily: theme.typography.fontFamily,
67
55
  fontSize: 'inherit',
68
56
  lineHeight: '1.4375em',
69
57
  // 23px
70
58
  flexGrow: 1,
71
- outline: 'none'
59
+ outline: 'none',
60
+ display: 'flex',
61
+ flexWrap: 'nowrap',
62
+ overflow: 'hidden',
63
+ letterSpacing: 'inherit',
64
+ // Baseline behavior
65
+ width: '182px'
66
+ }, ownerState.size === 'small' && {
67
+ paddingTop: 1
68
+ }, theme.direction === 'rtl' && {
69
+ textAlign: 'right /*! @noflip */'
72
70
  }, !(ownerState.adornedStart || ownerState.focused || ownerState.filled) && _extends({
73
71
  color: 'currentColor'
74
72
  }, ownerState.label == null && (theme.vars ? {
@@ -79,7 +77,7 @@ var PickersInputSectionsContainer = styled('div', {
79
77
  opacity: 0
80
78
  }));
81
79
  });
82
- var PickersInputSection = styled('span', {
80
+ var PickersInputSection = styled(PickersSectionListSection, {
83
81
  name: 'MuiPickersInput',
84
82
  slot: 'Section',
85
83
  overridesResolver: function overridesResolver(props, styles) {
@@ -90,12 +88,13 @@ var PickersInputSection = styled('span', {
90
88
  return {
91
89
  fontFamily: theme.typography.fontFamily,
92
90
  fontSize: 'inherit',
91
+ letterSpacing: 'inherit',
93
92
  lineHeight: '1.4375em',
94
93
  // 23px
95
- flexGrow: 1
94
+ display: 'flex'
96
95
  };
97
96
  });
98
- var PickersInputContent = styled('span', {
97
+ var PickersInputSectionContent = styled(PickersSectionListSectionContent, {
99
98
  name: 'MuiPickersInput',
100
99
  slot: 'SectionContent',
101
100
  overridesResolver: function overridesResolver(props, styles) {
@@ -108,10 +107,11 @@ var PickersInputContent = styled('span', {
108
107
  lineHeight: '1.4375em',
109
108
  // 23px
110
109
  letterSpacing: 'inherit',
111
- width: 'fit-content'
110
+ width: 'fit-content',
111
+ outline: 'none'
112
112
  };
113
113
  });
114
- var PickersInputSeparator = styled('span', {
114
+ var PickersInputSeparator = styled(PickersSectionListSectionSeparator, {
115
115
  name: 'MuiPickersInput',
116
116
  slot: 'Separator',
117
117
  overridesResolver: function overridesResolver(props, styles) {
@@ -119,7 +119,8 @@ var PickersInputSeparator = styled('span', {
119
119
  }
120
120
  })(function () {
121
121
  return {
122
- whiteSpace: 'pre'
122
+ whiteSpace: 'pre',
123
+ letterSpacing: 'inherit'
123
124
  };
124
125
  });
125
126
  var PickersInputInput = styled('input', {
@@ -129,19 +130,6 @@ var PickersInputInput = styled('input', {
129
130
  return styles.hiddenInput;
130
131
  }
131
132
  })(_extends({}, visuallyHidden));
132
- var NotchedOutlineRoot = styled(Outline, {
133
- name: 'MuiPickersInput',
134
- slot: 'NotchedOutline',
135
- overridesResolver: function overridesResolver(props, styles) {
136
- return styles.notchedOutline;
137
- }
138
- })(function (_ref5) {
139
- var theme = _ref5.theme;
140
- var borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
141
- return {
142
- borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / 0.23)") : borderColor
143
- };
144
- });
145
133
  var useUtilityClasses = function useUtilityClasses(ownerState) {
146
134
  var focused = ownerState.focused,
147
135
  disabled = ownerState.disabled,
@@ -175,12 +163,17 @@ export var PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(pr
175
163
  autoFocus = props.autoFocus,
176
164
  endAdornment = props.endAdornment,
177
165
  startAdornment = props.startAdornment,
166
+ renderSuffix = props.renderSuffix,
167
+ slots = props.slots,
178
168
  contentEditable = props.contentEditable,
179
169
  tabIndex = props.tabIndex,
170
+ onInput = props.onInput,
171
+ onPaste = props.onPaste,
172
+ onKeyDown = props.onKeyDown,
180
173
  fullWidth = props.fullWidth,
181
174
  inputProps = props.inputProps,
182
175
  inputRef = props.inputRef,
183
- sectionsContainerRef = props.sectionsContainerRef,
176
+ sectionListRef = props.sectionListRef,
184
177
  other = _objectWithoutProperties(props, _excluded);
185
178
  var rootRef = React.useRef(null);
186
179
  var handleRootRef = useForkRef(ref, rootRef);
@@ -216,53 +209,45 @@ export var PickersInput = /*#__PURE__*/React.forwardRef(function PickersInput(pr
216
209
  }, [muiFormControl, areAllSectionsEmpty]);
217
210
  var ownerState = _extends({}, props, muiFormControl);
218
211
  var classes = useUtilityClasses(ownerState);
219
- return /*#__PURE__*/_jsxs(PickersInputRoot, _extends({}, other, {
212
+ var InputRoot = (slots == null ? void 0 : slots.root) || PickersInputRoot;
213
+ var InputSectionsContainer = (slots == null ? void 0 : slots.input) || PickersInputSectionsContainer;
214
+ return /*#__PURE__*/_jsxs(InputRoot, _extends({}, other, {
220
215
  className: classes.root,
221
216
  ownerState: ownerState,
222
217
  "aria-invalid": muiFormControl.error,
223
218
  ref: handleRootRef,
224
- children: [startAdornment, /*#__PURE__*/_jsx(PickersInputSectionsContainer, {
225
- ownerState: ownerState,
226
- className: classes.sectionsContainer,
219
+ children: [startAdornment, /*#__PURE__*/_jsx(PickersSectionList, {
220
+ sectionListRef: sectionListRef,
221
+ elements: elements,
227
222
  contentEditable: contentEditable,
228
- suppressContentEditableWarning: true,
223
+ tabIndex: tabIndex,
224
+ className: classes.sectionsContainer,
229
225
  onFocus: handleInputFocus,
230
226
  onBlur: muiFormControl.onBlur,
231
- tabIndex: tabIndex,
232
- ref: sectionsContainerRef,
233
- children: contentEditable ? elements.map(function (_ref6) {
234
- var content = _ref6.content,
235
- before = _ref6.before,
236
- after = _ref6.after;
237
- return "".concat(before.children).concat(content.children).concat(after.children);
238
- }).join('') : /*#__PURE__*/_jsx(React.Fragment, {
239
- children: elements.map(function (_ref7, elementIndex) {
240
- var container = _ref7.container,
241
- content = _ref7.content,
242
- before = _ref7.before,
243
- after = _ref7.after;
244
- return /*#__PURE__*/_jsxs(PickersInputSection, _extends({}, container, {
245
- children: [/*#__PURE__*/_jsx(PickersInputSeparator, _extends({}, before, {
246
- className: clsx(pickersInputClasses.sectionBefore, before == null ? void 0 : before.className)
247
- })), /*#__PURE__*/_jsx(PickersInputContent, _extends({}, content, {
248
- suppressContentEditableWarning: true,
249
- className: clsx(pickersInputClasses.sectionContent, content == null ? void 0 : content.className),
250
- ownerState: ownerState
251
- })), /*#__PURE__*/_jsx(PickersInputSeparator, _extends({}, after, {
252
- className: clsx(pickersInputClasses.sectionAfter, after == null ? void 0 : after.className)
253
- }))]
254
- }), elementIndex);
255
- })
256
- })
257
- }), endAdornment, /*#__PURE__*/_jsx(NotchedOutlineRoot, {
258
- shrink: muiFormControl.adornedStart || muiFormControl.focused || muiFormControl.filled,
259
- notched: muiFormControl.adornedStart || muiFormControl.focused || muiFormControl.filled,
260
- className: classes.notchedOutline,
261
- label: label != null && label !== '' && muiFormControl.required ? /*#__PURE__*/_jsxs(React.Fragment, {
262
- children: [label, "\u2009", '*']
263
- }) : label,
264
- ownerState: ownerState
265
- }), /*#__PURE__*/_jsx(PickersInputInput, _extends({
227
+ onInput: onInput,
228
+ onPaste: onPaste,
229
+ onKeyDown: onKeyDown,
230
+ slots: {
231
+ root: InputSectionsContainer,
232
+ section: PickersInputSection,
233
+ sectionContent: PickersInputSectionContent,
234
+ sectionSeparator: PickersInputSeparator
235
+ },
236
+ slotProps: {
237
+ root: {
238
+ ownerState: ownerState
239
+ },
240
+ sectionContent: {
241
+ className: pickersInputClasses.sectionContent
242
+ },
243
+ sectionSeparator: function sectionSeparator(_ref5) {
244
+ var position = _ref5.position;
245
+ return {
246
+ className: position === 'before' ? pickersInputClasses.sectionBefore : pickersInputClasses.sectionAfter
247
+ };
248
+ }
249
+ }
250
+ }), endAdornment, renderSuffix ? renderSuffix(_extends({}, muiFormControl)) : null, /*#__PURE__*/_jsx(PickersInputInput, _extends({
266
251
  className: classes.input,
267
252
  value: value,
268
253
  onChange: onChange,
@@ -0,0 +1,110 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ var _excluded = ["label", "autoFocus", "ownerState", "notched"];
5
+ import * as React from 'react';
6
+ import { useFormControl } from '@mui/material/FormControl';
7
+ import { styled } from '@mui/material/styles';
8
+ import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
9
+ import { pickersOutlinedInputClasses, getPickersOutlinedInputUtilityClass } from './pickersInputClasses';
10
+ import Outline from './Outline';
11
+ import { PickersInputRoot, PickersInput, PickersInputSectionsContainer } from './PickersInput';
12
+ import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ var OutlinedInputRoot = styled(PickersInputRoot, {
15
+ name: 'MuiPickersOutlinedInput',
16
+ slot: 'Root',
17
+ overridesResolver: function overridesResolver(props, styles) {
18
+ return styles.root;
19
+ }
20
+ })(function (_ref) {
21
+ var theme = _ref.theme,
22
+ ownerState = _ref.ownerState;
23
+ var borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
24
+ return _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
25
+ padding: '0 14px',
26
+ borderRadius: (theme.vars || theme).shape.borderRadius
27
+ }, "&:hover .".concat(pickersOutlinedInputClasses.notchedOutline), {
28
+ borderColor: (theme.vars || theme).palette.text.primary
29
+ }), '@media (hover: none)', _defineProperty({}, "&:hover .".concat(pickersOutlinedInputClasses.notchedOutline), {
30
+ borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / 0.23)") : borderColor
31
+ })), "&.".concat(pickersOutlinedInputClasses.focused, " .").concat(pickersOutlinedInputClasses.notchedOutline), {
32
+ borderStyle: 'solid',
33
+ borderColor: (theme.vars || theme).palette[ownerState.color].main,
34
+ borderWidth: 2
35
+ }), "&.".concat(pickersOutlinedInputClasses.disabled), _defineProperty(_defineProperty({}, "& .".concat(pickersOutlinedInputClasses.notchedOutline), {
36
+ borderColor: (theme.vars || theme).palette.action.disabled
37
+ }), '*', {
38
+ color: (theme.vars || theme).palette.action.disabled
39
+ })), "&.".concat(pickersOutlinedInputClasses.error, " .").concat(pickersOutlinedInputClasses.notchedOutline), {
40
+ borderColor: (theme.vars || theme).palette.error.main
41
+ });
42
+ });
43
+ var OutlinedPickersInputSectionsContainer = styled(PickersInputSectionsContainer, {
44
+ name: 'MuiPickersOutlinedInput',
45
+ slot: 'SectionsContainer',
46
+ overridesResolver: function overridesResolver(props, styles) {
47
+ return styles.sectionsContainer;
48
+ }
49
+ })(function (_ref3) {
50
+ var ownerState = _ref3.ownerState;
51
+ return _extends({
52
+ padding: '16.5px 0'
53
+ }, ownerState.size === 'small' && {
54
+ padding: '8.5px 0'
55
+ });
56
+ });
57
+ var useUtilityClasses = function useUtilityClasses(ownerState) {
58
+ var focused = ownerState.focused,
59
+ disabled = ownerState.disabled,
60
+ error = ownerState.error,
61
+ classes = ownerState.classes,
62
+ fullWidth = ownerState.fullWidth,
63
+ color = ownerState.color,
64
+ size = ownerState.size,
65
+ endAdornment = ownerState.endAdornment,
66
+ startAdornment = ownerState.startAdornment;
67
+ var slots = {
68
+ root: ['root', focused && !disabled && 'focused', disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', "color".concat(color ? capitalize(color) : ''), size === 'small' && 'inputSizeSmall', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],
69
+ notchedOutline: ['notchedOutline'],
70
+ before: ['before'],
71
+ after: ['after'],
72
+ content: ['content'],
73
+ input: ['input']
74
+ };
75
+ return composeClasses(slots, getPickersOutlinedInputUtilityClass, classes);
76
+ };
77
+ export var PickersOutlinedInput = /*#__PURE__*/React.forwardRef(function PickersOutlinedInput(props, ref) {
78
+ var label = props.label,
79
+ autoFocus = props.autoFocus,
80
+ ownerStateProp = props.ownerState,
81
+ notched = props.notched,
82
+ other = _objectWithoutProperties(props, _excluded);
83
+ var muiFormControl = useFormControl();
84
+ var ownerState = _extends({}, props, ownerStateProp, muiFormControl, {
85
+ color: (muiFormControl == null ? void 0 : muiFormControl.color) || 'primary'
86
+ });
87
+ var classes = useUtilityClasses(ownerState);
88
+ return /*#__PURE__*/_jsx(PickersInput, _extends({
89
+ slots: {
90
+ root: OutlinedInputRoot,
91
+ input: OutlinedPickersInputSectionsContainer
92
+ },
93
+ renderSuffix: function renderSuffix(state) {
94
+ return /*#__PURE__*/_jsx(Outline, {
95
+ shrink: Boolean(notched || state.adornedStart || state.focused || state.filled),
96
+ notched: Boolean(notched || state.adornedStart || state.focused || state.filled),
97
+ className: classes.notchedOutline,
98
+ label: label != null && label !== '' && muiFormControl != null && muiFormControl.required ? /*#__PURE__*/_jsxs(React.Fragment, {
99
+ children: [label, "\u2009", '*']
100
+ }) : label,
101
+ ownerState: ownerState
102
+ });
103
+ }
104
+ }, other, {
105
+ label: label,
106
+ classes: classes,
107
+ ref: ref
108
+ }));
109
+ });
110
+ PickersInput.muiName = 'Input';
@@ -0,0 +1,117 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ var _excluded = ["label", "autoFocus", "ownerState"];
5
+ import * as React from 'react';
6
+ import { useFormControl } from '@mui/material/FormControl';
7
+ import { styled } from '@mui/material/styles';
8
+ import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
9
+ import { pickersStandardInputClasses, getPickersStandardInputUtilityClass } from './pickersInputClasses';
10
+ import { PickersInputRoot, PickersInput } from './PickersInput';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ var StandardInputRoot = styled(PickersInputRoot, {
13
+ name: 'MuiPickersStandardInput',
14
+ slot: 'Root',
15
+ overridesResolver: function overridesResolver(props, styles) {
16
+ return styles.root;
17
+ }
18
+ })(function (_ref) {
19
+ var theme = _ref.theme,
20
+ ownerState = _ref.ownerState;
21
+ var light = theme.palette.mode === 'light';
22
+ var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
23
+ if (theme.vars) {
24
+ bottomLineColor = "rgba(".concat(theme.vars.palette.common.onBackgroundChannel, " / ").concat(theme.vars.opacity.inputUnderline, ")");
25
+ }
26
+ return _extends({
27
+ 'label + &': {
28
+ marginTop: 16
29
+ }
30
+ }, !ownerState.disableUnderline && _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
31
+ '&::after': {
32
+ background: 'red',
33
+ borderBottom: "2px solid ".concat((theme.vars || theme).palette[ownerState.color].main),
34
+ left: 0,
35
+ bottom: 0,
36
+ // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
37
+ content: '""',
38
+ position: 'absolute',
39
+ right: 0,
40
+ transform: 'scaleX(0)',
41
+ transition: theme.transitions.create('transform', {
42
+ duration: theme.transitions.duration.shorter,
43
+ easing: theme.transitions.easing.easeOut
44
+ }),
45
+ pointerEvents: 'none' // Transparent to the hover style.
46
+ }
47
+ }, "&.".concat(pickersStandardInputClasses.focused, ":after"), {
48
+ // translateX(0) is a workaround for Safari transform scale bug
49
+ // See https://github.com/mui/material-ui/issues/31766
50
+ transform: 'scaleX(1) translateX(0)'
51
+ }), "&.".concat(pickersStandardInputClasses.error), {
52
+ '&:before, &:after': {
53
+ borderBottomColor: (theme.vars || theme).palette.error.main
54
+ }
55
+ }), '&::before', {
56
+ borderBottom: "1px solid ".concat(bottomLineColor),
57
+ left: 0,
58
+ bottom: 0,
59
+ // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
60
+ content: '"\\00a0"',
61
+ position: 'absolute',
62
+ right: 0,
63
+ transition: theme.transitions.create('border-bottom-color', {
64
+ duration: theme.transitions.duration.shorter
65
+ }),
66
+ pointerEvents: 'none' // Transparent to the hover style.
67
+ }), "&:hover:not(.".concat(pickersStandardInputClasses.disabled, ", .").concat(pickersStandardInputClasses.error, "):before"), {
68
+ borderBottom: "2px solid ".concat((theme.vars || theme).palette.text.primary),
69
+ // Reset on touch devices, it doesn't add specificity
70
+ '@media (hover: none)': {
71
+ borderBottom: "1px solid ".concat(bottomLineColor)
72
+ }
73
+ }), "&.".concat(pickersStandardInputClasses.disabled, ":before"), {
74
+ borderBottomStyle: 'dotted'
75
+ }));
76
+ });
77
+ var useUtilityClasses = function useUtilityClasses(ownerState) {
78
+ var focused = ownerState.focused,
79
+ disabled = ownerState.disabled,
80
+ error = ownerState.error,
81
+ classes = ownerState.classes,
82
+ fullWidth = ownerState.fullWidth,
83
+ color = ownerState.color,
84
+ size = ownerState.size,
85
+ endAdornment = ownerState.endAdornment,
86
+ startAdornment = ownerState.startAdornment;
87
+ var slots = {
88
+ root: ['root', focused && !disabled && 'focused', disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', "color".concat(capitalize(color)), size === 'small' && 'inputSizeSmall', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],
89
+ notchedOutline: ['notchedOutline'],
90
+ before: ['before'],
91
+ after: ['after'],
92
+ content: ['content'],
93
+ input: ['input']
94
+ };
95
+ return composeClasses(slots, getPickersStandardInputUtilityClass, classes);
96
+ };
97
+ export var PickersStandardInput = /*#__PURE__*/React.forwardRef(function PickersStandardInput(props, ref) {
98
+ var label = props.label,
99
+ autoFocus = props.autoFocus,
100
+ ownerStateProp = props.ownerState,
101
+ other = _objectWithoutProperties(props, _excluded);
102
+ var muiFormControl = useFormControl();
103
+ var ownerState = _extends({}, props, ownerStateProp, muiFormControl, {
104
+ color: (muiFormControl == null ? void 0 : muiFormControl.color) || 'primary'
105
+ });
106
+ var classes = useUtilityClasses(ownerState);
107
+ return /*#__PURE__*/_jsx(PickersInput, _extends({
108
+ slots: {
109
+ root: StandardInputRoot
110
+ }
111
+ }, other, {
112
+ label: label,
113
+ classes: classes,
114
+ ref: ref
115
+ }));
116
+ });
117
+ PickersInput.muiName = 'Input';
@@ -0,0 +1,3 @@
1
+ export { PickersInput } from './PickersInput';
2
+ export { PickersInputProps } from './PickersInput.types';
3
+ export { pickersInputClasses, getPickersInputUtilityClass } from './pickersInputClasses';
@@ -0,0 +1,18 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
3
+ export function getPickersInputUtilityClass(slot) {
4
+ return generateUtilityClass('MuiPickersInput', slot);
5
+ }
6
+ export function getPickersOutlinedInputUtilityClass(slot) {
7
+ return generateUtilityClass('MuiPickersOutlinedInput', slot);
8
+ }
9
+ export function getPickersFilledInputUtilityClass(slot) {
10
+ return generateUtilityClass('MuiPickersFilledInput', slot);
11
+ }
12
+ export function getPickersStandardInputUtilityClass(slot) {
13
+ return generateUtilityClass('MuiPickersStandardInput', slot);
14
+ }
15
+ export var pickersInputClasses = generateUtilityClasses('MuiPickersInput', ['root', 'focused', 'disabled', 'error', 'notchedOutline', 'sectionContent', 'sectionBefore', 'sectionAfter', 'adornedStart', 'adornedEnd', 'input']);
16
+ export var pickersOutlinedInputClasses = _extends({}, pickersInputClasses, generateUtilityClasses('MuiPickersOutlinedInput', ['root', 'notchedOutline', 'input']));
17
+ export var pickersFilledInputClasses = _extends({}, pickersInputClasses, generateUtilityClasses('MuiPickersFilledInput', ['root', 'underline', 'input']));
18
+ export var pickersStandardInputClasses = _extends({}, pickersInputClasses, generateUtilityClasses('MuiPickersStandardInput', ['root', 'underline', 'input']));
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["onFocus", "onBlur", "className", "color", "disabled", "error", "required", "variant", "InputProps", "inputProps", "inputRef", "sectionsContainerRef", "elements", "areAllSectionsEmpty", "onClick", "onKeyDown", "onKeyUp", "onPaste", "onInput", "endAdornment", "startAdornment", "tabIndex", "contentEditable", "focused", "value", "onChange", "fullWidth", "id", "helperText", "FormHelperTextProps", "label", "InputLabelProps"];
3
+ var _excluded = ["onFocus", "onBlur", "className", "color", "disabled", "error", "variant", "required", "InputProps", "inputProps", "inputRef", "sectionListRef", "elements", "areAllSectionsEmpty", "onClick", "onKeyDown", "onKeyUp", "onPaste", "onInput", "endAdornment", "startAdornment", "tabIndex", "contentEditable", "focused", "value", "onChange", "fullWidth", "id", "helperText", "FormHelperTextProps", "label", "InputLabelProps"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { styled } from '@mui/material/styles';
@@ -10,9 +10,16 @@ import InputLabel from '@mui/material/InputLabel';
10
10
  import FormHelperText from '@mui/material/FormHelperText';
11
11
  import FormControl from '@mui/material/FormControl';
12
12
  import { getPickersTextFieldUtilityClass } from './pickersTextFieldClasses';
13
- import { PickersInput } from './PickersInput';
13
+ import { PickersOutlinedInput } from '../PickersInput/PickersOutlinedInput';
14
+ import { PickersFilledInput } from '../PickersInput/PickersFilledInput';
15
+ import { PickersStandardInput } from '../PickersInput/PickersStandardInput';
14
16
  import { jsx as _jsx } from "react/jsx-runtime";
15
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ var VARIANT_COMPONENT = {
19
+ standard: PickersStandardInput,
20
+ filled: PickersFilledInput,
21
+ outlined: PickersOutlinedInput
22
+ };
16
23
  var PickersTextFieldRoot = styled(FormControl, {
17
24
  name: 'MuiPickersTextField',
18
25
  slot: 'Root',
@@ -40,14 +47,14 @@ export var PickersTextField = /*#__PURE__*/React.forwardRef(function PickersText
40
47
  disabled = _props$disabled === void 0 ? false : _props$disabled,
41
48
  _props$error = props.error,
42
49
  error = _props$error === void 0 ? false : _props$error,
43
- _props$required = props.required,
44
- required = _props$required === void 0 ? false : _props$required,
45
50
  _props$variant = props.variant,
46
51
  variant = _props$variant === void 0 ? 'outlined' : _props$variant,
52
+ _props$required = props.required,
53
+ required = _props$required === void 0 ? false : _props$required,
47
54
  InputProps = props.InputProps,
48
55
  inputProps = props.inputProps,
49
56
  inputRef = props.inputRef,
50
- sectionsContainerRef = props.sectionsContainerRef,
57
+ sectionListRef = props.sectionListRef,
51
58
  elements = props.elements,
52
59
  areAllSectionsEmpty = props.areAllSectionsEmpty,
53
60
  onClick = props.onClick,
@@ -83,6 +90,7 @@ export var PickersTextField = /*#__PURE__*/React.forwardRef(function PickersText
83
90
  variant: variant
84
91
  });
85
92
  var classes = useUtilityClasses(ownerState);
93
+ var PickersInputComponent = VARIANT_COMPONENT[variant];
86
94
  return /*#__PURE__*/_jsxs(PickersTextFieldRoot, _extends({
87
95
  className: clsx(classes.root, className),
88
96
  ref: handleRootRef,
@@ -93,6 +101,7 @@ export var PickersTextField = /*#__PURE__*/React.forwardRef(function PickersText
93
101
  variant: variant,
94
102
  error: error,
95
103
  color: color,
104
+ fullWidth: fullWidth,
96
105
  required: required,
97
106
  ownerState: ownerState
98
107
  }, other, {
@@ -101,7 +110,7 @@ export var PickersTextField = /*#__PURE__*/React.forwardRef(function PickersText
101
110
  id: inputLabelId
102
111
  }, InputLabelProps, {
103
112
  children: label
104
- })), /*#__PURE__*/_jsx(PickersInput, _extends({
113
+ })), /*#__PURE__*/_jsx(PickersInputComponent, _extends({
105
114
  elements: elements,
106
115
  areAllSectionsEmpty: areAllSectionsEmpty,
107
116
  onClick: onClick,
@@ -118,7 +127,7 @@ export var PickersTextField = /*#__PURE__*/React.forwardRef(function PickersText
118
127
  fullWidth: fullWidth,
119
128
  inputProps: inputProps,
120
129
  inputRef: inputRef,
121
- sectionsContainerRef: sectionsContainerRef,
130
+ sectionListRef: sectionListRef,
122
131
  label: label
123
132
  }, InputProps)), helperText && /*#__PURE__*/_jsx(FormHelperText, _extends({
124
133
  id: helperTextId
@@ -1,9 +1,6 @@
1
- import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
2
3
  export function getPickersTextFieldUtilityClass(slot) {
3
4
  return generateUtilityClass('MuiPickersTextField', slot);
4
5
  }
5
- export var pickersTextFieldClasses = generateUtilityClasses('MuiPickersTextField', ['root', 'focused', 'disabled', 'error', 'required']);
6
- export function getPickersInputUtilityClass(slot) {
7
- return generateUtilityClass('MuiPickersInput', slot);
8
- }
9
- export var pickersInputClasses = generateUtilityClasses('MuiPickersInput', ['root', 'focused', 'disabled', 'error', 'notchedOutline', 'adornedStart', 'adornedEnd', 'input', 'sectionsContainer', 'sectionContent', 'sectionBefore', 'sectionAfter']);
6
+ export var pickersTextFieldClasses = generateUtilityClasses('MuiPickersTextField', ['root', 'focused', 'disabled', 'error', 'required']);
@@ -152,7 +152,14 @@ export var useField = function useField(params) {
152
152
  var digitsAndLetterOnly = /^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(pastedValue);
153
153
  var isValidPastedValue = activeSection.contentType === 'letter' && lettersOnly || activeSection.contentType === 'digit' && digitsOnly || activeSection.contentType === 'digit-with-letter' && digitsAndLetterOnly;
154
154
  if (isValidPastedValue) {
155
- // Early return to let the paste update section, value
155
+ resetCharacterQuery();
156
+ updateSectionValue({
157
+ activeSection: activeSection,
158
+ newSectionValue: pastedValue,
159
+ shouldGoToNextSection: true
160
+ });
161
+ // prevent default to avoid the input change handler being called
162
+ event.preventDefault();
156
163
  return;
157
164
  }
158
165
  if (lettersOnly || digitsOnly) {