rsuite 5.45.0 → 5.46.0

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 (52) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/DatePicker/styles/index.less +15 -0
  3. package/cjs/Calendar/MonthDropdown.js +1 -2
  4. package/cjs/Calendar/MonthDropdownItem.js +26 -13
  5. package/cjs/Calendar/TableCell.d.ts +14 -0
  6. package/cjs/Calendar/TableCell.js +72 -0
  7. package/cjs/Calendar/TableHeaderRow.js +3 -1
  8. package/cjs/Calendar/TableRow.js +22 -46
  9. package/cjs/Calendar/useCalendarDate.d.ts +1 -1
  10. package/cjs/Calendar/utils.d.ts +7 -0
  11. package/cjs/Calendar/utils.js +15 -0
  12. package/cjs/Cascader/Cascader.js +13 -3
  13. package/cjs/DatePicker/DatePicker.js +145 -38
  14. package/cjs/InputPicker/InputPicker.js +7 -4
  15. package/cjs/Picker/PickerToggle.js +3 -0
  16. package/cjs/Picker/utils.js +21 -12
  17. package/cjs/Table/Table.d.ts +7 -7
  18. package/dist/rsuite-no-reset-rtl.css +108 -60
  19. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  20. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  21. package/dist/rsuite-no-reset.css +108 -60
  22. package/dist/rsuite-no-reset.min.css +1 -1
  23. package/dist/rsuite-no-reset.min.css.map +1 -1
  24. package/dist/rsuite-rtl.css +108 -60
  25. package/dist/rsuite-rtl.min.css +1 -1
  26. package/dist/rsuite-rtl.min.css.map +1 -1
  27. package/dist/rsuite.css +108 -60
  28. package/dist/rsuite.js +56 -13
  29. package/dist/rsuite.js.map +1 -1
  30. package/dist/rsuite.min.css +1 -1
  31. package/dist/rsuite.min.css.map +1 -1
  32. package/dist/rsuite.min.js +1 -1
  33. package/dist/rsuite.min.js.map +1 -1
  34. package/esm/Calendar/MonthDropdown.js +1 -2
  35. package/esm/Calendar/MonthDropdownItem.js +28 -15
  36. package/esm/Calendar/TableCell.d.ts +14 -0
  37. package/esm/Calendar/TableCell.js +66 -0
  38. package/esm/Calendar/TableHeaderRow.js +3 -1
  39. package/esm/Calendar/TableRow.js +23 -47
  40. package/esm/Calendar/useCalendarDate.d.ts +1 -1
  41. package/esm/Calendar/utils.d.ts +7 -0
  42. package/esm/Calendar/utils.js +12 -0
  43. package/esm/Cascader/Cascader.js +13 -3
  44. package/esm/DatePicker/DatePicker.js +147 -40
  45. package/esm/InputPicker/InputPicker.js +7 -4
  46. package/esm/Picker/PickerToggle.js +3 -0
  47. package/esm/Picker/utils.js +21 -12
  48. package/esm/Table/Table.d.ts +7 -7
  49. package/package.json +2 -2
  50. package/styles/color-modes/dark.less +0 -40
  51. package/styles/color-modes/high-contrast.less +0 -35
  52. package/styles/color-modes/light.less +0 -46
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # [5.46.0](https://github.com/rsuite/rsuite/compare/v5.45.0...v5.46.0) (2023-11-24)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **DatePicker:** improve DatePicker accessibility ([#3464](https://github.com/rsuite/rsuite/issues/3464)) ([63ac804](https://github.com/rsuite/rsuite/commit/63ac8048d9ed7ab3048d9b488a5a1ce306ea2f6d))
6
+ - improve accessibility of picker related components ([#3463](https://github.com/rsuite/rsuite/issues/3463)) ([1cc5481](https://github.com/rsuite/rsuite/commit/1cc54812957b096273e0fa503b365da3c5eeba11))
7
+ - **AutoComplete,Loader:** fix CSS relative colors causing test errors ([#3460](https://github.com/rsuite/rsuite/issues/3460)) ([f9b1244](https://github.com/rsuite/rsuite/commit/f9b124489d6c505d10b9c8a0324b5046022aef27))
8
+ - **Cascader:** fix bug in value selection via Enter key ([#3461](https://github.com/rsuite/rsuite/issues/3461)) ([4266e79](https://github.com/rsuite/rsuite/commit/4266e79928ce75a4e856b68003510d1d12ee4b70))
9
+
10
+ ### Features
11
+
12
+ - **CSS:** add compatibility for relative color syntax ([#3462](https://github.com/rsuite/rsuite/issues/3462)) ([a02eaa9](https://github.com/rsuite/rsuite/commit/a02eaa9b14dc374d503481a443051d413a9fd041))
13
+
1
14
  # [5.45.0](https://github.com/rsuite/rsuite/compare/v5.44.0...v5.45.0) (2023-11-17)
2
15
 
3
16
  ### Bug Fixes
@@ -93,6 +93,21 @@
93
93
  width: unset;
94
94
  }
95
95
 
96
+ &-month-dropdown-cell:focus-visible {
97
+ .rs-calendar-month-dropdown-cell-content {
98
+ outline: 3px solid var(--rs-color-focus-ring);
99
+ }
100
+ }
101
+
102
+ &-table-cell {
103
+ &:focus-visible {
104
+ outline: none;
105
+ .rs-calendar-table-cell-content {
106
+ outline: 3px solid var(--rs-color-focus-ring);
107
+ }
108
+ }
109
+ }
110
+
96
111
  .rs-calendar-month-dropdown-cell-content,
97
112
  .rs-calendar-table-cell-content {
98
113
  width: @calendar-in-menu-content-side-length;
@@ -81,8 +81,7 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
81
81
  className: titleClassName,
82
82
  role: "rowheader"
83
83
  }, year), /*#__PURE__*/_react.default.createElement("div", {
84
- className: prefix('list'),
85
- role: "gridcell"
84
+ className: prefix('list')
86
85
  }, monthMap.map(function (item, month) {
87
86
  return /*#__PURE__*/_react.default.createElement(_MonthDropdownItem.default, {
88
87
  disabled: isMonthDisabled(year, month),
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _utils = require("../utils");
13
13
  var _dateUtils = require("../utils/dateUtils");
14
14
  var _CalendarContext = require("./CalendarContext");
15
+ var _utils2 = require("./utils");
15
16
  var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
16
17
  var _props$as = props.as,
17
18
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -27,19 +28,26 @@ var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props,
27
28
  var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
28
29
  date = _useCalendarContext.date,
29
30
  onSelect = _useCalendarContext.onChangeMonth;
30
- var handleClick = (0, _react.useCallback)(function (event) {
31
- if (disabled) {
32
- return;
33
- }
34
- if (year && month && date) {
35
- var nextMonth = (0, _utils.composeFunctions)(function (d) {
31
+ var _useCustom = (0, _utils.useCustom)('Calendar'),
32
+ locale = _useCustom.locale,
33
+ formatDate = _useCustom.formatDate;
34
+ var formatStr = locale.formattedMonthPattern;
35
+ var currentMonth = (0, _react.useMemo)(function () {
36
+ if (year && month) {
37
+ return (0, _utils.composeFunctions)(function (d) {
36
38
  return (0, _dateUtils.setYear)(d, year);
37
39
  }, function (d) {
38
40
  return (0, _dateUtils.setMonth)(d, month - 1);
39
41
  })(date);
40
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextMonth, event);
41
42
  }
42
- }, [date, disabled, month, onSelect, year]);
43
+ return date;
44
+ }, [date, month, year]);
45
+ var handleClick = (0, _react.useCallback)(function (event) {
46
+ if (disabled) {
47
+ return;
48
+ }
49
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(currentMonth, event);
50
+ }, [currentMonth, disabled, onSelect]);
43
51
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
44
52
  prefix = _useClassNames.prefix,
45
53
  merge = _useClassNames.merge,
@@ -49,13 +57,18 @@ var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props,
49
57
  }), {
50
58
  disabled: disabled
51
59
  });
52
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
60
+ var ariaLabel = currentMonth ? (0, _utils2.getAriaLabel)(currentMonth, formatStr, formatDate) : '';
61
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
62
+ key: month,
63
+ role: "gridcell",
64
+ "aria-selected": active ? true : undefined,
65
+ "aria-disabled": disabled ? true : undefined,
66
+ "aria-label": ariaLabel,
67
+ tabIndex: active ? 0 : -1,
53
68
  ref: ref,
54
69
  className: classes,
55
- onClick: handleClick,
56
- key: month,
57
- tabIndex: -1
58
- }), /*#__PURE__*/_react.default.createElement("span", {
70
+ onClick: handleClick
71
+ }, rest), /*#__PURE__*/_react.default.createElement("span", {
59
72
  className: prefix('content')
60
73
  }, month));
61
74
  });
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
+ export interface TableCellProps extends WithAsProps {
4
+ date: Date;
5
+ disabled?: boolean;
6
+ selected?: boolean;
7
+ unSameMonth?: boolean;
8
+ rangeStart?: boolean;
9
+ rangeEnd?: boolean;
10
+ inRange?: boolean;
11
+ onSelect?: (date: Date, disabled: boolean | void, event: React.MouseEvent) => void;
12
+ }
13
+ declare const TableCell: RsRefForwardingComponent<'div', TableCellProps>;
14
+ export default TableCell;
@@ -0,0 +1,72 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _partial = _interopRequireDefault(require("lodash/partial"));
11
+ var _utils = require("../utils");
12
+ var _dateUtils = require("../utils/dateUtils");
13
+ var _CalendarContext = require("./CalendarContext");
14
+ var _utils2 = require("./utils");
15
+ var TableCell = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
16
+ var _props$as = props.as,
17
+ Component = _props$as === void 0 ? 'div' : _props$as,
18
+ _props$classPrefix = props.classPrefix,
19
+ classPrefix = _props$classPrefix === void 0 ? 'calendar-table' : _props$classPrefix,
20
+ disabled = props.disabled,
21
+ selected = props.selected,
22
+ date = props.date,
23
+ onSelect = props.onSelect,
24
+ unSameMonth = props.unSameMonth,
25
+ rangeStart = props.rangeStart,
26
+ rangeEnd = props.rangeEnd,
27
+ inRange = props.inRange,
28
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "disabled", "selected", "date", "onSelect", "unSameMonth", "rangeStart", "rangeEnd", "inRange"]);
29
+ var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
30
+ onMouseMove = _useCalendarContext.onMouseMove,
31
+ cellClassName = _useCalendarContext.cellClassName,
32
+ renderCell = _useCalendarContext.renderCell,
33
+ overrideLocale = _useCalendarContext.locale;
34
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
35
+ prefix = _useClassNames.prefix,
36
+ merge = _useClassNames.merge;
37
+ var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
38
+ locale = _useCustom.locale,
39
+ formatDate = _useCustom.formatDate;
40
+ var formatStr = locale.formattedDayPattern;
41
+ var ariaLabel = (0, _utils2.getAriaLabel)(date, formatStr, formatDate);
42
+ var todayDate = new Date();
43
+ var isToday = (0, _dateUtils.isSameDay)(date, todayDate);
44
+ var classes = merge(prefix('cell', {
45
+ 'cell-un-same-month': unSameMonth,
46
+ 'cell-is-today': isToday,
47
+ 'cell-selected': selected,
48
+ 'cell-selected-start': rangeStart,
49
+ 'cell-selected-end': rangeEnd,
50
+ 'cell-in-range': !unSameMonth && inRange,
51
+ 'cell-disabled': disabled
52
+ }), cellClassName === null || cellClassName === void 0 ? void 0 : cellClassName(date));
53
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
54
+ ref: ref,
55
+ role: "gridcell",
56
+ "aria-label": ariaLabel,
57
+ "aria-selected": selected || undefined,
58
+ "aria-disabled": disabled || undefined,
59
+ tabIndex: selected ? 0 : -1,
60
+ title: isToday ? ariaLabel + " (" + (locale === null || locale === void 0 ? void 0 : locale.today) + ")" : ariaLabel,
61
+ className: classes,
62
+ onMouseEnter: !disabled && onMouseMove ? onMouseMove.bind(null, date) : undefined,
63
+ onClick: onSelect ? (0, _partial.default)(onSelect, date, disabled) : undefined
64
+ }, rest), /*#__PURE__*/_react.default.createElement("div", {
65
+ className: prefix('cell-content')
66
+ }, /*#__PURE__*/_react.default.createElement("span", {
67
+ className: prefix('cell-day')
68
+ }, _utils.DateUtils.getDate(date)), renderCell === null || renderCell === void 0 ? void 0 : renderCell(date)));
69
+ });
70
+ TableCell.displayName = 'CalendarTableCell';
71
+ var _default = TableCell;
72
+ exports.default = _default;
@@ -8,6 +8,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
8
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
11
12
  var _utils = require("../utils");
