rsuite 5.0.0-beta.8 → 5.0.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 (58) hide show
  1. package/README.md +4 -4
  2. package/Sidenav/styles/index.less +99 -37
  3. package/cjs/@types/common.d.ts +2 -0
  4. package/cjs/DateRangePicker/Calendar.d.ts +2 -1
  5. package/cjs/DateRangePicker/Calendar.js +4 -3
  6. package/cjs/DateRangePicker/DateRangePicker.d.ts +1 -1
  7. package/cjs/DateRangePicker/DateRangePicker.js +58 -43
  8. package/cjs/DateRangePicker/utils.d.ts +1 -1
  9. package/cjs/DateRangePicker/utils.js +9 -5
  10. package/cjs/Dropdown/Dropdown.js +31 -18
  11. package/cjs/Dropdown/DropdownContext.d.ts +4 -1
  12. package/cjs/Dropdown/DropdownItem.js +31 -4
  13. package/cjs/Dropdown/DropdownState.d.ts +37 -0
  14. package/cjs/Dropdown/DropdownState.js +66 -0
  15. package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
  16. package/cjs/Sidenav/SidenavDropdown.js +6 -1
  17. package/cjs/Sidenav/SidenavItem.js +4 -12
  18. package/cjs/utils/dateUtils.d.ts +1 -0
  19. package/cjs/utils/dateUtils.js +5 -1
  20. package/cjs/utils/useInternalId.d.ts +4 -0
  21. package/cjs/utils/useInternalId.js +24 -0
  22. package/cjs/utils/useUniqueId.d.ts +1 -1
  23. package/cjs/utils/useUniqueId.js +1 -1
  24. package/dist/rsuite-rtl.css +142 -72
  25. package/dist/rsuite-rtl.min.css +1 -1
  26. package/dist/rsuite-rtl.min.css.map +1 -1
  27. package/dist/rsuite.css +142 -72
  28. package/dist/rsuite.js +54 -10
  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/@types/common.d.ts +2 -0
  35. package/esm/DateRangePicker/Calendar.d.ts +2 -1
  36. package/esm/DateRangePicker/Calendar.js +4 -3
  37. package/esm/DateRangePicker/DateRangePicker.d.ts +1 -1
  38. package/esm/DateRangePicker/DateRangePicker.js +27 -12
  39. package/esm/DateRangePicker/utils.d.ts +1 -1
  40. package/esm/DateRangePicker/utils.js +7 -3
  41. package/esm/Dropdown/Dropdown.js +30 -19
  42. package/esm/Dropdown/DropdownContext.d.ts +4 -1
  43. package/esm/Dropdown/DropdownItem.js +30 -6
  44. package/esm/Dropdown/DropdownState.d.ts +37 -0
  45. package/esm/Dropdown/DropdownState.js +55 -0
  46. package/esm/SelectPicker/SelectPicker.d.ts +1 -3
  47. package/esm/Sidenav/SidenavDropdown.js +5 -1
  48. package/esm/Sidenav/SidenavItem.js +4 -10
  49. package/esm/utils/dateUtils.d.ts +1 -0
  50. package/esm/utils/dateUtils.js +1 -0
  51. package/esm/utils/useInternalId.d.ts +4 -0
  52. package/esm/utils/useInternalId.js +16 -0
  53. package/esm/utils/useUniqueId.d.ts +1 -1
  54. package/esm/utils/useUniqueId.js +1 -1
  55. package/package.json +2 -2
  56. package/styles/color-modes/dark.less +16 -0
  57. package/styles/color-modes/high-contrast.less +17 -0
  58. package/styles/color-modes/light.less +16 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.getCalendarDate = getCalendarDate;
5
- exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameValueType = exports.getDefaultRanges = exports.setTimingMargin = void 0;
5
+ exports.getWeekHoverRange = exports.getMonthHoverRange = exports.isSameRange = exports.getDefaultRanges = exports.setTimingMargin = void 0;
6
6
 
7
7
  var _utils = require("../utils");
8
8
 
