rsuite 5.18.0-beta.3 → 5.18.1-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Calendar/styles/index.less +30 -11
  3. package/DateRangePicker/styles/index.less +1 -1
  4. package/Nav/styles/index.less +1 -0
  5. package/cjs/Calendar/Calendar.d.ts +20 -55
  6. package/cjs/Calendar/Calendar.js +84 -163
  7. package/cjs/Calendar/CalendarBody.d.ts +4 -0
  8. package/cjs/Calendar/{View.js → CalendarBody.js} +5 -5
  9. package/cjs/Calendar/CalendarContainer.d.ts +61 -0
  10. package/cjs/Calendar/CalendarContainer.js +233 -0
  11. package/cjs/Calendar/{Header.d.ts → CalendarHeader.d.ts} +9 -7
  12. package/cjs/Calendar/{Header.js → CalendarHeader.js} +4 -4
  13. package/cjs/Calendar/Table.js +1 -1
  14. package/cjs/Calendar/TableHeaderRow.js +1 -1
  15. package/cjs/Calendar/TableRow.js +1 -1
  16. package/cjs/Calendar/index.d.ts +6 -5
  17. package/cjs/Calendar/index.js +8 -7
  18. package/cjs/Calendar/useCalendarState.d.ts +11 -0
  19. package/cjs/Calendar/useCalendarState.js +39 -0
  20. package/cjs/DatePicker/DatePicker.js +10 -47
  21. package/cjs/DatePicker/utils.d.ts +1 -8
  22. package/cjs/DatePicker/utils.js +24 -64
  23. package/cjs/DateRangePicker/Calendar.d.ts +1 -1
  24. package/cjs/DateRangePicker/Calendar.js +2 -17
  25. package/cjs/DateRangePicker/DateRangePicker.js +3 -3
  26. package/cjs/DateRangePicker/utils.d.ts +1 -3
  27. package/cjs/DateRangePicker/utils.js +14 -42
  28. package/cjs/List/ListItem.d.ts +1 -0
  29. package/cjs/List/ListItem.js +5 -2
  30. package/cjs/Stack/Stack.js +1 -1
  31. package/cjs/index.d.ts +1 -1
  32. package/cjs/utils/BrowserDetection.d.ts +7 -0
  33. package/cjs/utils/BrowserDetection.js +52 -2
  34. package/cjs/utils/dateUtils.d.ts +4 -4
  35. package/cjs/utils/dateUtils.js +9 -9
  36. package/dist/rsuite-rtl.css +43 -20
  37. package/dist/rsuite-rtl.min.css +1 -1
  38. package/dist/rsuite-rtl.min.css.map +1 -1
  39. package/dist/rsuite.css +43 -20
  40. package/dist/rsuite.js +51 -40
  41. package/dist/rsuite.js.map +1 -1
  42. package/dist/rsuite.min.css +1 -1
  43. package/dist/rsuite.min.css.map +1 -1
  44. package/dist/rsuite.min.js +1 -1
  45. package/dist/rsuite.min.js.map +1 -1
  46. package/esm/Calendar/Calendar.d.ts +20 -55
  47. package/esm/Calendar/Calendar.js +82 -154
  48. package/esm/Calendar/CalendarBody.d.ts +4 -0
  49. package/esm/Calendar/{View.js → CalendarBody.js} +5 -5
  50. package/esm/Calendar/CalendarContainer.d.ts +61 -0
  51. package/esm/Calendar/CalendarContainer.js +208 -0
  52. package/esm/Calendar/{Header.d.ts → CalendarHeader.d.ts} +9 -7
  53. package/esm/Calendar/{Header.js → CalendarHeader.js} +4 -4
  54. package/esm/Calendar/Table.js +1 -1
  55. package/esm/Calendar/TableHeaderRow.js +1 -1
  56. package/esm/Calendar/TableRow.js +1 -1
  57. package/esm/Calendar/index.d.ts +6 -5
  58. package/esm/Calendar/index.js +5 -4
  59. package/esm/Calendar/useCalendarState.d.ts +11 -0
  60. package/esm/Calendar/useCalendarState.js +31 -0
  61. package/esm/DatePicker/DatePicker.js +10 -46
  62. package/esm/DatePicker/utils.d.ts +1 -8
  63. package/esm/DatePicker/utils.js +23 -57
  64. package/esm/DateRangePicker/Calendar.d.ts +1 -1
  65. package/esm/DateRangePicker/Calendar.js +2 -16
  66. package/esm/DateRangePicker/DateRangePicker.js +5 -5
  67. package/esm/DateRangePicker/utils.d.ts +1 -3
  68. package/esm/DateRangePicker/utils.js +13 -33
  69. package/esm/List/ListItem.d.ts +1 -0
  70. package/esm/List/ListItem.js +5 -2
  71. package/esm/Stack/Stack.js +2 -2
  72. package/esm/index.d.ts +1 -1
  73. package/esm/utils/BrowserDetection.d.ts +7 -0
  74. package/esm/utils/BrowserDetection.js +41 -0
  75. package/esm/utils/dateUtils.d.ts +4 -4
  76. package/esm/utils/dateUtils.js +4 -4
  77. package/package.json +1 -1
  78. package/cjs/Calendar/CalendarPanel.d.ts +0 -26
  79. package/cjs/Calendar/CalendarPanel.js +0 -139
  80. package/cjs/Calendar/View.d.ts +0 -4
  81. package/esm/Calendar/CalendarPanel.d.ts +0 -26
  82. package/esm/Calendar/CalendarPanel.js +0 -119
  83. package/esm/Calendar/View.d.ts +0 -4