12
13
  var _CalendarContext = require("./CalendarContext");
13
14
  var weekKeys = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
@@ -45,7 +46,8 @@ var TableHeaderRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref
45
46
  return /*#__PURE__*/_react.default.createElement("div", {
46
47
  key: key,
47
48
  className: prefix('header-cell'),
48
- role: "columnheader"
49
+ role: "columnheader",
50
+ "aria-label": (0, _upperFirst.default)(key)
49
51
  }, /*#__PURE__*/_react.default.createElement("span", {
50
52
  className: prefix('header-cell-content')
51
53
  }, locale === null || locale === void 0 ? void 0 : locale[key]));
@@ -9,9 +9,10 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _partial = _interopRequireDefault(require("lodash/partial"));
13
12
  var _utils = require("../utils");
13
+ var _dateUtils = require("../utils/dateUtils");
14
14
  var _CalendarContext = require("./CalendarContext");
15
+ var _TableCell = _interopRequireDefault(require("./TableCell"));
15
16
  var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
16
17
  var _props$as = props.as,
17
18
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -29,15 +30,8 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
29
30
  hoverRangeValue = _useCalendarContext.hoverRangeValue,
30
31
  inSameMonth = _useCalendarContext.inSameMonth,
31
32
  isoWeek = _useCalendarContext.isoWeek,