@@ -51,13 +51,17 @@ var getDefaultRanges = function getDefaultRanges() {
51
51
 
52
52
  exports.getDefaultRanges = getDefaultRanges;
53
53
 
54
- var isSameValueType = function isSameValueType(source, dest) {
55
- var _source$, _dest$, _source$2, _dest$2;
54
+ var isSameRange = function isSameRange(source, dest, format) {
55
+ var result = _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]);
56
56
 
57
- return (source === null || source === void 0 ? void 0 : (_source$ = source[0]) === null || _source$ === void 0 ? void 0 : _source$.valueOf()) === (dest === null || dest === void 0 ? void 0 : (_dest$ = dest[0]) === null || _dest$ === void 0 ? void 0 : _dest$.valueOf()) && (source === null || source === void 0 ? void 0 : (_source$2 = source[1]) === null || _source$2 === void 0 ? void 0 : _source$2.valueOf()) === (dest === null || dest === void 0 ? void 0 : (_dest$2 = dest[1]) === null || _dest$2 === void 0 ? void 0 : _dest$2.valueOf());
57
+ if (_utils.DateUtils.shouldTime(format)) {
58
+ result && (result = _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && _utils.DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]));
59
+ }
60
+
61
+ return result;
58
62
  };
59
63
 
60
- exports.isSameValueType = isSameValueType;
64
+ exports.isSameRange = isSameRange;
61
65
 
62
66
  var getMonthHoverRange = function getMonthHoverRange(date) {
63
67
  return [_utils.DateUtils.startOfMonth(date), _utils.DateUtils.endOfMonth(date)];
@@ -17,6 +17,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
18
  var _omit = _interopRequireDefault(require("lodash/omit"));
19
19
 
20
+ var _pick = _interopRequireDefault(require("lodash/pick"));
21
+
20
22
  var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
21
23
 
22
24
  var _utils = require("../utils");
@@ -47,6 +49,8 @@ var _SidenavDropdown = _interopRequireDefault(require("../Sidenav/SidenavDropdow
47
49
 
48
50
  var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
49
51
 
52
+ var _DropdownState = require("./DropdownState");
53
+
50
54
  var defaultProps = {
51
55
  as: 'div',
52
56
  classPrefix: 'dropdown',
@@ -124,14 +128,29 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
124
128
  }, [trigger]);
125
129
  var parentMenu = (0, _react.useContext)(_MenuContext.default);
126
130
  var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
127
- var navbar = (0, _react.useContext)(_Navbar.NavbarContext); // Render a disclosure when inside expanded <Sidenav>
131
+ var navbar = (0, _react.useContext)(_Navbar.NavbarContext);
132
+
133
+ var _useReducer = (0, _react.useReducer)(_DropdownState.reducer, _DropdownState.initialState),
134
+ items = _useReducer[0].items,
135
+ dispatch = _useReducer[1];
136
+
137
+ var hasSelectedItem = (0, _react.useMemo)(function () {
138
+ return items.some(function (item) {
139
+ return item.props.selected;
140
+ });
141
+ }, [items]);
142
+ var dropdownContextValue = (0, _react.useMemo)(function () {
143
+ return {
144
+ activeKey: activeKey,
145
+ onSelect: emitSelect,
146
+ hasSelectedItem: hasSelectedItem,
147
+ dispatch: dispatch
148
+ };
149
+ }, [activeKey, emitSelect, hasSelectedItem, dispatch]); // Render a disclosure when inside expanded <Sidenav>
128
150
 
129
151
  if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
130
152
  return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
131
- value: {
132
- activeKey: activeKey,
133
- onSelect: emitSelect
134
- }
153
+ value: dropdownContextValue
135
154
  }, /*#__PURE__*/_react.default.createElement(_SidenavDropdown.default, (0, _extends2.default)({
136
155
  ref: ref
137
156
  }, rest)));
@@ -140,10 +159,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
140
159
 
141
160
  if (navbar) {
142
161
  return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
143
- value: {
144
- activeKey: activeKey,
145
- onSelect: emitSelect
146
- }
162
+ value: dropdownContextValue
147
163
  }, /*#__PURE__*/_react.default.createElement(_Disclosure.default, {
148
164
  hideOnClickOutside: true
149
165
  }, function (_ref, containerRef) {
@@ -183,7 +199,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
183
199
  className: toggleClassName,
184
200
  placement: placement,
185
201
  disabled: disabled
186
- }, (0, _omit.default)(menuButtonProps, ['open']), toggleProps), title);
202
+ }, (0, _omit.default)(menuButtonProps, ['open']), (0, _omit.default)(toggleProps, ['data-testid'])), title);
187
203
  };
