rsuite 5.68.1 → 5.70.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 (109) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/Calendar/styles/index.css +1 -1
  3. package/Calendar/styles/index.less +1 -1
  4. package/DatePicker/styles/index.css +1 -1
  5. package/DateRangePicker/styles/index.css +1 -1
  6. package/README.md +2 -2
  7. package/Table/styles/index.css +1 -1
  8. package/Table/styles/index.less +1 -1
  9. package/cjs/Calendar/Calendar.d.ts +7 -2
  10. package/cjs/Calendar/Calendar.js +1 -1
  11. package/cjs/Calendar/CalendarContainer.d.ts +5 -0
  12. package/cjs/Calendar/CalendarContainer.js +15 -44
  13. package/cjs/Calendar/CalendarContext.d.ts +126 -2
  14. package/cjs/Calendar/CalendarContext.js +11 -3
  15. package/cjs/Calendar/CalendarHeader.js +3 -20
  16. package/cjs/Calendar/MonthDropdown.js +39 -29
  17. package/cjs/Calendar/TimeDropdown.js +0 -14
  18. package/cjs/Calendar/index.d.ts +1 -2
  19. package/cjs/CascadeTree/CascadeTree.js +3 -1
  20. package/cjs/CascadeTree/SearchView.d.ts +1 -0
  21. package/cjs/CascadeTree/SearchView.js +3 -2
  22. package/cjs/CascadeTree/types.d.ts +5 -1
  23. package/cjs/Cascader/Cascader.d.ts +1 -1
  24. package/cjs/Cascader/Cascader.js +1 -0
  25. package/cjs/CustomProvider/CustomProvider.d.ts +13 -16
  26. package/cjs/DateInput/hooks/useDateInputState.d.ts +0 -2
  27. package/cjs/DateInput/hooks/useDateInputState.js +4 -1
  28. package/cjs/DatePicker/DatePicker.d.ts +6 -1
  29. package/cjs/DatePicker/DatePicker.js +10 -8
  30. package/cjs/DateRangePicker/Calendar.d.ts +3 -3
  31. package/cjs/DateRangePicker/Calendar.js +1 -1
  32. package/cjs/DateRangePicker/DateRangePicker.d.ts +15 -3
  33. package/cjs/DateRangePicker/DateRangePicker.js +30 -25
  34. package/cjs/InputNumber/InputNumber.d.ts +9 -0
  35. package/cjs/InputNumber/InputNumber.js +28 -8
  36. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  37. package/cjs/MultiCascadeTree/MultiCascadeTree.js +4 -1
  38. package/cjs/MultiCascadeTree/SearchView.d.ts +1 -0
  39. package/cjs/MultiCascadeTree/SearchView.js +3 -2
  40. package/cjs/MultiCascadeTree/types.d.ts +5 -1
  41. package/cjs/MultiCascader/MultiCascader.d.ts +1 -1
  42. package/cjs/MultiCascader/MultiCascader.js +3 -0
  43. package/cjs/TreePicker/TreePicker.js +1 -0
  44. package/cjs/internals/Windowing/List.d.ts +13 -3
  45. package/cjs/internals/Windowing/index.d.ts +1 -1
  46. package/cjs/internals/hooks/useCustom.js +25 -12
  47. package/cjs/internals/hooks/useEventCallback.js +8 -1
  48. package/cjs/useMediaQuery/useMediaQuery.js +12 -6
  49. package/dist/rsuite-no-reset-rtl.css +2 -2
  50. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  51. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  52. package/dist/rsuite-no-reset.css +2 -2
  53. package/dist/rsuite-no-reset.min.css +1 -1
  54. package/dist/rsuite-no-reset.min.css.map +1 -1
  55. package/dist/rsuite-rtl.css +2 -2
  56. package/dist/rsuite-rtl.min.css +1 -1
  57. package/dist/rsuite-rtl.min.css.map +1 -1
  58. package/dist/rsuite.css +2 -2
  59. package/dist/rsuite.js +84 -73
  60. package/dist/rsuite.js.map +1 -1
  61. package/dist/rsuite.min.css +1 -1
  62. package/dist/rsuite.min.css.map +1 -1
  63. package/dist/rsuite.min.js +1 -1
  64. package/dist/rsuite.min.js.map +1 -1
  65. package/esm/Calendar/Calendar.d.ts +7 -2
  66. package/esm/Calendar/Calendar.js +1 -1
  67. package/esm/Calendar/CalendarContainer.d.ts +5 -0
  68. package/esm/Calendar/CalendarContainer.js +15 -44
  69. package/esm/Calendar/CalendarContext.d.ts +126 -2
  70. package/esm/Calendar/CalendarContext.js +12 -3
  71. package/esm/Calendar/CalendarHeader.js +3 -20
  72. package/esm/Calendar/MonthDropdown.js +39 -29
  73. package/esm/Calendar/TimeDropdown.js +0 -14
  74. package/esm/Calendar/index.d.ts +1 -2
  75. package/esm/CascadeTree/CascadeTree.js +3 -1
  76. package/esm/CascadeTree/SearchView.d.ts +1 -0
  77. package/esm/CascadeTree/SearchView.js +3 -2
  78. package/esm/CascadeTree/types.d.ts +5 -1
  79. package/esm/Cascader/Cascader.d.ts +1 -1
  80. package/esm/Cascader/Cascader.js +1 -0
  81. package/esm/CustomProvider/CustomProvider.d.ts +13 -16
  82. package/esm/DateInput/hooks/useDateInputState.d.ts +0 -2
  83. package/esm/DateInput/hooks/useDateInputState.js +5 -2
  84. package/esm/DatePicker/DatePicker.d.ts +6 -1
  85. package/esm/DatePicker/DatePicker.js +10 -8
  86. package/esm/DateRangePicker/Calendar.d.ts +3 -3
  87. package/esm/DateRangePicker/Calendar.js +1 -1
  88. package/esm/DateRangePicker/DateRangePicker.d.ts +15 -3
  89. package/esm/DateRangePicker/DateRangePicker.js +19 -14
  90. package/esm/InputNumber/InputNumber.d.ts +9 -0
  91. package/esm/InputNumber/InputNumber.js +29 -9
  92. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
  93. package/esm/MultiCascadeTree/MultiCascadeTree.js +4 -1
  94. package/esm/MultiCascadeTree/SearchView.d.ts +1 -0
  95. package/esm/MultiCascadeTree/SearchView.js +3 -2
  96. package/esm/MultiCascadeTree/types.d.ts +5 -1
  97. package/esm/MultiCascader/MultiCascader.d.ts +1 -1
  98. package/esm/MultiCascader/MultiCascader.js +3 -0
  99. package/esm/TreePicker/TreePicker.js +1 -0
  100. package/esm/internals/Windowing/List.d.ts +13 -3
  101. package/esm/internals/Windowing/index.d.ts +1 -1
  102. package/esm/internals/hooks/useCustom.js +25 -12
  103. package/esm/internals/hooks/useEventCallback.js +8 -2
  104. package/esm/useMediaQuery/useMediaQuery.js +13 -7
  105. package/package.json +2 -2
  106. package/cjs/Calendar/types.d.ts +0 -28
  107. package/cjs/Calendar/types.js +0 -4
  108. package/esm/Calendar/types.d.ts +0 -28
  109. package/esm/Calendar/types.js +0 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,33 @@