@@ -4,56 +4,41 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  exports.__esModule = true;
6
6
  exports.getDefaultRanges = getDefaultRanges;
7
- exports.useCalendarState = exports.getRanges = void 0;
8
-
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
7
+ exports.getRanges = void 0;
10
8
 
11
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
10
 
13
- var _react = require("react");
14
-
15
- var _utils = require("../DateRangePicker/utils");
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
16
12
 
17
13
  var _dateUtils = require("../utils/dateUtils");
18
14
 
19
- var _Calendar = require("../Calendar");
20
-
21
- function getDefaultRanges(date) {
22
- var todayDate = new Date();
15
+ function getDefaultRanges(value) {
16
+ var today = new Date();
23
17
  /**
24
- * Is Date[] type
25
18
  * If it is an array type, it returns the default shortcut key suitable for DateRangePicker Toolbar,
26
19
  * otherwise it returns the default shortcut key suitable for DatePicker Toolbar
27
20
  */
28
21
 
29
- var isRange = date instanceof Array;
30
- var rangeKeys = ['today', 'yesterday'];
31
-
32
- function rangeIterator(label) {
33
- var defaultRange = {
34
- today: isRange ? {
35
- value: [(0, _utils.setTimingMargin)(todayDate), (0, _utils.setTimingMargin)(todayDate, 'right')]
36
- } : {
37
- closeOverlay: true,
38
- value: todayDate
39
- },
40
- yesterday: isRange ? {
41
- value: [(0, _utils.setTimingMargin)((0, _dateUtils.subDays)(todayDate, 1)), (0, _utils.setTimingMargin)((0, _dateUtils.subDays)(todayDate, 1), 'right')]
42
- } : {
43
- closeOverlay: true,
44
- value: (0, _dateUtils.subDays)(todayDate, 1)
45
- },
46
- last7Days: {
47
- value: [(0, _utils.setTimingMargin)((0, _dateUtils.subDays)(todayDate, 6)), (0, _utils.setTimingMargin)(todayDate, 'right')]
48
- }
49
- };
50
- return (0, _extends2.default)({
51
- label: label
52
- }, defaultRange[label]);
22
+ if (value instanceof Array) {
23
+ return [{
24
+ label: 'today',
25
+ value: [(0, _dateUtils.startOfDay)(today), (0, _dateUtils.endOfDay)(today)]
26
+ }, {
27
+ label: 'yesterday',
28
+ value: [(0, _dateUtils.startOfDay)((0, _dateUtils.subDays)(today, 1)), (0, _dateUtils.endOfDay)((0, _dateUtils.subDays)(today, 1))]
29
+ }, {
30
+ label: 'last7Days',
31
+ value: [(0, _dateUtils.startOfDay)((0, _dateUtils.subDays)(today, 6)), (0, _dateUtils.endOfDay)(today)]
32
+ }];
53
33
  }
54
34
 
55
- isRange && rangeKeys.push('last7Days');
56
- return rangeKeys.map(rangeIterator);
35
+ return [{
36
+ label: 'today',
37
+ value: today
38
+ }, {
39
+ label: 'yesterday',
40
+ value: (0, _dateUtils.subDays)(today, 1)
41
+ }];
57
42
  }
58
43
 
59
44
  var generateRangesIterator = function generateRangesIterator(_ref) {
@@ -61,9 +46,8 @@ var generateRangesIterator = function generateRangesIterator(_ref) {
61
46
  return function (_ref2) {
62
47
  var value = _ref2.value,
63
48
  rest = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["value"]);
64
- value = typeof value === 'function' ? value(calendarDate) : value;
65
49
  return (0, _extends2.default)({
66
- value: value
50
+ value: typeof value === 'function' ? value(calendarDate) : value
67
51
  }, rest);
68
52
  };
69
53
  };
@@ -82,28 +66,4 @@ var getRanges = function getRanges(_ref3) {
82
66
  }));