188
204
 
189
205
  if (parentMenu) {
@@ -199,16 +215,13 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
199
215
  className: mergeNavItemClassNames(toggleClassName, withNavItemClassPrefix({
200
216
  focus: active
201
217
  }))
202
- }, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), toggleProps), title);
218
+ }, menuButtonProps, (0, _omit.default)(menuitemProps, ['onClick']), (0, _omit.default)(toggleProps, 'data-testid')), title);
203
219
  });
204
220
  };
205
221
  }
206
222
 
207
223
  return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
208
- value: {
209
- activeKey: activeKey,
210
- onSelect: emitSelect
211
- }
224
+ value: dropdownContextValue
212
225
  }, /*#__PURE__*/_react.default.createElement(_Menu.default, {
213
226
  menuButtonText: title,
214
227
  renderMenuButton: renderMenuButton,
@@ -216,7 +229,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
216
229
  renderMenuPopup: function renderMenuPopup(_ref4, popupRef) {
217
230
  var open = _ref4.open,
218
231
  popupProps = (0, _objectWithoutPropertiesLoose2.default)(_ref4, ["open"]);
219
- var menuClassName = mergeMenuClassName(className, withMenuClassPrefix()); // When inside a collapsed <Sidenav>, render a header in menu
232
+ var menuClassName = mergeMenuClassName(className, withMenuClassPrefix({})); // When inside a collapsed <Sidenav>, render a header in menu
220
233
 
221
234
  var showHeader = !!sidenav;
222
235
  return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
@@ -243,11 +256,11 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
243
256
 
244
257
  var open = _ref5.open,
245
258
  menuContainer = (0, _objectWithoutPropertiesLoose2.default)(_ref5, ["open"]);
246
- var classes = merge(className, withClassPrefix((_withClassPrefix2 = {}, _withClassPrefix2["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix2.disabled = disabled, _withClassPrefix2.open = open, _withClassPrefix2.submenu = !!parentMenu, _withClassPrefix2)));
259
+ var classes = merge(className, withClassPrefix((_withClassPrefix2 = {}, _withClassPrefix2["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = !!placement, _withClassPrefix2.disabled = disabled, _withClassPrefix2.open = open, _withClassPrefix2.submenu = !!parentMenu, _withClassPrefix2['selected-within'] = hasSelectedItem, _withClassPrefix2)));
247
260
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
248
261
  ref: (0, _utils.mergeRefs)(ref, menuContainerRef),
249
262
  className: classes
250
- }, menuContainer, {
263
+ }, menuContainer, (0, _pick.default)(toggleProps, ['data-testid']), {
251
264
  style: style
252
265
  }));
253
266
  }));
@@ -1,7 +1,10 @@
1
- import React from 'react';
1
+ import React, { Dispatch } from 'react';
2
+ import { DropdownAction } from './DropdownState';
2
3
  export interface DropdownContextProps {
3
4
  activeKey?: string;
4
5
  onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
6
+ hasSelectedItem?: boolean;
7
+ dispatch?: Dispatch<DropdownAction>;
5
8
  }
6
9
  declare const DropdownContext: React.Context<DropdownContextProps>;
7
10
  export default DropdownContext;
@@ -37,6 +37,10 @@ var _SafeAnchor = _interopRequireDefault(require("../SafeAnchor"));
37
37
 
38
38
  var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
39
39
 
40
+ var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
41
+
42
+ var _DropdownState = require("./DropdownState");
43
+
40
44
  var defaultProps = {
41
45
  as: 'li',
42
46
  classPrefix: 'dropdown-item'
@@ -55,6 +59,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
55
59
  onSelect = props.onSelect,
56
60
  icon = props.icon,
57
61
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "className", "active", "eventKey", "onSelect", "icon"]);
62
+ var internalId = (0, _useInternalId.default)('DropdownItem');
58
63
  var nav = (0, _react.useContext)(_NavContext.default);
59
64
  var dropdown = (0, _react.useContext)(_DropdownContext.default);
60
65
 
@@ -82,6 +87,29 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
82
87
  });
83
88
  handleSelectItem === null || handleSelectItem === void 0 ? void 0 : handleSelectItem(event);
84
89
  }, [dispatchDisclosure, handleSelectItem]);
