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
@@ -74,8 +74,7 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
74
74
  className: titleClassName,
75
75
  role: "rowheader"
76
76
  }, year), /*#__PURE__*/React.createElement("div", {
77
- className: prefix('list'),
78
- role: "gridcell"
77
+ className: prefix('list')
79
78
  }, monthMap.map(function (item, month) {
80
79
  return /*#__PURE__*/React.createElement(MonthDropdownItem, {
81
80
  disabled: isMonthDisabled(year, month),
@@ -1,11 +1,12 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { useCallback } from 'react';
4
+ import React, { useCallback, useMemo } from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { composeFunctions, useClassNames } from '../utils';
6
+ import { composeFunctions, useClassNames, useCustom } from '../utils';
7
7
  import { setMonth, setYear } from '../utils/dateUtils';
8
8
  import { useCalendarContext } from './CalendarContext';
9
+ import { getAriaLabel } from './utils';
9
10
  var MonthDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
10
11
  var _props$as = props.as,
11
12
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -21,19 +22,26 @@ var MonthDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
21
22
  var _useCalendarContext = useCalendarContext(),
22
23
  date = _useCalendarContext.date,
23
24
  onSelect = _useCalendarContext.onChangeMonth;
24
- var handleClick = useCallback(function (event) {
25
- if (disabled) {
26
- return;
27
- }
28
- if (year && month && date) {
29
- var nextMonth = composeFunctions(function (d) {
25
+ var _useCustom = useCustom('Calendar'),
26
+ locale = _useCustom.locale,
27
+ formatDate = _useCustom.formatDate;
28
+ var formatStr = locale.formattedMonthPattern;
29
+ var currentMonth = useMemo(function () {
30
+ if (year && month) {
31
+ return composeFunctions(function (d) {
30
32
  return setYear(d, year);
31
33
  }, function (d) {
32
34
  return setMonth(d, month - 1);
33
35
  })(date);
34
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextMonth, event);
35
36
  }
36
- }, [date, disabled, month, onSelect, year]);
37
+ return date;
38
+ }, [date, month, year]);
39
+ var handleClick = useCallback(function (event) {
40
+ if (disabled) {
41
+ return;
42
+ }
43
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(currentMonth, event);
44
+ }, [currentMonth, disabled, onSelect]);
37
45
  var _useClassNames = useClassNames(classPrefix),
38
46
  prefix = _useClassNames.prefix,
39
47
  merge = _useClassNames.merge,
@@ -43,13 +51,18 @@ var MonthDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
43
51
  }), {
44
52
  disabled: disabled
45
53
  });
46
- return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
54
+ var ariaLabel = currentMonth ? getAriaLabel(currentMonth, formatStr, formatDate) : '';
55
+ return /*#__PURE__*/React.createElement(Component, _extends({
56
+ key: month,
57
+ role: "gridcell",
58
+ "aria-selected": active ? true : undefined,
59
+ "aria-disabled": disabled ? true : undefined,
60
+ "aria-label": ariaLabel,
61
+ tabIndex: active ? 0 : -1,
47
62
  ref: ref,
48
63
  className: classes,
49
- onClick: handleClick,
50
- key: month,
51
- tabIndex: -1
52
- }), /*#__PURE__*/React.createElement("span", {
64
+ onClick: handleClick
65
+ }, rest), /*#__PURE__*/React.createElement("span", {
53
66
  className: prefix('content')
54
67
  }, month));
55
68
  });
@@ -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,66 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+ import React from 'react';
5
+ import partial from 'lodash/partial';
6
+ import { DateUtils, useClassNames, useCustom } from '../utils';
7
+ import { isSameDay } from '../utils/dateUtils';
8
+ import { useCalendarContext } from './CalendarContext';
9
+ import { getAriaLabel } from './utils';
10
+ var TableCell = /*#__PURE__*/React.forwardRef(function (props, ref) {
11
+ var _props$as = props.as,
12
+ Component = _props$as === void 0 ? 'div' : _props$as,
13
+ _props$classPrefix = props.classPrefix,
14
+ classPrefix = _props$classPrefix === void 0 ? 'calendar-table' : _props$classPrefix,
15
+ disabled = props.disabled,
16
+ selected = props.selected,
17
+ date = props.date,
18
+ onSelect = props.onSelect,
19
+ unSameMonth = props.unSameMonth,
20
+ rangeStart = props.rangeStart,
21
+ rangeEnd = props.rangeEnd,
22
+ inRange = props.inRange,
23
+ rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "disabled", "selected", "date", "onSelect", "unSameMonth", "rangeStart", "rangeEnd", "inRange"]);
24
+ var _useCalendarContext = useCalendarContext(),
25
+ onMouseMove = _useCalendarContext.onMouseMove,
26
+ cellClassName = _useCalendarContext.cellClassName,
27
+ renderCell = _useCalendarContext.renderCell,
28
+ overrideLocale = _useCalendarContext.locale;
29
+ var _useClassNames = useClassNames(classPrefix),
30
+ prefix = _useClassNames.prefix,
31
+ merge = _useClassNames.merge;
32
+ var _useCustom = useCustom('Calendar', overrideLocale),
33
+ locale = _useCustom.locale,
34
+ formatDate = _useCustom.formatDate;
35
+ var formatStr = locale.formattedDayPattern;
36
+ var ariaLabel = getAriaLabel(date, formatStr, formatDate);
37
+ var todayDate = new Date();
38
+ var isToday = isSameDay(date, todayDate);
39
+ var classes = merge(prefix('cell', {
40
+ 'cell-un-same-month': unSameMonth,
41
+ 'cell-is-today': isToday,
42
+ 'cell-selected': selected,
43
+ 'cell-selected-start': rangeStart,
44
+ 'cell-selected-end': rangeEnd,
45
+ 'cell-in-range': !unSameMonth && inRange,
46
+ 'cell-disabled': disabled
47
+ }), cellClassName === null || cellClassName === void 0 ? void 0 : cellClassName(date));
48
+ return /*#__PURE__*/React.createElement(Component, _extends({
49
+ ref: ref,
50
+ role: "gridcell",
51
+ "aria-label": ariaLabel,
52
+ "aria-selected": selected || undefined,
53
+ "aria-disabled": disabled || undefined,
54
+ tabIndex: selected ? 0 : -1,
55
+ title: isToday ? ariaLabel + " (" + (locale === null || locale === void 0 ? void 0 : locale.today) + ")" : ariaLabel,
56
+ className: classes,
57
+ onMouseEnter: !disabled && onMouseMove ? onMouseMove.bind(null, date) : undefined,
58
+ onClick: onSelect ? partial(onSelect, date, disabled) : undefined
59
+ }, rest), /*#__PURE__*/React.createElement("div", {
60
+ className: prefix('cell-content')
61
+ }, /*#__PURE__*/React.createElement("span", {
62
+ className: prefix('cell-day')
63
+ }, DateUtils.getDate(date)), renderCell === null || renderCell === void 0 ? void 0 : renderCell(date)));
64
+ });
65
+ TableCell.displayName = 'CalendarTableCell';
66
+ export default TableCell;
@@ -3,6 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import upperFirst from 'lodash/upperFirst';
6
7
  import { useClassNames } from '../utils';