83
67
  };
84
68
 
85
- exports.getRanges = getRanges;
86
-
87
- var useCalendarState = function useCalendarState() {
88
- var _useState = (0, _react.useState)(),
89
- calendarState = _useState[0],
90
- setCalendarState = _useState[1];
91
-
92
- var reset = (0, _react.useCallback)(function () {
93
- setCalendarState(undefined);
94
- }, []);
95
- var openMonth = (0, _react.useCallback)(function () {
96
- setCalendarState(_Calendar.CalendarState.DROP_MONTH);
97
- }, []);
98
- var openTime = (0, _react.useCallback)(function () {
99
- setCalendarState(_Calendar.CalendarState.DROP_TIME);
100
- }, []);
101
- return {
102
- calendarState: calendarState,
103
- reset: reset,
104
- openMonth: openMonth,
105
- openTime: openTime
106
- };
107
- };
108
-
109
- exports.useCalendarState = useCalendarState;
69
+ exports.getRanges = getRanges;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { CalendarProps as CalendarCoreProps } from '../Calendar/Calendar';
2
+ import { CalendarProps as CalendarCoreProps } from '../Calendar/CalendarContainer';
3
3
  import { DateRange } from './types';
4
4
  import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
5
5
  import { DatePickerLocale } from '../locales';
@@ -17,13 +17,13 @@ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _dateUtils = require("../utils/dateUtils");
19
19
 
20
- var _Calendar = _interopRequireWildcard(require("../Calendar/Calendar"));
20
+ var _CalendarContainer = _interopRequireDefault(require("../Calendar/CalendarContainer"));
21
21
 
22
22
  var _utils = require("../utils");
23
23
 
24
24
  var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
25
25
  var _props$as = props.as,
26
- Component = _props$as === void 0 ? _Calendar.default : _props$as,
26
+ Component = _props$as === void 0 ? _CalendarContainer.default : _props$as,
27
27
  _props$calendarDate = props.calendarDate,
28
28
  calendarDate = _props$calendarDate === void 0 ? [new Date(), (0, _dateUtils.addMonths)(new Date(), 1)] : _props$calendarDate,
29
29
  _props$format = props.format,
@@ -38,11 +38,6 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
38
38
  _props$value = props.value,
39
39
  value = _props$value === void 0 ? [] : _props$value,