90
+ var selected = activeProp || !(0, _isNil.default)(eventKey) && ((0, _utils.shallowEqual)(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
91
+ var dispatch = dropdown === null || dropdown === void 0 ? void 0 : dropdown.dispatch;
92
+ (0, _react.useEffect)(function () {
93
+ if (dispatch) {
94
+ dispatch({
95
+ type: _DropdownState.DropdownActionType.RegisterItem,
96
+ payload: {
97
+ id: internalId,
98
+ props: {
99
+ selected: selected
100
+ }
101
+ }
102
+ });
103
+ return function () {
104
+ dispatch({
105
+ type: _DropdownState.DropdownActionType.UnregisterItem,
106
+ payload: {
107
+ id: internalId
108
+ }
109
+ });
110
+ };
111
+ }
112
+ }, [internalId, selected, dispatch]);
85
113
 
86
114
  if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
87
115
  return /*#__PURE__*/_react.default.createElement(_SidenavDropdownItem.default, (0, _extends2.default)({
@@ -89,7 +117,6 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
89
117
  }, props));
90
118
  }
91
119
 
92
- var menuitemSelected = activeProp || !(0, _isNil.default)(eventKey) && ((0, _utils.shallowEqual)(dropdown === null || dropdown === void 0 ? void 0 : dropdown.activeKey, eventKey) || (0, _utils.shallowEqual)(nav === null || nav === void 0 ? void 0 : nav.activeKey, eventKey));
93
120
  var Component = rest.as,
94
121
  divider = rest.divider,
95
122
  panel = rest.panel,
@@ -119,7 +146,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
119
146
  disabled: disabled,
120
147
  divider: divider,
121
148
  panel: panel,
122
- active: menuitemSelected
149
+ active: selected
123
150
  }));
124
151
  var dataAttributes = {
125
152
  'data-event-key': eventKey
@@ -132,7 +159,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
132
159
  return /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_SafeAnchor.default, (0, _extends2.default)({
133
160
  ref: ref,
134
161
  className: classes,
135
- "aria-current": menuitemSelected || undefined
162
+ "aria-current": selected || undefined
136
163
  }, dataAttributes, restProps, {
137
164
  onClick: (0, _utils.createChainedFunction)(handleClickNavbarDropdownItem, restProps.onClick)
138
165
  }), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
@@ -141,7 +168,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
141
168
  }
142
169
 
143
170
  return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
144
- selected: menuitemSelected,
171
+ selected: selected,
145
172
  disabled: disabled,
146
173
  onActivate: handleSelectItem
