@mui/x-date-pickers 9.0.0-alpha.2 → 9.0.0-alpha.4

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 (48) hide show
  1. package/CHANGELOG.md +246 -1
  2. package/DateCalendar/PickersSlideTransition.js +7 -13
  3. package/DateCalendar/PickersSlideTransition.mjs +7 -13
  4. package/DateField/DateField.js +4 -4
  5. package/DateField/DateField.mjs +4 -4
  6. package/DateTimeField/DateTimeField.js +4 -4
  7. package/DateTimeField/DateTimeField.mjs +4 -4
  8. package/DigitalClock/DigitalClock.js +3 -1
  9. package/DigitalClock/DigitalClock.mjs +3 -1
  10. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +44 -7
  11. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.mjs +44 -7
  12. package/TimeField/TimeField.js +4 -4
  13. package/TimeField/TimeField.mjs +4 -4
  14. package/hooks/useSplitFieldProps.d.mts +1 -1
  15. package/hooks/useSplitFieldProps.d.ts +1 -1
  16. package/hooks/useSplitFieldProps.js +1 -1
  17. package/hooks/useSplitFieldProps.mjs +1 -1
  18. package/index.js +1 -1
  19. package/index.mjs +1 -1
  20. package/internals/components/PickerPopper/PickerPopper.js +17 -2
  21. package/internals/components/PickerPopper/PickerPopper.mjs +17 -2
  22. package/internals/components/PickersModalDialog.js +7 -4
  23. package/internals/components/PickersModalDialog.mjs +7 -4
  24. package/internals/hooks/useField/useField.types.d.mts +1 -1
  25. package/internals/hooks/useField/useField.types.d.ts +1 -1
  26. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +2 -2
  27. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.mjs +2 -2
  28. package/internals/hooks/useField/useFieldV6TextField.js +4 -3
  29. package/internals/hooks/useField/useFieldV6TextField.mjs +4 -3
  30. package/internals/hooks/useField/useFieldV7TextField.js +4 -3
  31. package/internals/hooks/useField/useFieldV7TextField.mjs +4 -3
  32. package/internals/hooks/useNullableFieldPrivateContext.d.mts +2 -1
  33. package/internals/hooks/useNullableFieldPrivateContext.d.ts +2 -1
  34. package/internals/hooks/usePicker/usePicker.js +13 -8
  35. package/internals/hooks/usePicker/usePicker.mjs +13 -8
  36. package/internals/hooks/usePicker/usePicker.types.d.mts +2 -1
  37. package/internals/hooks/usePicker/usePicker.types.d.ts +2 -1
  38. package/internals/index.d.mts +1 -0
  39. package/internals/index.d.ts +1 -0
  40. package/internals/index.js +7 -0
  41. package/internals/index.mjs +1 -0
  42. package/internals/utils/isElementInteractive.d.mts +1 -0
  43. package/internals/utils/isElementInteractive.d.ts +1 -0
  44. package/internals/utils/isElementInteractive.js +34 -0
  45. package/internals/utils/isElementInteractive.mjs +28 -0
  46. package/models/fields.d.mts +5 -1
  47. package/models/fields.d.ts +5 -1
  48. package/package.json +50 -50
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isElementInteractive = isElementInteractive;
7
+ /**
8
+ * Taken from https://github.com/matijs/is-interactive-element/
9
+ */
10
+ const isInputHidden = input => input.type === 'hidden';
11
+ function isElementInteractive(element) {
12
+ const {
13
+ nodeName
14
+ } = element;
15
+ if (['BUTTON', 'DETAILS', 'EMBED', 'IFRAME', 'KEYGEN', 'LABEL', 'SELECT', 'TEXTAREA'].includes(nodeName)) {
16
+ return true;
17
+ }
18
+ if (nodeName === 'A' && element.hasAttribute('href')) {
19
+ return true;
20
+ }
21
+ if (element instanceof HTMLInputElement && !isInputHidden(element)) {
22
+ return true;
23
+ }
24
+ if (['AUDIO', 'VIDEO'].includes(nodeName) && element.hasAttribute('controls')) {
25
+ return true;
26
+ }
27
+ if (['IMG', 'OBJECT'].includes(nodeName) && element.hasAttribute('usemap')) {
28
+ return true;
29
+ }
30
+ if (element.hasAttribute('tabindex') && element.tabIndex > -1) {
31
+ return true;
32
+ }
33
+ return false;
34
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Taken from https://github.com/matijs/is-interactive-element/
3
+ */
4
+ const isInputHidden = input => input.type === 'hidden';
5
+ export function isElementInteractive(element) {
6
+ const {
7
+ nodeName
8
+ } = element;
9
+ if (['BUTTON', 'DETAILS', 'EMBED', 'IFRAME', 'KEYGEN', 'LABEL', 'SELECT', 'TEXTAREA'].includes(nodeName)) {
10
+ return true;
11
+ }
12
+ if (nodeName === 'A' && element.hasAttribute('href')) {
13
+ return true;
14
+ }
15
+ if (element instanceof HTMLInputElement && !isInputHidden(element)) {
16
+ return true;
17
+ }
18
+ if (['AUDIO', 'VIDEO'].includes(nodeName) && element.hasAttribute('controls')) {
19
+ return true;
20
+ }
21
+ if (['IMG', 'OBJECT'].includes(nodeName) && element.hasAttribute('usemap')) {
22
+ return true;
23
+ }
24
+ if (element.hasAttribute('tabindex') && element.tabIndex > -1) {
25
+ return true;
26
+ }
27
+ return false;
28
+ }
@@ -104,6 +104,10 @@ export interface FieldRef<TValue extends PickerValidValue> {
104
104
  * @returns {boolean} `true` if the field is focused.
105
105
  */
106
106
  isFieldFocused: () => boolean;
107
+ /**
108
+ * Clears the field.
109
+ */
110
+ clearValue: () => void;
107
111
  }
108
112
  export type FieldSelectedSections = number | FieldSectionType | null | 'all';
109
113
  export interface FieldOwnerState extends PickerOwnerState {
@@ -129,7 +133,7 @@ export interface FieldOwnerState extends PickerOwnerState {
129
133
  /**
130
134
  * Props the `slotProps.field` of a Picker can receive.
131
135
  */
132
- export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> = ExportedPickerFieldUIProps & Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, unknown>, 'shouldRespectLeadingZeros' | 'readOnly'> & React.HTMLAttributes<HTMLDivElement> & {
136
+ export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> = ExportedPickerFieldUIProps & Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, unknown>, 'shouldRespectLeadingZeros' | 'readOnly' | 'fieldRef'> & React.HTMLAttributes<HTMLDivElement> & {
133
137
  ref?: React.Ref<HTMLDivElement>;
134
138
  };
135
139
  /**
@@ -104,6 +104,10 @@ export interface FieldRef<TValue extends PickerValidValue> {
104
104
  * @returns {boolean} `true` if the field is focused.
105
105
  */
106
106
  isFieldFocused: () => boolean;
107
+ /**
108
+ * Clears the field.
109
+ */
110
+ clearValue: () => void;
107
111
  }
108
112
  export type FieldSelectedSections = number | FieldSectionType | null | 'all';
109
113
  export interface FieldOwnerState extends PickerOwnerState {
@@ -129,7 +133,7 @@ export interface FieldOwnerState extends PickerOwnerState {
129
133
  /**
130
134
  * Props the `slotProps.field` of a Picker can receive.
131
135
  */
132
- export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> = ExportedPickerFieldUIProps & Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, unknown>, 'shouldRespectLeadingZeros' | 'readOnly'> & React.HTMLAttributes<HTMLDivElement> & {
136
+ export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> = ExportedPickerFieldUIProps & Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, unknown>, 'shouldRespectLeadingZeros' | 'readOnly' | 'fieldRef'> & React.HTMLAttributes<HTMLDivElement> & {
133
137
  ref?: React.Ref<HTMLDivElement>;
134
138
  };
135
139
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "9.0.0-alpha.2",
3
+ "version": "9.0.0-alpha.4",
4
4
  "author": "MUI Team",
5
5
  "description": "The community edition of the MUI X Date and Time Picker components.",
6
6
  "license": "MIT",
@@ -39,7 +39,7 @@
39
39
  "clsx": "^2.1.1",
40
40
  "prop-types": "^15.8.1",
41
41
  "react-transition-group": "^4.4.5",
42
- "@mui/x-internals": "9.0.0-alpha.2"
42
+ "@mui/x-internals": "9.0.0-alpha.4"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.9.0",
@@ -554,84 +554,84 @@
554
554
  }
555
555
  },
556
556
  "./PickersDay": {
557
- "import": {
558
- "types": "./PickersDay/index.d.mts",
559
- "default": "./PickersDay/index.mjs"
560
- },
561
557
  "require": {
562
558
  "types": "./PickersDay/index.d.ts",
563
559
  "default": "./PickersDay/index.js"
564
560
  },
561
+ "import": {
562
+ "types": "./PickersDay/index.d.mts",
563
+ "default": "./PickersDay/index.mjs"
564
+ },
565
565
  "default": {
566
566
  "types": "./PickersDay/index.d.mts",
567
567
  "default": "./PickersDay/index.mjs"
568
568
  }
569
569
  },
570
570
  "./PickersLayout": {
571
- "import": {
572
- "types": "./PickersLayout/index.d.mts",
573
- "default": "./PickersLayout/index.mjs"
574
- },
575
571
  "require": {
576
572
  "types": "./PickersLayout/index.d.ts",
577
573
  "default": "./PickersLayout/index.js"
578
574
  },
575
+ "import": {
576
+ "types": "./PickersLayout/index.d.mts",
577
+ "default": "./PickersLayout/index.mjs"
578
+ },
579
579
  "default": {
580
580
  "types": "./PickersLayout/index.d.mts",
581
581
  "default": "./PickersLayout/index.mjs"
582
582
  }
583
583
  },
584
584
  "./PickersSectionList": {
585
- "import": {
586
- "types": "./PickersSectionList/index.d.mts",
587
- "default": "./PickersSectionList/index.mjs"
588
- },
589
585
  "require": {
590
586
  "types": "./PickersSectionList/index.d.ts",
591
587
  "default": "./PickersSectionList/index.js"
592
588
  },
589
+ "import": {
590
+ "types": "./PickersSectionList/index.d.mts",
591
+ "default": "./PickersSectionList/index.mjs"
592
+ },
593
593
  "default": {
594
594
  "types": "./PickersSectionList/index.d.mts",
595
595
  "default": "./PickersSectionList/index.mjs"
596
596
  }
597
597
  },
598
598
  "./PickersShortcuts": {
599
- "import": {
600
- "types": "./PickersShortcuts/index.d.mts",
601
- "default": "./PickersShortcuts/index.mjs"
602
- },
603
599
  "require": {
604
600
  "types": "./PickersShortcuts/index.d.ts",
605
601
  "default": "./PickersShortcuts/index.js"
606
602
  },
603
+ "import": {
604
+ "types": "./PickersShortcuts/index.d.mts",
605
+ "default": "./PickersShortcuts/index.mjs"
606
+ },
607
607
  "default": {
608
608
  "types": "./PickersShortcuts/index.d.mts",
609
609
  "default": "./PickersShortcuts/index.mjs"
610
610
  }
611
611
  },
612
612
  "./PickersTextField": {
613
- "import": {
614
- "types": "./PickersTextField/index.d.mts",
615
- "default": "./PickersTextField/index.mjs"
616
- },
617
613
  "require": {
618
614
  "types": "./PickersTextField/index.d.ts",
619
615
  "default": "./PickersTextField/index.js"
620
616
  },
617
+ "import": {
618
+ "types": "./PickersTextField/index.d.mts",
619
+ "default": "./PickersTextField/index.mjs"
620
+ },
621
621
  "default": {
622
622
  "types": "./PickersTextField/index.d.mts",
623
623
  "default": "./PickersTextField/index.mjs"
624
624
  }
625
625
  },
626
626
  "./StaticDatePicker": {
627
- "import": {
628
- "types": "./StaticDatePicker/index.d.mts",
629
- "default": "./StaticDatePicker/index.mjs"
630
- },
631
627
  "require": {
632
628
  "types": "./StaticDatePicker/index.d.ts",
633
629
  "default": "./StaticDatePicker/index.js"
634
630
  },
631
+ "import": {
632
+ "types": "./StaticDatePicker/index.d.mts",
633
+ "default": "./StaticDatePicker/index.mjs"
634
+ },
635
635
  "default": {
636
636
  "types": "./StaticDatePicker/index.d.mts",
637
637
  "default": "./StaticDatePicker/index.mjs"
@@ -764,84 +764,84 @@
764
764
  }
765
765
  },
766
766
  "./locales": {
767
- "import": {
768
- "types": "./locales/index.d.mts",
769
- "default": "./locales/index.mjs"
770
- },
771
767
  "require": {
772
768
  "types": "./locales/index.d.ts",
773
769
  "default": "./locales/index.js"
774
770
  },
771
+ "import": {
772
+ "types": "./locales/index.d.mts",
773
+ "default": "./locales/index.mjs"
774
+ },
775
775
  "default": {
776
776
  "types": "./locales/index.d.mts",
777
777
  "default": "./locales/index.mjs"
778
778
  }
779
779
  },
780
780
  "./managers": {
781
- "import": {
782
- "types": "./managers/index.d.mts",
783
- "default": "./managers/index.mjs"
784
- },
785
781
  "require": {
786
782
  "types": "./managers/index.d.ts",
787
783
  "default": "./managers/index.js"
788
784
  },
785
+ "import": {
786
+ "types": "./managers/index.d.mts",
787
+ "default": "./managers/index.mjs"
788
+ },
789
789
  "default": {
790
790
  "types": "./managers/index.d.mts",
791
791
  "default": "./managers/index.mjs"
792
792
  }
793
793
  },
794
794
  "./models": {
795
- "import": {
796
- "types": "./models/index.d.mts",
797
- "default": "./models/index.mjs"
798
- },
799
795
  "require": {
800
796
  "types": "./models/index.d.ts",
801
797
  "default": "./models/index.js"
802
798
  },
799
+ "import": {
800
+ "types": "./models/index.d.mts",
801
+ "default": "./models/index.mjs"
802
+ },
803
803
  "default": {
804
804
  "types": "./models/index.d.mts",
805
805
  "default": "./models/index.mjs"
806
806
  }
807
807
  },
808
808
  "./themeAugmentation": {
809
- "import": {
810
- "types": "./themeAugmentation/index.d.mts",
811
- "default": "./themeAugmentation/index.mjs"
812
- },
813
809
  "require": {
814
810
  "types": "./themeAugmentation/index.d.ts",
815
811
  "default": "./themeAugmentation/index.js"
816
812
  },
813
+ "import": {
814
+ "types": "./themeAugmentation/index.d.mts",
815
+ "default": "./themeAugmentation/index.mjs"
816
+ },
817
817
  "default": {
818
818
  "types": "./themeAugmentation/index.d.mts",
819
819
  "default": "./themeAugmentation/index.mjs"
820
820
  }
821
821
  },
822
822
  "./timeViewRenderers": {
823
- "import": {
824
- "types": "./timeViewRenderers/index.d.mts",
825
- "default": "./timeViewRenderers/index.mjs"
826
- },
827
823
  "require": {
828
824
  "types": "./timeViewRenderers/index.d.ts",
829
825
  "default": "./timeViewRenderers/index.js"
830
826
  },
827
+ "import": {
828
+ "types": "./timeViewRenderers/index.d.mts",
829
+ "default": "./timeViewRenderers/index.mjs"
830
+ },
831
831
  "default": {
832
832
  "types": "./timeViewRenderers/index.d.mts",
833
833
  "default": "./timeViewRenderers/index.mjs"
834
834
  }
835
835
  },
836
836
  "./validation": {
837
- "import": {
838
- "types": "./validation/index.d.mts",
839
- "default": "./validation/index.mjs"
840
- },
841
837
  "require": {
842
838
  "types": "./validation/index.d.ts",
843
839
  "default": "./validation/index.js"
844
840
  },
841
+ "import": {
842
+ "types": "./validation/index.d.mts",
843
+ "default": "./validation/index.mjs"
844
+ },
845
845
  "default": {
846
846
  "types": "./validation/index.d.mts",
847
847
  "default": "./validation/index.mjs"