7
8
  import { useCalendarContext } from './CalendarContext';
8
9
  var weekKeys = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
@@ -40,7 +41,8 @@ var TableHeaderRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
40
41
  return /*#__PURE__*/React.createElement("div", {
41
42
  key: key,
42
43
  className: prefix('header-cell'),
43
- role: "columnheader"
44
+ role: "columnheader",
45
+ "aria-label": upperFirst(key)
44
46
  }, /*#__PURE__*/React.createElement("span", {
45
47
  className: prefix('header-cell-content')
46
48
  }, locale === null || locale === void 0 ? void 0 : locale[key]));
@@ -3,9 +3,10 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import React, { useCallback } from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import partial from 'lodash/partial';
7
- import { DateUtils, useClassNames, DATERANGE_DISABLED_TARGET, useCustom } from '../utils';
6
+ import { useClassNames, DATERANGE_DISABLED_TARGET } from '../utils';
7
+ import { isSameDay, addDays, isBefore, isAfter, format } from '../utils/dateUtils';
8
8
  import { useCalendarContext } from './CalendarContext';
9
+ import TableCell from './TableCell';
9
10
  var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
10
11
  var _props$as = props.as,
11
12
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -23,15 +24,8 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
23
24
  hoverRangeValue = _useCalendarContext.hoverRangeValue,
24
25
  inSameMonth = _useCalendarContext.inSameMonth,
25
26
  isoWeek = _useCalendarContext.isoWeek,
26
- onMouseMove = _useCalendarContext.onMouseMove,
27
27
  onSelect = _useCalendarContext.onSelect,