147
174
  }, function (_ref2, menuitemRef) {
@@ -0,0 +1,37 @@
1
+ interface DropdownItemState {
2
+ /**
3
+ * Internal ID
4
+ */
5
+ id: string;
6
+ /**
7
+ *
8
+ */
9
+ props: {
10
+ selected: boolean;
11
+ };
12
+ }
13
+ interface DropdownState {
14
+ items: DropdownItemState[];
15
+ }
16
+ export declare const initialState: DropdownState;
17
+ export declare enum DropdownActionType {
18
+ RegisterItem = 0,
19
+ UnregisterItem = 1,
20
+ UpdateItem = 2
21
+ }
22
+ export declare type DropdownAction = {
23
+ type: DropdownActionType.RegisterItem;
24
+ payload: {
25
+ id: string;
26
+ props: {
27
+ selected: boolean;
28
+ };
29
+ };
30
+ } | {
31
+ type: DropdownActionType.UnregisterItem;
32
+ payload: {
33
+ id: string;
34
+ };
35
+ };
36
+ export declare function reducer(state: DropdownState, action: DropdownAction): DropdownState;
37
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.reducer = reducer;
7
+ exports.DropdownActionType = exports.initialState = void 0;
8
+
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+
11
+ var initialState = {
12
+ items: []
13
+ };
14
+ exports.initialState = initialState;
15
+ var DropdownActionType;
16
+ exports.DropdownActionType = DropdownActionType;
17
+
18
+ (function (DropdownActionType) {
19
+ DropdownActionType[DropdownActionType["RegisterItem"] = 0] = "RegisterItem";
20
+ DropdownActionType[DropdownActionType["UnregisterItem"] = 1] = "UnregisterItem";
21
+ DropdownActionType[DropdownActionType["UpdateItem"] = 2] = "UpdateItem";
22
+ })(DropdownActionType || (exports.DropdownActionType = DropdownActionType = {}));
23
+
24
+ function reducer(state, action) {
25
+ if (state === void 0) {
26
+ state = initialState;
27
+ }
28
+
29
+ switch (action.type) {
30
+ case DropdownActionType.RegisterItem:
31
+ if (state.items.find(function (item) {
32
+ return item.id === action.payload.id;
33
+ })) {
34
+ return (0, _extends2.default)({}, state, {
35
+ items: state.items.map(function (item) {
36
+ if (item.id === action.payload.id) {
37
+ return (0, _extends2.default)({}, item, {
38
+ props: (0, _extends2.default)({}, item.props, {
39
+ selected: action.payload.props.selected
40
+ })
41
+ });
42
+ }
43
+
44
+ return item;
45
+ })
46
+ });
47
+ }
48
+
49
+ return (0, _extends2.default)({}, state, {
50
+ items: [].concat(state.items, [{
51
+ id: action.payload.id,
52
+ props: action.payload.props
53
+ }])
54
+ });
55
+
56
+ case DropdownActionType.UnregisterItem:
57
+ return (0, _extends2.default)({}, state, {
58
+ items: state.items.filter(function (item) {
59
+ return item.id !== action.payload.id;
60
+ })
61
+ });
62
+
63
+ default:
64
+ return state;
65
+ }
66
+ }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
3
  import { PickerComponent } from '../Picker';
4
- import { TypeAttributes, FormControlPickerProps, ItemDataType } from '../@types/common';
4
+ import { FormControlPickerProps, ItemDataType } from '../@types/common';
5
5
  import { ListProps } from 'react-virtualized/dist/commonjs/List';
6
6
  export declare type ValueType = number | string;
7
7
  export interface SelectProps<T = ValueType> {
@@ -16,8 +16,6 @@ export interface SelectProps<T = ValueType> {
16
16
  * https://github.com/bvaughn/react-virtualized/blob/master/docs/List.md#prop-types
17
17
  */
18
18
  listProps?: ListProps;
19
- /** A picker can have different sizes */
20
- size?: TypeAttributes.Size;
21
19
  /** Custom search rules. */
22
20
  searchBy?: (keyword: string, label: React.ReactNode, item: ItemDataType) => boolean;
23
21
  /** Sort options */
@@ -33,6 +33,8 @@ var _SidenavDropdownCollapse = _interopRequireDefault(require("./SidenavDropdown
33
33
 
34
34
  var _Disclosure = _interopRequireDefault(require("../Disclosure/Disclosure"));
35
35
 
36
+ var _DropdownContext = _interopRequireDefault(require("../Dropdown/DropdownContext"));
37
+
36
38
  var defaultProps = {
37
39
  as: 'div',
38
40
  classPrefix: 'dropdown',
@@ -66,6 +68,9 @@ var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, re
66
68
  openKeys = _useContext$openKeys === void 0 ? [] : _useContext$openKeys,
67
69
  onOpenChange = _useContext.onOpenChange;
68
70
 
71
+ var _useContext2 = (0, _react.useContext)(_DropdownContext.default),
72
+ hasSelectedItem = _useContext2.hasSelectedItem;
73
+
69
74
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
70
75
  merge = _useClassNames.merge,
71
76
  withClassPrefix = _useClassNames.withClassPrefix;
@@ -88,7 +93,7 @@ var SidenavDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, re
88
93
  var _withClassPrefix;
89
94
 
90
95
  var open = _ref.open;
91
- var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = placement, _withClassPrefix[open ? 'expand' : 'collapse'] = true, _withClassPrefix.disabled = disabled, _withClassPrefix['no-caret'] = noCaret, _withClassPrefix)));
96
+ var classes = merge(className, withClassPrefix((_withClassPrefix = {}, _withClassPrefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = placement, _withClassPrefix[open ? 'expand' : 'collapse'] = true, _withClassPrefix.disabled = disabled, _withClassPrefix['selected-within'] = hasSelectedItem, _withClassPrefix['no-caret'] = noCaret, _withClassPrefix)));
92
97
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
93
98
  ref: (0, _utils.mergeRefs)(ref, containerRef),
94
99
  style: style,
@@ -80,28 +80,20 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
80
80
  focus: active,
81
81
  active: selected,
82
82
  disabled: disabled
83
- }));
83
+ })); // Show tooltip when inside a collapse <Sidenav>
84
84
 
