@boomerang-io/carbon-addons-boomerang-react 4.6.9-beta.4 → 4.6.9-beta.42

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,6 +24,7 @@ function AdvantageSideNav(props) {
24
24
  const { app, enableChatButton = true, showChatButton = true, showSelectTeamPurpose = false, homeLink, assistantLink, defaultAssistantLink, joinCreateTrigger, isLoading, isOpen, teams = [], triggerEvent, accounts = [], baseEnvUrl, className, navLinks, personalTeams = [], user, showChatTooltip, templateMeteringEvent, tooltipMessage, isLaunchpad = false, userTeamsError = false, userTeamsLoading = false, history, children, ...rest } = props;
25
25
  const [activeSubmenu, setActiveSubmenu] = React__default.default.useState("");
26
26
  const [activeMenu, setActiveMenu] = React__default.default.useState(false);
27
+ const [isCreateOpen, setIsCreateOpen] = React__default.default.useState(true);
27
28
  const isMenuOpen = isOpen || activeMenu;
28
29
  const windowLocation = window.location;
29
30
  const isPartnerUser = user?.type === UserType.USER_PLATFORM_ROLE.Partner;
@@ -84,6 +85,17 @@ function AdvantageSideNav(props) {
84
85
  destinationPath: service.url,
85
86
  });
86
87
  };
