@carbon-labs/react-ui-shell 0.58.0 → 0.59.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.
|
@@ -24,8 +24,7 @@ export type HeaderContainerProps<P extends HeaderContainerRenderProps> = {
|
|
|
24
24
|
} & {
|
|
25
25
|
[K in keyof Omit<P, keyof HeaderContainerRenderProps>]: P[K];
|
|
26
26
|
};
|
|
27
|
-
export declare function HeaderContainer<P extends HeaderContainerRenderProps>({ render: Children, isSideNavExpanded, isSwitcherExpanded, isProfileExpanded, themeSetting,
|
|
28
|
-
...rest }: HeaderContainerProps<P>): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function HeaderContainer<P extends HeaderContainerRenderProps>({ render: Children, isSideNavExpanded, isSwitcherExpanded, isProfileExpanded, themeSetting, ...rest }: HeaderContainerProps<P>): import("react/jsx-runtime").JSX.Element;
|
|
29
28
|
export declare namespace HeaderContainer {
|
|
30
29
|
var propTypes: {
|
|
31
30
|
/**
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
9
9
|
import PropTypes from 'prop-types';
|
|
10
|
-
import React, { useState, useCallback, useLayoutEffect } from 'react';
|
|
10
|
+
import React, { useState, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
11
11
|
import { Escape } from '../internal/keyboard/keys.js';
|
|
12
12
|
import { match } from '../internal/keyboard/match.js';
|
|
13
13
|
import { useWindowEvent } from '../internal/useEvent.js';
|
|
@@ -20,7 +20,6 @@ function HeaderContainer(_ref) {
|
|
|
20
20
|
isSwitcherExpanded = false,
|
|
21
21
|
isProfileExpanded = false,
|
|
22
22
|
themeSetting,
|
|
23
|
-
// <-- pass this in from the story
|
|
24
23
|
...rest
|
|
25
24
|
} = _ref;
|
|
26
25
|
const prefix = usePrefix();
|
|
@@ -50,6 +49,20 @@ function HeaderContainer(_ref) {
|
|
|
50
49
|
document.querySelector(`.${prefix}--profile .${prefix}--content-switcher--selected`).focus();
|
|
51
50
|
});
|
|
52
51
|
}, [themeSetting]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
function handleProfileClosing(event) {
|
|
54
|
+
const profile = document.querySelector(`.${prefix}--profile.${prefix}--popover--open`);
|
|
55
|
+
if (profile && !profile.contains(event.target)) {
|
|
56
|
+
setIsProfileExpandedState(false);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
document.addEventListener('focusin', handleProfileClosing);
|
|
60
|
+
document.addEventListener('mousedown', handleProfileClosing);
|
|
61
|
+
return () => {
|
|
62
|
+
document.removeEventListener('mousedown', handleProfileClosing);
|
|
63
|
+
document.removeEventListener('focusin', handleProfileClosing);
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
53
66
|
return /*#__PURE__*/React.createElement(Children, _extends({}, rest, {
|
|
54
67
|
isSideNavExpanded: isSideNavExpandedState,
|
|
55
68
|
isSwitcherExpanded: isSwitcherExpandedState,
|
|
@@ -24,8 +24,7 @@ export type HeaderContainerProps<P extends HeaderContainerRenderProps> = {
|
|
|
24
24
|
} & {
|
|
25
25
|
[K in keyof Omit<P, keyof HeaderContainerRenderProps>]: P[K];
|
|
26
26
|
};
|
|
27
|
-
export declare function HeaderContainer<P extends HeaderContainerRenderProps>({ render: Children, isSideNavExpanded, isSwitcherExpanded, isProfileExpanded, themeSetting,
|
|
28
|
-
...rest }: HeaderContainerProps<P>): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function HeaderContainer<P extends HeaderContainerRenderProps>({ render: Children, isSideNavExpanded, isSwitcherExpanded, isProfileExpanded, themeSetting, ...rest }: HeaderContainerProps<P>): import("react/jsx-runtime").JSX.Element;
|
|
29
28
|
export declare namespace HeaderContainer {
|
|
30
29
|
var propTypes: {
|
|
31
30
|
/**
|
|
@@ -24,7 +24,6 @@ function HeaderContainer(_ref) {
|
|
|
24
24
|
isSwitcherExpanded = false,
|
|
25
25
|
isProfileExpanded = false,
|
|
26
26
|
themeSetting,
|
|
27
|
-
// <-- pass this in from the story
|
|
28
27
|
...rest
|
|
29
28
|
} = _ref;
|
|
30
29
|
const prefix = usePrefix.usePrefix();
|
|
@@ -54,6 +53,20 @@ function HeaderContainer(_ref) {
|
|
|
54
53
|
document.querySelector(`.${prefix}--profile .${prefix}--content-switcher--selected`).focus();
|
|
55
54
|
});
|
|
56
55
|
}, [themeSetting]);
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
function handleProfileClosing(event) {
|
|
58
|
+
const profile = document.querySelector(`.${prefix}--profile.${prefix}--popover--open`);
|
|
59
|
+
if (profile && !profile.contains(event.target)) {
|
|
60
|
+
setIsProfileExpandedState(false);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
document.addEventListener('focusin', handleProfileClosing);
|
|
64
|
+
document.addEventListener('mousedown', handleProfileClosing);
|
|
65
|
+
return () => {
|
|
66
|
+
document.removeEventListener('mousedown', handleProfileClosing);
|
|
67
|
+
document.removeEventListener('focusin', handleProfileClosing);
|
|
68
|
+
};
|
|
69
|
+
}, []);
|
|
57
70
|
return /*#__PURE__*/React.createElement(Children, _rollupPluginBabelHelpers.extends({}, rest, {
|
|
58
71
|
isSideNavExpanded: isSideNavExpandedState,
|
|
59
72
|
isSwitcherExpanded: isSwitcherExpandedState,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon-labs/react-ui-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.59.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@ibm/telemetry-js": "^1.9.1"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "eaacfa9c007e1d4f54cd64e30f5d176f8ed2b1e1"
|
|
46
46
|
}
|
|
@@ -22,14 +22,16 @@ $prefix: 'cds' !default;
|
|
|
22
22
|
.#{$prefix}--profile .#{$prefix}--toggletip-content {
|
|
23
23
|
padding: 0;
|
|
24
24
|
background-color: $background;
|
|
25
|
+
border-block-end: 1px solid $border-subtle;
|
|
25
26
|
border-inline-start: 1px solid $border-subtle;
|
|
26
27
|
gap: 0;
|
|
28
|
+
inline-size: convert.to-rem(256px);
|
|
27
29
|
max-block-size: 100vh;
|
|
28
30
|
overflow-y: scroll;
|
|
29
31
|
|
|
30
32
|
> * {
|
|
31
33
|
padding: $spacing-05;
|
|
32
|
-
|
|
34
|
+
outline: convert.to-rem(0.5px) solid $border-subtle;
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
|