@carbon-labs/react-ui-shell 0.26.0 → 0.27.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/SideNav.js +8 -4
- package/es/components/SideNavToggle.d.ts +4 -0
- package/es/components/SideNavToggle.js +9 -1
- package/lib/components/SideNav.js +8 -4
- package/lib/components/SideNavToggle.d.ts +4 -0
- package/lib/components/SideNavToggle.js +9 -1
- package/package.json +2 -2
- package/scss/styles/_side-nav.scss +11 -0
package/es/components/SideNav.js
CHANGED
|
@@ -344,6 +344,11 @@ function SideNavRenderFunction(_ref, ref) {
|
|
|
344
344
|
setInternalIsTreeview(value);
|
|
345
345
|
}
|
|
346
346
|
};
|
|
347
|
+
const SideNavToggleButton = /*#__PURE__*/React.createElement(SideNavToggle, {
|
|
348
|
+
className: !expandedState ? `${prefix}--side-nav__toggle--collapsed` : '',
|
|
349
|
+
renderIcon: expandedState ? SidePanelClose : SidePanelOpen,
|
|
350
|
+
onClick: () => setExpandedState(!expandedState)
|
|
351
|
+
}, sideNavToggleText);
|
|
347
352
|
return /*#__PURE__*/React.createElement(SideNavContext.Provider, {
|
|
348
353
|
value: {
|
|
349
354
|
expanded,
|
|
@@ -364,10 +369,9 @@ function SideNavRenderFunction(_ref, ref) {
|
|
|
364
369
|
ref: navRef,
|
|
365
370
|
className: `${prefix}--side-nav__navigation ${className}`,
|
|
366
371
|
inert: !isRail && navType !== SIDE_NAV_TYPE.PANEL && !(expanded || isLg) ? -1 : undefined
|
|
367
|
-
}, accessibilityLabel, eventHandlers, other), childrenToRender, navType === SIDE_NAV_TYPE.PANEL && /*#__PURE__*/React.createElement(
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}, sideNavToggleText)));
|
|
372
|
+
}, accessibilityLabel, eventHandlers, other), childrenToRender, navType === SIDE_NAV_TYPE.PANEL && (expandedState ? SideNavToggleButton : /*#__PURE__*/React.createElement("div", {
|
|
373
|
+
className: `${prefix}--side-nav__toggle-container`
|
|
374
|
+
}, SideNavToggleButton))));
|
|
371
375
|
}
|
|
372
376
|
const SideNav = /*#__PURE__*/React.forwardRef(SideNavRenderFunction);
|
|
373
377
|
SideNav.displayName = 'SideNav';
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
9
|
+
import cx from '../_virtual/index.js';
|
|
9
10
|
import PropTypes from 'prop-types';
|
|
10
11
|
import React from 'react';
|
|
11
12
|
import { SideNavIcon } from '@carbon/react';
|
|
@@ -13,6 +14,7 @@ import { usePrefix } from '../internal/usePrefix.js';
|
|
|
13
14
|
|
|
14
15
|
const SideNavToggle = /*#__PURE__*/React.forwardRef(function SideNavToggle(_ref, ref) {
|
|
15
16
|
let {
|
|
17
|
+
className: customClassName,
|
|
16
18
|
renderIcon: IconElement,
|
|
17
19
|
tabIndex,
|
|
18
20
|
children,
|
|
@@ -20,7 +22,9 @@ const SideNavToggle = /*#__PURE__*/React.forwardRef(function SideNavToggle(_ref,
|
|
|
20
22
|
} = _ref;
|
|
21
23
|
const prefix = usePrefix();
|
|
22
24
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
23
|
-
className:
|
|
25
|
+
className: cx(customClassName, {
|
|
26
|
+
[`${prefix}--side-nav__toggle`]: true
|
|
27
|
+
}),
|
|
24
28
|
ref: ref,
|
|
25
29
|
type: "button",
|
|
26
30
|
tabIndex: tabIndex ?? 0
|
|
@@ -34,6 +38,10 @@ SideNavToggle.propTypes = {
|
|
|
34
38
|
* Specify the text content for the toggle
|
|
35
39
|
*/
|
|
36
40
|
children: PropTypes.node,
|
|
41
|
+
/**
|
|
42
|
+
* Specify an optional className to be applied to the button node
|
|
43
|
+
*/
|
|
44
|
+
className: PropTypes.string,
|
|
37
45
|
/**
|
|
38
46
|
* Provide an optional function to be called when clicked
|
|
39
47
|
*/
|
|
@@ -346,6 +346,11 @@ function SideNavRenderFunction(_ref, ref) {
|
|
|
346
346
|
setInternalIsTreeview(value);
|
|
347
347
|
}
|
|
348
348
|
};
|
|
349
|
+
const SideNavToggleButton = /*#__PURE__*/React.createElement(SideNavToggle.SideNavToggle, {
|
|
350
|
+
className: !expandedState ? `${prefix}--side-nav__toggle--collapsed` : '',
|
|
351
|
+
renderIcon: expandedState ? bucket15.SidePanelClose : bucket15.SidePanelOpen,
|
|
352
|
+
onClick: () => setExpandedState(!expandedState)
|
|
353
|
+
}, sideNavToggleText);
|
|
349
354
|
return /*#__PURE__*/React.createElement(SideNavContext.Provider, {
|
|
350
355
|
value: {
|
|
351
356
|
expanded,
|
|
@@ -366,10 +371,9 @@ function SideNavRenderFunction(_ref, ref) {
|
|
|
366
371
|
ref: navRef,
|
|
367
372
|
className: `${prefix}--side-nav__navigation ${className}`,
|
|
368
373
|
inert: !isRail && navType !== SIDE_NAV_TYPE.PANEL && !(expanded || isLg) ? -1 : undefined
|
|
369
|
-
}, accessibilityLabel, eventHandlers, other), childrenToRender, navType === SIDE_NAV_TYPE.PANEL && /*#__PURE__*/React.createElement(
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}, sideNavToggleText)));
|
|
374
|
+
}, accessibilityLabel, eventHandlers, other), childrenToRender, navType === SIDE_NAV_TYPE.PANEL && (expandedState ? SideNavToggleButton : /*#__PURE__*/React.createElement("div", {
|
|
375
|
+
className: `${prefix}--side-nav__toggle-container`
|
|
376
|
+
}, SideNavToggleButton))));
|
|
373
377
|
}
|
|
374
378
|
const SideNav = /*#__PURE__*/React.forwardRef(SideNavRenderFunction);
|
|
375
379
|
SideNav.displayName = 'SideNav';
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
|
12
12
|
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
13
|
+
var index = require('../_virtual/index.js');
|
|
13
14
|
var PropTypes = require('prop-types');
|
|
14
15
|
var React = require('react');
|
|
15
16
|
var react = require('@carbon/react');
|
|
@@ -17,6 +18,7 @@ var usePrefix = require('../internal/usePrefix.js');
|
|
|
17
18
|
|
|
18
19
|
const SideNavToggle = /*#__PURE__*/React.forwardRef(function SideNavToggle(_ref, ref) {
|
|
19
20
|
let {
|
|
21
|
+
className: customClassName,
|
|
20
22
|
renderIcon: IconElement,
|
|
21
23
|
tabIndex,
|
|
22
24
|
children,
|
|
@@ -24,7 +26,9 @@ const SideNavToggle = /*#__PURE__*/React.forwardRef(function SideNavToggle(_ref,
|
|
|
24
26
|
} = _ref;
|
|
25
27
|
const prefix = usePrefix.usePrefix();
|
|
26
28
|
return /*#__PURE__*/React.createElement("button", _rollupPluginBabelHelpers.extends({
|
|
27
|
-
className:
|
|
29
|
+
className: index.default(customClassName, {
|
|
30
|
+
[`${prefix}--side-nav__toggle`]: true
|
|
31
|
+
}),
|
|
28
32
|
ref: ref,
|
|
29
33
|
type: "button",
|
|
30
34
|
tabIndex: tabIndex ?? 0
|
|
@@ -38,6 +42,10 @@ SideNavToggle.propTypes = {
|
|
|
38
42
|
* Specify the text content for the toggle
|
|
39
43
|
*/
|
|
40
44
|
children: PropTypes.node,
|
|
45
|
+
/**
|
|
46
|
+
* Specify an optional className to be applied to the button node
|
|
47
|
+
*/
|
|
48
|
+
className: PropTypes.string,
|
|
41
49
|
/**
|
|
42
50
|
* Provide an optional function to be called when clicked
|
|
43
51
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon-labs/react-ui-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@ibm/telemetry-js": "^1.9.1"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "94522ab158f8e47f9d0312eccccd32ea35dd1ae6"
|
|
37
37
|
}
|
|
@@ -335,3 +335,14 @@ div:has(.#{$prefix}--header)
|
|
|
335
335
|
overflow: visible;
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
+
|
|
339
|
+
.#{$prefix}--side-nav__toggle-container {
|
|
340
|
+
position: absolute;
|
|
341
|
+
background: $background;
|
|
342
|
+
inline-size: 100%;
|
|
343
|
+
inset-block-end: 0;
|
|
344
|
+
|
|
345
|
+
.#{$prefix}--side-nav__toggle.#{$prefix}--side-nav__toggle--collapsed:hover {
|
|
346
|
+
background: $background-hover;
|
|
347
|
+
}
|
|
348
|
+
}
|