88
+ console.log("IsCreateOpen outside", isCreateOpen);
89
+ const handleCreateClick = () => {
90
+ setIsCreateOpen(true);
91
+ console.log("IsCreateOpen inside", isCreateOpen);
92
+ triggerEvent &&
93
+ triggerEvent({
94
+ action: "Clicked on SideNav Create link",
95
+ category: "Sidenav",
96
+ // destinationPath: service.url,
97
+ });
98
+ };
87
99
  const handleLaunchpadLink = (event) => {
88
100
  event.preventDefault();
89
101
  // remediation to close menu, submenu and accordion when select a team on Launchpad
@@ -144,6 +156,21 @@ function AdvantageSideNav(props) {
144
156
  children ? (React__default.default.createElement(React__default.default.Fragment, null,
145
157
  React__default.default.createElement(react.SideNavDivider, null),
146
158
  children)) : null,
159
+ isCreateOpen && React__default.default.createElement(react.ComposedModal, { "aria-label": "Feedback", open: isCreateOpen, className: `${settings.prefix}--bmrg-feedback-container ${settings.prefix}--bmrg-header-modal`, onClose: setIsCreateOpen(false), onKeyDown: (e) => e.stopPropagation() },
160
+ React__default.default.createElement(react.ModalHeader, { title: "Choose your Method to Create:", closeModal: setIsCreateOpen(!isCreateOpen) }),
161
+ React__default.default.createElement(react.ModalBody, null,
162
+ React__default.default.createElement("div", null,
163
+ React__default.default.createElement("a", { href: "www.google.com" },
164
+ React__default.default.createElement("p", null, "Create an Agent"),
165
+ React__default.default.createElement("span", null, "Simple single agent configuration leveraging tools, via chat and general field inputs")),
166
+ React__default.default.createElement("a", { href: "www.youtube.com" },
167
+ React__default.default.createElement("p", null, "Create an Agentic App/ Workflow"),
168
+ React__default.default.createElement("span", null, "Advanced orchestration of multiple agents into workflows with configurable frameworks"))))),
169
+ React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-create-link",
170
+ // isActive={`${baseEnvUrl}/${app}/`.includes(windowLocation.href)}
171
+ renderIcon: icons.AddAlt,
172
+ // onClick={setIsCreateOpen(true)}
173
+ onClick: () => handleCreateClick }, "Create"),
147
174
  userTeamsLoading && isMenuOpen ? (React__default.default.createElement(React__default.default.Fragment, null,
148
175
  React__default.default.createElement(react.SideNavDivider, null),
149
176
  React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-advantage-sidenav-loading-container` },
@@ -60,8 +60,6 @@ const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn
60
60
  const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
61
61
  function Header(props) {
62
62
  const { productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, triggerEvent, userTeams, } = props;
63
- console.log("userTeams", userTeams);
64
- console.log("props.userTeams", props.userTeams);
65
63
  return (React__default.default.createElement(React__default.default.Fragment, null,
66
64
  React__default.default.createElement(react.Theme, { theme: carbonTheme },
67
65
  React__default.default.createElement(react.Header, { "aria-label": "App navigation header", className: className },
@@ -72,7 +70,7 @@ function Header(props) {
72
70
  ? navLinks.map((link) => (React__default.default.createElement(react.HeaderMenuItem, { "aria-label": `Link for ${link.name}`, "data-testid": "header-menu-link", href: link.url, isCurrentPage: window?.location?.href && link.url ? window.location.href.startsWith(link.url) : false, key: link.name, target: link.isExternal ? "_blank" : undefined, rel: link.isExternal ? "noopener noreferrer" : undefined }, link.name)))
73
71
  : null),
74
72
  React__default.default.createElement(react.HeaderGlobalBar, null,
75
- React__default.default.createElement(DefaultTeamsFlowMenu, { menuItems: userTeams }),
73
+ React__default.default.createElement(DefaultTeamsFlowMenu, { menuItems: userTeams?.data?.standardTeams }),
76
74
  props?.instanceSwitcherEnabled && (React__default.default.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
77
75
  React__default.default.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
78
76
  React__default.default.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
@@ -101,22 +99,12 @@ function InstanceSwitcherMenu(props) {
101
99
  : null)) : null));
102
100
  }
103
101
  function DefaultTeamsFlowMenu(props) {
104
- const currentURL = window?.location?.href;
105
102
  const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.defaultTeamsFlowMenu);
106
103
  // if (!props.enabled) {
107
104
  // return null;
108
105
  // }
109
106
  return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-header-instance-switcher`, style: { position: "relative" }, ref: ref },
110
- React__default.default.createElement("button", { "aria-controls": MenuListId.defaultTeamsFlowMenu, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-label": MenuAriaLabelRecord.defaultTeamsFlowMenu, className: headerButtonClassNames, "data-testid": "header-defaultTeamsFlow-link", id: MenuButtonId.defaultTeamsFlowMenu, onClick: toggleActive },
111
- React__default.default.createElement(icons.Wikis, null)),
112
- isOpen ? (React__default.default.createElement(HeaderMenu.default, { "aria-labelledby": MenuButtonId.defaultTeamsFlowMenu, id: MenuListId.defaultTeamsFlowMenu }, Array.isArray(props.menuItems)
113
- ? props.menuItems.map((item) => (React__default.default.createElement(react.HeaderMenuItem, { "aria-label": `Default Teams for ${item.instanceName}`, "data-testid": "header-menu-default-teams-flow", href: item.url, key: item.instanceName, target: "_self", rel: "noopener noreferrer" },
114
- React__default.default.createElement("div", { className: instanceCheckMarkContainerClass },
115
- React__default.default.createElement("span", null, item.instanceName),
116
- item.url && currentURL?.includes(item.url) ? (React__default.default.createElement("span", null,
117
- React__default.default.createElement(icons.Checkmark, null),
118
- " ")) : ("")))))
119
- : null)) : null));
107
+ React__default.default.createElement(react.Dropdown, { style: { width: "10rem", marginBottom: "1rem" }, label: "", title: "Dropdown", items: props.menuItems, itemToString: (item) => item ? item.name : " " })));
120
108
  }
121
109
  function RequestsMenu(props) {
122
110
  const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.Requests);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import cx from 'classnames';
3
- import { SideNavLink, SideNav, SideNavItems, SideNavDivider, SkeletonPlaceholder, SideNavMenu } from '@carbon/react';
3
+ import { SideNavLink, SideNav, SideNavItems, SideNavDivider, ComposedModal, ModalHeader, ModalBody, SkeletonPlaceholder, SideNavMenu } from '@carbon/react';
4
4
  import TooltipHover from '../TooltipHover/TooltipHover.js';
5
5
  import { ChatBot, Home, AddAlt, UserMultiple, User, Locked, Unlocked, ChevronRight, GroupAccount } from '@carbon/react/icons';
6
6
  import { USER_PLATFORM_ROLE } from '../../constants/UserType.js';