32
- onMouseMove = _useCalendarContext.onMouseMove,
33
33
  onSelect = _useCalendarContext.onSelect,
34
- cellClassName = _useCalendarContext.cellClassName,
35
- renderCell = _useCalendarContext.renderCell,
36
- overrideLocale = _useCalendarContext.locale,
37
34
  showWeekNumbers = _useCalendarContext.showWeekNumbers;
38
- var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
39
- locale = _useCustom.locale,
40
- formatDate = _useCustom.formatDate;
41
35
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
42
36
  prefix = _useClassNames.prefix,
43
37
  merge = _useClassNames.merge;
@@ -48,7 +42,6 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
48
42
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
49
43
  }, [onSelect]);
50
44
  var renderDays = function renderDays() {
51
- var formatStr = locale.formattedDayPattern;
52
45
  var days = [];
53
46
  var _ref = dateRange || [],
54
47
  selectedStartDate = _ref[0],
@@ -57,64 +50,47 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
57
50
  hoverStartDate = _ref2[0],
58
51
  hoverEndDate = _ref2[1];
59
52
  var isRangeSelectionMode = typeof dateRange !== 'undefined';
60
- var todayDate = new Date();
61
53
  for (var i = 0; i < 7; i += 1) {
62
- var thisDate = _utils.DateUtils.addDays(weekendDate, i);
54
+ var thisDate = (0, _dateUtils.addDays)(weekendDate, i);
63
55
  var disabled = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(thisDate, dateRange, _utils.DATERANGE_DISABLED_TARGET.CALENDAR);
64
- var isToday = _utils.DateUtils.isSameDay(thisDate, todayDate);
65
56
  var unSameMonth = !(inSameMonth !== null && inSameMonth !== void 0 && inSameMonth(thisDate));
66
- var isStartSelected = !unSameMonth && selectedStartDate && _utils.DateUtils.isSameDay(thisDate, selectedStartDate);
67
- var isEndSelected = !unSameMonth && selectedEndDate && _utils.DateUtils.isSameDay(thisDate, selectedEndDate);
68
- var isSelected = isRangeSelectionMode ? isStartSelected || isEndSelected : _utils.DateUtils.isSameDay(thisDate, selected);
57
+ var rangeStart = !unSameMonth && selectedStartDate && (0, _dateUtils.isSameDay)(thisDate, selectedStartDate);
58
+ var rangeEnd = !unSameMonth && selectedEndDate && (0, _dateUtils.isSameDay)(thisDate, selectedEndDate);
59
+ var isSelected = isRangeSelectionMode ? rangeStart || rangeEnd : (0, _dateUtils.isSameDay)(thisDate, selected);
69
60
 
70
61
  // TODO-Doma Move those logic that's for DatePicker/DateRangePicker to a separate component
71
62
  // Calendar is not supposed to be reused this way
72
63
  var inRange = false;
73
64
  // for Selected
74
65
  if (selectedStartDate && selectedEndDate) {
75
- if (_utils.DateUtils.isBefore(thisDate, selectedEndDate) && _utils.DateUtils.isAfter(thisDate, selectedStartDate)) {
66
+ if ((0, _dateUtils.isBefore)(thisDate, selectedEndDate) && (0, _dateUtils.isAfter)(thisDate, selectedStartDate)) {
76
67
  inRange = true;
77
68
  }
78
- if (_utils.DateUtils.isBefore(thisDate, selectedStartDate) && _utils.DateUtils.isAfter(thisDate, selectedEndDate)) {
69
+ if ((0, _dateUtils.isBefore)(thisDate, selectedStartDate) && (0, _dateUtils.isAfter)(thisDate, selectedEndDate)) {
79
70
  inRange = true;
80
71
  }
81
72
  }
82
73
 
83
74
  // for Hovering
84
75
  if (!isSelected && hoverStartDate && hoverEndDate) {
85
- if (!_utils.DateUtils.isAfter(thisDate, hoverEndDate) && !_utils.DateUtils.isBefore(thisDate, hoverStartDate)) {
76
+ if (!(0, _dateUtils.isAfter)(thisDate, hoverEndDate) && !(0, _dateUtils.isBefore)(thisDate, hoverStartDate)) {
86
77
  inRange = true;
87
78
  }
88
- if (!_utils.DateUtils.isAfter(thisDate, hoverStartDate) && !_utils.DateUtils.isBefore(thisDate, hoverEndDate)) {
79
+ if (!(0, _dateUtils.isAfter)(thisDate, hoverStartDate) && !(0, _dateUtils.isBefore)(thisDate, hoverEndDate)) {
89
80
  inRange = true;
90
81
  }
91
82
  }
92
- var _classes = merge(prefix('cell', {
93
- 'cell-un-same-month': unSameMonth,
94
- 'cell-is-today': isToday,
95
- 'cell-selected': isSelected,
96
- 'cell-selected-start': isStartSelected,
97
- 'cell-selected-end': isEndSelected,
98
- 'cell-in-range': !unSameMonth && inRange,
99
- 'cell-disabled': disabled
100
- }), cellClassName === null || cellClassName === void 0 ? void 0 : cellClassName(thisDate));
101
- var title = formatDate ? formatDate(thisDate, formatStr) : _utils.DateUtils.format(thisDate, formatStr);
102
- days.push( /*#__PURE__*/_react.default.createElement("div", {
103
- role: "gridcell",
104
- key: title,
105
- "aria-label": title,
106
- "aria-selected": isSelected || undefined,
107
- className: _classes
108
- }, /*#__PURE__*/_react.default.createElement("div", {
109
- role: "button",
110
- className: prefix('cell-content'),
111
- tabIndex: -1,
112
- title: isToday ? title + " (" + (locale === null || locale === void 0 ? void 0 : locale.today) + ")" : title,
113
- onMouseEnter: !disabled && onMouseMove ? onMouseMove.bind(null, thisDate) : undefined,
114
- onClick: (0, _partial.default)(handleSelect, thisDate, disabled)
115
- }, /*#__PURE__*/_react.default.createElement("span", {
116
- className: prefix('cell-day')
117
- }, _utils.DateUtils.getDate(thisDate)), renderCell && renderCell(thisDate))));
83
+ days.push( /*#__PURE__*/_react.default.createElement(_TableCell.default, {
84
+ key: (0, _dateUtils.format)(thisDate, 'yyyy-MM-dd'),
85
+ date: thisDate,
86
+ disabled: disabled,
87
+ selected: isSelected,
88
+ onSelect: handleSelect,
89
+ unSameMonth: unSameMonth,
90
+ rangeStart: rangeStart,
91
+ rangeEnd: rangeEnd,
92
+ inRange: inRange
93
+ }));
118
94
  }
119
95
  return days;
120
96
  };
@@ -126,7 +102,7 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
126
102
  }), showWeekNumbers && /*#__PURE__*/_react.default.createElement("div", {
127
103
  className: prefix('cell-week-number'),
128
104
  role: "rowheader"
129
- }, _utils.DateUtils.format(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
105
+ }, (0, _dateUtils.format)(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
130
106
  });
131
107
  TableRow.displayName = 'CalendarTableRow';
132
108
  TableRow.propTypes = {
@@ -1,6 +1,6 @@
1
1
  declare const useCalendarDate: (value: Date | null | undefined, defaultDate: Date | undefined) => {
2
2
  calendarDate: Date;
3
- setCalendarDate: (date: Date | undefined) => void;
3
+ setCalendarDate: (date: React.SetStateAction<Date> | undefined) => void;
4
4
  resetCalendarDate: (nextValue?: any) => void;
5
5
  };
6
6
  export default useCalendarDate;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Get aria-label for the date.
3
+ * @param date - The date.
4
+ * @param formatStr - The format string.
5
+ * @param format - The format function.
6
+ */
7
+ export declare function getAriaLabel(date: Date, formatStr: string, format: (date: Date, formatStr: string) => string): string;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.getAriaLabel = getAriaLabel;
6
+ var _utils = require("../utils");
7
+ /**
8
+ * Get aria-label for the date.
9
+ * @param date - The date.
10
+ * @param formatStr - The format string.
11
+ * @param format - The format function.
12
+ */
13
+ function getAriaLabel(date, formatStr, format) {
14
+ return format ? format(date, formatStr) : _utils.DateUtils.format(date, formatStr);
15
+ }
@@ -196,6 +196,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
196
196
  var items = getSearchResult(value);
197
197
  setSearchKeyword(value);
198
198
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
199
+ if (!value || items.length === 0) {
200
+ setFocusItemValue(undefined);
201
+ return;
202
+ }
199
203
  if (items.length > 0) {
200
204
  setFocusItemValue(items[0][valueKey]);
201
205
  setLayer(0);
@@ -218,9 +222,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
218
222
  setSearchKeyword('');
219
223
  }, [onClose]);
220
224
  var handleClose = (0, _react.useCallback)(function () {
221
- var _triggerRef$current;
225
+ var _triggerRef$current, _targetRef$current, _targetRef$current$fo;
222
226
  (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
223
- }, [triggerRef]);
227
+
228
+ // The focus is on the trigger button after closing
229
+ (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : (_targetRef$current$fo = _targetRef$current.focus) === null || _targetRef$current$fo === void 0 ? void 0 : _targetRef$current$fo.call(_targetRef$current);
230
+ }, []);
224
231
  var handleClean = (0, _react.useCallback)(function (event) {
225
232
  if (disabled || !targetRef.current) {
226
233
  return;
@@ -350,6 +357,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
350
357
  "aria-disabled": disabled,
351
358
  "data-key": item[valueKey],
352
359
  className: itemClasses,
360
+ tabIndex: -1,
361
+ role: "option",
353
362
  onClick: function onClick(event) {
354
363
  if (!disabled) {
355
364
  handleSearchRowSelect(item, nodes, event);
@@ -364,7 +373,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
364
373
  var items = getSearchResult();
365
374
  return /*#__PURE__*/_react.default.createElement("div", {
366
375
  className: prefix('cascader-search-panel'),
367
- "data-layer": 0
376
+ "data-layer": 0,
377
+ role: "listbox"
368
378
  }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
369
379
  className: prefix('none')
370
380
  }, locale.noResultsText));