@boomerang-io/carbon-addons-boomerang-react 4.6.8-beta.22 → 4.6.8-beta.24
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/dist/cjs/components/Header/Header.js +16 -4
- package/dist/cjs/components/Header/HeaderAppSwitcher.js +2 -10
- package/dist/cjs/components/UIShell/UIShell.js +5 -4
- package/dist/esm/components/Header/Header.js +16 -4
- package/dist/esm/components/Header/HeaderAppSwitcher.js +2 -10
- package/dist/esm/components/UIShell/UIShell.js +5 -4
- package/dist/types/index.d.ts +13 -1
- package/package.json +1 -1
- package/scss/components/Header/_headerTeamSwitcher.scss +165 -0
- package/scss/global/index.scss +3 -2
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
+
var reactQuery = require('react-query');
|
|
6
7
|
var react = require('@carbon/react');
|
|
7
8
|
var icons = require('@carbon/react/icons');
|
|
8
9
|
var HeaderAppSwitcher = require('./HeaderAppSwitcher.js');
|
|
@@ -12,6 +13,7 @@ var PlatformNotificationsContainer = require('../PlatformNotifications/PlatformN
|
|
|
12
13
|
var UserRequests = require('./UserRequests.js');
|
|
13
14
|
var useHeaderMenu = require('../../hooks/useHeaderMenu.js');
|
|
14
15
|
var useWindowSize = require('../../hooks/useWindowSize.js');
|
|
16
|
+
var servicesConfig = require('../../config/servicesConfig.js');
|
|
15
17
|
var settings = require('../../internal/settings.js');
|
|
16
18
|
|
|
17
19
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -21,7 +23,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
21
23
|
/*
|
|
22
24
|
IBM Confidential
|
|
23
25
|
694970X, 69497O0
|
|
24
|
-
© Copyright IBM Corp. 2022,
|
|
26
|
+
© Copyright IBM Corp. 2022, 2025
|
|
25
27
|
*/
|
|
26
28
|
const MenuListId = {
|
|
27
29
|
Notifcations: "header-notifications-dialog",
|
|
@@ -32,6 +34,7 @@ const MenuListId = {
|
|
|
32
34
|
Support: "header-support-menu",
|
|
33
35
|
instanceSwitcher: "header-instanceSwitcher-menu",
|
|
34
36
|
Switcher: "header-switcher-menu",
|
|
37
|
+
TeamSwitcher: "header-team-switcher-menu",
|
|
35
38
|
};
|
|
36
39
|
const MenuButtonId = {
|
|
37
40
|
Notifcations: "header-notifications-dialog-button",
|
|
@@ -42,6 +45,7 @@ const MenuButtonId = {
|
|
|
42
45
|
Support: "header-support-menu-button",
|
|
43
46
|
InstanceSwitcher: "header-instanceSwitcher-menu-button",
|
|
44
47
|
Switcher: "header-switcher-menu-button",
|
|
48
|
+
TeamSwitcher: "header-team-switcher-menu-button",
|
|
45
49
|
};
|
|
46
50
|
const MenuAriaLabelRecord = {
|
|
47
51
|
Notifcations: "Notifications dialog",
|
|
@@ -52,11 +56,19 @@ const MenuAriaLabelRecord = {
|
|
|
52
56
|
instanceSwitcher: "Instance Switcher Menu",
|
|
53
57
|
Support: "Support menu",
|
|
54
58
|
Switcher: "Switcher menu",
|
|
59
|
+
TeamSwitcher: "Team Switcher menu",
|
|
55
60
|
};
|
|
56
61
|
const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn cds--btn--primary cds--btn--icon-only cds--btn cds--btn--primary";
|
|
57
62
|
const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
|
|
58
63
|
function Header(props) {
|
|
59
|
-
const { productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, triggerEvent, userTeams, } = props;
|
|
64
|
+
const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, history, isLaunchpad = false, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, } = props;
|
|
65
|
+
const hasUserTeams = Boolean(userTeams);
|
|
66
|
+
const userTeamsUrl = servicesConfig.serviceUrl.getUserTeamsServices({ baseServicesUrl });
|
|
67
|
+
const teamsQuery = reactQuery.useQuery({
|
|
68
|
+
queryKey: userTeamsUrl,
|
|
69
|
+
queryFn: servicesConfig.resolver.query(userTeamsUrl, null),
|
|
70
|
+
enabled: !hasUserTeams,
|
|
71
|
+
});
|
|
60
72
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
61
73
|
React__default.default.createElement(react.Theme, { theme: carbonTheme },
|
|
62
74
|
React__default.default.createElement(react.Header, { "aria-label": "App navigation header", className: className },
|
|
@@ -72,7 +84,7 @@ function Header(props) {
|
|
|
72
84
|
React__default.default.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
|
|
73
85
|
React__default.default.createElement(SupportMenu, { enabled: Array.isArray(props.supportMenuItems) && props.supportMenuItems.length > 0, menuItems: props.supportMenuItems }),
|
|
74
86
|
React__default.default.createElement(ProfileMenu, { enabled: Array.isArray(props.profileMenuItems) && props.profileMenuItems.length > 0, menuItems: props.profileMenuItems }),
|
|
75
|
-
React__default.default.createElement(AppSwitcherMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: props.enableAppSwitcher, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, userTeams: userTeams }),
|
|
87
|
+
React__default.default.createElement(AppSwitcherMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: props.enableAppSwitcher, teamsQuery: teamsQuery, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, userTeams: userTeams }),
|
|
76
88
|
React__default.default.createElement(RightPanelMenu, { enabled: Boolean(rightPanel && Object.keys(rightPanel).length), ...rightPanel })))),
|
|
77
89
|
React__default.default.createElement(NotificationsContainer.default, { enableMultiContainer: true, containerId: `${settings.prefix}--bmrg-header-notifications` })));
|
|
78
90
|
}
|
|
@@ -153,7 +165,7 @@ function AppSwitcherMenu(props) {
|
|
|
153
165
|
}
|
|
154
166
|
return (React__default.default.createElement("div", { ref: ref },
|
|
155
167
|
React__default.default.createElement("button", { "aria-controls": MenuListId.Switcher, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-label": MenuAriaLabelRecord.Switcher, className: headerButtonClassNames, "data-testid": "header-appswitcher-link", id: MenuButtonId.Switcher, onClick: toggleActive }, isOpen ? React__default.default.createElement(icons.Close, { size: 20 }) : React__default.default.createElement(icons.Switcher, { size: 20 })),
|
|
156
|
-
React__default.default.createElement(HeaderAppSwitcher.default, { baseEnvUrl: props.baseEnvUrl, baseServicesUrl: props.baseServicesUrl, id: MenuListId.Switcher, isOpen: isOpen, templateMeteringEvent: props.templateMeteringEvent, triggerEvent: props.triggerEvent, userTeams: props.userTeams })));
|
|
168
|
+
React__default.default.createElement(HeaderAppSwitcher.default, { baseEnvUrl: props.baseEnvUrl, baseServicesUrl: props.baseServicesUrl, id: MenuListId.Switcher, isOpen: isOpen, teamsQuery: props.teamsQuery, templateMeteringEvent: props.templateMeteringEvent, triggerEvent: props.triggerEvent, userTeams: props.userTeams })));
|
|
157
169
|
}
|
|
158
170
|
function RightPanelMenu(props) {
|
|
159
171
|
const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.RightPanel);
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var reactQuery = require('react-query');
|
|
7
6
|
var react = require('@carbon/react');
|
|
8
7
|
var icons = require('@carbon/react/icons');
|
|
9
8
|
var ErrorMessage = require('../ErrorMessage/ErrorMessage.js');
|
|
10
9
|
var cx = require('classnames');
|
|
11
|
-
var servicesConfig = require('../../config/servicesConfig.js');
|
|
12
10
|
var settings = require('../../internal/settings.js');
|
|
13
11
|
|
|
14
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -28,14 +26,8 @@ const externalProps = {
|
|
|
28
26
|
const panelClassName = `${settings.prefix}--bmrg-header-switcher-panel`;
|
|
29
27
|
const contentClassName = `${settings.prefix}--bmrg-header-switcher`;
|
|
30
28
|
const skeletonClassName = `${settings.prefix}--bmrg-header-switcher__skeleton`;
|
|
31
|
-
function HeaderAppSwitcher({ baseServicesUrl, baseEnvUrl, id, isOpen, templateMeteringEvent, triggerEvent, userTeams }) {
|
|
29
|
+
function HeaderAppSwitcher({ baseServicesUrl, baseEnvUrl, id, isOpen, teamsQuery, templateMeteringEvent, triggerEvent, userTeams, }) {
|
|
32
30
|
const hasUserTeams = Boolean(userTeams);
|
|
33
|
-
const userTeamsUrl = servicesConfig.serviceUrl.getUserTeamsServices({ baseServicesUrl });
|
|
34
|
-
const teamsQuery = reactQuery.useQuery({
|
|
35
|
-
queryKey: userTeamsUrl,
|
|
36
|
-
queryFn: servicesConfig.resolver.query(userTeamsUrl, null),
|
|
37
|
-
enabled: !hasUserTeams
|
|
38
|
-
});
|
|
39
31
|
if (userTeams?.isLoading || teamsQuery?.isLoading) {
|
|
40
32
|
return (React__default.default.createElement(react.HeaderPanel, { "aria-label": "App Switcher", className: panelClassName, expanded: isOpen, id: id, role: "menu" },
|
|
41
33
|
React__default.default.createElement("div", { className: cx__default.default(contentClassName, "--is-loading", { "--is-hidden": !isOpen }) },
|
|
@@ -78,7 +70,7 @@ function HeaderAppSwitcher({ baseServicesUrl, baseEnvUrl, id, isOpen, templateMe
|
|
|
78
70
|
}
|
|
79
71
|
return null;
|
|
80
72
|
}
|
|
81
|
-
function TeamServiceListMenu({ baseEnvUrl, isAccount, isMember, team, templateMeteringEvent, triggerEvent }) {
|
|
73
|
+
function TeamServiceListMenu({ baseEnvUrl, isAccount, isMember, team, templateMeteringEvent, triggerEvent, }) {
|
|
82
74
|
const { name, displayName, services } = team;
|
|
83
75
|
const nameToDisplay = displayName ? displayName : name;
|
|
84
76
|
const isNameTruncated = nameToDisplay?.length > 30;
|
|
@@ -26,10 +26,11 @@ IBM Confidential
|
|
|
26
26
|
694970X, 69497O0
|
|
27
27
|
© Copyright IBM Corp. 2022, 2024
|
|
28
28
|
*/
|
|
29
|
-
function UIShell({ baseEnvUrl, carbonTheme = "g10", config, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }) {
|
|
29
|
+
function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, createJoinTeamTrigger, history, isLaunchpad = false, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }) {
|
|
30
30
|
// Support base header .e.g for an error state
|
|
31
31
|
if (!config) {
|
|
32
|
-
return (React__default.default.createElement(
|
|
32
|
+
return (React__default.default.createElement(reactQuery.QueryClientProvider, { client: servicesConfig.queryClient },
|
|
33
|
+
React__default.default.createElement(Header.default, { baseEnvUrl: baseEnvUrl ?? "", baseServicesUrl: "", carbonTheme: carbonTheme, enableAppSwitcher: false, enableNotifications: false, enableNotificationsCount: false, productName: productName || platformName || "", user: user })));
|
|
33
34
|
}
|
|
34
35
|
const { features, navigation, platform, platformMessage } = config;
|
|
35
36
|
const names = getProductAndPlatformNames({ productName, platformName, platform });
|
|
@@ -69,7 +70,7 @@ function UIShell({ baseEnvUrl, carbonTheme = "g10", config, leftPanel, platformN
|
|
|
69
70
|
*/
|
|
70
71
|
const isPrivacyStatementDisabled = renderPrivacyStatement === false || features?.["consent.enabled"] === false;
|
|
71
72
|
return (React__default.default.createElement(reactQuery.QueryClientProvider, { client: servicesConfig.queryClient },
|
|
72
|
-
React__default.default.createElement(Header.default, { baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
|
|
73
|
+
React__default.default.createElement(Header.default, { analyticsHelpers: analyticsHelpers, baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, createJoinTeamTrigger: createJoinTeamTrigger, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
|
|
73
74
|
isUserEnabled && (React__default.default.createElement(ProfileSettings.ProfileSettingsMenuItem, { key: "profile-settings", baseServicesUrl: platform.baseServicesUrl, src: `${platform.baseServicesUrl}/users/image/${user?.email}`, userName: user?.displayName ?? user?.name })),
|
|
74
75
|
isSendMailEnabled && (React__default.default.createElement(HeaderMenuItem.default, { key: "email-preferences", href: `${platform.baseEnvUrl}/launchpad/email-preferences`, icon: React__default.default.createElement(icons.Email, null), kind: "internal", text: "Email Preferences", type: "link" })),
|
|
75
76
|
!isPrivacyStatementDisabled && (React__default.default.createElement(PrivacyStatement.PrivacyStatementMenuItem, { key: "privacy-statement", baseServicesUrl: platform.baseServicesUrl, platformEmail: platform?.platformEmail })),
|
|
@@ -85,7 +86,7 @@ function UIShell({ baseEnvUrl, carbonTheme = "g10", config, leftPanel, platformN
|
|
|
85
86
|
isAboutPlatformEnabled && (React__default.default.createElement(AboutPlatform.AboutPlatformMenuItem, { key: "about-platform", name: platform.name, baseServicesUrl: platform.baseServicesUrl })),
|
|
86
87
|
tutorialScreenToShow && handleShowTutorial && (React__default.default.createElement(HeaderMenuItem.default, { key: "launch-tutorial", onClick: handleShowTutorial, icon: React__default.default.createElement(icons.Book, null), "data-testid": "launch-tutorial", text: "Launch Tutorial", type: "button" })),
|
|
87
88
|
...supportMenuItems,
|
|
88
|
-
].filter(Boolean), userTeams: userTeams }),
|
|
89
|
+
].filter(Boolean), history: history, isLaunchpad: isLaunchpad, trackEvent: trackEvent, user: user, userTeams: userTeams }),
|
|
89
90
|
isPrivacyModalRendered ? (React__default.default.createElement(PrivacyRedirect.default, { isOpen: true, baseEnvUrl: platform.baseEnvUrl, platformName: platform?.name, user: user })) : null));
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { useQuery } from 'react-query';
|
|
2
3
|
import { Theme, Header as Header$1, SkipToContent, HeaderName, HeaderNavigation, HeaderMenuItem, HeaderGlobalBar, HeaderPanel, HeaderMenuButton, SideNav, SideNavItems, SideNavLink } from '@carbon/react';
|
|
3
4
|
import { Wikis, Checkmark, Collaborate, NotificationNew, Notification, Help, UserAvatar, Close, Switcher, OpenPanelFilledRight } from '@carbon/react/icons';
|
|
4
5
|
import HeaderAppSwitcher from './HeaderAppSwitcher.js';
|
|
@@ -8,12 +9,13 @@ import PlatformNotificationsContainer from '../PlatformNotifications/PlatformNot
|
|
|
8
9
|
import UserRequests from './UserRequests.js';
|
|
9
10
|
import useHeaderMenu from '../../hooks/useHeaderMenu.js';
|
|
10
11
|
import useWindowSize from '../../hooks/useWindowSize.js';
|
|
12
|
+
import { resolver, serviceUrl } from '../../config/servicesConfig.js';
|
|
11
13
|
import { prefix } from '../../internal/settings.js';
|
|
12
14
|
|
|
13
15
|
/*
|
|
14
16
|
IBM Confidential
|
|
15
17
|
694970X, 69497O0
|
|
16
|
-
© Copyright IBM Corp. 2022,
|
|
18
|
+
© Copyright IBM Corp. 2022, 2025
|
|
17
19
|
*/
|
|
18
20
|
const MenuListId = {
|
|
19
21
|
Notifcations: "header-notifications-dialog",
|
|
@@ -24,6 +26,7 @@ const MenuListId = {
|
|
|
24
26
|
Support: "header-support-menu",
|
|
25
27
|
instanceSwitcher: "header-instanceSwitcher-menu",
|
|
26
28
|
Switcher: "header-switcher-menu",
|
|
29
|
+
TeamSwitcher: "header-team-switcher-menu",
|
|
27
30
|
};
|
|
28
31
|
const MenuButtonId = {
|
|
29
32
|
Notifcations: "header-notifications-dialog-button",
|
|
@@ -34,6 +37,7 @@ const MenuButtonId = {
|
|
|
34
37
|
Support: "header-support-menu-button",
|
|
35
38
|
InstanceSwitcher: "header-instanceSwitcher-menu-button",
|
|
36
39
|
Switcher: "header-switcher-menu-button",
|
|
40
|
+
TeamSwitcher: "header-team-switcher-menu-button",
|
|
37
41
|
};
|
|
38
42
|
const MenuAriaLabelRecord = {
|
|
39
43
|
Notifcations: "Notifications dialog",
|
|
@@ -44,11 +48,19 @@ const MenuAriaLabelRecord = {
|
|
|
44
48
|
instanceSwitcher: "Instance Switcher Menu",
|
|
45
49
|
Support: "Support menu",
|
|
46
50
|
Switcher: "Switcher menu",
|
|
51
|
+
TeamSwitcher: "Team Switcher menu",
|
|
47
52
|
};
|
|
48
53
|
const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn cds--btn--primary cds--btn--icon-only cds--btn cds--btn--primary";
|
|
49
54
|
const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
|
|
50
55
|
function Header(props) {
|
|
51
|
-
const { productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, triggerEvent, userTeams, } = props;
|
|
56
|
+
const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, history, isLaunchpad = false, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, } = props;
|
|
57
|
+
const hasUserTeams = Boolean(userTeams);
|
|
58
|
+
const userTeamsUrl = serviceUrl.getUserTeamsServices({ baseServicesUrl });
|
|
59
|
+
const teamsQuery = useQuery({
|
|
60
|
+
queryKey: userTeamsUrl,
|
|
61
|
+
queryFn: resolver.query(userTeamsUrl, null),
|
|
62
|
+
enabled: !hasUserTeams,
|
|
63
|
+
});
|
|
52
64
|
return (React.createElement(React.Fragment, null,
|
|
53
65
|
React.createElement(Theme, { theme: carbonTheme },
|
|
54
66
|
React.createElement(Header$1, { "aria-label": "App navigation header", className: className },
|
|
@@ -64,7 +76,7 @@ function Header(props) {
|
|
|
64
76
|
React.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
|
|
65
77
|
React.createElement(SupportMenu, { enabled: Array.isArray(props.supportMenuItems) && props.supportMenuItems.length > 0, menuItems: props.supportMenuItems }),
|
|
66
78
|
React.createElement(ProfileMenu, { enabled: Array.isArray(props.profileMenuItems) && props.profileMenuItems.length > 0, menuItems: props.profileMenuItems }),
|
|
67
|
-
React.createElement(AppSwitcherMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: props.enableAppSwitcher, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, userTeams: userTeams }),
|
|
79
|
+
React.createElement(AppSwitcherMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: props.enableAppSwitcher, teamsQuery: teamsQuery, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, userTeams: userTeams }),
|
|
68
80
|
React.createElement(RightPanelMenu, { enabled: Boolean(rightPanel && Object.keys(rightPanel).length), ...rightPanel })))),
|
|
69
81
|
React.createElement(NotificationsContainer, { enableMultiContainer: true, containerId: `${prefix}--bmrg-header-notifications` })));
|
|
70
82
|
}
|
|
@@ -145,7 +157,7 @@ function AppSwitcherMenu(props) {
|
|
|
145
157
|
}
|
|
146
158
|
return (React.createElement("div", { ref: ref },
|
|
147
159
|
React.createElement("button", { "aria-controls": MenuListId.Switcher, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-label": MenuAriaLabelRecord.Switcher, className: headerButtonClassNames, "data-testid": "header-appswitcher-link", id: MenuButtonId.Switcher, onClick: toggleActive }, isOpen ? React.createElement(Close, { size: 20 }) : React.createElement(Switcher, { size: 20 })),
|
|
148
|
-
React.createElement(HeaderAppSwitcher, { baseEnvUrl: props.baseEnvUrl, baseServicesUrl: props.baseServicesUrl, id: MenuListId.Switcher, isOpen: isOpen, templateMeteringEvent: props.templateMeteringEvent, triggerEvent: props.triggerEvent, userTeams: props.userTeams })));
|
|
160
|
+
React.createElement(HeaderAppSwitcher, { baseEnvUrl: props.baseEnvUrl, baseServicesUrl: props.baseServicesUrl, id: MenuListId.Switcher, isOpen: isOpen, teamsQuery: props.teamsQuery, templateMeteringEvent: props.templateMeteringEvent, triggerEvent: props.triggerEvent, userTeams: props.userTeams })));
|
|
149
161
|
}
|
|
150
162
|
function RightPanelMenu(props) {
|
|
151
163
|
const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.RightPanel);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useQuery } from 'react-query';
|
|
3
2
|
import { HeaderPanel, SkeletonText, SwitcherDivider, SideNavMenu, SideNavMenuItem } from '@carbon/react';
|
|
4
3
|
import { Launch } from '@carbon/react/icons';
|
|
5
4
|
import Error from '../ErrorMessage/ErrorMessage.js';
|
|
6
5
|
import cx from 'classnames';
|
|
7
|
-
import { resolver, serviceUrl } from '../../config/servicesConfig.js';
|
|
8
6
|
import { prefix } from '../../internal/settings.js';
|
|
9
7
|
|
|
10
8
|
/*
|
|
@@ -19,14 +17,8 @@ const externalProps = {
|
|
|
19
17
|
const panelClassName = `${prefix}--bmrg-header-switcher-panel`;
|
|
20
18
|
const contentClassName = `${prefix}--bmrg-header-switcher`;
|
|
21
19
|
const skeletonClassName = `${prefix}--bmrg-header-switcher__skeleton`;
|
|
22
|
-
function HeaderAppSwitcher({ baseServicesUrl, baseEnvUrl, id, isOpen, templateMeteringEvent, triggerEvent, userTeams }) {
|
|
20
|
+
function HeaderAppSwitcher({ baseServicesUrl, baseEnvUrl, id, isOpen, teamsQuery, templateMeteringEvent, triggerEvent, userTeams, }) {
|
|
23
21
|
const hasUserTeams = Boolean(userTeams);
|
|
24
|
-
const userTeamsUrl = serviceUrl.getUserTeamsServices({ baseServicesUrl });
|
|
25
|
-
const teamsQuery = useQuery({
|
|
26
|
-
queryKey: userTeamsUrl,
|
|
27
|
-
queryFn: resolver.query(userTeamsUrl, null),
|
|
28
|
-
enabled: !hasUserTeams
|
|
29
|
-
});
|
|
30
22
|
if (userTeams?.isLoading || teamsQuery?.isLoading) {
|
|
31
23
|
return (React.createElement(HeaderPanel, { "aria-label": "App Switcher", className: panelClassName, expanded: isOpen, id: id, role: "menu" },
|
|
32
24
|
React.createElement("div", { className: cx(contentClassName, "--is-loading", { "--is-hidden": !isOpen }) },
|
|
@@ -69,7 +61,7 @@ function HeaderAppSwitcher({ baseServicesUrl, baseEnvUrl, id, isOpen, templateMe
|
|
|
69
61
|
}
|
|
70
62
|
return null;
|
|
71
63
|
}
|
|
72
|
-
function TeamServiceListMenu({ baseEnvUrl, isAccount, isMember, team, templateMeteringEvent, triggerEvent }) {
|
|
64
|
+
function TeamServiceListMenu({ baseEnvUrl, isAccount, isMember, team, templateMeteringEvent, triggerEvent, }) {
|
|
73
65
|
const { name, displayName, services } = team;
|
|
74
66
|
const nameToDisplay = displayName ? displayName : name;
|
|
75
67
|
const isNameTruncated = nameToDisplay?.length > 30;
|
|
@@ -18,10 +18,11 @@ IBM Confidential
|
|
|
18
18
|
694970X, 69497O0
|
|
19
19
|
© Copyright IBM Corp. 2022, 2024
|
|
20
20
|
*/
|
|
21
|
-
function UIShell({ baseEnvUrl, carbonTheme = "g10", config, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }) {
|
|
21
|
+
function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, createJoinTeamTrigger, history, isLaunchpad = false, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }) {
|
|
22
22
|
// Support base header .e.g for an error state
|
|
23
23
|
if (!config) {
|
|
24
|
-
return (React.createElement(
|
|
24
|
+
return (React.createElement(QueryClientProvider, { client: queryClient },
|
|
25
|
+
React.createElement(Header, { baseEnvUrl: baseEnvUrl ?? "", baseServicesUrl: "", carbonTheme: carbonTheme, enableAppSwitcher: false, enableNotifications: false, enableNotificationsCount: false, productName: productName || platformName || "", user: user })));
|
|
25
26
|
}
|
|
26
27
|
const { features, navigation, platform, platformMessage } = config;
|
|
27
28
|
const names = getProductAndPlatformNames({ productName, platformName, platform });
|
|
@@ -61,7 +62,7 @@ function UIShell({ baseEnvUrl, carbonTheme = "g10", config, leftPanel, platformN
|
|
|
61
62
|
*/
|
|
62
63
|
const isPrivacyStatementDisabled = renderPrivacyStatement === false || features?.["consent.enabled"] === false;
|
|
63
64
|
return (React.createElement(QueryClientProvider, { client: queryClient },
|
|
64
|
-
React.createElement(Header, { baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
|
|
65
|
+
React.createElement(Header, { analyticsHelpers: analyticsHelpers, baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, createJoinTeamTrigger: createJoinTeamTrigger, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
|
|
65
66
|
isUserEnabled && (React.createElement(ProfileSettingsMenuItem, { key: "profile-settings", baseServicesUrl: platform.baseServicesUrl, src: `${platform.baseServicesUrl}/users/image/${user?.email}`, userName: user?.displayName ?? user?.name })),
|
|
66
67
|
isSendMailEnabled && (React.createElement(HeaderMenuItem, { key: "email-preferences", href: `${platform.baseEnvUrl}/launchpad/email-preferences`, icon: React.createElement(Email, null), kind: "internal", text: "Email Preferences", type: "link" })),
|
|
67
68
|
!isPrivacyStatementDisabled && (React.createElement(PrivacyStatementMenuItem, { key: "privacy-statement", baseServicesUrl: platform.baseServicesUrl, platformEmail: platform?.platformEmail })),
|
|
@@ -77,7 +78,7 @@ function UIShell({ baseEnvUrl, carbonTheme = "g10", config, leftPanel, platformN
|
|
|
77
78
|
isAboutPlatformEnabled && (React.createElement(AboutPlatformMenuItem, { key: "about-platform", name: platform.name, baseServicesUrl: platform.baseServicesUrl })),
|
|
78
79
|
tutorialScreenToShow && handleShowTutorial && (React.createElement(HeaderMenuItem, { key: "launch-tutorial", onClick: handleShowTutorial, icon: React.createElement(Book, null), "data-testid": "launch-tutorial", text: "Launch Tutorial", type: "button" })),
|
|
79
80
|
...supportMenuItems,
|
|
80
|
-
].filter(Boolean), userTeams: userTeams }),
|
|
81
|
+
].filter(Boolean), history: history, isLaunchpad: isLaunchpad, trackEvent: trackEvent, user: user, userTeams: userTeams }),
|
|
81
82
|
isPrivacyModalRendered ? (React.createElement(PrivacyRedirect, { isOpen: true, baseEnvUrl: platform.baseEnvUrl, platformName: platform?.name, user: user })) : null));
|
|
82
83
|
}
|
|
83
84
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -223,6 +223,7 @@ type User = {
|
|
|
223
223
|
hasOpenPersonalTeamRequest?: boolean;
|
|
224
224
|
personalTeamAssistantsAccess?: boolean;
|
|
225
225
|
personalTeamAssistantsAccessRequested?: boolean;
|
|
226
|
+
teamInstanceSwitcherDefault?: string | null;
|
|
226
227
|
};
|
|
227
228
|
type UserTeams = {
|
|
228
229
|
accountTeams: {
|
|
@@ -346,14 +347,18 @@ type Props$H = React.ComponentPropsWithoutRef<"img"> & {
|
|
|
346
347
|
declare function Avatar({ alt, className, size, src, style, title, userName, plainTooltip, ...rest }: Props$H): React.JSX.Element;
|
|
347
348
|
|
|
348
349
|
type Props$G = {
|
|
350
|
+
analyticsHelpers?: any;
|
|
349
351
|
baseServicesUrl?: string;
|
|
350
352
|
baseEnvUrl?: string;
|
|
351
353
|
carbonTheme?: "white" | "g10" | "g90" | "g100";
|
|
352
354
|
className?: string;
|
|
355
|
+
createJoinTeamTrigger?: Function;
|
|
353
356
|
enableAppSwitcher?: boolean;
|
|
354
357
|
instanceSwitcherEnabled?: boolean;
|
|
355
358
|
enableNotifications?: boolean;
|
|
356
359
|
enableNotificationsCount?: boolean;
|
|
360
|
+
history?: any;
|
|
361
|
+
isLaunchpad?: boolean;
|
|
357
362
|
leftPanel?: (args: {
|
|
358
363
|
close: () => void;
|
|
359
364
|
isOpen: boolean;
|
|
@@ -381,7 +386,9 @@ type Props$G = {
|
|
|
381
386
|
supportMenuItems?: React.ReactNode[];
|
|
382
387
|
instanceSwitcherMenuItems?: React.ReactNode[];
|
|
383
388
|
templateMeteringEvent?: (props: any) => void;
|
|
389
|
+
trackEvent?: Function;
|
|
384
390
|
triggerEvent?: (props: any) => any;
|
|
391
|
+
user?: User;
|
|
385
392
|
userTeams?: {
|
|
386
393
|
data: any;
|
|
387
394
|
isLoading: boolean;
|
|
@@ -1354,7 +1361,9 @@ type Props$1 = {
|
|
|
1354
1361
|
declare function ToggleComponent({ helperText, id, invalid, invalidText, reversed, label, labelText, labelA, labelB, orientation, tooltipClassName, tooltipContent, tooltipProps, ...toggleProps }: Props$1): React.JSX.Element;
|
|
1355
1362
|
|
|
1356
1363
|
type Props = {
|
|
1364
|
+
analyticsHelpers?: any;
|
|
1357
1365
|
carbonTheme?: "white" | "g10" | "g90" | "g100";
|
|
1366
|
+
createJoinTeamTrigger?: Function;
|
|
1358
1367
|
baseEnvUrl?: string;
|
|
1359
1368
|
config?: {
|
|
1360
1369
|
features?: {
|
|
@@ -1399,6 +1408,8 @@ type Props = {
|
|
|
1399
1408
|
};
|
|
1400
1409
|
platformMessage?: any;
|
|
1401
1410
|
};
|
|
1411
|
+
history?: any;
|
|
1412
|
+
isLaunchpad?: boolean;
|
|
1402
1413
|
leftPanel?: (args: {
|
|
1403
1414
|
close: () => void;
|
|
1404
1415
|
isOpen: boolean;
|
|
@@ -1420,6 +1431,7 @@ type Props = {
|
|
|
1420
1431
|
};
|
|
1421
1432
|
supportMenuItems?: React.ReactNode[];
|
|
1422
1433
|
templateMeteringEvent?: (props: any) => void;
|
|
1434
|
+
trackEvent?: Function;
|
|
1423
1435
|
triggerEvent?: (props: any) => any;
|
|
1424
1436
|
user?: User;
|
|
1425
1437
|
userTeams?: {
|
|
@@ -1431,6 +1443,6 @@ type Props = {
|
|
|
1431
1443
|
handleShowTutorial?: Function;
|
|
1432
1444
|
tutorialScreenToShow?: string;
|
|
1433
1445
|
};
|
|
1434
|
-
declare function UIShell({ baseEnvUrl, carbonTheme, config, leftPanel, platformName, productName, profileMenuItems, supportMenuItems, renderPrivacyRedirect, renderPrivacyStatement, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }: Props): React.JSX.Element;
|
|
1446
|
+
declare function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme, config, createJoinTeamTrigger, history, isLaunchpad, leftPanel, platformName, productName, profileMenuItems, supportMenuItems, renderPrivacyRedirect, renderPrivacyStatement, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }: Props): React.JSX.Element;
|
|
1435
1447
|
|
|
1436
1448
|
export { AdvantageSideNav, AutoSuggestBmrg as AutoSuggest, Avatar, CheckboxListComponent as CheckboxList, ComboBoxComponent as ComboBox, ComboBoxMultiSelect, ComposedModal, ConfirmModal, CreatableComponent as Creatable, DataDrivenInput, DateInputComponent as DateInput, DecisionButtons, DelayedRender, DynamicFormik, DynamicInput, Error, Error403, Error404, ErrorBoundary, ErrorDragon, ErrorFullPage, Error as ErrorMessage, ErrorPage, ErrorPageCore, FeatureHeader, FeatureHeaderSubtitle, FeatureHeaderTitle, FeatureNavTab, FeatureNavTabs, FeatureSideNav, FeatureSideNavFooter, FeatureSideNavHeader, FeatureSideNavLink, FeatureSideNavLinks, FlowModalContainer as FlowModal, FlowModalForm, FormInput, Header, _default as HeaderMenuItem, ImageModal, InputGovernor, Loading, MemberBar, Modal, ModalConfirmEdit, FlowModalContainer as ModalFlow, FlowModalForm as ModalFlowForm, ModalForm, ModalFunctionChildrenProps, ModalTrigger, NotificationsContainer, PlatformBanner, PlatformNotificationsContainer, Portal, PrivacyStatement, ProtectedRoute, RadioGroupComponent as RadioGroup, RichTextAreaComponent as RichTextArea, SimpleTeamService, Team, TextAreaComponent as TextArea, TextInputComponent as TextInput, ToastNotification, ToggleComponent as Toggle, TooltipHover, UIShell, User, UserTeams, notify };
|
package/package.json
CHANGED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/*
|
|
2
|
+
IBM Confidential
|
|
3
|
+
694970X, 69497O0
|
|
4
|
+
© Copyright IBM Corp. 2022, 2025
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@use "../../global/config" as *;
|
|
8
|
+
@use '@carbon/themes/scss/tokens' as theme;
|
|
9
|
+
@use "../../global/utils";
|
|
10
|
+
@use "../../global/themes/shell-tokens" as shell;
|
|
11
|
+
|
|
12
|
+
:root {
|
|
13
|
+
.#{$prefix}--header-dropdown-menu {
|
|
14
|
+
list-style: none;
|
|
15
|
+
width: 15rem;
|
|
16
|
+
|
|
17
|
+
.#{$prefix}--header__menu-title {
|
|
18
|
+
display: flex;
|
|
19
|
+
font-weight: 700;
|
|
20
|
+
justify-content: space-between;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
width: 100%;
|
|
23
|
+
|
|
24
|
+
.#{$prefix}--header__menu-arrow {
|
|
25
|
+
min-height: 1rem;
|
|
26
|
+
min-width: 1rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&[aria-expanded="true"] {
|
|
30
|
+
background-color: var(--cds-layer-hover-01) !important;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.#{$prefix}--header__menu {
|
|
35
|
+
box-shadow: none;
|
|
36
|
+
width: 18.5625rem;
|
|
37
|
+
|
|
38
|
+
.#{$prefix}--bmrg-header-drop-down {
|
|
39
|
+
position: absolute;
|
|
40
|
+
max-height: 48rem;
|
|
41
|
+
overflow-y: auto;
|
|
42
|
+
margin-right: 3.5625rem;
|
|
43
|
+
width: 18.5625rem;
|
|
44
|
+
|
|
45
|
+
a.#{$prefix}--header__menu-item {
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
width: 100%;
|
|
48
|
+
|
|
49
|
+
.#{$prefix}--text-truncate--end {
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.#{$prefix}--header-dropdown-menu-item-text-icon {
|
|
55
|
+
align-items: center;
|
|
56
|
+
display: flex;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.#{$prefix}--header-dropdown-menu-item-text {
|
|
60
|
+
display: -webkit-box;
|
|
61
|
+
line-clamp: 2;
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
text-overflow: ellipsis;
|
|
64
|
+
-webkit-box-orient: vertical;
|
|
65
|
+
-webkit-line-clamp: 2;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.#{$prefix}--header-dropdown-menu-item-icon {
|
|
69
|
+
min-height: 1rem;
|
|
70
|
+
min-width: 1rem;
|
|
71
|
+
margin-left: 0.5rem;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.#{$prefix}--header-dropdown-menu-item-container {
|
|
75
|
+
.#{$prefix}--header-dropdown-menu-item {
|
|
76
|
+
align-items: center;
|
|
77
|
+
display: flex;
|
|
78
|
+
justify-content: space-between;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.#{$prefix}--header__menu-item[aria-selected="true"] {
|
|
82
|
+
background-color: var(--cds-layer-hover-01) !important;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.#{$prefix}--header-dropdown-menu-item-account-container {
|
|
87
|
+
.#{$prefix}--header-dropdown-menu-item-account {
|
|
88
|
+
align-items: center;
|
|
89
|
+
display: flex;
|
|
90
|
+
justify-content: space-between;
|
|
91
|
+
|
|
92
|
+
.#{$prefix}--header-dropdown-menu-item-account-icons {
|
|
93
|
+
align-items: center;
|
|
94
|
+
display: flex;
|
|
95
|
+
padding-left: 0.5rem;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.#{$prefix}--header-dropdown-menu-item-account-group-icon {
|
|
99
|
+
min-height: 1rem;
|
|
100
|
+
min-width: 1rem;
|
|
101
|
+
margin-right: 0.5rem;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.#{$prefix}--header-dropdown-menu-item-account-chevron-icon {
|
|
105
|
+
min-height: 1rem;
|
|
106
|
+
min-width: 1rem;
|
|
107
|
+
transition: transform 150ms ease-in-out;
|
|
108
|
+
transform: rotate(0deg);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.#{$prefix}--header__menu-item[aria-expanded="true"] {
|
|
113
|
+
background-color: var(--cds-layer-hover-01) !important;
|
|
114
|
+
|
|
115
|
+
.#{$prefix}--header-dropdown-menu-item-account-chevron-icon {
|
|
116
|
+
transform: rotate(180deg);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.#{$prefix}--header__menu-item[aria-selected="true"] {
|
|
121
|
+
background-color: var(--cds-layer-hover-01) !important;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.#{$prefix}--header-dropdown-menu-item-account-submenu {
|
|
126
|
+
max-height: 0;
|
|
127
|
+
overflow: hidden;
|
|
128
|
+
opacity: 0;
|
|
129
|
+
transition: max-height 150ms ease-in-out, opacity 150ms ease-in-out;
|
|
130
|
+
|
|
131
|
+
&[aria-expanded="true"] {
|
|
132
|
+
max-height: 40rem;
|
|
133
|
+
opacity: 1;
|
|
134
|
+
overflow-y: auto;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.#{$prefix}--header-team-switcher-create-team-button-container {
|
|
139
|
+
border-bottom: 0.0625rem solid var(--cds-border-subtle-00);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.#{$prefix}--header-team-switcher-create-team-button {
|
|
143
|
+
cursor: pointer;
|
|
144
|
+
display: flex;
|
|
145
|
+
justify-content: space-between;
|
|
146
|
+
padding: 0;
|
|
147
|
+
width: 100%;
|
|
148
|
+
|
|
149
|
+
.#{$prefix}--header-team-switcher-create-team-button-text {
|
|
150
|
+
color: var(--cds-link-primary) !important;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.#{$prefix}--header-team-switcher-create-team-button-icon {
|
|
154
|
+
height: 1rem;
|
|
155
|
+
width: 1rem;
|
|
156
|
+
|
|
157
|
+
path {
|
|
158
|
+
fill: var(--cds-link-primary) !important;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
package/scss/global/index.scss
CHANGED
|
@@ -55,6 +55,7 @@ $use-theme-advantage-white: false !default;
|
|
|
55
55
|
@use '../components/PrivacyRedirect/privacyRedirect';
|
|
56
56
|
@use '../components/Header/header';
|
|
57
57
|
@use '../components/Header/headerAppSwitcher';
|
|
58
|
+
@use '../components/Header/headerTeamSwitcher';
|
|
58
59
|
@use '../components/Header/headerMenu';
|
|
59
60
|
@use '../components/Header/headerMenuItem';
|
|
60
61
|
@use '../components/Header/userRequests';
|
|
@@ -103,7 +104,7 @@ $use-theme-advantage-white: false !default;
|
|
|
103
104
|
svg {
|
|
104
105
|
fill: shell.$bmrg-theme-primary;
|
|
105
106
|
}
|
|
106
|
-
}
|
|
107
|
+
}
|
|
107
108
|
|
|
108
109
|
.#{$prefix}--side-nav__item--active {
|
|
109
110
|
.#{$prefix}--side-nav__icon {
|
|
@@ -155,7 +156,7 @@ $use-theme-advantage-white: false !default;
|
|
|
155
156
|
.#{$prefix}--modal {
|
|
156
157
|
background-color: shell.$bmrg-header-modal-overlay; //default isrgba(theme.$layer-accent-01, 0.5)
|
|
157
158
|
}
|
|
158
|
-
|
|
159
|
+
|
|
159
160
|
.#{$prefix}--modal-close {
|
|
160
161
|
&:hover {
|
|
161
162
|
background-color: shell.$bmrg-header-hover-background;
|