@@ -15,6 +15,7 @@ function AdvantageSideNav(props) {
15
15
  const { app, enableChatButton = true, showChatButton = true, showSelectTeamPurpose = false, homeLink, assistantLink, defaultAssistantLink, joinCreateTrigger, isLoading, isOpen, teams = [], triggerEvent, accounts = [], baseEnvUrl, className, navLinks, personalTeams = [], user, showChatTooltip, templateMeteringEvent, tooltipMessage, isLaunchpad = false, userTeamsError = false, userTeamsLoading = false, history, children, ...rest } = props;
16
16
  const [activeSubmenu, setActiveSubmenu] = React.useState("");
17
17
  const [activeMenu, setActiveMenu] = React.useState(false);
18
+ const [isCreateOpen, setIsCreateOpen] = React.useState(true);
18
19
  const isMenuOpen = isOpen || activeMenu;
19
20
  const windowLocation = window.location;
20
21
  const isPartnerUser = user?.type === USER_PLATFORM_ROLE.Partner;
@@ -75,6 +76,17 @@ function AdvantageSideNav(props) {
75
76
  destinationPath: service.url,
76
77
  });
77
78
  };
79
+ console.log("IsCreateOpen outside", isCreateOpen);
80
+ const handleCreateClick = () => {
81
+ setIsCreateOpen(true);
82
+ console.log("IsCreateOpen inside", isCreateOpen);
83
+ triggerEvent &&
84
+ triggerEvent({
85
+ action: "Clicked on SideNav Create link",
86
+ category: "Sidenav",
87
+ // destinationPath: service.url,
88
+ });
89
+ };
78
90
  const handleLaunchpadLink = (event) => {
79
91
  event.preventDefault();
80
92
  // remediation to close menu, submenu and accordion when select a team on Launchpad
@@ -135,6 +147,21 @@ function AdvantageSideNav(props) {
135
147
  children ? (React.createElement(React.Fragment, null,
136
148
  React.createElement(SideNavDivider, null),
137
149
  children)) : null,
150
+ isCreateOpen && React.createElement(ComposedModal, { "aria-label": "Feedback", open: isCreateOpen, className: `${prefix}--bmrg-feedback-container ${prefix}--bmrg-header-modal`, onClose: setIsCreateOpen(false), onKeyDown: (e) => e.stopPropagation() },
151
+ React.createElement(ModalHeader, { title: "Choose your Method to Create:", closeModal: setIsCreateOpen(!isCreateOpen) }),
152
+ React.createElement(ModalBody, null,
153
+ React.createElement("div", null,
154
+ React.createElement("a", { href: "www.google.com" },
155
+ React.createElement("p", null, "Create an Agent"),
156
+ React.createElement("span", null, "Simple single agent configuration leveraging tools, via chat and general field inputs")),
157
+ React.createElement("a", { href: "www.youtube.com" },
158
+ React.createElement("p", null, "Create an Agentic App/ Workflow"),
159
+ React.createElement("span", null, "Advanced orchestration of multiple agents into workflows with configurable frameworks"))))),
160
+ React.createElement(SideNavLink, { "data-testid": "sidenav-create-link",
161
+ // isActive={`${baseEnvUrl}/${app}/`.includes(windowLocation.href)}
162
+ renderIcon: AddAlt,
163
+ // onClick={setIsCreateOpen(true)}
164
+ onClick: () => handleCreateClick }, "Create"),
138
165
  userTeamsLoading && isMenuOpen ? (React.createElement(React.Fragment, null,
139
166
  React.createElement(SideNavDivider, null),
140
167
  React.createElement("div", { className: `${prefix}--bmrg-advantage-sidenav-loading-container` },
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Theme, Header as Header$1, SkipToContent, HeaderName, HeaderNavigation, HeaderMenuItem, HeaderGlobalBar, HeaderPanel, HeaderMenuButton, SideNav, SideNavItems, SideNavLink } from '@carbon/react';
2
+ import { Theme, Header as Header$1, SkipToContent, HeaderName, HeaderNavigation, HeaderMenuItem, HeaderGlobalBar, Dropdown, HeaderPanel, HeaderMenuButton, SideNav, SideNavItems, SideNavLink } from '@carbon/react';
3
3
  import { Wikis, Checkmark, Collaborate, NotificationNew, Notification, Help, UserAvatar, Close, Switcher, OpenPanelFilledRight } from '@carbon/react/icons';
4
4
  import HeaderAppSwitcher from './HeaderAppSwitcher.js';
5
5
  import HeaderMenu from './HeaderMenu.js';
@@ -52,8 +52,6 @@ const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn
52
52
  const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
53
53
  function Header(props) {
54
54
  const { productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, triggerEvent, userTeams, } = props;
55
- console.log("userTeams", userTeams);
56
- console.log("props.userTeams", props.userTeams);
57
55
  return (React.createElement(React.Fragment, null,
58
56
  React.createElement(Theme, { theme: carbonTheme },
59
57
  React.createElement(Header$1, { "aria-label": "App navigation header", className: className },
@@ -64,7 +62,7 @@ function Header(props) {
64
62
  ? navLinks.map((link) => (React.createElement(HeaderMenuItem, { "aria-label": `Link for ${link.name}`, "data-testid": "header-menu-link", href: link.url, isCurrentPage: window?.location?.href && link.url ? window.location.href.startsWith(link.url) : false, key: link.name, target: link.isExternal ? "_blank" : undefined, rel: link.isExternal ? "noopener noreferrer" : undefined }, link.name)))
65
63
  : null),
66
64
  React.createElement(HeaderGlobalBar, null,
67
- React.createElement(DefaultTeamsFlowMenu, { menuItems: userTeams }),
65
+ React.createElement(DefaultTeamsFlowMenu, { menuItems: userTeams?.data?.standardTeams }),
68
66
  props?.instanceSwitcherEnabled && (React.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
69
67
  React.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
70
68
  React.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
@@ -93,22 +91,12 @@ function InstanceSwitcherMenu(props) {
93
91
  : null)) : null));
94
92
  }
95
93
  function DefaultTeamsFlowMenu(props) {
96
- const currentURL = window?.location?.href;
97
94
  const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.defaultTeamsFlowMenu);
98
95
  // if (!props.enabled) {
99
96
  // return null;
100
97
  // }
101
98
  return (React.createElement("div", { className: `${prefix}--bmrg-header-instance-switcher`, style: { position: "relative" }, ref: ref },
102
- React.createElement("button", { "aria-controls": MenuListId.defaultTeamsFlowMenu, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-label": MenuAriaLabelRecord.defaultTeamsFlowMenu, className: headerButtonClassNames, "data-testid": "header-defaultTeamsFlow-link", id: MenuButtonId.defaultTeamsFlowMenu, onClick: toggleActive },
103
- React.createElement(Wikis, null)),
104
- isOpen ? (React.createElement(HeaderMenu, { "aria-labelledby": MenuButtonId.defaultTeamsFlowMenu, id: MenuListId.defaultTeamsFlowMenu }, Array.isArray(props.menuItems)
105
- ? props.menuItems.map((item) => (React.createElement(HeaderMenuItem, { "aria-label": `Default Teams for ${item.instanceName}`, "data-testid": "header-menu-default-teams-flow", href: item.url, key: item.instanceName, target: "_self", rel: "noopener noreferrer" },
106
- React.createElement("div", { className: instanceCheckMarkContainerClass },
107
- React.createElement("span", null, item.instanceName),
108
- item.url && currentURL?.includes(item.url) ? (React.createElement("span", null,
109
- React.createElement(Checkmark, null),
110
- " ")) : ("")))))
111
- : null)) : null));
99
+ React.createElement(Dropdown, { style: { width: "10rem", marginBottom: "1rem" }, label: "", title: "Dropdown", items: props.menuItems, itemToString: (item) => item ? item.name : " " })));
112
100
  }
113
101
  function RequestsMenu(props) {
114
102
  const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.Requests);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@boomerang-io/carbon-addons-boomerang-react",
3
3
  "description": "Carbon Addons for Boomerang apps",
4
- "version": "4.6.9-beta.4",
4
+ "version": "4.6.9-beta.42",
5
5
  "author": {
6
6
  "name": "Tim Bula",
7
7
  "email": "timrbula@gmail.com"