@carbon-labs/react-ui-shell 0.60.0 → 0.62.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.
- package/es/components/HeaderContainer.js +10 -11
- package/es/components/HeaderDivider.js +6 -7
- package/es/components/HeaderPopover.js +28 -31
- package/es/components/Link.js +10 -11
- package/es/components/Profile.js +31 -34
- package/es/components/SharkFinIcon.js +10 -11
- package/es/components/SideNav.js +46 -40
- package/es/components/SideNavFlyoutMenu.js +29 -31
- package/es/components/SideNavItems.js +12 -13
- package/es/components/SideNavLink.js +18 -19
- package/es/components/SideNavLinkPopover.js +8 -9
- package/es/components/SideNavMenu.js +40 -42
- package/es/components/SideNavMenuItem.js +9 -9
- package/es/components/SideNavSlot.js +10 -11
- package/es/components/SideNavToggle.js +11 -12
- package/es/components/TrialCountdown.js +10 -11
- package/es/internal/keyboard/match.js +6 -7
- package/es/internal/useDelayedState.js +1 -2
- package/es/internal/useId.js +4 -6
- package/es/internal/useIdPrefix.js +3 -3
- package/es/internal/usePrefix.js +3 -3
- package/es/internal/warning.js +1 -4
- package/es/node_modules/@carbon/ibm-products/es/components/TooltipTrigger/TooltipTrigger.js +4 -4
- package/es/node_modules/@carbon/ibm-products/es/components/UserAvatar/UserAvatar.js +10 -10
- package/es/node_modules/@carbon/ibm-products/es/components/_Canary/Canary.js +5 -5
- package/es/node_modules/@carbon/ibm-products/es/settings.js +2 -2
- package/es/prop-types/deprecate.js +1 -4
- package/es/prop-types/isRequiredOneOf.js +1 -4
- package/lib/components/HeaderContainer.js +18 -19
- package/lib/components/HeaderDivider.js +7 -8
- package/lib/components/HeaderPopover.js +34 -37
- package/lib/components/Link.js +11 -12
- package/lib/components/Profile.js +34 -37
- package/lib/components/SharkFinIcon.js +11 -12
- package/lib/components/SideNav.js +62 -56
- package/lib/components/SideNavFlyoutMenu.js +44 -46
- package/lib/components/SideNavItems.js +16 -17
- package/lib/components/SideNavLink.js +20 -21
- package/lib/components/SideNavLinkPopover.js +9 -10
- package/lib/components/SideNavMenu.js +60 -62
- package/lib/components/SideNavMenuItem.js +12 -12
- package/lib/components/SideNavSlot.js +11 -12
- package/lib/components/SideNavToggle.js +12 -13
- package/lib/components/TrialCountdown.js +11 -12
- package/lib/internal/keyboard/match.js +6 -7
- package/lib/internal/useDelayedState.js +5 -6
- package/lib/internal/useEvent.js +4 -4
- package/lib/internal/useId.js +7 -9
- package/lib/internal/useIdPrefix.js +3 -3
- package/lib/internal/useMatchMedia.js +3 -3
- package/lib/internal/useMergedRefs.js +2 -2
- package/lib/internal/usePrefix.js +3 -3
- package/lib/internal/warning.js +1 -4
- package/lib/node_modules/@carbon/ibm-products/es/components/TooltipTrigger/TooltipTrigger.js +8 -8
- package/lib/node_modules/@carbon/ibm-products/es/components/UserAvatar/UserAvatar.js +11 -11
- package/lib/node_modules/@carbon/ibm-products/es/components/_Canary/Canary.js +9 -9
- package/lib/node_modules/@carbon/ibm-products/es/settings.js +2 -2
- package/lib/prop-types/deprecate.js +1 -4
- package/lib/prop-types/isRequiredOneOf.js +1 -4
- package/package.json +3 -3
- package/es/_virtual/_commonjsHelpers.js +0 -12
- package/es/_virtual/index.js +0 -14
- package/es/_virtual/index2.js +0 -10
- package/es/node_modules/@carbon/icons-react/es/Icon.js +0 -71
- package/es/node_modules/@carbon/icons-react/es/generated/bucket-0.js +0 -2956
- package/es/node_modules/@carbon/icons-react/es/generated/bucket-15.js +0 -3043
- package/es/node_modules/@carbon/icons-react/es/generated/bucket-3.js +0 -3181
- package/es/node_modules/@carbon/icons-react/es/iconPropTypes-4cbeb95d.js +0 -14
- package/es/node_modules/@carbon/icons-react/node_modules/@carbon/icon-helpers/es/index.js +0 -125
- package/es/node_modules/classnames/index.js +0 -71
- package/lib/_virtual/_commonjsHelpers.js +0 -14
- package/lib/_virtual/index.js +0 -18
- package/lib/_virtual/index2.js +0 -12
- package/lib/node_modules/@carbon/icons-react/es/Icon.js +0 -75
- package/lib/node_modules/@carbon/icons-react/es/generated/bucket-0.js +0 -3082
- package/lib/node_modules/@carbon/icons-react/es/generated/bucket-15.js +0 -3169
- package/lib/node_modules/@carbon/icons-react/es/generated/bucket-3.js +0 -3307
- package/lib/node_modules/@carbon/icons-react/es/iconPropTypes-4cbeb95d.js +0 -16
- package/lib/node_modules/@carbon/icons-react/node_modules/@carbon/icon-helpers/es/index.js +0 -128
- package/lib/node_modules/classnames/index.js +0 -73
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
+
var iconsReact = require('@carbon/icons-react');
|
|
10
11
|
var react = require('@carbon/react');
|
|
11
|
-
var index
|
|
12
|
-
var
|
|
12
|
+
var index = require('../node_modules/@carbon/layout/es/index.js');
|
|
13
|
+
var cx = require('classnames');
|
|
13
14
|
var PropTypes = require('prop-types');
|
|
14
|
-
var
|
|
15
|
+
var React__default = require('react');
|
|
15
16
|
var _utils = require('./_utils.js');
|
|
16
17
|
var useId = require('../internal/useId.js');
|
|
17
18
|
var keys = require('../internal/keyboard/keys.js');
|
|
@@ -23,30 +24,27 @@ var SharkFinIcon = require('./SharkFinIcon.js');
|
|
|
23
24
|
var SideNavFlyoutMenu = require('./SideNavFlyoutMenu.js');
|
|
24
25
|
var SideNavItems = require('./SideNavItems.js');
|
|
25
26
|
var useMatchMedia = require('../internal/useMatchMedia.js');
|
|
26
|
-
var bucket0 = require('../node_modules/@carbon/icons-react/es/generated/bucket-0.js');
|
|
27
|
-
var bucket3 = require('../node_modules/@carbon/icons-react/es/generated/bucket-3.js');
|
|
28
27
|
|
|
29
28
|
var _ArrowLeft, _SharkFinIcon, _ChevronRight, _ChevronDown;
|
|
30
|
-
const smMediaQuery = `(max-width: ${index
|
|
31
|
-
const SideNavMenu = /*#__PURE__*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
} = _ref;
|
|
29
|
+
const smMediaQuery = `(max-width: ${index.breakpoints.md.width})`;
|
|
30
|
+
const SideNavMenu = /*#__PURE__*/React__default.forwardRef(function SideNavMenu({
|
|
31
|
+
backButtonRenderIcon = () => _ArrowLeft || (_ArrowLeft = /*#__PURE__*/React__default.createElement(iconsReact.ArrowLeft, {
|
|
32
|
+
size: 16
|
|
33
|
+
})),
|
|
34
|
+
backButtonTitle = 'My products',
|
|
35
|
+
className: customClassName,
|
|
36
|
+
children,
|
|
37
|
+
defaultExpanded = false,
|
|
38
|
+
depth: propDepth,
|
|
39
|
+
id,
|
|
40
|
+
isActive = false,
|
|
41
|
+
large = false,
|
|
42
|
+
renderIcon: IconElement,
|
|
43
|
+
isSideNavExpanded,
|
|
44
|
+
title,
|
|
45
|
+
onMenuToggle,
|
|
46
|
+
primary
|
|
47
|
+
}, ref) {
|
|
50
48
|
const depth = propDepth;
|
|
51
49
|
const {
|
|
52
50
|
isTreeview,
|
|
@@ -54,22 +52,22 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
54
52
|
navType,
|
|
55
53
|
isRail,
|
|
56
54
|
setIsTreeview
|
|
57
|
-
} =
|
|
55
|
+
} = React__default.useContext(SideNav.SideNavContext);
|
|
58
56
|
const sideNavExpanded = expanded;
|
|
59
57
|
const prefix = usePrefix.usePrefix();
|
|
60
|
-
const [isExpanded, setIsExpanded] =
|
|
61
|
-
const [active, setActive] =
|
|
62
|
-
const firstLink =
|
|
63
|
-
const backButtonRef =
|
|
58
|
+
const [isExpanded, setIsExpanded] = React__default.useState(defaultExpanded);
|
|
59
|
+
const [active, setActive] = React__default.useState(isActive);
|
|
60
|
+
const firstLink = React__default.useRef(null);
|
|
61
|
+
const backButtonRef = React__default.useRef(null);
|
|
64
62
|
const uid = useId.useId('side-nav-menu');
|
|
65
63
|
const uniqueId = id || uid;
|
|
66
|
-
const [prevExpanded, setPrevExpanded] =
|
|
67
|
-
const [isSecondaryOpen, setSecondaryOpen] =
|
|
64
|
+
const [prevExpanded, setPrevExpanded] = React__default.useState(defaultExpanded);
|
|
65
|
+
const [isSecondaryOpen, setSecondaryOpen] = React__default.useState(defaultExpanded);
|
|
68
66
|
const {
|
|
69
67
|
currentPrimaryMenu,
|
|
70
68
|
setCurrentPrimaryMenu
|
|
71
|
-
} =
|
|
72
|
-
const className =
|
|
69
|
+
} = React__default.useContext(SideNav.SideNavContext);
|
|
70
|
+
const className = cx({
|
|
73
71
|
[`${prefix}--side-nav__item`]: true,
|
|
74
72
|
[`${prefix}--side-nav__item--primary`]: primary,
|
|
75
73
|
[`${prefix}--side-nav__item--active`]: !primary && (active || hasActiveDescendant(children) && !isExpanded),
|
|
@@ -77,16 +75,16 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
77
75
|
[`${prefix}--side-nav__item--large`]: large,
|
|
78
76
|
[customClassName]: !!customClassName
|
|
79
77
|
});
|
|
80
|
-
const buttonClassName =
|
|
78
|
+
const buttonClassName = cx({
|
|
81
79
|
[`${prefix}--side-nav__submenu`]: true,
|
|
82
80
|
[`${prefix}--side-nav__submenu--active`]: active || hasActiveDescendant(children) && isExpanded
|
|
83
81
|
});
|
|
84
|
-
const primaryClassNames =
|
|
82
|
+
const primaryClassNames = cx({
|
|
85
83
|
[`${prefix}--side-nav__menu-secondary-wrapper`]: true,
|
|
86
84
|
[`${prefix}--side-nav__menu-secondary-wrapper-expanded`]: isSideNavExpanded && isSecondaryOpen && currentPrimaryMenu === uniqueId
|
|
87
85
|
});
|
|
88
|
-
const buttonRef =
|
|
89
|
-
const listRef =
|
|
86
|
+
const buttonRef = React__default.useRef(null);
|
|
87
|
+
const listRef = React__default.useRef(null);
|
|
90
88
|
const menuRef = useMergedRefs.useMergedRefs([buttonRef, ref]);
|
|
91
89
|
if (!isSideNavExpanded && isExpanded && isRail) {
|
|
92
90
|
setIsExpanded(false);
|
|
@@ -98,12 +96,12 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
98
96
|
let childrenToRender = children;
|
|
99
97
|
|
|
100
98
|
// modify nested SideNavMenus
|
|
101
|
-
childrenToRender =
|
|
102
|
-
if (/*#__PURE__*/
|
|
99
|
+
childrenToRender = React__default.Children.map(children, child => {
|
|
100
|
+
if (/*#__PURE__*/React__default.isValidElement(child)) {
|
|
103
101
|
const childJsxElement = child;
|
|
104
102
|
const childDisplayName = childJsxElement.type?.displayName ?? childJsxElement.type?.name;
|
|
105
103
|
const isCarbonSideNavItem = _utils.CARBON_SIDENAV_ITEMS.includes(childDisplayName);
|
|
106
|
-
return /*#__PURE__*/
|
|
104
|
+
return /*#__PURE__*/React__default.cloneElement(child, {
|
|
107
105
|
...(isCarbonSideNavItem && {
|
|
108
106
|
isSideNavExpanded: isSideNavExpanded
|
|
109
107
|
}),
|
|
@@ -122,7 +120,7 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
122
120
|
function hasActiveDescendant(children) {
|
|
123
121
|
if (Array.isArray(children)) {
|
|
124
122
|
return children.some(child => {
|
|
125
|
-
if (! /*#__PURE__*/
|
|
123
|
+
if (! /*#__PURE__*/React__default.isValidElement(child)) {
|
|
126
124
|
setActive(false);
|
|
127
125
|
return false;
|
|
128
126
|
}
|
|
@@ -141,7 +139,7 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
141
139
|
|
|
142
140
|
// We use React.isValidElement(child) to check if the child is a valid React element before accessing its props
|
|
143
141
|
|
|
144
|
-
if (/*#__PURE__*/
|
|
142
|
+
if (/*#__PURE__*/React__default.isValidElement(children)) {
|
|
145
143
|
const props = children.props;
|
|
146
144
|
if (props.isActive === true || props['aria-current']) {
|
|
147
145
|
setActive(true);
|
|
@@ -150,7 +148,7 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
150
148
|
}
|
|
151
149
|
return false;
|
|
152
150
|
}
|
|
153
|
-
|
|
151
|
+
React__default.useEffect(() => {
|
|
154
152
|
if (navType == SideNav.SIDE_NAV_TYPE.PANEL) {
|
|
155
153
|
// grab first link to redirect if clicked when not expanded
|
|
156
154
|
if (!firstLink?.current && listRef?.current) {
|
|
@@ -270,19 +268,19 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
270
268
|
}
|
|
271
269
|
setIsExpanded(false);
|
|
272
270
|
}
|
|
273
|
-
|
|
271
|
+
React__default.useEffect(() => {
|
|
274
272
|
if (isExpanded && primary && setCurrentPrimaryMenu) {
|
|
275
273
|
setCurrentPrimaryMenu(uniqueId);
|
|
276
274
|
}
|
|
277
275
|
setSecondaryOpen(isExpanded);
|
|
278
276
|
}, [isExpanded]);
|
|
279
|
-
|
|
277
|
+
React__default.useEffect(() => {
|
|
280
278
|
if (primary) {
|
|
281
279
|
setIsExpanded(currentPrimaryMenu === uniqueId);
|
|
282
280
|
}
|
|
283
281
|
}, [currentPrimaryMenu]);
|
|
284
282
|
// reset to opened/collapsed menu state when Panel SideNav is toggled
|
|
285
|
-
|
|
283
|
+
React__default.useEffect(() => {
|
|
286
284
|
if (navType == SideNav.SIDE_NAV_TYPE.PANEL && !sideNavExpanded) {
|
|
287
285
|
setIsExpanded(false);
|
|
288
286
|
}
|
|
@@ -292,11 +290,11 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
292
290
|
setIsExpanded(true);
|
|
293
291
|
}
|
|
294
292
|
}, [sideNavExpanded]);
|
|
295
|
-
const [openPopover, setOpenPopover] =
|
|
293
|
+
const [openPopover, setOpenPopover] = React__default.useState(false);
|
|
296
294
|
const isSm = useMatchMedia.useMatchMedia(smMediaQuery);
|
|
297
295
|
|
|
298
296
|
// keeps the secondary open when moving from small to large breakpoints
|
|
299
|
-
|
|
297
|
+
React__default.useEffect(() => {
|
|
300
298
|
if (!isSm && uniqueId === currentPrimaryMenu) {
|
|
301
299
|
setIsExpanded(true);
|
|
302
300
|
}
|
|
@@ -304,14 +302,14 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
304
302
|
const content =
|
|
305
303
|
/*#__PURE__*/
|
|
306
304
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
307
|
-
|
|
305
|
+
React__default.createElement("li", {
|
|
308
306
|
role: isTreeview ? 'treeitem' : undefined,
|
|
309
307
|
"aria-expanded": isExpanded,
|
|
310
308
|
className: className,
|
|
311
309
|
ref: listRef,
|
|
312
310
|
onKeyDown: handleKeyDown,
|
|
313
311
|
id: uniqueId
|
|
314
|
-
}, /*#__PURE__*/
|
|
312
|
+
}, /*#__PURE__*/React__default.createElement("button", {
|
|
315
313
|
"aria-expanded": isExpanded,
|
|
316
314
|
className: buttonClassName,
|
|
317
315
|
onClick: () => {
|
|
@@ -333,37 +331,37 @@ const SideNavMenu = /*#__PURE__*/React.forwardRef(function SideNavMenu(_ref, ref
|
|
|
333
331
|
ref: menuRef,
|
|
334
332
|
type: "button",
|
|
335
333
|
tabIndex: isTreeview ? -1 : 0
|
|
336
|
-
}, IconElement && /*#__PURE__*/
|
|
334
|
+
}, IconElement && /*#__PURE__*/React__default.createElement(react.SideNavIcon, null, /*#__PURE__*/React__default.createElement(IconElement, null)), !sideNavExpanded && /*#__PURE__*/React__default.createElement("div", {
|
|
337
335
|
className: `${prefix}--side-nav--panel-submenu-caret-container`
|
|
338
|
-
}, /*#__PURE__*/
|
|
336
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
339
337
|
className: `${prefix}--side-nav--panel-submenu-caret`
|
|
340
|
-
}, _SharkFinIcon || (_SharkFinIcon = /*#__PURE__*/
|
|
338
|
+
}, _SharkFinIcon || (_SharkFinIcon = /*#__PURE__*/React__default.createElement(SharkFinIcon.SharkFinIcon, null)))), /*#__PURE__*/React__default.createElement("span", {
|
|
341
339
|
className: `${prefix}--side-nav__submenu-title`
|
|
342
|
-
}, title), /*#__PURE__*/
|
|
340
|
+
}, title), /*#__PURE__*/React__default.createElement(react.SideNavIcon, {
|
|
343
341
|
className: `${prefix}--side-nav__submenu-chevron`,
|
|
344
342
|
small: true
|
|
345
|
-
}, primary ? _ChevronRight || (_ChevronRight = /*#__PURE__*/
|
|
343
|
+
}, primary ? _ChevronRight || (_ChevronRight = /*#__PURE__*/React__default.createElement(iconsReact.ChevronRight, {
|
|
346
344
|
size: 20
|
|
347
|
-
})) : _ChevronDown || (_ChevronDown = /*#__PURE__*/
|
|
345
|
+
})) : _ChevronDown || (_ChevronDown = /*#__PURE__*/React__default.createElement(iconsReact.ChevronDown, {
|
|
348
346
|
size: 20
|
|
349
|
-
})))), primary ? /*#__PURE__*/
|
|
347
|
+
})))), primary ? /*#__PURE__*/React__default.createElement(react.Layer, null, /*#__PURE__*/React__default.createElement("div", {
|
|
350
348
|
className: primaryClassNames
|
|
351
|
-
}, /*#__PURE__*/
|
|
349
|
+
}, /*#__PURE__*/React__default.createElement(SideNavItems.SideNavItems, {
|
|
352
350
|
accessibilityLabel: {
|
|
353
351
|
'aria-label': `${title} submenu`
|
|
354
352
|
}
|
|
355
|
-
}, isSm && /*#__PURE__*/
|
|
353
|
+
}, isSm && /*#__PURE__*/React__default.createElement(react.Button, {
|
|
356
354
|
ref: backButtonRef,
|
|
357
355
|
kind: "ghost",
|
|
358
356
|
size: "md",
|
|
359
357
|
onClick: handleOnBackButtonClick,
|
|
360
358
|
className: `${prefix}--side-nav__back-button`,
|
|
361
359
|
renderIcon: backButtonRenderIcon
|
|
362
|
-
}, backButtonTitle), childrenToRender))) : /*#__PURE__*/
|
|
360
|
+
}, backButtonTitle), childrenToRender))) : /*#__PURE__*/React__default.createElement("ul", {
|
|
363
361
|
className: `${prefix}--side-nav__menu`,
|
|
364
362
|
role: "group"
|
|
365
363
|
}, childrenToRender));
|
|
366
|
-
return navType == SideNav.SIDE_NAV_TYPE.PANEL && !sideNavExpanded ? /*#__PURE__*/
|
|
364
|
+
return navType == SideNav.SIDE_NAV_TYPE.PANEL && !sideNavExpanded ? /*#__PURE__*/React__default.createElement(SideNavFlyoutMenu.SideNavFlyoutMenu, {
|
|
367
365
|
selected: active,
|
|
368
366
|
className: `${prefix}--side-nav-flyout-menu`,
|
|
369
367
|
title: title,
|
|
@@ -8,17 +8,17 @@
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
10
|
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
11
|
-
var
|
|
11
|
+
var cx = require('classnames');
|
|
12
12
|
var PropTypes = require('prop-types');
|
|
13
|
-
var
|
|
13
|
+
var React__default = require('react');
|
|
14
14
|
var react = require('@carbon/react');
|
|
15
15
|
var Link = require('./Link.js');
|
|
16
16
|
var usePrefix = require('../internal/usePrefix.js');
|
|
17
17
|
var SideNav = require('./SideNav.js');
|
|
18
|
-
var
|
|
18
|
+
var iconsReact = require('@carbon/icons-react');
|
|
19
19
|
|
|
20
20
|
var _SideNavIcon;
|
|
21
|
-
const SideNavMenuItem = /*#__PURE__*/
|
|
21
|
+
const SideNavMenuItem = /*#__PURE__*/React__default.forwardRef(function SideNavMenuItem(props, ref) {
|
|
22
22
|
const prefix = usePrefix.usePrefix();
|
|
23
23
|
const {
|
|
24
24
|
children,
|
|
@@ -31,29 +31,29 @@ const SideNavMenuItem = /*#__PURE__*/React.forwardRef(function SideNavMenuItem(p
|
|
|
31
31
|
} = props;
|
|
32
32
|
const {
|
|
33
33
|
isTreeview
|
|
34
|
-
} =
|
|
35
|
-
const className =
|
|
34
|
+
} = React__default.useContext(SideNav.SideNavContext);
|
|
35
|
+
const className = cx({
|
|
36
36
|
[`${prefix}--side-nav__menu-item`]: true,
|
|
37
37
|
[`${prefix}--side-nav__menu-item--flyout-menu-item`]: isFlyoutMenuItem
|
|
38
38
|
}, customClassName);
|
|
39
|
-
const linkClassName =
|
|
39
|
+
const linkClassName = cx({
|
|
40
40
|
[`${prefix}--side-nav__link`]: true,
|
|
41
41
|
[`${prefix}--side-nav__link--active`]: isActive && isFlyoutMenuItem,
|
|
42
42
|
[`${prefix}--side-nav__link--current`]: isActive && !isFlyoutMenuItem
|
|
43
43
|
});
|
|
44
|
-
return /*#__PURE__*/
|
|
44
|
+
return /*#__PURE__*/React__default.createElement("li", {
|
|
45
45
|
className: className
|
|
46
|
-
}, /*#__PURE__*/
|
|
46
|
+
}, /*#__PURE__*/React__default.createElement(Component, _rollupPluginBabelHelpers.extends({}, rest, {
|
|
47
47
|
"aria-selected": isActive ? 'true' : 'false',
|
|
48
48
|
role: isTreeview ? 'treeitem' : undefined,
|
|
49
49
|
className: linkClassName,
|
|
50
50
|
tabIndex: isTreeview ? -1 : 0,
|
|
51
51
|
ref: ref
|
|
52
|
-
}), IconElement && !isFlyoutMenuItem && /*#__PURE__*/
|
|
52
|
+
}), IconElement && !isFlyoutMenuItem && /*#__PURE__*/React__default.createElement(react.SideNavIcon, {
|
|
53
53
|
small: true
|
|
54
|
-
}, /*#__PURE__*/
|
|
54
|
+
}, /*#__PURE__*/React__default.createElement(IconElement, null)), isActive && isFlyoutMenuItem && (_SideNavIcon || (_SideNavIcon = /*#__PURE__*/React__default.createElement(react.SideNavIcon, {
|
|
55
55
|
small: true
|
|
56
|
-
}, /*#__PURE__*/
|
|
56
|
+
}, /*#__PURE__*/React__default.createElement(iconsReact.Checkmark, null)))), /*#__PURE__*/React__default.createElement(react.SideNavLinkText, null, children)));
|
|
57
57
|
});
|
|
58
58
|
SideNavMenuItem.displayName = 'SideNavMenuItem';
|
|
59
59
|
SideNavMenuItem.propTypes = {
|
|
@@ -7,29 +7,28 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var cx = require('classnames');
|
|
11
11
|
var PropTypes = require('prop-types');
|
|
12
|
-
var
|
|
12
|
+
var React__default = require('react');
|
|
13
13
|
var usePrefix = require('../internal/usePrefix.js');
|
|
14
14
|
|
|
15
|
-
const SideNavSlot =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
} = _ref;
|
|
15
|
+
const SideNavSlot = ({
|
|
16
|
+
children,
|
|
17
|
+
className: customClassName,
|
|
18
|
+
renderIcon: IconElement
|
|
19
|
+
}) => {
|
|
21
20
|
const prefix = usePrefix.usePrefix();
|
|
22
|
-
const className =
|
|
21
|
+
const className = cx(`${prefix}--side-nav__slot`, customClassName);
|
|
23
22
|
const handleKeyDown = e => {
|
|
24
23
|
if (e.key === 'ArrowDown') {
|
|
25
24
|
e.stopPropagation();
|
|
26
25
|
}
|
|
27
26
|
};
|
|
28
|
-
return /*#__PURE__*/
|
|
27
|
+
return /*#__PURE__*/React__default.createElement("li", {
|
|
29
28
|
className: className
|
|
30
|
-
}, IconElement && /*#__PURE__*/
|
|
29
|
+
}, IconElement && /*#__PURE__*/React__default.createElement("div", {
|
|
31
30
|
className: `${prefix}--side-nav__icon`
|
|
32
|
-
}, /*#__PURE__*/
|
|
31
|
+
}, /*#__PURE__*/React__default.createElement(IconElement, null)), /*#__PURE__*/React__default.createElement("div", {
|
|
33
32
|
role: "presentation",
|
|
34
33
|
tabIndex: -1,
|
|
35
34
|
onKeyDown: handleKeyDown,
|
|
@@ -10,29 +10,28 @@
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
12
|
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
13
|
-
var
|
|
13
|
+
var cx = require('classnames');
|
|
14
14
|
var PropTypes = require('prop-types');
|
|
15
|
-
var
|
|
15
|
+
var React__default = require('react');
|
|
16
16
|
var react = require('@carbon/react');
|
|
17
17
|
var usePrefix = require('../internal/usePrefix.js');
|
|
18
18
|
|
|
19
|
-
const SideNavToggle = /*#__PURE__*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} = _ref;
|
|
19
|
+
const SideNavToggle = /*#__PURE__*/React__default.forwardRef(function SideNavToggle({
|
|
20
|
+
className: customClassName,
|
|
21
|
+
renderIcon: IconElement,
|
|
22
|
+
tabIndex,
|
|
23
|
+
children,
|
|
24
|
+
...rest
|
|
25
|
+
}, ref) {
|
|
27
26
|
const prefix = usePrefix.usePrefix();
|
|
28
|
-
return /*#__PURE__*/
|
|
29
|
-
className:
|
|
27
|
+
return /*#__PURE__*/React__default.createElement("button", _rollupPluginBabelHelpers.extends({
|
|
28
|
+
className: cx(customClassName, {
|
|
30
29
|
[`${prefix}--side-nav__toggle`]: true
|
|
31
30
|
}),
|
|
32
31
|
ref: ref,
|
|
33
32
|
type: "button",
|
|
34
33
|
tabIndex: tabIndex ?? 0
|
|
35
|
-
}, rest), IconElement && /*#__PURE__*/
|
|
34
|
+
}, rest), IconElement && /*#__PURE__*/React__default.createElement(react.SideNavIcon, null, /*#__PURE__*/React__default.createElement(IconElement, null)), /*#__PURE__*/React__default.createElement("span", {
|
|
36
35
|
className: `${prefix}--side-nav__toggle-text`
|
|
37
36
|
}, children));
|
|
38
37
|
});
|
|
@@ -7,25 +7,24 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var cx = require('classnames');
|
|
11
11
|
var PropTypes = require('prop-types');
|
|
12
|
-
var
|
|
12
|
+
var React__default = require('react');
|
|
13
13
|
var usePrefix = require('../internal/usePrefix.js');
|
|
14
14
|
|
|
15
|
-
const TrialCountdown =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} = _ref;
|
|
15
|
+
const TrialCountdown = ({
|
|
16
|
+
className,
|
|
17
|
+
count,
|
|
18
|
+
text = 'Trial days left',
|
|
19
|
+
warning = false
|
|
20
|
+
}) => {
|
|
22
21
|
const prefix = usePrefix.usePrefix();
|
|
23
|
-
const classNames =
|
|
22
|
+
const classNames = cx(`${prefix}--trial-countdown`, className, {
|
|
24
23
|
[`${prefix}--trial-countdown--warning`]: warning
|
|
25
24
|
});
|
|
26
|
-
return /*#__PURE__*/
|
|
25
|
+
return /*#__PURE__*/React__default.createElement("p", {
|
|
27
26
|
className: classNames
|
|
28
|
-
}, /*#__PURE__*/
|
|
27
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
29
28
|
className: `${prefix}--trial-countdown__count`
|
|
30
29
|
}, count), ' ', text);
|
|
31
30
|
};
|
|
@@ -68,13 +68,12 @@ function matches(event, keysToMatch) {
|
|
|
68
68
|
* @param {Key} key
|
|
69
69
|
* @returns {boolean}
|
|
70
70
|
*/
|
|
71
|
-
function match(eventOrCode
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
71
|
+
function match(eventOrCode, {
|
|
72
|
+
key,
|
|
73
|
+
which,
|
|
74
|
+
keyCode,
|
|
75
|
+
code
|
|
76
|
+
} = {}) {
|
|
78
77
|
if (typeof eventOrCode === 'string') {
|
|
79
78
|
return eventOrCode === key;
|
|
80
79
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var React__default = require('react');
|
|
11
11
|
|
|
12
12
|
/* eslint-disable jsdoc/require-jsdoc */
|
|
13
13
|
/**
|
|
@@ -30,12 +30,11 @@ var React = require('react');
|
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
function useDelayedState(initialState) {
|
|
33
|
-
const [state, setState] =
|
|
34
|
-
const timeoutId =
|
|
33
|
+
const [state, setState] = React__default.useState(initialState);
|
|
34
|
+
const timeoutId = React__default.useRef(null);
|
|
35
35
|
// We use `useCallback` to match the signature of React's `useState` which will
|
|
36
36
|
// always return the same reference for the `setState` updater
|
|
37
|
-
const setStateWithDelay =
|
|
38
|
-
let delayMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
37
|
+
const setStateWithDelay = React__default.useCallback((stateToSet, delayMs = 0) => {
|
|
39
38
|
window.clearTimeout(timeoutId.current ?? undefined);
|
|
40
39
|
timeoutId.current = null;
|
|
41
40
|
if (delayMs === 0) {
|
|
@@ -47,7 +46,7 @@ function useDelayedState(initialState) {
|
|
|
47
46
|
timeoutId.current = null;
|
|
48
47
|
}, delayMs);
|
|
49
48
|
}, []);
|
|
50
|
-
|
|
49
|
+
React__default.useEffect(() => {
|
|
51
50
|
return () => {
|
|
52
51
|
window.clearTimeout(timeoutId.current ?? undefined);
|
|
53
52
|
};
|
package/lib/internal/useEvent.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var React__default = require('react');
|
|
11
11
|
|
|
12
12
|
/* eslint-disable jsdoc/require-param-description */
|
|
13
13
|
// @ts-check
|
|
@@ -34,11 +34,11 @@ function useWindowEvent(eventName, callback) {
|
|
|
34
34
|
/**
|
|
35
35
|
* @type {MutableRefObject<WindowEventCallback<E> | null>}
|
|
36
36
|
*/
|
|
37
|
-
const savedCallback =
|
|
38
|
-
|
|
37
|
+
const savedCallback = React__default.useRef(null);
|
|
38
|
+
React__default.useEffect(() => {
|
|
39
39
|
savedCallback.current = callback;
|
|
40
40
|
}, [callback]);
|
|
41
|
-
|
|
41
|
+
React__default.useEffect(() => {
|
|
42
42
|
/**
|
|
43
43
|
* @type {WindowEventCallback<E>}
|
|
44
44
|
*/
|
package/lib/internal/useId.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var React__default = require('react');
|
|
11
11
|
var setupGetInstanceId = require('./setupGetInstanceId.js');
|
|
12
12
|
var useIdPrefix = require('./useIdPrefix.js');
|
|
13
13
|
var environment = require('./environment.js');
|
|
@@ -45,10 +45,10 @@ var environment = require('./environment.js');
|
|
|
45
45
|
// https://github.com/webpack/webpack/issues/14814
|
|
46
46
|
// https://github.com/mui/material-ui/issues/41190
|
|
47
47
|
const _React = {
|
|
48
|
-
...
|
|
48
|
+
...React__default
|
|
49
49
|
};
|
|
50
50
|
const instanceId = setupGetInstanceId.default();
|
|
51
|
-
const useIsomorphicLayoutEffect = environment.canUseDOM ?
|
|
51
|
+
const useIsomorphicLayoutEffect = environment.canUseDOM ? React__default.useLayoutEffect : React__default.useEffect;
|
|
52
52
|
let serverHandoffCompleted = false;
|
|
53
53
|
const defaultId = 'id';
|
|
54
54
|
|
|
@@ -58,10 +58,9 @@ const defaultId = 'id';
|
|
|
58
58
|
* @param {string} [prefix] the optional prefix id
|
|
59
59
|
* @returns {string}
|
|
60
60
|
*/
|
|
61
|
-
function useCompatibleId() {
|
|
62
|
-
let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultId;
|
|
61
|
+
function useCompatibleId(prefix = defaultId) {
|
|
63
62
|
const contextPrefix = useIdPrefix.useIdPrefix();
|
|
64
|
-
const [id, setId] =
|
|
63
|
+
const [id, setId] = React__default.useState(() => {
|
|
65
64
|
if (serverHandoffCompleted) {
|
|
66
65
|
return `${contextPrefix ? `${contextPrefix}-` : ``}${prefix}-${instanceId()}`;
|
|
67
66
|
}
|
|
@@ -72,7 +71,7 @@ function useCompatibleId() {
|
|
|
72
71
|
setId(`${contextPrefix ? `${contextPrefix}-` : ``}${prefix}-${instanceId()}`);
|
|
73
72
|
}
|
|
74
73
|
}, [instanceId]);
|
|
75
|
-
|
|
74
|
+
React__default.useEffect(() => {
|
|
76
75
|
if (serverHandoffCompleted === false) {
|
|
77
76
|
serverHandoffCompleted = true;
|
|
78
77
|
}
|
|
@@ -86,8 +85,7 @@ function useCompatibleId() {
|
|
|
86
85
|
* @param {string} [prefix] the optional prefix id
|
|
87
86
|
* @returns {string}
|
|
88
87
|
*/
|
|
89
|
-
function useReactId() {
|
|
90
|
-
let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultId;
|
|
88
|
+
function useReactId(prefix = defaultId) {
|
|
91
89
|
const contextPrefix = useIdPrefix.useIdPrefix();
|
|
92
90
|
return `${contextPrefix ? `${contextPrefix}-` : ``}${prefix}-${_React.useId()}`;
|
|
93
91
|
}
|
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var React__default = require('react');
|
|
11
11
|
|
|
12
|
-
const IdPrefixContext = /*#__PURE__*/
|
|
12
|
+
const IdPrefixContext = /*#__PURE__*/React__default.createContext(null);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
*/
|
|
17
17
|
function useIdPrefix() {
|
|
18
|
-
return
|
|
18
|
+
return React__default.useContext(IdPrefixContext);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
exports.IdPrefixContext = IdPrefixContext;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var React__default = require('react');
|
|
11
11
|
var environment = require('./environment.js');
|
|
12
12
|
|
|
13
13
|
/* eslint-disable jsdoc/require-jsdoc */
|
|
@@ -19,14 +19,14 @@ var environment = require('./environment.js');
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
function useMatchMedia(mediaQueryString) {
|
|
22
|
-
const [matches, setMatches] =
|
|
22
|
+
const [matches, setMatches] = React__default.useState(() => {
|
|
23
23
|
if (environment.canUseDOM) {
|
|
24
24
|
const mediaQueryList = window.matchMedia(mediaQueryString);
|
|
25
25
|
return mediaQueryList.matches;
|
|
26
26
|
}
|
|
27
27
|
return false;
|
|
28
28
|
});
|
|
29
|
-
|
|
29
|
+
React__default.useEffect(() => {
|
|
30
30
|
function listener(event) {
|
|
31
31
|
setMatches(event.matches);
|
|
32
32
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var React__default = require('react');
|
|
11
11
|
|
|
12
12
|
/* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
|
|
13
13
|
/* eslint-disable jsdoc/require-param */
|
|
@@ -25,7 +25,7 @@ var React = require('react');
|
|
|
25
25
|
* the same node.
|
|
26
26
|
*/
|
|
27
27
|
const useMergedRefs = refs => {
|
|
28
|
-
return
|
|
28
|
+
return React__default.useCallback(node => {
|
|
29
29
|
refs.forEach(ref => {
|
|
30
30
|
if (typeof ref === 'function') {
|
|
31
31
|
ref(node);
|