1
+ # [5.70.0](https://github.com/rsuite/rsuite/compare/v5.69.0...v5.70.0) (2024-08-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **Cascader,MultiCascader:** fix `locale` property can't override global config ([#3928](https://github.com/rsuite/rsuite/issues/3928)) ([31abca8](https://github.com/rsuite/rsuite/commit/31abca88daa88a4ba10f886de98db0f9cb57ced1))
7
+ * **MultiCascadeTree,MultiCascader:** fix parent node is not in a mixed state when searching ([#3931](https://github.com/rsuite/rsuite/issues/3931)) ([5ec0be5](https://github.com/rsuite/rsuite/commit/5ec0be5bcd6fc4f00b457e4c452c7c56225314c9))
8
+ * **Table:** fix border style when rowSpan is used ([#3940](https://github.com/rsuite/rsuite/issues/3940)) ([9677303](https://github.com/rsuite/rsuite/commit/9677303e007dc94474ca16e3a32b638bd8c0c05b))
9
+ * **TreePicker,MultiCascader:** fix not focusing on the search box when typing characters ([#3930](https://github.com/rsuite/rsuite/issues/3930)) ([4f3b8e3](https://github.com/rsuite/rsuite/commit/4f3b8e37eabdefea277f14034647f43826244c03))
10
+ * use useLayoutEffect instead of useEffect in useEventCallback ([#3921](https://github.com/rsuite/rsuite/issues/3921)) ([6396b3e](https://github.com/rsuite/rsuite/commit/6396b3e6d3692f76850409a5d3d1bd60aea40788))
11
+
12
+
13
+
14
+ # [5.69.0](https://github.com/rsuite/rsuite/compare/v5.68.1...v5.69.0) (2024-08-09)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **DatePicker, DateRangePicker:** fix the component crash due to invalid format ([#3910](https://github.com/rsuite/rsuite/issues/3910)) ([ed8f9b0](https://github.com/rsuite/rsuite/commit/ed8f9b0814eb5723d2baecba9a34c5f3544dce38))
20
+ * **useMediaQuery:** fix media query change cannot be listened to when using multiple useMediaQuery ([#3909](https://github.com/rsuite/rsuite/issues/3909)) ([63d50e2](https://github.com/rsuite/rsuite/commit/63d50e29160032e0ca0c878a13a8a87f4e840e86))
21
+
22
+
23
+ ### Features
24
+
25
+ * **Calendar, DatePicker, DateRangePicker:** add support for `monthDropdownProps` prop ([#3913](https://github.com/rsuite/rsuite/issues/3913)) ([9025bbe](https://github.com/rsuite/rsuite/commit/9025bbefd6c0bfaf93ef91e775e2815c9832077d))
26
+ * **DateRangePicker:** add support for `calendarSnapping` prop ([#3911](https://github.com/rsuite/rsuite/issues/3911)) ([4b3a669](https://github.com/rsuite/rsuite/commit/4b3a6692388040defd9dd5835572ca8336f4e315))
27
+ * **InputNumber:** add support for `decimalSeparator` prop ([#3907](https://github.com/rsuite/rsuite/issues/3907)) ([58212fa](https://github.com/rsuite/rsuite/commit/58212fa9a1f2a642289877c888164f880234d7c8))
28
+
29
+
30
+
1
31
  ## [5.68.1](https://github.com/rsuite/rsuite/compare/v5.68.0...v5.68.1) (2024-08-02)
2
32
 
3
33
 
@@ -1805,7 +1805,7 @@
1805
1805
  .rs-calendar-month-view .rs-calendar-month-dropdown {
1806
1806
  display: block;
1807
1807
  }
1808
- .rs-calendar-month-view .rs-calendar-month-dropdown-content {
1808
+ .rs-calendar-month-view .rs-calendar-month-dropdown-scroll {
1809
1809
  -webkit-animation: 0.3s linear slideDown;
1810
1810
  animation: 0.3s linear slideDown;
1811
1811
  }
@@ -464,7 +464,7 @@
464
464
  display: block;
465
465
  }
466
466
 
467
- .rs-calendar-month-view &-content {
467
+ .rs-calendar-month-view &-scroll {
468
468
  animation: 0.3s linear slideDown;
469
469
  }
470
470
 
@@ -2533,7 +2533,7 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
2533
2533
  .rs-calendar-month-view .rs-calendar-month-dropdown {
2534
2534
  display: block;
2535
2535
  }
2536
- .rs-calendar-month-view .rs-calendar-month-dropdown-content {
2536
+ .rs-calendar-month-view .rs-calendar-month-dropdown-scroll {
2537
2537
  -webkit-animation: 0.3s linear slideDown;
2538
2538
  animation: 0.3s linear slideDown;
2539
2539
  }
@@ -2533,7 +2533,7 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
2533
2533
  .rs-calendar-month-view .rs-calendar-month-dropdown {
2534
2534
  display: block;
2535
2535
  }
2536
- .rs-calendar-month-view .rs-calendar-month-dropdown-content {
2536
+ .rs-calendar-month-view .rs-calendar-month-dropdown-scroll {
2537
2537
  -webkit-animation: 0.3s linear slideDown;
2538
2538
  animation: 0.3s linear slideDown;
2539
2539
  }
package/README.md CHANGED
@@ -64,7 +64,7 @@ More guides on how to get started are available [here](https://rsuitejs.com/guid
64
64
 
65
65
  ## Documentation
66
66
 
67
- It's the https://rsuitejs.com website for the latest version of React Suite. For older versions head over here
67
+ It's the https://rsuitejs.com website for the latest version of React Suite. For older versions head over here:
68
68
 
69
69
  - [4.x documentation](https://v4.rsuitejs.com/)
70
70
  - [3.x documentation](https://v3.rsuitejs.com/)
@@ -119,7 +119,7 @@ These great services help us to build and maintain the project.
119
119
 
120
120
  ## Supporting React Suite
121
121
 
122
- If you like React Suite, you can show your support by either
122
+ If you like React Suite, you can show your support by:
123
123
 
124
124
  - Starring this repo
125
125
  - [Leaving a comment here][issues-11] if you are using React Suite in your project (like we do :smile:)
@@ -467,7 +467,7 @@
467
467
  border-right: 1px solid #f2f2f5;
468
468
  border-right: 1px solid var(--rs-table-border-color);
469
469
  }
470
- .rs-table-row:not(.rs-table-row-rowspan) {
470
+ .rs-table:not(.rs-table-has-rowspan) .rs-table-row {
471
471
  border-bottom: 1px solid #f2f2f5;
472
472
  border-bottom: 1px solid var(--rs-table-border-color);
473
473
  }
@@ -340,7 +340,7 @@
340
340
  }
341
341
  }
342
342
 
343
- .rs-table-row:not(.rs-table-row-rowspan) {
343
+ .rs-table:not(.rs-table-has-rowspan) .rs-table-row {
344
344
  border-bottom: 1px solid var(--rs-table-border-color);
345
345
  }
346
346
 
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import CalendarContainer from './CalendarContainer';
3
- import { CalendarLocale } from '../locales';
4
- import { RsRefForwardingComponent, WithAsProps } from '../internals/types';
3
+ import type { CalendarLocale } from '../locales';
4
+ import type { RsRefForwardingComponent, WithAsProps } from '../internals/types';
5
+ import type { MonthDropdownProps } from './CalendarContext';
5
6
  export interface CalendarProps extends WithAsProps {
6
7
  /**
7
8
  * Controlled value
@@ -38,6 +39,10 @@ export interface CalendarProps extends WithAsProps {
38
39
  * @default 0
39
40
  */
40
41
  weekStart?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
42
+ /**
43
+ * The props for the Month Dropdown component.
44
+ */
45
+ monthDropdownProps?: MonthDropdownProps;
41
46
  /**
42
47
  * Callback fired before the value changed
43
48
  */
@@ -10,10 +10,10 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _isSameMonth = _interopRequireDefault(require("date-fns/isSameMonth"));
12
12
  var _CalendarContainer = _interopRequireDefault(require("./CalendarContainer"));
13
+ var _useCalendarDate2 = _interopRequireDefault(require("./useCalendarDate"));
13
14
  var _Button = _interopRequireDefault(require("../Button"));
14
15
  var _CustomProvider = require("../CustomProvider");
15
16
  var _hooks = require("../internals/hooks");
16
- var _useCalendarDate2 = _interopRequireDefault(require("./useCalendarDate"));
17
17
  var _excluded = ["as", "bordered", "className", "classPrefix", "compact", "defaultValue", "isoWeek", "weekStart", "locale", "onChange", "onMonthChange", "onSelect", "renderCell", "value", "cellClassName"];
18
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -2,6 +2,7 @@ import React, { HTMLAttributes } from 'react';
2
2
  import { CalendarHeaderProps } from './CalendarHeader';
3
3
  import { RsRefForwardingComponent, WithAsProps } from '../internals/types';
4
4
  import { CalendarLocale } from '../locales';
5
+ import { MonthDropdownProps } from './CalendarContext';
5
6
  import { CalendarState } from './useCalendarState';
6
7
  export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onChange' | 'onMouseMove'>, CalendarHeaderProps {
7
8
  /**
@@ -91,6 +92,10 @@ export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivE
91
92
  * @see https://rsuitejs.com/guide/i18n/#calendar
92
93
  */
93
94
  locale: CalendarLocale;
95
+ /**
96
+ * The props for the Month Dropdown component.
97
+ */
98
+ monthDropdownProps?: MonthDropdownProps;
94
99
  /**
95
100
  * Callback after the date has changed
96
101
  */
@@ -7,7 +7,6 @@ exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
9
  var _react = _interopRequireWildcard(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
10
  var _pick = _interopRequireDefault(require("lodash/pick"));
12
11
  var _MonthDropdown = _interopRequireDefault(require("./MonthDropdown"));
13
12
  var _TimeDropdown = _interopRequireDefault(require("./TimeDropdown"));
@@ -18,7 +17,7 @@ var _date = require("../internals/utils/date");
18
17
  var _CalendarContext = require("./CalendarContext");
19
18
  var _useCalendarState2 = _interopRequireWildcard(require("./useCalendarState"));
20
19
  var _AngleUp = _interopRequireDefault(require("@rsuite/icons/legacy/AngleUp"));
21
- var _excluded = ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "isoWeek", "weekStart", "targetId", "limitEndYear", "limitStartYear", "locale", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "cellClassName", "renderCell", "renderCellOnPicker", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"];
20
+ var _excluded = ["as", "className", "classPrefix", "calendarDate", "dateRange", "disabledBackward", "defaultState", "disabledForward", "format", "hoverRangeValue", "inline", "isoWeek", "weekStart", "targetId", "limitEndYear", "limitStartYear", "locale", "monthDropdownProps", "showMeridian", "showWeekNumbers", "cellClassName", "disabledDate", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "renderCell", "renderCellOnPicker", "renderTitle", "renderToolbar"];
22
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
23
  var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -27,13 +26,14 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
27
26
  className = props.className,
28
27
  _props$classPrefix = props.classPrefix,
29
28
  classPrefix = _props$classPrefix === void 0 ? 'calendar' : _props$classPrefix,
29
+ calendarDateProp = props.calendarDate,
30
30
  dateRange = props.dateRange,
31
31
  disabledBackward = props.disabledBackward,
32
32
  defaultState = props.defaultState,
33
- disabledDate = props.disabledDate,
34
33
  disabledForward = props.disabledForward,
35
34
  format = props.format,
36
35
  hoverRangeValue = props.hoverRangeValue,
36
+ inline = props.inline,
37
37
  _props$isoWeek = props.isoWeek,
38
38
  isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
39
39
  _props$weekStart = props.weekStart,
@@ -42,6 +42,11 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
42
42
  limitEndYear = props.limitEndYear,
43
43
  limitStartYear = props.limitStartYear,
44
44
  locale = props.locale,
45
+ monthDropdownProps = props.monthDropdownProps,
46
+ showMeridian = props.showMeridian,
47
+ showWeekNumbers = props.showWeekNumbers,
48
+ cellClassName = props.cellClassName,
49
+ disabledDate = props.disabledDate,
45
50
  onChangeMonth = props.onChangeMonth,
46
51
  onChangeTime = props.onChangeTime,
47
52
  onMouseMove = props.onMouseMove,
@@ -51,15 +56,10 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
51
56
  onToggleMeridian = props.onToggleMeridian,
52
57
  onToggleMonthDropdown = props.onToggleMonthDropdown,
53
58
  onToggleTimeDropdown = props.onToggleTimeDropdown,
54
- calendarDateProp = props.calendarDate,
55
- cellClassName = props.cellClassName,
56
59
  renderCell = props.renderCell,
57
60
  renderCellOnPicker = props.renderCellOnPicker,
58
61
  renderTitle = props.renderTitle,
59
62
  renderToolbar = props.renderToolbar,
60
- showMeridian = props.showMeridian,
61
- showWeekNumbers = props.showWeekNumbers,
62
- inline = props.inline,
63
63
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
64
64
  var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
65
65
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -132,23 +132,24 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
132
132
  var contextValue = {
133
133
  date: calendarDate,
134
134
  dateRange: dateRange,
135
- disabledDate: isDateDisabled,
136
135
  format: format,
137
136
  hoverRangeValue: hoverRangeValue,
138
- inSameMonth: inSameThisMonthDate,
137
+ inline: inline,
139
138
  isoWeek: isoWeek,
140
139
  weekStart: weekStart,
141
140
  targetId: targetId,
142
141
  locale: locale,
142
+ showWeekNumbers: showWeekNumbers,
143
+ monthDropdownProps: monthDropdownProps,
144
+ cellClassName: cellClassName,
145
+ disabledDate: isDateDisabled,
146
+ inSameMonth: inSameThisMonthDate,
143
147
  onChangeMonth: handleChangeMonth,
144
148
  onChangeTime: onChangeTime,
145
149
  onMouseMove: onMouseMove,
146
150
  onSelect: onSelect,
147
- cellClassName: cellClassName,
148
151
  renderCell: renderCell,
149
- renderCellOnPicker: renderCellOnPicker,
150
- showWeekNumbers: showWeekNumbers,
151
- inline: inline
152
+ renderCellOnPicker: renderCellOnPicker
152
153
  };
153
154
  return /*#__PURE__*/_react.default.createElement(_CalendarContext.CalendarProvider, {
154
155
  value: contextValue
@@ -187,34 +188,4 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
187
188
  }, /*#__PURE__*/_react.default.createElement(_AngleUp.default, null))));
188
189
  });
189
190
  CalendarContainer.displayName = 'CalendarContainer';
190
- CalendarContainer.propTypes = {
191
- className: _propTypes.default.string,
192
- classPrefix: _propTypes.default.string,
193
- disabledDate: _propTypes.default.func,
194
- disabledHours: _propTypes.default.func,
195
- disabledMinutes: _propTypes.default.func,
196
- disabledSeconds: _propTypes.default.func,
197
- format: _propTypes.default.string,
198
- hideHours: _propTypes.default.func,
199
- hideMinutes: _propTypes.default.func,
200
- hideSeconds: _propTypes.default.func,
201
- isoWeek: _propTypes.default.bool,
202
- limitEndYear: _propTypes.default.number,
203
- limitStartYear: _propTypes.default.number,
204
- locale: _propTypes.default.object,
205
- onChangeMonth: _propTypes.default.func,
206
- onChangeTime: _propTypes.default.func,
207
- onMoveBackward: _propTypes.default.func,
208
- onMoveForward: _propTypes.default.func,
209
- onSelect: _propTypes.default.func,
210
- onToggleMeridian: _propTypes.default.func,
211
- onToggleMonthDropdown: _propTypes.default.func,
212
- onToggleTimeDropdown: _propTypes.default.func,
213
- calendarDate: _propTypes.default.instanceOf(Date),
214
- renderCell: _propTypes.default.func,
215
- renderTitle: _propTypes.default.func,
216
- renderToolbar: _propTypes.default.func,
217
- showMeridian: _propTypes.default.bool,
218
- showWeekNumbers: _propTypes.default.bool
219
- };
220
191
  var _default = exports.default = CalendarContainer;
@@ -1,6 +1,130 @@
1
1
  import React from 'react';
2
- import { CalendarContextValue } from './types';
2
+ import { CalendarLocale } from '../locales';
3
+ import { format } from '../internals/utils/date';
4
+ import type { FixedSizeListProps } from '../internals/Windowing';
5
+ /**
6
+ * Represents the inner context value for the Calendar component.
7
+ */
8
+ export interface CalendarInnerContextValue {
9
+ /**
10
+ * The current date of the calendar.
11
+ */
12
+ date: Date;
13
+ /**
14
+ * The date range selected in the calendar.
15
+ */
16
+ dateRange?: Date[];
17
+ /**
18
+ * The format used for displaying dates.
19
+ */
20
+ format?: string;
21
+ /**
22
+ * The hover range value in the calendar.
23
+ */
24
+ hoverRangeValue?: [Date, Date];
25
+ /**
26
+ * Indicates whether the calendar is inline or not.
27
+ */
28
+ inline?: boolean;
29
+ /**
30
+ * Indicates whether the ISO week numbers should be shown in the calendar.
31
+ */
32
+ isoWeek: boolean;
33
+ /**
34
+ * The start day of the week in the calendar.
35
+ * 0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday
36
+ */
37
+ weekStart: 0 | 1 | 2 | 3 | 4 | 5 | 6;
38
+ /**
39
+ * Indicates whether week numbers should be shown in the calendar.
40
+ */
41
+ showWeekNumbers?: boolean;
42
+ /**
43
+ * The target ID of the calendar.
44
+ */
45
+ targetId?: string;
46
+ /**
47
+ * The props for the Month Dropdown component.
48
+ */
49
+ monthDropdownProps?: MonthDropdownProps;
50
+ /**
51
+ * A function that determines if a date is disabled in the calendar.
52
+ * @param date - The date to check.
53
+ * @param selectRangeValue - The selected date range.
54
+ * @param type - The type of the calendar.
55
+ * @returns True if the date is disabled, false otherwise.
56
+ */
57
+ disabledDate?: (date: Date, selectRangeValue?: Date[], type?: string) => boolean;
58
+ /**
59
+ * A function that determines if a date is in the same month as the current date in the calendar.
60
+ * @param date - The date to check.
61
+ * @returns True if the date is in the same month, false otherwise.
62
+ */
63
+ inSameMonth?: (date: Date) => boolean;
64
+ /**
65
+ * A callback function that is called when the month is changed in the calendar.
66
+ * @param nextPageDate - The next page date.
67
+ * @param event - The mouse event.
68
+ */
69
+ onChangeMonth?: (nextPageDate: Date, event: React.MouseEvent) => void;
70
+ /**
71
+ * A callback function that is called when the time is changed in the calendar.
72
+ * @param nextPageTime - The next page time.
73
+ * @param event - The mouse event.
74
+ */
75
+ onChangeTime?: (nextPageTime: Date, event: React.MouseEvent) => void;
76
+ /**
77
+ * A callback function that is called when the mouse moves over a date in the calendar.
78
+ * @param date - The date.
79
+ */
80
+ onMouseMove?: (date: Date) => void;
81
+ /**
82
+ * A callback function that is called when a date is selected in the calendar.
83
+ * @param date - The selected date.
84
+ * @param event - The mouse event.
85
+ */
86
+ onSelect?: (date: Date, event: React.MouseEvent) => void;
87
+ /**
88
+ * A function that renders the cell content in the calendar.
89
+ * @param date - The date.
90
+ * @returns The rendered cell content.
91
+ */
92
+ renderCell?: (date: Date) => React.ReactNode;
93
+ /**
94
+ * A function that renders the cell content in the picker.
95
+ * @param date - The date.
96
+ * @returns The rendered cell content.
97
+ */
98
+ renderCellOnPicker?: (date: Date) => React.ReactNode;
99
+ /**
100
+ * A function that returns the class name for a cell in the calendar.
101
+ * @param date - The date.
102
+ * @returns The class name for the cell.
103
+ */
104
+ cellClassName?: (date: Date) => string | undefined;
105
+ }
106
+ /**
107
+ * Props for the MonthDropdown component.
108
+ */
109
+ export interface MonthDropdownProps extends Partial<FixedSizeListProps> {
110
+ /**
111
+ * The HTML element or React component to render as the root element of the MonthDropdown.
112
+ */
113
+ as?: React.ElementType;
114
+ /**
115
+ * The HTML element or React component to render as each item in the MonthDropdown.
116
+ */
117
+ itemAs?: React.ElementType;
118
+ /**
119
+ * The CSS class name to apply to each item in the MonthDropdown.
120
+ */
121
+ itemClassName?: string;
122
+ }
123
+ export interface CalendarContextValue extends CalendarInnerContextValue {
124
+ locale: CalendarLocale;
125
+ formatDate?: typeof format;
126
+ }
3
127
  declare const CalendarContext: React.Context<CalendarContextValue>;
4
- export default CalendarContext;
5
128
  export declare const CalendarProvider: React.Provider<CalendarContextValue>;
6
129
  export declare const useCalendarContext: () => CalendarContextValue;
130
+ export default CalendarContext;
@@ -6,9 +6,17 @@ exports.useCalendarContext = exports.default = exports.CalendarProvider = void 0
6
6
  var _react = _interopRequireWildcard(require("react"));
7
7
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
8
8
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
9
+ /**
10
+ * Represents the inner context value for the Calendar component.
11
+ */
12
+
13
+ /**
14
+ * Props for the MonthDropdown component.
15
+ */
16
+
9
17
  var CalendarContext = /*#__PURE__*/_react.default.createContext({});
10
- var _default = exports.default = CalendarContext;
11
18
  var CalendarProvider = exports.CalendarProvider = CalendarContext.Provider;
12
19
  var useCalendarContext = exports.useCalendarContext = function useCalendarContext() {
13
- return (0, _react.useContext)(CalendarContext) || {};
14
- };
20
+ return (0, _react.useContext)(CalendarContext);
21
+ };
22
+ var _default = exports.default = CalendarContext;
@@ -7,7 +7,6 @@ exports.default = void 0;
7
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
9
  var _react = _interopRequireWildcard(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
10
  var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"));
12
11
  var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
13
12
  var _IconButton = _interopRequireDefault(require("../IconButton"));
@@ -46,7 +45,8 @@ var CalendarHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref
46
45
  date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
47
46
  format = _useCalendarContext.format,
48
47
  inline = _useCalendarContext.inline,
49
- disabledDate = _useCalendarContext.disabledDate;
48
+ disabledDate = _useCalendarContext.disabledDate,
49
+ targetId = _useCalendarContext.targetId;
50
50
  var _useDateRangePickerCo = (0, _DateRangePickerContext.useDateRangePickerContext)(),
51
51
  isSelectedIdle = _useDateRangePickerCo.isSelectedIdle;
52
52
  var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
@@ -108,6 +108,7 @@ var CalendarHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref
108
108
  icon: /*#__PURE__*/_react.default.createElement(_AngleLeft.default, null)
109
109
  })), /*#__PURE__*/_react.default.createElement(_Button.default, (0, _extends2.default)({}, btnProps, {
110
110
  "aria-label": "Select month",
111
+ id: targetId ? targetId + "-grid-label" : undefined,
111
112
  className: dateTitleClasses,
112
113
  onClick: onToggleMonthDropdown
113
114
  }), renderTitle()), /*#__PURE__*/_react.default.createElement(_IconButton.default, (0, _extends2.default)({}, btnProps, {
@@ -148,22 +149,4 @@ var CalendarHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref
148
149
  }))), renderToolbar === null || renderToolbar === void 0 ? void 0 : renderToolbar(date));
149
150
  });
150
151
  CalendarHeader.displayName = 'CalendarHeader';
151
- CalendarHeader.propTypes = {
152
- className: _propTypes.default.string,
153
- classPrefix: _propTypes.default.string,
154
- disabledBackward: _propTypes.default.bool,
155
- disabledForward: _propTypes.default.bool,
156
- disabledTime: _propTypes.default.func,
157
- onMoveBackward: _propTypes.default.func,
158
- onMoveForward: _propTypes.default.func,
159
- onToggleMeridian: _propTypes.default.func,
160
- onToggleMonthDropdown: _propTypes.default.func,
161
- onToggleTimeDropdown: _propTypes.default.func,
162
- renderTitle: _propTypes.default.func,
163
- renderToolbar: _propTypes.default.func,
164
- showDate: _propTypes.default.bool,
165
- showMeridian: _propTypes.default.bool,
166
- showMonth: _propTypes.default.bool,
167
- showTime: _propTypes.default.bool
168
- };
169
152
  var _default = exports.default = CalendarHeader;
@@ -13,7 +13,8 @@ var _Windowing = require("../internals/Windowing");
13
13
  var _hooks = require("../internals/hooks");
14
14
  var _MonthDropdownItem = _interopRequireDefault(require("./MonthDropdownItem"));
15
15
  var _CalendarContext = require("./CalendarContext");
16
- var _excluded = ["as", "className", "classPrefix", "limitStartYear", "limitEndYear", "show", "height", "width", "disabledMonth"];
16
+ var _excluded = ["as", "className", "classPrefix", "limitStartYear", "limitEndYear", "show", "height", "width", "disabledMonth"],
17
+ _excluded2 = ["className", "itemClassName", "as", "itemAs"];
17
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
20
  var monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
@@ -45,7 +46,8 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
45
46
  var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
46
47
  _useCalendarContext$d = _useCalendarContext.date,
47
48
  date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
48
- targetId = _useCalendarContext.targetId;
49
+ targetId = _useCalendarContext.targetId,
50
+ monthDropdownProps = _useCalendarContext.monthDropdownProps;
49
51
  var _useClassNames = (0, _hooks.useClassNames)(classPrefix),
50
52
  prefix = _useClassNames.prefix,
51
53
  merge = _useClassNames.merge,
@@ -62,9 +64,16 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
62
64
  }
63
65
  return false;
64
66
  }, [disabledMonth]);
65
- var rowRenderer = (0, _react.useCallback)(function (_ref) {
66
- var index = _ref.index,
67
- style = _ref.style;
67
+ var _ref = monthDropdownProps || {},
68
+ listClassName = _ref.className,
69
+ itemClassName = _ref.itemClassName,
70
+ List = _ref.as,
71
+ _ref$itemAs = _ref.itemAs,
72
+ Item = _ref$itemAs === void 0 ? 'div' : _ref$itemAs,
73
+ restListProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
74
+ var rowRenderer = (0, _react.useCallback)(function (_ref2) {
75
+ var index = _ref2.index,
76
+ style = _ref2.style;
68
77
  var selectedMonth = (0, _date.getMonth)(date);
69
78
  var selectedYear = (0, _date.getYear)(date);
70
79
  var year = startYear + index;
@@ -72,14 +81,13 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
72
81
  var titleClassName = prefix('year', {
73
82
  'year-active': isSelectedYear
74
83
  });
75
- var rowClassName = merge(prefix('row'), {
76
- 'first-row': index === 0,
77
- 'last-row': index === rowCount - 1
78
- });
79
- return /*#__PURE__*/_react.default.createElement("div", {
80
- className: rowClassName,
84
+ return /*#__PURE__*/_react.default.createElement(Item, {
81
85
  role: "row",
82
86
  "aria-label": "" + year,
87
+ className: merge(itemClassName, prefix('row'), {
88
+ 'first-row': index === 0,
89
+ 'last-row': index === rowCount - 1
90
+ }),
83
91
  style: style
84
92
  }, /*#__PURE__*/_react.default.createElement("div", {
85
93
  className: titleClassName,
@@ -95,40 +103,42 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
95
103
  year: year
96
104
  });
97
105
  })));
98
- }, [date, isMonthDisabled, merge, prefix, rowCount, startYear]);
106
+ }, [Item, date, isMonthDisabled, merge, prefix, itemClassName, rowCount, startYear]);
99
107
  var classes = merge(className, withClassPrefix(), {
100
108
  show: show
101
109
  });
102
110
  var itemSize = 75;
103
111
  var initialItemIndex = (0, _date.getYear)(date) - startYear;
104
112
  var initialScrollOffset = itemSize * initialItemIndex;
113
+ if (!show) {
114
+ return null;
115
+ }
105
116
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
117
+ ref: ref,
106
118
  role: "grid",
107
- "aria-label": "Select month",
108
119
  tabIndex: -1,
109
- id: targetId ? targetId + "-" + classPrefix : undefined
110
- }, rest, {
111
- ref: ref,
112
- className: classes
113
- }), /*#__PURE__*/_react.default.createElement("div", {
114
- className: prefix('content')
115
- }, /*#__PURE__*/_react.default.createElement("div", {
120
+ className: classes,
121
+ "aria-labelledby": targetId ? targetId + "-grid-label" : undefined,
122
+ id: targetId ? targetId + "-calendar-month-dropdown" : undefined,
123
+ "data-testid": "calendar-month-dropdown"
124
+ }, rest), /*#__PURE__*/_react.default.createElement("div", {
116
125
  className: prefix('scroll')
117
- }, show && /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
126
+ }, /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
118
127
  defaultHeight: defaultHeight,
119
128
  defaultWidth: defaultWidth
120
- }, function (_ref2) {
121
- var height = _ref2.height,
122
- width = _ref2.width;
123
- return /*#__PURE__*/_react.default.createElement(_Windowing.FixedSizeList, {
124
- className: prefix('row-wrapper'),
129
+ }, function (_ref3) {
130
+ var height = _ref3.height,
131
+ width = _ref3.width;
132
+ return /*#__PURE__*/_react.default.createElement(_Windowing.FixedSizeList, (0, _extends2.default)({
133
+ className: merge(prefix('row-wrapper'), listClassName),
125
134
  width: width || defaultWidth,
126
135
  height: height || defaultHeight,
127
136
  itemSize: itemSize,
128
137
  itemCount: rowCount,
129
- initialScrollOffset: initialScrollOffset
130
- }, rowRenderer);
131
- }))));
138
+ initialScrollOffset: initialScrollOffset,
139
+ innerElementType: List
140
+ }, restListProps), rowRenderer);
141
+ })));
132
142
  });
133
143
  MonthDropdown.displayName = 'MonthDropdown';
134
144
  var _default = exports.default = MonthDropdown;
@@ -9,7 +9,6 @@ exports.getRanges = getRanges;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
12
  var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
14
13
  var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
15
14
  var _partial = _interopRequireDefault(require("lodash/partial"));
@@ -199,17 +198,4 @@ var TimeDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
199
198
  }, renderColumn('hours', time.hours), renderColumn('minutes', time.minutes), renderColumn('seconds', time.seconds))));
200
199
  });
201
200
  TimeDropdown.displayName = 'TimeDropdown';
202
- TimeDropdown.propTypes = {
203
- show: _propTypes.default.bool,
204
- showMeridian: _propTypes.default.bool,
205
- className: _propTypes.default.string,
206
- classPrefix: _propTypes.default.string,
207
- disabledDate: _propTypes.default.func,
208
- disabledHours: _propTypes.default.func,
209
- disabledMinutes: _propTypes.default.func,
210
- disabledSeconds: _propTypes.default.func,
211
- hideHours: _propTypes.default.func,
212
- hideMinutes: _propTypes.default.func,
213
- hideSeconds: _propTypes.default.func
214
- };
215
201
  var _default = exports.default = TimeDropdown;