40
40
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "onToggleMeridian", "value"]);
41
-
42
- var _useState = (0, _react.useState)(),
43
- calendarState = _useState[0],
44
- setCalendarState = _useState[1];
45
-
46
41
  var onMoveForward = (0, _react.useCallback)(function (nextPageDate) {
47
42
  onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);
48
43
  }, [index, onChangeCalendarDate]);
@@ -51,7 +46,6 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
51
46
  }, [index, onChangeCalendarDate]);
52
47
  var handleChangePageDate = (0, _react.useCallback)(function (nextPageDate) {
53
48
  onChangeCalendarDate === null || onChangeCalendarDate === void 0 ? void 0 : onChangeCalendarDate(index, nextPageDate);
54
- setCalendarState(undefined);
55
49
  }, [index, onChangeCalendarDate]);
56
50
  var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {
57
51
  onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
@@ -59,12 +53,6 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
59
53
  var handleToggleMeridian = (0, _react.useCallback)(function (event) {
60
54
  onToggleMeridian(index, event);
61
55
  }, [index, onToggleMeridian]);
62
- var toggleMonthDropdown = (0, _react.useCallback)(function () {
63
- setCalendarState(calendarState === _Calendar.CalendarState.DROP_MONTH ? undefined : _Calendar.CalendarState.DROP_MONTH);
64
- }, [calendarState]);
65
- var toggleTimeDropdown = (0, _react.useCallback)(function () {
66
- setCalendarState(calendarState === _Calendar.CalendarState.DROP_TIME ? undefined : _Calendar.CalendarState.DROP_TIME);
67
- }, [calendarState]);
68
56
  var inSameMonth = (0, _react.useCallback)(function (date) {
69
57
  return (0, _dateUtils.isSameMonth)(date, calendarDate[index]);
70
58
  }, [calendarDate, index]);
@@ -82,7 +70,6 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
82
70
  }, [disabledDate, value]);
83
71
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
84
72
  format: format,
85
- calendarState: calendarState,
86
73
  dateRange: value,
87
74
  disabledDate: disabledMonth,
88
75
  inSameMonth: inSameMonth,
@@ -92,8 +79,6 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
92
79
  onChangePageTime: handleChangePageTime,
93
80
  onMoveBackward: handleMoveBackward,
94
81
  onMoveForward: handleMoveForward,
95
- onToggleMonthDropdown: toggleMonthDropdown,
96
- onToggleTimeDropdown: toggleTimeDropdown,
97
82
  onToggleMeridian: handleToggleMeridian,
98
83
  calendarDate: getCalendarDate(),
99
84
  ref: ref
@@ -168,13 +168,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
168
168
 
