@mui/x-date-pickers 7.0.0-beta.6 β†’ 7.0.0-beta.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,102 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 7.0.0-beta.7
7
+
8
+ _Mar 14, 2024_
9
+
10
+ We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - πŸ¦₯ The Lazy loading feature is now stable and the `lazyLoading` feature flag was removed from the `experimentalFeatures` prop.
13
+ - 🌍 Improve Japanese (ja-JP) locale for the Data Grid
14
+ - 🐞 Bugfixes
15
+ - πŸ“š Documentation improvements
16
+
17
+ ### Data Grid
18
+
19
+ #### Breaking changes
20
+
21
+ - The `columnHeader--showColumnBorder` class was replaced by `columnHeader--withLeftBorder` and `columnHeader--withRightBorder`.
22
+ - The `columnHeadersInner`, `columnHeadersInner--scrollable`, and `columnHeaderDropZone` classes were removed since the inner wrapper was removed in our effort to simplify the DOM structure and improve accessibility.
23
+ - The `pinnedColumnHeaders`, `pinnedColumnHeaders--left`, and `pinnedColumnHeaders--right` classes were removed along with the element they were applied to.
24
+ The pinned column headers now use `position: 'sticky'` and are rendered in the same row element as the regular column headers.
25
+
26
+ #### `@mui/x-data-grid@7.0.0-beta.7`
27
+
28
+ - [DataGrid] Fix focus visible style on scrollbar (#12402) @oliviertassinari
29
+ - [DataGrid] Fix the issue where pressing the Delete key resets various cell values to an empty string. (#12216) @sooster910
30
+ - [DataGrid] Make `rowCount` part of the state (#12381) @MBilalShafi
31
+ - [DataGrid] Make column resizing and autosizing available in Community plan (#12420) @cherniavskii
32
+ - [DataGrid] Remove `baseSwitch` slot (#12439) @romgrk
33
+ - [l10n] Improve Japanese (ja-JP) locale (#12398) @makoto14
34
+
35
+ #### `@mui/x-data-grid-pro@7.0.0-beta.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
36
+
37
+ Same changes as in `@mui/x-data-grid@7.0.0-beta.7`, plus:
38
+
39
+ - [DataGridPro] Add `inputRef` to the props passed to `colDef.renderHeaderFilter` (#12328) @vovarudomanenko
40
+ - [DataGridPro] Fix filler rendered for no reason when there are pinned columns (#12440) @cherniavskii
41
+ - [DataGridPro] Make lazy loading feature stable (#12421) @cherniavskii
42
+ - [DataGridPro] Render pinned and non-pinned column headers in one row (#12376) @cherniavskii
43
+
44
+ #### `@mui/x-data-grid-premium@7.0.0-beta.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
45
+
46
+ Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.7`, plus:
47
+
48
+ - [DataGridPremium] Fix auto-scroll not working when selecting cell range (#12267) @cherniavskii
49
+
50
+ ### Date and Time Pickers
51
+
52
+ #### `@mui/x-date-pickers@7.0.0-beta.7`
53
+
54
+ - [fields] Fix `tabIndex` on accessible field DOM structure (#12311) @flaviendelangle
55
+ - [fields] Fix items alignment on multi input range fields (#12312) @flaviendelangle
56
+ - [pickers] Improve the customization of the range picker calendar header (#11988) @flaviendelangle
57
+ - [pickers] Keep the existing time when looking for closest enabled date (#12377) @LukasTy
58
+
59
+ #### `@mui/x-date-pickers-pro@7.0.0-beta.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
60
+
61
+ Same changes as in `@mui/x-date-pickers@7.0.0-beta.7`.
62
+
63
+ ### Charts
64
+
65
+ #### `@mui/x-charts@7.0.0-beta.7`
66
+
67
+ - [charts] Fix axis highlight when axis is reversed (#12407) @alexfauquette
68
+
69
+ ### Tree View
70
+
71
+ #### Breaking changes
72
+
73
+ The `onNodeFocus` callback has been renamed to `onItemFocus` for consistency:
74
+
75
+ ```diff
76
+ <SimpleTreeView
77
+ - onNodeFocus={onNodeFocus}
78
+ + onItemFocus={onItemFocus}
79
+ />
80
+ ```
81
+
82
+ #### `@mui/x-tree-view@7.0.0-beta.7`
83
+
84
+ - [TreeView] Clean the usage of the term "item" and "node" in API introduced during v7 (#12368) @noraleonte
85
+ - [TreeView] Introduce a new `TreeItem2` component and a new `useTreeItem2` hook (#11721) @flaviendelangle
86
+ - [TreeView] Rename `onNodeFocus` to `onItemFocus` (#12419) @noraleonte
87
+
88
+ ### Docs
89
+
90
+ - [docs] Add `legacy` bundle drop mention in migration pages (#12424) @LukasTy
91
+ - [docs] Add missing luxon `Info` import (#12427) @LukasTy
92
+ - [docs] Improve slots definitions for charts (#12408) @alexfauquette
93
+ - [docs] Polish What's new in MUI X blog titles (#12309) @oliviertassinari
94
+ - [docs] Replace `rel="noreferrer"` by `rel="noopener"` @oliviertassinari
95
+ - [docs] Update `date-fns` `weekStarsOn` overriding example (#12416) @LukasTy
96
+
97
+ ### Core
98
+
99
+ - [core] Fix CI (#12414) @flaviendelangle
100
+ - [core] Fix PR deploy link for Tree View doc pages (#12411) @flaviendelangle
101
+
6
102
  ## 7.0.0-beta.6
7
103
 
8
104
  _Mar 8, 2024_
@@ -1731,7 +1827,7 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.3`, plus:
1731
1827
  The Firefox browser currently does not support this behavior because the [getWeekInfo](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo) API is not yet implemented.
1732
1828
 
1733
1829
  ```ts
1734
- import { Settings } from 'luxon';
1830
+ import { Settings, Info } from 'luxon';
1735
1831
 
1736
1832
  Settings.defaultWeekSettings = {
1737
1833
  firstDay: 1,
@@ -2521,6 +2617,26 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
2521
2617
  - [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
2522
2618
  - [license] Correctly throw errors (#10924) @oliviertassinari
2523
2619
 
2620
+ ## 6.19.7
2621
+
2622
+ _Mar 14, 2024_
2623
+
2624
+ We'd like to offer a big thanks to @LukasTy who made this release possible.
2625
+
2626
+ ### Date Pickers
2627
+
2628
+ #### `@mui/x-date-pickers@6.19.7`
2629
+
2630
+ - [pickers] Keep the existing time when looking for closest enabled date (#12410) @LukasTy
2631
+
2632
+ #### `@mui/x-date-pickers-pro@6.19.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
2633
+
2634
+ Same changes as in `@mui/x-date-pickers@6.19.7`.
2635
+
2636
+ ### Docs
2637
+
2638
+ - [docs] Add Pickers custom start of week section (#12425) @LukasTy
2639
+
2524
2640
  ## 6.19.6
2525
2641
 
2526
2642
  _Mar 1, 2024_
@@ -354,10 +354,11 @@ export function DayCalendar(inProps) {
354
354
  }
355
355
  });
356
356
  const currentMonthNumber = utils.getMonth(currentMonth);
357
+ const currentYearNumber = utils.getYear(currentMonth);
357
358
  const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);
358
359
 
359
360
  // need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.
360
- const transitionKey = currentMonthNumber;
361
+ const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;
361
362
  // eslint-disable-next-line react-hooks/exhaustive-deps
362
363
  const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);
363
364
  const startOfCurrentWeek = utils.startOfWeek(now);
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { PickersCalendarHeaderProps } from './PickersCalendarHeader.types';
3
3
  import { PickerValidDate } from '../models';
4
- type PickersCalendarHeaderComponent = (<TDate extends PickerValidDate>(props: PickersCalendarHeaderProps<TDate> & React.RefAttributes<HTMLButtonElement>) => React.JSX.Element) & {
4
+ type PickersCalendarHeaderComponent = (<TDate extends PickerValidDate>(props: PickersCalendarHeaderProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
5
5
  propTypes?: any;
6
6
  };
7
7
  /**
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-beta.6
2
+ * @mui/x-date-pickers v7.0.0-beta.7
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -329,7 +329,7 @@ export const useFieldV7TextField = params => {
329
329
  onClick: getInputContainerClickHandler(index)
330
330
  },
331
331
  content: {
332
- tabIndex: isContainerEditable ? undefined : 0,
332
+ tabIndex: isContainerEditable || index > 0 ? -1 : 0,
333
333
  contentEditable: !isContainerEditable && !disabled && !readOnly,
334
334
  role: 'spinbutton',
335
335
  id: `${id}-${section.type}`,
@@ -392,7 +392,7 @@ export const useFieldV7TextField = params => {
392
392
  enableAccessibleFieldDOMStructure: true,
393
393
  elements,
394
394
  // TODO v7: Try to set to undefined when there is a section selected.
395
- tabIndex: 0,
395
+ tabIndex: parsedSelectedSections === 0 ? -1 : 0,
396
396
  contentEditable: isContainerEditable,
397
397
  value: valueStr,
398
398
  onChange: handleValueStrChange,
@@ -1,5 +1,6 @@
1
1
  import { DateView, FieldValueType, MuiPickersAdapter, PickersTimezone, PickerValidDate } from '../../models';
2
2
  import { DateOrTimeViewWithMeridiem } from '../models';
3
+ export declare const mergeDateAndTime: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, dateParam: TDate, timeParam: TDate) => TDate;
3
4
  interface FindClosestDateParams<TDate extends PickerValidDate> {
4
5
  date: TDate;
5
6
  disableFuture?: boolean;
@@ -15,7 +16,6 @@ export declare const replaceInvalidDateByNull: <TDate extends PickerValidDate>(u
15
16
  export declare const applyDefaultDate: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, value: TDate | null | undefined, defaultValue: TDate) => TDate;
16
17
  export declare const areDatesEqual: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, a: TDate, b: TDate) => boolean;
17
18
  export declare const getMonthsInYear: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, year: TDate) => TDate[];
18
- export declare const mergeDateAndTime: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, dateParam: TDate, timeParam: TDate) => TDate;
19
19
  export declare const getTodayDate: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, timezone: PickersTimezone, valueType?: FieldValueType) => TDate;
20
20
  export declare const formatMeridiem: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, meridiem: 'am' | 'pm') => string;
21
21
  export declare const isDatePickerView: (view: DateOrTimeViewWithMeridiem) => view is DateView;
@@ -1,4 +1,11 @@
1
1
  import { areViewsEqual } from './views';
2
+ export const mergeDateAndTime = (utils, dateParam, timeParam) => {
3
+ let mergedDate = dateParam;
4
+ mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
5
+ mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
6
+ mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
7
+ return mergedDate;
8
+ };
2
9
  export const findClosestEnabledDate = ({
3
10
  date,
4
11
  disableFuture,
@@ -9,7 +16,7 @@ export const findClosestEnabledDate = ({
9
16
  utils,
10
17
  timezone
11
18
  }) => {
12
- const today = utils.startOfDay(utils.date(undefined, timezone));
19
+ const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
13
20
  if (disablePast && utils.isBefore(minDate, today)) {
14
21
  minDate = today;
15
22
  }
@@ -72,13 +79,6 @@ export const getMonthsInYear = (utils, year) => {
72
79
  }
73
80
  return months;
74
81
  };
75
- export const mergeDateAndTime = (utils, dateParam, timeParam) => {
76
- let mergedDate = dateParam;
77
- mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
78
- mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
79
- mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
80
- return mergedDate;
81
- };
82
82
  export const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
83
83
  export const formatMeridiem = (utils, meridiem) => {
84
84
  const date = utils.setHours(utils.date(), meridiem === 'am' ? 2 : 14);
package/locales/jaJP.js CHANGED
@@ -17,11 +17,10 @@ const jaJPPickers = {
17
17
  // DateRange labels
18
18
  start: 'ι–‹ε§‹',
19
19
  end: 'η΅‚δΊ†',
20
- // startDate: 'Start date',
21
- // startTime: 'Start time',
22
- // endDate: 'End date',
23
- // endTime: 'End time',
24
-
20
+ startDate: 'ι–‹ε§‹ζ—₯',
21
+ startTime: 'ι–‹ε§‹ζ™‚ι–“',
22
+ endDate: 'η΅‚δΊ†ζ—₯',
23
+ endTime: 'η΅‚δΊ†ζ™‚ι–“',
25
24
  // Action bar
26
25
  cancelButtonLabel: 'キャンセル',
27
26
  clearButtonLabel: 'γ‚―γƒͺγ‚’',
@@ -50,8 +49,7 @@ const jaJPPickers = {
50
49
  // Open picker labels
51
50
  openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ—₯δ»˜γ‚’ιΈζŠžγ—γ¦γγ γ•γ„γ€‚ιΈζŠžγ—γŸζ—₯付は ${utils.format(value, 'fullDate')} です` : 'ζ—₯δ»˜γ‚’ιΈζŠžγ—γ¦γγ γ•γ„',
52
51
  openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ™‚ι–“γ‚’ιΈζŠžγ—γ¦γγ γ•γ„γ€‚ιΈζŠžγ—γŸζ™‚ι–“γ― ${utils.format(value, 'fullTime')} です` : 'ζ™‚ι–“γ‚’ιΈζŠžγ—γ¦γγ γ•γ„',
53
- // fieldClearLabel: 'Clear value',
54
-
52
+ fieldClearLabel: 'γ‚―γƒͺγ‚’',
55
53
  // Table labels
56
54
  timeTableLabel: 'ζ™‚ι–“γ‚’ιΈζŠž',
57
55
  dateTableLabel: 'ζ—₯δ»˜γ‚’ιΈζŠž',
@@ -63,19 +61,17 @@ const jaJPPickers = {
63
61
  fieldHoursPlaceholder: () => 'hh',
64
62
  fieldMinutesPlaceholder: () => 'mm',
65
63
  fieldSecondsPlaceholder: () => 'ss',
66
- fieldMeridiemPlaceholder: () => 'aa'
67
-
64
+ fieldMeridiemPlaceholder: () => 'aa',
68
65
  // View names
69
- // year: 'Year',
70
- // month: 'Month',
71
- // day: 'Day',
72
- // weekDay: 'Week day',
73
- // hours: 'Hours',
74
- // minutes: 'Minutes',
75
- // seconds: 'Seconds',
76
- // meridiem: 'Meridiem',
77
-
66
+ year: 'εΉ΄',
67
+ month: '月',
68
+ day: 'ζ—₯',
69
+ weekDay: 'εΉ³ζ—₯',
70
+ hours: 'ζ™‚ι–“',
71
+ minutes: 'εˆ†',
72
+ seconds: 'η§’',
73
+ meridiem: 'パγƒͺディム',
78
74
  // Common
79
- // empty: 'Empty',
75
+ empty: 'η©Ί'
80
76
  };
81
77
  export const jaJP = getPickersLocalization(jaJPPickers);
@@ -353,10 +353,11 @@ export function DayCalendar(inProps) {
353
353
  }
354
354
  });
355
355
  const currentMonthNumber = utils.getMonth(currentMonth);
356
+ const currentYearNumber = utils.getYear(currentMonth);
356
357
  const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);
357
358
 
358
359
  // need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.
359
- const transitionKey = currentMonthNumber;
360
+ const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;
360
361
  // eslint-disable-next-line react-hooks/exhaustive-deps
361
362
  const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);
362
363
  const startOfCurrentWeek = utils.startOfWeek(now);
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-beta.6
2
+ * @mui/x-date-pickers v7.0.0-beta.7
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -327,7 +327,7 @@ export const useFieldV7TextField = params => {
327
327
  onClick: getInputContainerClickHandler(index)
328
328
  },
329
329
  content: {
330
- tabIndex: isContainerEditable ? undefined : 0,
330
+ tabIndex: isContainerEditable || index > 0 ? -1 : 0,
331
331
  contentEditable: !isContainerEditable && !disabled && !readOnly,
332
332
  role: 'spinbutton',
333
333
  id: `${id}-${section.type}`,
@@ -390,7 +390,7 @@ export const useFieldV7TextField = params => {
390
390
  enableAccessibleFieldDOMStructure: true,
391
391
  elements,
392
392
  // TODO v7: Try to set to undefined when there is a section selected.
393
- tabIndex: 0,
393
+ tabIndex: parsedSelectedSections === 0 ? -1 : 0,
394
394
  contentEditable: isContainerEditable,
395
395
  value: valueStr,
396
396
  onChange: handleValueStrChange,
@@ -1,4 +1,11 @@
1
1
  import { areViewsEqual } from './views';
2
+ export const mergeDateAndTime = (utils, dateParam, timeParam) => {
3
+ let mergedDate = dateParam;
4
+ mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
5
+ mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
6
+ mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
7
+ return mergedDate;
8
+ };
2
9
  export const findClosestEnabledDate = ({
3
10
  date,
4
11
  disableFuture,
@@ -9,7 +16,7 @@ export const findClosestEnabledDate = ({
9
16
  utils,
10
17
  timezone
11
18
  }) => {
12
- const today = utils.startOfDay(utils.date(undefined, timezone));
19
+ const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
13
20
  if (disablePast && utils.isBefore(minDate, today)) {
14
21
  minDate = today;
15
22
  }
@@ -72,13 +79,6 @@ export const getMonthsInYear = (utils, year) => {
72
79
  }
73
80
  return months;
74
81
  };
75
- export const mergeDateAndTime = (utils, dateParam, timeParam) => {
76
- let mergedDate = dateParam;
77
- mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
78
- mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
79
- mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
80
- return mergedDate;
81
- };
82
82
  export const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
83
83
  export const formatMeridiem = (utils, meridiem) => {
84
84
  const date = utils.setHours(utils.date(), meridiem === 'am' ? 2 : 14);
@@ -17,11 +17,10 @@ const jaJPPickers = {
17
17
  // DateRange labels
18
18
  start: 'ι–‹ε§‹',
19
19
  end: 'η΅‚δΊ†',
20
- // startDate: 'Start date',
21
- // startTime: 'Start time',
22
- // endDate: 'End date',
23
- // endTime: 'End time',
24
-
20
+ startDate: 'ι–‹ε§‹ζ—₯',
21
+ startTime: 'ι–‹ε§‹ζ™‚ι–“',
22
+ endDate: 'η΅‚δΊ†ζ—₯',
23
+ endTime: 'η΅‚δΊ†ζ™‚ι–“',
25
24
  // Action bar
26
25
  cancelButtonLabel: 'キャンセル',
27
26
  clearButtonLabel: 'γ‚―γƒͺγ‚’',
@@ -47,8 +46,7 @@ const jaJPPickers = {
47
46
  // Open picker labels
48
47
  openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ—₯δ»˜γ‚’ιΈζŠžγ—γ¦γγ γ•γ„γ€‚ιΈζŠžγ—γŸζ—₯付は ${utils.format(value, 'fullDate')} です` : 'ζ—₯δ»˜γ‚’ιΈζŠžγ—γ¦γγ γ•γ„',
49
48
  openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ™‚ι–“γ‚’ιΈζŠžγ—γ¦γγ γ•γ„γ€‚ιΈζŠžγ—γŸζ™‚ι–“γ― ${utils.format(value, 'fullTime')} です` : 'ζ™‚ι–“γ‚’ιΈζŠžγ—γ¦γγ γ•γ„',
50
- // fieldClearLabel: 'Clear value',
51
-
49
+ fieldClearLabel: 'γ‚―γƒͺγ‚’',
52
50
  // Table labels
53
51
  timeTableLabel: 'ζ™‚ι–“γ‚’ιΈζŠž',
54
52
  dateTableLabel: 'ζ—₯δ»˜γ‚’ιΈζŠž',
@@ -60,19 +58,17 @@ const jaJPPickers = {
60
58
  fieldHoursPlaceholder: () => 'hh',
61
59
  fieldMinutesPlaceholder: () => 'mm',
62
60
  fieldSecondsPlaceholder: () => 'ss',
63
- fieldMeridiemPlaceholder: () => 'aa'
64
-
61
+ fieldMeridiemPlaceholder: () => 'aa',
65
62
  // View names
66
- // year: 'Year',
67
- // month: 'Month',
68
- // day: 'Day',
69
- // weekDay: 'Week day',
70
- // hours: 'Hours',
71
- // minutes: 'Minutes',
72
- // seconds: 'Seconds',
73
- // meridiem: 'Meridiem',
74
-
63
+ year: 'εΉ΄',
64
+ month: '月',
65
+ day: 'ζ—₯',
66
+ weekDay: 'εΉ³ζ—₯',
67
+ hours: 'ζ™‚ι–“',
68
+ minutes: 'εˆ†',
69
+ seconds: 'η§’',
70
+ meridiem: 'パγƒͺディム',
75
71
  // Common
76
- // empty: 'Empty',
72
+ empty: 'η©Ί'
77
73
  };
78
74
  export const jaJP = getPickersLocalization(jaJPPickers);
@@ -361,10 +361,11 @@ function DayCalendar(inProps) {
361
361
  }
362
362
  });
363
363
  const currentMonthNumber = utils.getMonth(currentMonth);
364
+ const currentYearNumber = utils.getYear(currentMonth);
364
365
  const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);
365
366
 
366
367
  // need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.
367
- const transitionKey = currentMonthNumber;
368
+ const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;
368
369
  // eslint-disable-next-line react-hooks/exhaustive-deps
369
370
  const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);
370
371
  const startOfCurrentWeek = utils.startOfWeek(now);
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-beta.6
2
+ * @mui/x-date-pickers v7.0.0-beta.7
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -336,7 +336,7 @@ const useFieldV7TextField = params => {
336
336
  onClick: getInputContainerClickHandler(index)
337
337
  },
338
338
  content: {
339
- tabIndex: isContainerEditable ? undefined : 0,
339
+ tabIndex: isContainerEditable || index > 0 ? -1 : 0,
340
340
  contentEditable: !isContainerEditable && !disabled && !readOnly,
341
341
  role: 'spinbutton',
342
342
  id: `${id}-${section.type}`,
@@ -399,7 +399,7 @@ const useFieldV7TextField = params => {
399
399
  enableAccessibleFieldDOMStructure: true,
400
400
  elements,
401
401
  // TODO v7: Try to set to undefined when there is a section selected.
402
- tabIndex: 0,
402
+ tabIndex: parsedSelectedSections === 0 ? -1 : 0,
403
403
  contentEditable: isContainerEditable,
404
404
  value: valueStr,
405
405
  onChange: handleValueStrChange,
@@ -5,6 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.resolveDateFormat = exports.replaceInvalidDateByNull = exports.mergeDateAndTime = exports.isDatePickerView = exports.getWeekdays = exports.getTodayDate = exports.getMonthsInYear = exports.formatMeridiem = exports.findClosestEnabledDate = exports.areDatesEqual = exports.applyDefaultDate = void 0;
7
7
  var _views = require("./views");
8
+ const mergeDateAndTime = (utils, dateParam, timeParam) => {
9
+ let mergedDate = dateParam;
10
+ mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
11
+ mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
12
+ mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
13
+ return mergedDate;
14
+ };
15
+ exports.mergeDateAndTime = mergeDateAndTime;
8
16
  const findClosestEnabledDate = ({
9
17
  date,
10
18
  disableFuture,
@@ -15,7 +23,7 @@ const findClosestEnabledDate = ({
15
23
  utils,
16
24
  timezone
17
25
  }) => {
18
- const today = utils.startOfDay(utils.date(undefined, timezone));
26
+ const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
19
27
  if (disablePast && utils.isBefore(minDate, today)) {
20
28
  minDate = today;
21
29
  }
@@ -83,14 +91,6 @@ const getMonthsInYear = (utils, year) => {
83
91
  return months;
84
92
  };
85
93
  exports.getMonthsInYear = getMonthsInYear;
86
- const mergeDateAndTime = (utils, dateParam, timeParam) => {
87
- let mergedDate = dateParam;
88
- mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
89
- mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
90
- mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
91
- return mergedDate;
92
- };
93
- exports.mergeDateAndTime = mergeDateAndTime;
94
94
  const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
95
95
  exports.getTodayDate = getTodayDate;
96
96
  const formatMeridiem = (utils, meridiem) => {
@@ -23,11 +23,10 @@ const jaJPPickers = {
23
23
  // DateRange labels
24
24
  start: 'ι–‹ε§‹',
25
25
  end: 'η΅‚δΊ†',
26
- // startDate: 'Start date',
27
- // startTime: 'Start time',
28
- // endDate: 'End date',
29
- // endTime: 'End time',
30
-
26
+ startDate: 'ι–‹ε§‹ζ—₯',
27
+ startTime: 'ι–‹ε§‹ζ™‚ι–“',
28
+ endDate: 'η΅‚δΊ†ζ—₯',
29
+ endTime: 'η΅‚δΊ†ζ™‚ι–“',
31
30
  // Action bar
32
31
  cancelButtonLabel: 'キャンセル',
33
32
  clearButtonLabel: 'γ‚―γƒͺγ‚’',
@@ -53,8 +52,7 @@ const jaJPPickers = {
53
52
  // Open picker labels
54
53
  openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ—₯δ»˜γ‚’ιΈζŠžγ—γ¦γγ γ•γ„γ€‚ιΈζŠžγ—γŸζ—₯付は ${utils.format(value, 'fullDate')} です` : 'ζ—₯δ»˜γ‚’ιΈζŠžγ—γ¦γγ γ•γ„',
55
54
  openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ™‚ι–“γ‚’ιΈζŠžγ—γ¦γγ γ•γ„γ€‚ιΈζŠžγ—γŸζ™‚ι–“γ― ${utils.format(value, 'fullTime')} です` : 'ζ™‚ι–“γ‚’ιΈζŠžγ—γ¦γγ γ•γ„',
56
- // fieldClearLabel: 'Clear value',
57
-
55
+ fieldClearLabel: 'γ‚―γƒͺγ‚’',
58
56
  // Table labels
59
57
  timeTableLabel: 'ζ™‚ι–“γ‚’ιΈζŠž',
60
58
  dateTableLabel: 'ζ—₯δ»˜γ‚’ιΈζŠž',
@@ -66,19 +64,17 @@ const jaJPPickers = {
66
64
  fieldHoursPlaceholder: () => 'hh',
67
65
  fieldMinutesPlaceholder: () => 'mm',
68
66
  fieldSecondsPlaceholder: () => 'ss',
69
- fieldMeridiemPlaceholder: () => 'aa'
70
-
67
+ fieldMeridiemPlaceholder: () => 'aa',
71
68
  // View names
72
- // year: 'Year',
73
- // month: 'Month',
74
- // day: 'Day',
75
- // weekDay: 'Week day',
76
- // hours: 'Hours',
77
- // minutes: 'Minutes',
78
- // seconds: 'Seconds',
79
- // meridiem: 'Meridiem',
80
-
69
+ year: 'εΉ΄',
70
+ month: '月',
71
+ day: 'ζ—₯',
72
+ weekDay: 'εΉ³ζ—₯',
73
+ hours: 'ζ™‚ι–“',
74
+ minutes: 'εˆ†',
75
+ seconds: 'η§’',
76
+ meridiem: 'パγƒͺディム',
81
77
  // Common
82
- // empty: 'Empty',
78
+ empty: 'η©Ί'
83
79
  };
84
80
  const jaJP = exports.jaJP = (0, _getPickersLocalization.getPickersLocalization)(jaJPPickers);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "7.0.0-beta.6",
3
+ "version": "7.0.0-beta.7",
4
4
  "description": "The community edition of the date picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",