28
- cellClassName = _useCalendarContext.cellClassName,
29
- renderCell = _useCalendarContext.renderCell,
30
- overrideLocale = _useCalendarContext.locale,
31
28
  showWeekNumbers = _useCalendarContext.showWeekNumbers;
32
- var _useCustom = useCustom('Calendar', overrideLocale),
33
- locale = _useCustom.locale,
34
- formatDate = _useCustom.formatDate;
35
29
  var _useClassNames = useClassNames(classPrefix),
36
30
  prefix = _useClassNames.prefix,
37
31
  merge = _useClassNames.merge;
@@ -42,7 +36,6 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
42
36
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
43
37
  }, [onSelect]);
44
38
  var renderDays = function renderDays() {
45
- var formatStr = locale.formattedDayPattern;
46
39
  var days = [];
47
40
  var _ref = dateRange || [],
48
41
  selectedStartDate = _ref[0],
@@ -51,64 +44,47 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
51
44
  hoverStartDate = _ref2[0],
52
45
  hoverEndDate = _ref2[1];
53
46
  var isRangeSelectionMode = typeof dateRange !== 'undefined';
54
- var todayDate = new Date();
55
47
  for (var i = 0; i < 7; i += 1) {
56
- var thisDate = DateUtils.addDays(weekendDate, i);
48
+ var thisDate = addDays(weekendDate, i);
57
49
  var disabled = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(thisDate, dateRange, DATERANGE_DISABLED_TARGET.CALENDAR);
58
- var isToday = DateUtils.isSameDay(thisDate, todayDate);
59
50
  var unSameMonth = !(inSameMonth !== null && inSameMonth !== void 0 && inSameMonth(thisDate));
60
- var isStartSelected = !unSameMonth && selectedStartDate && DateUtils.isSameDay(thisDate, selectedStartDate);
61
- var isEndSelected = !unSameMonth && selectedEndDate && DateUtils.isSameDay(thisDate, selectedEndDate);
62
- var isSelected = isRangeSelectionMode ? isStartSelected || isEndSelected : DateUtils.isSameDay(thisDate, selected);
51
+ var rangeStart = !unSameMonth && selectedStartDate && isSameDay(thisDate, selectedStartDate);
52
+ var rangeEnd = !unSameMonth && selectedEndDate && isSameDay(thisDate, selectedEndDate);
53
+ var isSelected = isRangeSelectionMode ? rangeStart || rangeEnd : isSameDay(thisDate, selected);
63
54
 
64
55
  // TODO-Doma Move those logic that's for DatePicker/DateRangePicker to a separate component
65
56
  // Calendar is not supposed to be reused this way
66
57
  var inRange = false;
67
58
  // for Selected
68
59
  if (selectedStartDate && selectedEndDate) {
69
- if (DateUtils.isBefore(thisDate, selectedEndDate) && DateUtils.isAfter(thisDate, selectedStartDate)) {
60
+ if (isBefore(thisDate, selectedEndDate) && isAfter(thisDate, selectedStartDate)) {
70
61
  inRange = true;
71
62
  }
72
- if (DateUtils.isBefore(thisDate, selectedStartDate) && DateUtils.isAfter(thisDate, selectedEndDate)) {
63
+ if (isBefore(thisDate, selectedStartDate) && isAfter(thisDate, selectedEndDate)) {
73
64
  inRange = true;
74
65
  }
75
66
  }
76
67
 
77
68
  // for Hovering
78
69
  if (!isSelected && hoverStartDate && hoverEndDate) {
79
- if (!DateUtils.isAfter(thisDate, hoverEndDate) && !DateUtils.isBefore(thisDate, hoverStartDate)) {
70
+ if (!isAfter(thisDate, hoverEndDate) && !isBefore(thisDate, hoverStartDate)) {
80
71
  inRange = true;
81
72
  }
82
- if (!DateUtils.isAfter(thisDate, hoverStartDate) && !DateUtils.isBefore(thisDate, hoverEndDate)) {
73
+ if (!isAfter(thisDate, hoverStartDate) && !isBefore(thisDate, hoverEndDate)) {
83
74
  inRange = true;
84
75
  }
85
76
  }
86
- var _classes = merge(prefix('cell', {
87
- 'cell-un-same-month': unSameMonth,
88
- 'cell-is-today': isToday,
89
- 'cell-selected': isSelected,
90
- 'cell-selected-start': isStartSelected,
91
- 'cell-selected-end': isEndSelected,
92
- 'cell-in-range': !unSameMonth && inRange,
93
- 'cell-disabled': disabled
94
- }), cellClassName === null || cellClassName === void 0 ? void 0 : cellClassName(thisDate));
95
- var title = formatDate ? formatDate(thisDate, formatStr) : DateUtils.format(thisDate, formatStr);
96
- days.push( /*#__PURE__*/React.createElement("div", {
97
- role: "gridcell",
98
- key: title,
99
- "aria-label": title,
100
- "aria-selected": isSelected || undefined,
101
- className: _classes
102
- }, /*#__PURE__*/React.createElement("div", {
103
- role: "button",
104
- className: prefix('cell-content'),
105
- tabIndex: -1,
106
- title: isToday ? title + " (" + (locale === null || locale === void 0 ? void 0 : locale.today) + ")" : title,
107
- onMouseEnter: !disabled && onMouseMove ? onMouseMove.bind(null, thisDate) : undefined,
108
- onClick: partial(handleSelect, thisDate, disabled)
109
- }, /*#__PURE__*/React.createElement("span", {
110
- className: prefix('cell-day')
111
- }, DateUtils.getDate(thisDate)), renderCell && renderCell(thisDate))));
77
+ days.push( /*#__PURE__*/React.createElement(TableCell, {
78
+ key: format(thisDate, 'yyyy-MM-dd'),
79
+ date: thisDate,
80
+ disabled: disabled,
81
+ selected: isSelected,
82
+ onSelect: handleSelect,
83
+ unSameMonth: unSameMonth,
84
+ rangeStart: rangeStart,
85
+ rangeEnd: rangeEnd,
86
+ inRange: inRange
87
+ }));
112
88
  }
113
89
  return days;
114
90
  };
@@ -120,7 +96,7 @@ var TableRow = /*#__PURE__*/React.forwardRef(function (props, ref) {
120
96
  }), showWeekNumbers && /*#__PURE__*/React.createElement("div", {
121
97
  className: prefix('cell-week-number'),
122
98
  role: "rowheader"
123
- }, DateUtils.format(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
99
+ }, format(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
124
100
  });
125
101
  TableRow.displayName = 'CalendarTableRow';
126
102
  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,12 @@
1
+ 'use client';
2
+ import { DateUtils } from '../utils';
3
+
4
+ /**
5
+ * Get aria-label for the date.
6
+ * @param date - The date.
7
+ * @param formatStr - The format string.
8
+ * @param format - The format function.
9
+ */
10
+ export function getAriaLabel(date, formatStr, format) {
11
+ return format ? format(date, formatStr) : DateUtils.format(date, formatStr);
12
+ }
@@ -190,6 +190,10 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
190
190
  var items = getSearchResult(value);
191
191
  setSearchKeyword(value);
192
192
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
193
+ if (!value || items.length === 0) {
194
+ setFocusItemValue(undefined);
195
+ return;
196
+ }
193
197
  if (items.length > 0) {
194
198
  setFocusItemValue(items[0][valueKey]);
195
199
  setLayer(0);
@@ -212,9 +216,12 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
212
216
  setSearchKeyword('');
213
217
  }, [onClose]);
214
218
  var handleClose = useCallback(function () {
215
- var _triggerRef$current;
219
+ var _triggerRef$current, _targetRef$current, _targetRef$current$fo;
216
220
  (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
217
- }, [triggerRef]);
221
+
222
+ // The focus is on the trigger button after closing
223
+ (_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);
224
+ }, []);
218
225
  var handleClean = useCallback(function (event) {
219
226
  if (disabled || !targetRef.current) {
220
227
  return;
@@ -344,6 +351,8 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
344
351
  "aria-disabled": disabled,
345
352
  "data-key": item[valueKey],
346
353
  className: itemClasses,
354
+ tabIndex: -1,
355
+ role: "option",
347
356
  onClick: function onClick(event) {
348
357
  if (!disabled) {
349
358
  handleSearchRowSelect(item, nodes, event);
@@ -358,7 +367,8 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
358
367
  var items = getSearchResult();
359
368
  return /*#__PURE__*/React.createElement("div", {
360
369
  className: prefix('cascader-search-panel'),
361
- "data-layer": 0
370
+ "data-layer": 0,
371
+ role: "listbox"
362
372
  }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
363
373
  className: prefix('none')
364
374
  }, locale.noResultsText));