169
169
  var updateCalendarDateRange = (0, _react.useCallback)(function (value, calendarKey) {
170
170
  var nextValue = value;
171
- var shouldTime = _utils.DateUtils.shouldTime,
171
+ var shouldRenderTime = _utils.DateUtils.shouldRenderTime,
172
172
  getHours = _utils.DateUtils.getHours,
173
173
  getMinutes = _utils.DateUtils.getMinutes,
174
174
  getSeconds = _utils.DateUtils.getSeconds,
175
175
  set = _utils.DateUtils.set;
176
176
 
177
- if (shouldTime(formatStr) && calendarKey === undefined && (value === null || value === void 0 ? void 0 : value.length) === 1 && (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue.length) === 2) {
177
+ if (shouldRenderTime(formatStr) && calendarKey === undefined && (value === null || value === void 0 ? void 0 : value.length) === 1 && (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue.length) === 2) {
178
178
  var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || defaultCalendarValue[1];
179
179
  var _startDate = value[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
180
180
 
@@ -333,7 +333,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
333
333
  var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue); // in `oneTap` mode
334
334
 
335
335
  if (hasDoneSelect.current && oneTap) {
336
- handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);
336
+ handleValueUpdate(event, noHoverRangeValid ? [(0, _dateUtils.startOfDay)(date), (0, _dateUtils.endOfDay)(date)] : hoverRangeValue);
337
337
  hasDoneSelect.current = false;
338
338
  return;
339
339
  } // no preset hover range can use
@@ -1,10 +1,8 @@
1
- import { DateRange, RangeType } from './types';
2
- export declare const setTimingMargin: (date: any, way?: string) => Date;
1
+ import { DateRange } from './types';
3
2
  export declare function getCalendarDate({ value, calendarKey }: {
4
3
  value: [] | [Date] | [Date, Date] | null;
5
4
  calendarKey?: 'start' | 'end';
6
5
  }): DateRange;
7
- export declare const getDefaultRanges: () => RangeType[];
8
6
  export declare const isSameRange: (source: DateRange | null, dest: DateRange | null, format: string) => boolean;
9
7
  export declare const getMonthHoverRange: (date: Date) => DateRange;
10
8
  export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => DateRange;
@@ -2,19 +2,9 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.getCalendarDate = getCalendarDate;
5
- exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = exports.getDefaultRanges = exports.setTimingMargin = void 0;
5
+ exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = void 0;
6
6
 
7
- var _utils = require("../utils");
8
-
9
- var setTimingMargin = function setTimingMargin(date, way) {
10
- if (way === void 0) {
11
- way = 'left';
12
- }
13
-
14
- return way === 'right' ? _utils.DateUtils.endOfDay(date) : _utils.DateUtils.startOfDay(date);
15
- };
16
-
17
- exports.setTimingMargin = setTimingMargin;
7
+ var _dateUtils = require("../utils/dateUtils");
18
8
 
19
9
  function getCalendarDate(_ref) {
20
10
  var _value;
@@ -26,50 +16,32 @@ function getCalendarDate(_ref) {
26
16
  value = (_value = value) !== null && _value !== void 0 ? _value : [];
27
17
 
28
18
  if (value[0] && value[1]) {
29
- var startMonth = _utils.DateUtils.getMonth(value[0]);
30
-
31
- var endMonth = _utils.DateUtils.getMonth(value[1]);
19
+ var startMonth = (0, _dateUtils.getMonth)(value[0]);
20
+ var endMonth = (0, _dateUtils.getMonth)(value[1]);
32
21
 
33
22
  if (calendarKey === 'start') {
34
- return [value[0], startMonth >= endMonth ? _utils.DateUtils.addMonths(value[0], 1) : value[1]];
23
+ return [value[0], startMonth >= endMonth ? (0, _dateUtils.addMonths)(value[0], 1) : value[1]];
35
24
  } else if (calendarKey === 'end') {
36
- return [startMonth >= endMonth ? _utils.DateUtils.addMonths(value[1], -1) : value[0], value[1]];
25
+ return [startMonth >= endMonth ? (0, _dateUtils.addMonths)(value[1], -1) : value[0], value[1]];
37
26
  } // If only the start date
38
27
 
39
28
  } else if (value[0]) {
40
- return [value[0], _utils.DateUtils.addMonths(value[0], 1)];
29
+ return [value[0], (0, _dateUtils.addMonths)(value[0], 1)];
41
30
  }
42
31
 
43
32
  var todayDate = new Date();
44
- return [todayDate, _utils.DateUtils.addMonths(todayDate, 1)];
33
+ return [todayDate, (0, _dateUtils.addMonths)(todayDate, 1)];
45
34
  }
46
35
 
47
- var getDefaultRanges = function getDefaultRanges() {
48
- var todayDate = new Date();
49
- return [{
50
- label: 'today',
51
- value: [setTimingMargin(todayDate), setTimingMargin(todayDate, 'right')]
52
- }, {
53
- label: 'yesterday',
54
- value: [setTimingMargin(_utils.DateUtils.addDays(todayDate, -1)), setTimingMargin(_utils.DateUtils.addDays(todayDate, -1), 'right')]
55
- }, {
56
- label: 'last7Days',
57
- value: [setTimingMargin(_utils.DateUtils.subDays(todayDate, 6)), setTimingMargin(todayDate, 'right')]
58
- }];
59
- };
60
-
61
- exports.getDefaultRanges = getDefaultRanges;
62
-
63
36
  var isSameRange = function isSameRange(source, dest, format) {
64
37
  // If both are null, reguard as same
65
38
  if (null === source && null === dest) return true; // If only one is null, regard as different
66
39
 
67
40
  if (null === source || null === dest) return false;
41
+ var result = (0, _dateUtils.isSameDay)(source[0], dest[0]) && (0, _dateUtils.isSameDay)(source[1], dest[1]);
68
42
 
69
- var result = _utils.DateUtils.isSameDay(source[0], dest[0]) && _utils.DateUtils.isSameDay(source[1], dest[1]);
70
-
71
- if (_utils.DateUtils.shouldTime(format)) {
72
- result && (result = _utils.DateUtils.isSameSecond(source[0], dest[0]) && _utils.DateUtils.isSameSecond(source[1], dest[1]));
43
+ if ((0, _dateUtils.shouldRenderTime)(format)) {
44
+ result && (result = (0, _dateUtils.isSameSecond)(source[0], dest[0]) && (0, _dateUtils.isSameSecond)(source[1], dest[1]));
73
45
  }
74
46
 
75
47
  return result;
@@ -78,7 +50,7 @@ var isSameRange = function isSameRange(source, dest, format) {
78
50
  exports.isSameRange = isSameRange;
79
51
 
80
52
  var getMonthHoverRange = function getMonthHoverRange(date) {
81
- return [_utils.DateUtils.startOfMonth(date), _utils.DateUtils.endOfMonth(date)];
53
+ return [(0, _dateUtils.startOfMonth)(date), (0, _dateUtils.endOfMonth)(date)];
82
54
  };
83
55
 
84
56
  exports.getMonthHoverRange = getMonthHoverRange;
@@ -86,10 +58,10 @@ exports.getMonthHoverRange = getMonthHoverRange;
86
58
  var getWeekHoverRange = function getWeekHoverRange(isoWeek, date) {
87
59
  if (isoWeek) {
88
60
  // set to the first day of this week according to ISO 8601, 12:00 am
89
- return [_utils.DateUtils.startOfISOWeek(date), _utils.DateUtils.endOfISOWeek(date)];
61
+ return [(0, _dateUtils.startOfISOWeek)(date), (0, _dateUtils.endOfISOWeek)(date)];
90
62
  }
91
63
 
92
- return [_utils.DateUtils.startOfWeek(date), _utils.DateUtils.endOfWeek(date)];
64
+ return [(0, _dateUtils.startOfWeek)(date), (0, _dateUtils.endOfWeek)(date)];
93
65
  };
94
66
 
95
67
  exports.getWeekHoverRange = getWeekHoverRange;
@@ -5,6 +5,7 @@ export interface ListItemProps extends WithAsProps, React.HTMLAttributes<HTMLEle
5
5
  index?: number;
6
6
  collection?: Collection;
7
7
  disabled?: boolean;
8
+ size?: 'lg' | 'md' | 'sm';
8
9
  }
9
10
  declare const ListItem: React.ForwardRefExoticComponent<ListItemProps & React.RefAttributes<HTMLDivElement>>;
10
11
  export default ListItem;
@@ -30,12 +30,15 @@ var ListItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
30
30
  collection = _props$collection === void 0 ? 0 : _props$collection,
31
31
  disabled = props.disabled,
32
32
  index = props.index,
33
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "className", "classPrefix", "collection", "disabled", "index"]);
33
+ sizeProp = props.size,
34
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "className", "classPrefix", "collection", "disabled", "index", "size"]);
34
35
 
35
36
  var _useContext = (0, _react.useContext)(_ListContext.default),
36
37
  bordered = _useContext.bordered,
37
38
  register = _useContext.register,
38
- size = _useContext.size;
39
+ parentSize = _useContext.size;
40
+
41
+ var size = sizeProp || parentSize;
39
42
 
40
43
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
41
44
  withClassPrefix = _useClassNames.withClassPrefix,
@@ -43,7 +43,7 @@ var Stack = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
43
43
  prefix = _useClassNames.prefix;
44
44
 
45
45
  var classes = merge(className, withClassPrefix());
46
- var isSupportGridGap = !(0, _utils.isIE)();
46
+ var isSupportGridGap = (0, _utils.isSupportFlexGap)();
47
47
 
48
48
  var count = _react.default.Children.count(children);
49
49
 
package/cjs/index.d.ts CHANGED
@@ -121,7 +121,7 @@ export type { TagGroupProps } from './TagGroup';
121
121
  export { default as List } from './List';
122
122
  export type { ListProps, ListItemProps } from './List';
123
123
  export { default as Calendar } from './Calendar';
124
- export type { CalendarPanelProps as CalendarProps } from './Calendar';
124
+ export type { CalendarProps } from './Calendar';
125
125
  export { default as Carousel } from './Carousel';
126
126
  export type { CarouselProps } from './Carousel';
127
127
  export { default as Grid } from './Grid';
@@ -2,3 +2,10 @@ export declare const isIE: () => boolean;
2
2
  export declare const isIE10: () => boolean;
3
3
  export declare const isIE11: () => boolean;
4
4
  export declare const isEdge: () => boolean;
5
+ export declare const getChromeVersion: () => number | false;
6
+ export declare const getSafariVersion: () => number | false;
7
+ /**
8
+ * flexbox-gap compatibility
9
+ * @see https://caniuse.com/flexbox-gap
10
+ */
11
+ export declare const isSupportFlexGap: () => boolean;
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.isEdge = exports.isIE11 = exports.isIE10 = exports.isIE = void 0;
6
+ exports.isSupportFlexGap = exports.getSafariVersion = exports.getChromeVersion = exports.isEdge = exports.isIE11 = exports.isIE10 = exports.isIE = void 0;
7
7
 
8
8
  var _canUseDOM = _interopRequireDefault(require("dom-lib/canUseDOM"));
9
9
 
@@ -32,4 +32,54 @@ var isEdge = function isEdge() {
32
32
  return _canUseDOM.default && !isIE() && 'styleMedia' in window;
33
33
  };
34
34
 
35
- exports.isEdge = isEdge;
35
+ exports.isEdge = isEdge;
36
+
37
+ var getChromeVersion = function getChromeVersion() {
38
+ if (_canUseDOM.default) {
39
+ var match = window.navigator.userAgent.match(/Chrom(e|ium)\/([\d\.]+)\./);
40
+ return match ? parseFloat(match[2]) : false;
41
+ }
42
+
43
+ return false;
44
+ };
45
+
46
+ exports.getChromeVersion = getChromeVersion;
47
+
48
+ var getSafariVersion = function getSafariVersion() {
49
+ if (_canUseDOM.default) {
50
+ var match = window.navigator.userAgent.match(/Version\/([\d\.]+).*Safari/);
51
+ return match ? parseFloat(match[1]) : false;
52
+ }
53
+
54
+ return false;
55
+ };
56
+ /**
57
+ * flexbox-gap compatibility
58
+ * @see https://caniuse.com/flexbox-gap
59
+ */
60
+
61
+
62
+ exports.getSafariVersion = getSafariVersion;
63
+
64
+ var isSupportFlexGap = function isSupportFlexGap() {
65
+ if (isIE()) {
66
+ return false;
67
+ }
68
+
69
+ var chromeVersion = getChromeVersion();
70
+ var safariVersion = getSafariVersion(); // edge consider as chrome
71
+
72
+ if (chromeVersion) {
73
+ // flex-gap is support in Chrome 84+
74
+ return chromeVersion >= 84;
75
+ }
76
+
77
+ if (safariVersion) {
78
+ // flex-gap is support in Safari 14.1+
79
+ return safariVersion >= 14.1;
80
+ }
81
+
82
+ return true;
83
+ };
84
+
85
+ exports.isSupportFlexGap = isSupportFlexGap;
@@ -45,10 +45,10 @@ export declare const calendarOnlyProps: CalendarOnlyPropsType[];
45
45
  */
46
46
  export declare function disabledTime(props: any, date: Date): boolean;
47
47
  export declare const omitHideDisabledProps: <T extends Record<string, any>>(props: T) => Partial<Omit<T, CalendarOnlyPropsType>>;
48
- export declare const shouldTime: (format: string) => boolean;
49
- export declare const shouldMonth: (format: string) => boolean;
50
- export declare const shouldDate: (format: string) => boolean;
51
- export declare const shouldOnlyTime: (format: string) => boolean;
48
+ export declare const shouldRenderTime: (format: string) => boolean;
49
+ export declare const shouldRenderMonth: (format: string) => boolean;
50
+ export declare const shouldRenderDate: (format: string) => boolean;
51
+ export declare const shouldOnlyRenderTime: (format: string) => boolean;
52
52
  /**
53
53
  * Get all weeks of this month
54
54
  * @params monthDate
@@ -6,7 +6,7 @@ exports.__esModule = true;
6
6
  exports.disabledTime = disabledTime;
7
7
  exports.getMonthView = getMonthView;
8
8
  exports.getDateMask = getDateMask;
9
- exports.shouldOnlyTime = exports.shouldDate = exports.shouldMonth = exports.shouldTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.set = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameSecond = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0;
9
+ exports.shouldOnlyRenderTime = exports.shouldRenderDate = exports.shouldRenderMonth = exports.shouldRenderTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.set = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameSecond = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0;
10
10
 
11
11
  var _pick = _interopRequireDefault(require("lodash/pick"));
12
12
 
@@ -209,26 +209,26 @@ var omitHideDisabledProps = function omitHideDisabledProps(props) {
209
209
 
210
210
  exports.omitHideDisabledProps = omitHideDisabledProps;
211
211
 
212
- var shouldTime = function shouldTime(format) {
212
+ var shouldRenderTime = function shouldRenderTime(format) {
213
213
  return /([Hhms])/.test(format);
214
214
  };
215
215
 
216
- exports.shouldTime = shouldTime;
216
+ exports.shouldRenderTime = shouldRenderTime;
217
217
 
218
- var shouldMonth = function shouldMonth(format) {
218
+ var shouldRenderMonth = function shouldRenderMonth(format) {
219
219
  return /[Yy]/.test(format) && /[ML]/.test(format);
220
220
  };
221
221
 
222
- exports.shouldMonth = shouldMonth;
222
+ exports.shouldRenderMonth = shouldRenderMonth;
223
223
 
224
- var shouldDate = function shouldDate(format) {
224
+ var shouldRenderDate = function shouldRenderDate(format) {
225
225
  return /[Yy]/.test(format) && /[ML]/.test(format) && /[Dd]/.test(format);
226
226
  }; // for date-fns v1 and v2
227
227
 
228
228
 
229
- exports.shouldDate = shouldDate;
229
+ exports.shouldRenderDate = shouldRenderDate;
230
230
 
231
- var shouldOnlyTime = function shouldOnlyTime(format) {
231
+ var shouldOnlyRenderTime = function shouldOnlyRenderTime(format) {
232
232
  return /([Hhms])/.test(format) && !/([YyMDd])/.test(format);
233
233
  }; // for date-fns v1 and v2
234
234
 
@@ -239,7 +239,7 @@ var shouldOnlyTime = function shouldOnlyTime(format) {
239
239
  */
240
240
 
241
241
 
242
- exports.shouldOnlyTime = shouldOnlyTime;
242
+ exports.shouldOnlyRenderTime = shouldOnlyRenderTime;
243
243
 
244
244
  function getMonthView(monthDate, isoWeek) {
245
245
  var firstDayOfMonth = (0, _getDay.default)(monthDate);