85
- var item = /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
86
- ref: (0, _utils.mergeRefs)(ref, menuitemRef),
87
- disabled: Component === _SafeAnchor.default ? disabled : undefined,
88
- className: classes,
89
- "data-event-key": eventKey
90
- }, menuitem, (0, _omit.default)(rest, ['divider', 'panel'])), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null)); // Show tooltip when inside a collapse <Sidenav>
91
-
92
-
93
- return sidenav ? (0, _utils.appendTooltip)({
85
+ return (0, _utils.appendTooltip)({
94
86
  children: function children(triggerProps, triggerRef) {
95
87
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
96
88
  ref: (0, _utils.mergeRefs)((0, _utils.mergeRefs)(ref, menuitemRef), triggerRef),
97
89
  disabled: Component === _SafeAnchor.default ? disabled : undefined,
98
90
  className: classes,
99
91
  "data-event-key": eventKey
100
- }, menuitem, (0, _omit.default)(rest, ['divider', 'panel']), triggerProps), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
92
+ }, (0, _omit.default)(rest, ['divider', 'panel']), triggerProps, menuitem), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
101
93
  },
102
94
  message: _children,
103
95
  placement: 'right'
104
- }) : item;
96
+ });
105
97
  });
106
98
  }
107
99
 
@@ -19,6 +19,7 @@ export { default as isBefore } from 'date-fns/isBefore';
19
19
  export { default as isEqual } from 'date-fns/isEqual';
20
20
  export { default as isSameDay } from 'date-fns/isSameDay';
21
21
  export { default as isSameMonth } from 'date-fns/isSameMonth';
22
+ export { default as isSameSecond } from 'date-fns/isSameSecond';
22
23
  export { default as parse } from 'date-fns/parse';
23
24
  export { default as parseISO } from 'date-fns/parseISO';
24
25
  export { default as setDate } from 'date-fns/setDate';
@@ -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.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.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.shouldOnlyTime = exports.shouldDate = exports.shouldMonth = exports.shouldTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = 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
 
@@ -96,6 +96,10 @@ var _isSameMonth = _interopRequireDefault(require("date-fns/isSameMonth"));
96
96
 
97
97
  exports.isSameMonth = _isSameMonth.default;
98
98
 
99
+ var _isSameSecond = _interopRequireDefault(require("date-fns/isSameSecond"));
100
+
101
+ exports.isSameSecond = _isSameSecond.default;
102
+
99
103
  var _parse = _interopRequireDefault(require("date-fns/parse"));
100
104
 
101
105
  exports.parse = _parse.default;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Used for generating unique ID for DOM elements
3
+ */
4
+ export default function useInternalId(prefix?: string): string;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = useInternalId;
7
+
8
+ var _react = require("react");
9
+
10
+ var _uniqueId = _interopRequireDefault(require("lodash/uniqueId"));
11
+
12
+ /**
13
+ * Used for generating unique ID for DOM elements
14
+ */
15
+ function useInternalId(prefix) {
16
+ var idRef = (0, _react.useRef)();
17
+
18
+ if (!idRef.current) {
19
+ idRef.current = (0, _uniqueId.default)("internal://" + prefix);
20
+ }
21
+
22
+ (0, _react.useDebugValue)(idRef.current);
23
+ return idRef.current;
24
+ }
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Used for generating unique ID for elements
2
+ * Used for generating unique ID for DOM elements
3
3
  */
4
4
  export default function useUniqueId(prefix?: string): string;
@@ -10,7 +10,7 @@ var _react = require("react");
10
10
  var _uniqueId = _interopRequireDefault(require("lodash/uniqueId"));
11
11
 
12
12
  /**
13
- * Used for generating unique ID for elements
13
+ * Used for generating unique ID for DOM elements
14
14
  */
15
15
  function useUniqueId(prefix) {
16
16
  var idRef = (0, _react.useRef)();