@ck-ui/component-library 2.0.2 → 2.0.3

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.
Files changed (32) hide show
  1. package/dist/assets/index-eZS6kms7.css +1 -0
  2. package/dist/assets/styles-DGlqPkdv.css +1 -0
  3. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  4. package/dist/components/DateRangePicker/DateRangePicker.js +196 -173
  5. package/dist/components/Sidebar/Sidebar.d.ts +1 -1
  6. package/dist/components/Sidebar/Sidebar.d.ts.map +1 -1
  7. package/dist/components/Sidebar/Sidebar.js +45 -39
  8. package/dist/components/Sidebar/components/CollapsedTooltip/index.js +2 -2
  9. package/dist/components/Sidebar/components/MenuItemWrapper/index.js +19 -18
  10. package/dist/components/Sidebar/components/MenuRenderer/CollapsedMenu.js +2 -2
  11. package/dist/components/Sidebar/components/MenuRenderer/ExpandedMenu.d.ts +7 -1
  12. package/dist/components/Sidebar/components/MenuRenderer/ExpandedMenu.d.ts.map +1 -1
  13. package/dist/components/Sidebar/components/MenuRenderer/ExpandedMenu.js +42 -25
  14. package/dist/components/Sidebar/components/MenuRenderer/index.d.ts +4 -1
  15. package/dist/components/Sidebar/components/MenuRenderer/index.d.ts.map +1 -1
  16. package/dist/components/Sidebar/components/MenuRenderer/index.js +22 -22
  17. package/dist/components/Sidebar/components/SubMenuWrapper/index.d.ts +2 -1
  18. package/dist/components/Sidebar/components/SubMenuWrapper/index.d.ts.map +1 -1
  19. package/dist/components/Sidebar/components/SubMenuWrapper/index.js +33 -29
  20. package/dist/components/Sidebar/components/index.js +1 -1
  21. package/dist/components/Sidebar/hooks/useMenuState.d.ts +5 -1
  22. package/dist/components/Sidebar/hooks/useMenuState.d.ts.map +1 -1
  23. package/dist/components/Sidebar/hooks/useMenuState.js +56 -38
  24. package/dist/components/Sidebar/index.js +1 -1
  25. package/dist/components/Sidebar/types/sidebar.types.d.ts +3 -0
  26. package/dist/components/Sidebar/types/sidebar.types.d.ts.map +1 -1
  27. package/dist/{index-DKHB_5Ee.js → index-CSxlVCTW.js} +1 -1
  28. package/dist/styles.module-xqgv3wwP.js +12 -0
  29. package/package.json +1 -1
  30. package/dist/assets/index-DrxnMAdp.css +0 -1
  31. package/dist/assets/styles-BCYQ4rbx.css +0 -1
  32. package/dist/styles.module-V3iL6ubH.js +0 -11
@@ -1,28 +1,28 @@
1
- import { jsxs as N, jsx as e } from "react/jsx-runtime";
2
- import { useState as T, useMemo as b } from "react";
3
- import { CHAT_BOT_KEY as A } from "./Sidebar.constants.js";
4
- import { useModuleSwitch as H } from "./hooks/useModuleSwitch.js";
5
- import { MenuRenderer as I } from "./components/MenuRenderer/index.js";
6
- import { ExploreSection as K } from "./components/ExploreSection/index.js";
7
- import { ModuleSwitchButton as R } from "./components/ModuleSwitchButton/index.js";
8
- import { ContactUsButton as U } from "./components/ContactUsButton/index.js";
9
- import { GptCardWrapper as V } from "./components/GptCard/index.js";
10
- import { Loader as W } from "../Loader/index.js";
11
- import '../../assets/Sidebar-D5jVJ-ln.css';const Y = "_collapseMenu_drvuf_27", o = {
1
+ import { jsxs as H, jsx as e } from "react/jsx-runtime";
2
+ import { useState as I, useMemo as b } from "react";
3
+ import { CHAT_BOT_KEY as K } from "./Sidebar.constants.js";
4
+ import { useModuleSwitch as R } from "./hooks/useModuleSwitch.js";
5
+ import { MenuRenderer as U } from "./components/MenuRenderer/index.js";
6
+ import { ExploreSection as V } from "./components/ExploreSection/index.js";
7
+ import { ModuleSwitchButton as W } from "./components/ModuleSwitchButton/index.js";
8
+ import { ContactUsButton as Y } from "./components/ContactUsButton/index.js";
9
+ import { GptCardWrapper as q } from "./components/GptCard/index.js";
10
+ import { Loader as z } from "../Loader/index.js";
11
+ import '../../assets/Sidebar-D5jVJ-ln.css';const D = "_collapseMenu_drvuf_27", o = {
12
12
  "custom-sidebar": "_custom-sidebar_drvuf_1",
13
13
  "sidebar-V2": "_sidebar-V2_drvuf_12",
14
14
  "no-chatbot-padding": "_no-chatbot-padding_drvuf_23",
15
- collapseMenu: Y,
15
+ collapseMenu: D,
16
16
  "sidebar-list-wrapper": "_sidebar-list-wrapper_drvuf_31",
17
17
  "chatbot-open": "_chatbot-open_drvuf_36",
18
18
  "chatbot-collapse": "_chatbot-collapse_drvuf_43"
19
19
  };
20
- function q({
20
+ function F({
21
21
  menuItems: d,
22
22
  currentPath: c,
23
23
  collapsed: t,
24
24
  multicloudExploreList: r,
25
- moduleList: a,
25
+ moduleList: n,
26
26
  currentModuleId: h,
27
27
  userType: f,
28
28
  gptCardEnabled: m = !1,
@@ -37,50 +37,56 @@ function q({
37
37
  hidden: C = !1,
38
38
  className: B,
39
39
  renderFooter: j,
40
- renderHeader: y
40
+ renderHeader: y,
41
+ showChildIcons: G = !1,
42
+ maxOpenParents: O,
43
+ maxOpenChildren: k
41
44
  }) {
42
- const [_, G] = T(!0), { handleModuleSwitch: O } = H({ onModuleSwitch: g }), i = b(
45
+ const [_, x] = I(!0), { handleModuleSwitch: N } = R({ onModuleSwitch: g }), i = b(
43
46
  () => d.filter((p) => Object.keys(p).length > 0),
44
47
  [d]
45
- ), n = b(
46
- () => i.find((p) => p.key === A),
48
+ ), a = b(
49
+ () => i.find((p) => p.key === K),
47
50
  [i]
48
- ), k = () => n && !t && m ? _ ? o["chatbot-open"] : o["chatbot-collapse"] : "";
51
+ ), T = () => a && !t && m ? _ ? o["chatbot-open"] : o["chatbot-collapse"] : "";
49
52
  if (C) return null;
50
- const x = [
53
+ const A = [
51
54
  o["custom-sidebar"],
52
55
  o["sidebar-V2"],
53
56
  t ? o.collapseMenu : "",
54
- k(),
55
- n && !t ? "" : o["no-chatbot-padding"],
57
+ T(),
58
+ a && !t ? "" : o["no-chatbot-padding"],
56
59
  B || ""
57
60
  ].filter(Boolean).join(" ");
58
- return /* @__PURE__ */ N("div", { className: x, "data-testid": "sidebar", children: [
59
- s && /* @__PURE__ */ e(W, { popup: !0 }),
61
+ return /* @__PURE__ */ H("div", { className: A, "data-testid": "sidebar", children: [
62
+ s && /* @__PURE__ */ e(z, { popup: !0 }),
60
63
  y?.(),
61
- a && a.length > 0 && /* @__PURE__ */ e(
62
- R,
64
+ n && n.length > 0 && /* @__PURE__ */ e(
65
+ W,
63
66
  {
64
- modules: a,
67
+ modules: n,
65
68
  collapsed: t,
66
69
  currentModuleId: h,
67
70
  userType: f,
68
- onModuleSwitch: O
71
+ onModuleSwitch: N
69
72
  }
70
73
  ),
71
74
  /* @__PURE__ */ e("div", { className: o["sidebar-list-wrapper"], children: /* @__PURE__ */ e(
72
- I,
75
+ U,
73
76
  {
74
77
  menuItems: i,
75
78
  currentPath: c,
76
79
  collapsed: t,
77
80
  multicloudExploreList: r,
78
81
  onNavigate: u,
79
- onMenuItemClick: w
82
+ onMenuItemClick: w,
83
+ showChildIcons: G,
84
+ maxOpenParents: O,
85
+ maxOpenChildren: k
80
86
  }
81
87
  ) }),
82
88
  r && r.length > 0 && /* @__PURE__ */ e(
83
- K,
89
+ V,
84
90
  {
85
91
  exploreList: r,
86
92
  collapsed: t,
@@ -88,21 +94,21 @@ function q({
88
94
  cloudProviderIcons: M
89
95
  }
90
96
  ),
91
- !s && m && n && /* @__PURE__ */ e(
92
- V,
97
+ !s && m && a && /* @__PURE__ */ e(
98
+ q,
93
99
  {
94
- item: n,
100
+ item: a,
95
101
  collapsed: t,
96
102
  currentPath: c,
97
103
  onNavigate: u,
98
104
  open: _,
99
- onToggle: G,
105
+ onToggle: x,
100
106
  renderGptCard: l
101
107
  }
102
108
  ),
103
109
  j?.(),
104
110
  !s && /* @__PURE__ */ e(
105
- U,
111
+ Y,
106
112
  {
107
113
  collapsed: t,
108
114
  contactUsUrl: S,
@@ -111,8 +117,8 @@ function q({
111
117
  )
112
118
  ] });
113
119
  }
114
- q.displayName = "Sidebar";
120
+ F.displayName = "Sidebar";
115
121
  export {
116
- q as Sidebar,
117
- q as default
122
+ F as Sidebar,
123
+ F as default
118
124
  };
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import "../../../../styles.module-V3iL6ubH.js";
4
- import { C as m } from "../../../../index-DKHB_5Ee.js";
3
+ import "../../../../styles.module-xqgv3wwP.js";
4
+ import { C as m } from "../../../../index-CSxlVCTW.js";
5
5
  export {
6
6
  m as CollapsedTooltip
7
7
  };
@@ -1,34 +1,35 @@
1
1
  import { jsxs as u, jsx as r } from "react/jsx-runtime";
2
2
  import { IconRenderer as f } from "../IconRenderer/index.js";
3
- import { addBreakOpportunities as N } from "../../Sidebar.utils.js";
4
- import { s as e } from "../../../../styles.module-V3iL6ubH.js";
3
+ import { addBreakOpportunities as h } from "../../Sidebar.utils.js";
4
+ import { s as e } from "../../../../styles.module-xqgv3wwP.js";
5
5
  function $({
6
6
  item: n,
7
- active: s,
8
- collapsed: i,
9
- icon: c = !0,
10
- level: t = 0,
7
+ active: o,
8
+ collapsed: c,
9
+ icon: d = !0,
10
+ level: s = 0,
11
11
  onNavigate: m,
12
- onMenuItemClick: d
12
+ onMenuItemClick: p
13
13
  }) {
14
- const a = () => {
15
- n.url && m(n.url), d?.(n);
16
- }, p = t > 0 && s, l = t > 0 ? 15 + (t - 1) * 16 : 0;
14
+ const t = () => {
15
+ n.url && m(n.url), p?.(n);
16
+ }, i = s > 0, l = i && o;
17
17
  return /* @__PURE__ */ u(
18
18
  "div",
19
19
  {
20
- className: `${e["sidebar-menu-item"]} ${e["leaf-item"]} ${s ? e.active : ""}`,
21
- onClick: a,
22
- onKeyDown: (o) => {
23
- (o.key === "Enter" || o.key === " ") && (o.preventDefault(), a());
20
+ className: `${e["sidebar-menu-item"]} ${e["leaf-item"]} ${o ? e.active : ""} ${i ? e.nested : ""}`,
21
+ style: s > 1 ? { paddingLeft: `${12 + (s - 1) * 14}px` } : void 0,
22
+ onClick: t,
23
+ onKeyDown: (a) => {
24
+ (a.key === "Enter" || a.key === " ") && (a.preventDefault(), t());
24
25
  },
25
26
  role: "menuitem",
26
27
  tabIndex: 0,
27
- "aria-current": s ? "page" : void 0,
28
+ "aria-current": o ? "page" : void 0,
28
29
  children: [
29
- p && /* @__PURE__ */ r("span", { className: e["active-indicator"], style: { left: `-${l}px` } }),
30
- c && /* @__PURE__ */ r("span", { className: e["menu-icon"], children: /* @__PURE__ */ r(f, { icon: n.icon }) }),
31
- !i && /* @__PURE__ */ r("span", { className: e["menu-content"], children: N(n.name) })
30
+ l && /* @__PURE__ */ r("span", { className: e["active-indicator"] }),
31
+ d && /* @__PURE__ */ r("span", { className: e["menu-icon"], children: /* @__PURE__ */ r(f, { icon: n.icon }) }),
32
+ !c && /* @__PURE__ */ r("span", { className: e["menu-content"], children: h(n.name) })
32
33
  ]
33
34
  }
34
35
  );
@@ -1,9 +1,9 @@
1
1
  import { jsx as r, jsxs as c, Fragment as N } from "react/jsx-runtime";
2
2
  import { useCallback as h } from "react";
3
- import { C as m, p as n } from "../../../../index-DKHB_5Ee.js";
3
+ import { C as m, p as n } from "../../../../index-CSxlVCTW.js";
4
4
  import { IconRenderer as t } from "../IconRenderer/index.js";
5
5
  import { addBreakOpportunities as u } from "../../Sidebar.utils.js";
6
- import { s as v } from "../../../../styles.module-V3iL6ubH.js";
6
+ import { s as v } from "../../../../styles.module-xqgv3wwP.js";
7
7
  function $({ menuItems: f, isActive: l, isTreeActive: d, onNavigate: a, onMenuItemClick: s }) {
8
8
  const b = h((e, i) => {
9
9
  const o = e.dashboardServices && e.dashboardServices.length > 0, p = d(e);
@@ -6,7 +6,13 @@ interface ExpandedMenuProps {
6
6
  isTreeActive: (item: MenuItem) => boolean;
7
7
  onNavigate: (path: string) => void;
8
8
  onMenuItemClick?: (item: MenuItem) => void;
9
+ /** Whether to show icons on child (nested) menu items. Defaults to true. */
10
+ showChildIcons?: boolean;
11
+ /** Max parent-level items that can be expanded simultaneously. Undefined = unlimited. */
12
+ maxOpenParents?: number;
13
+ /** Max child-level items (within a parent) that can be expanded simultaneously. Undefined = unlimited. */
14
+ maxOpenChildren?: number;
9
15
  }
10
- export declare function ExpandedMenu({ menuItems, currentPath, isActive, isTreeActive, onNavigate, onMenuItemClick }: ExpandedMenuProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ExpandedMenu({ menuItems, currentPath, isActive, isTreeActive, onNavigate, onMenuItemClick, showChildIcons, maxOpenParents, maxOpenChildren, }: ExpandedMenuProps): import("react/jsx-runtime").JSX.Element;
11
17
  export {};
12
18
  //# sourceMappingURL=ExpandedMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandedMenu.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Sidebar/components/MenuRenderer/ExpandedMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK/D,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,iBAAiB,2CAkD9H"}
1
+ {"version":3,"file":"ExpandedMenu.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Sidebar/components/MenuRenderer/ExpandedMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK/D,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0GAA0G;IAC1G,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,eAAe,EACf,cAAqB,EACrB,cAAc,EACd,eAAe,GAChB,EAAE,iBAAiB,2CA4DnB"}
@@ -1,42 +1,59 @@
1
- import { jsx as n, Fragment as x } from "react/jsx-runtime";
2
- import { useMemo as v, useCallback as L } from "react";
3
- import { MenuItemWrapper as W } from "../MenuItemWrapper/index.js";
4
- import { SubMenuWrapper as y } from "../SubMenuWrapper/index.js";
5
- import { useMenuState as C } from "../../hooks/useMenuState.js";
6
- function m({ menuItems: e, currentPath: u, isActive: a, isTreeActive: s, onNavigate: d, onMenuItemClick: p }) {
7
- const { openByLevel: c, toggleMenu: t } = C({ menuItems: e, currentPath: u }), h = v(
8
- () => e.filter((r) => r.dashboardServices && r.dashboardServices.length > 0),
9
- [e]
10
- ), l = L((r, o = 0) => {
11
- const g = r.dashboardServices && r.dashboardServices.length > 0, f = `${o}-${r.name}`, S = !!c[f], b = s(r), i = o === 0 && h.length === 1;
12
- return g ? /* @__PURE__ */ n(
13
- y,
1
+ import { jsx as e, Fragment as y } from "react/jsx-runtime";
2
+ import { useMemo as E, useCallback as T } from "react";
3
+ import { MenuItemWrapper as $ } from "../MenuItemWrapper/index.js";
4
+ import { SubMenuWrapper as j } from "../SubMenuWrapper/index.js";
5
+ import { useMenuState as k } from "../../hooks/useMenuState.js";
6
+ function O({
7
+ menuItems: n,
8
+ currentPath: g,
9
+ isActive: a,
10
+ isTreeActive: s,
11
+ onNavigate: c,
12
+ onMenuItemClick: d,
13
+ showChildIcons: p = !0,
14
+ maxOpenParents: b,
15
+ maxOpenChildren: i
16
+ }) {
17
+ const { openByLevel: t, toggleMenu: h } = k({
18
+ menuItems: n,
19
+ currentPath: g,
20
+ maxOpenParents: b,
21
+ maxOpenChildren: i
22
+ }), u = E(
23
+ () => n.filter((r) => r.dashboardServices && r.dashboardServices.length > 0),
24
+ [n]
25
+ ), f = T((r, o = 0) => {
26
+ const M = r.dashboardServices && r.dashboardServices.length > 0, l = `${o}-${r.name}`, x = !!t[l], L = s(r), W = o === 0 && u.length === 1, S = o === 0 ? !0 : p;
27
+ return M ? /* @__PURE__ */ e(
28
+ j,
14
29
  {
15
30
  item: r,
16
- isOpen: S,
17
- active: b,
31
+ isOpen: x,
32
+ active: L,
18
33
  collapsed: !1,
19
34
  level: o,
20
- isSingleTopLevel: i,
21
- onToggle: () => t(f, o, r),
22
- children: r.dashboardServices.map((M) => l(M, o + 1))
35
+ isSingleTopLevel: W,
36
+ showIcon: S,
37
+ onToggle: () => h(l, o, r),
38
+ children: r.dashboardServices.map((v) => f(v, o + 1))
23
39
  },
24
40
  r.name
25
- ) : /* @__PURE__ */ n(
26
- W,
41
+ ) : /* @__PURE__ */ e(
42
+ $,
27
43
  {
28
44
  item: r,
29
45
  active: a(r),
30
46
  collapsed: !1,
47
+ icon: S,
31
48
  level: o,
32
- onNavigate: d,
33
- onMenuItemClick: p
49
+ onNavigate: c,
50
+ onMenuItemClick: d
34
51
  },
35
52
  r.name
36
53
  );
37
- }, [c, a, s, t, d, p, h]);
38
- return /* @__PURE__ */ n(x, { children: e.map((r) => l(r, 0)) });
54
+ }, [t, a, s, h, c, d, u, p]);
55
+ return /* @__PURE__ */ e(y, { children: n.map((r) => f(r, 0)) });
39
56
  }
40
57
  export {
41
- m as ExpandedMenu
58
+ O as ExpandedMenu
42
59
  };
@@ -6,7 +6,10 @@ interface MenuRendererProps {
6
6
  multicloudExploreList?: unknown[];
7
7
  onNavigate: (path: string) => void;
8
8
  onMenuItemClick?: (item: MenuItem) => void;
9
+ showChildIcons?: boolean;
10
+ maxOpenParents?: number;
11
+ maxOpenChildren?: number;
9
12
  }
10
- export declare function MenuRenderer({ menuItems, currentPath, collapsed, multicloudExploreList, onNavigate, onMenuItemClick }: MenuRendererProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function MenuRenderer({ menuItems, currentPath, collapsed, multicloudExploreList, onNavigate, onMenuItemClick, showChildIcons, maxOpenParents, maxOpenChildren }: MenuRendererProps): import("react/jsx-runtime").JSX.Element;
11
14
  export {};
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Sidebar/components/MenuRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ/D,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC;IAClC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,iBAAiB,2CAwCxI"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Sidebar/components/MenuRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ/D,UAAU,iBAAiB;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC;IAClC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAE,cAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,iBAAiB,2CAwChM"}
@@ -1,29 +1,29 @@
1
- import { jsx as e, jsxs as _, Fragment as h } from "react/jsx-runtime";
2
- import { useActiveDetection as v } from "../../hooks/useActiveDetection.js";
3
- import { SectionLabel as y } from "../SectionLabel/index.js";
4
- import { MULTICLOUD_VIEW_KEY as S, CHAT_BOT_KEY as A } from "../../Sidebar.constants.js";
5
- import { CollapsedMenu as f } from "./CollapsedMenu.js";
6
- import { ExpandedMenu as a } from "./ExpandedMenu.js";
7
- import '../../../../assets/index-C6j9Ze5V.css';const p = {
1
+ import { jsx as e, jsxs as v, Fragment as A } from "react/jsx-runtime";
2
+ import { useActiveDetection as D } from "../../hooks/useActiveDetection.js";
3
+ import { SectionLabel as T } from "../SectionLabel/index.js";
4
+ import { MULTICLOUD_VIEW_KEY as j, CHAT_BOT_KEY as K } from "../../Sidebar.constants.js";
5
+ import { CollapsedMenu as c } from "./CollapsedMenu.js";
6
+ import { ExpandedMenu as _ } from "./ExpandedMenu.js";
7
+ import '../../../../assets/index-C6j9Ze5V.css';const E = {
8
8
  "menu-renderer": "_menu-renderer_w3wyj_1"
9
9
  };
10
- function K({ menuItems: r, currentPath: l, collapsed: t, multicloudExploreList: u, onNavigate: i, onMenuItemClick: n }) {
11
- const { isActive: m, isTreeActive: s } = v({ currentPath: l, allItems: r });
12
- if (u && u.length > 0 && r.length > 0) {
13
- const o = r.filter((d) => d.key === S), b = r.filter((d) => d.key !== S);
14
- return /* @__PURE__ */ e("nav", { className: p["menu-renderer"], role: "menu", "aria-label": "Sidebar navigation", children: t ? /* @__PURE__ */ _(h, { children: [
15
- /* @__PURE__ */ e(f, { menuItems: o, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: n }),
16
- /* @__PURE__ */ e(y, { label: "Services", collapsed: t }),
17
- /* @__PURE__ */ e(f, { menuItems: b, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: n })
18
- ] }) : /* @__PURE__ */ _(h, { children: [
19
- /* @__PURE__ */ e(a, { menuItems: o, currentPath: l, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: n }),
20
- /* @__PURE__ */ e(y, { label: "Services", collapsed: t }),
21
- /* @__PURE__ */ e(a, { menuItems: b, currentPath: l, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: n })
10
+ function R({ menuItems: r, currentPath: n, collapsed: l, multicloudExploreList: a, onNavigate: i, onMenuItemClick: t, showChildIcons: u = !0, maxOpenParents: o, maxOpenChildren: d }) {
11
+ const { isActive: m, isTreeActive: s } = D({ currentPath: n, allItems: r });
12
+ if (a && a.length > 0 && r.length > 0) {
13
+ const f = r.filter((b) => b.key === j), S = r.filter((b) => b.key !== j);
14
+ return /* @__PURE__ */ e("nav", { className: E["menu-renderer"], role: "menu", "aria-label": "Sidebar navigation", children: l ? /* @__PURE__ */ v(A, { children: [
15
+ /* @__PURE__ */ e(c, { menuItems: f, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: t }),
16
+ /* @__PURE__ */ e(T, { label: "Services", collapsed: l }),
17
+ /* @__PURE__ */ e(c, { menuItems: S, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: t })
18
+ ] }) : /* @__PURE__ */ v(A, { children: [
19
+ /* @__PURE__ */ e(_, { menuItems: f, currentPath: n, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: t, showChildIcons: u, maxOpenParents: o, maxOpenChildren: d }),
20
+ /* @__PURE__ */ e(T, { label: "Services", collapsed: l }),
21
+ /* @__PURE__ */ e(_, { menuItems: S, currentPath: n, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: t, showChildIcons: u, maxOpenParents: o, maxOpenChildren: d })
22
22
  ] }) });
23
23
  }
24
- const c = t ? r : r.filter((o) => o.key !== A);
25
- return /* @__PURE__ */ e("nav", { className: p["menu-renderer"], role: "menu", "aria-label": "Sidebar navigation", children: t ? /* @__PURE__ */ e(f, { menuItems: c, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: n }) : /* @__PURE__ */ e(a, { menuItems: c, currentPath: l, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: n }) });
24
+ const y = l ? r : r.filter((f) => f.key !== K);
25
+ return /* @__PURE__ */ e("nav", { className: E["menu-renderer"], role: "menu", "aria-label": "Sidebar navigation", children: l ? /* @__PURE__ */ e(c, { menuItems: y, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: t }) : /* @__PURE__ */ e(_, { menuItems: y, currentPath: n, isActive: m, isTreeActive: s, onNavigate: i, onMenuItemClick: t, showChildIcons: u, maxOpenParents: o, maxOpenChildren: d }) });
26
26
  }
27
27
  export {
28
- K as MenuRenderer
28
+ R as MenuRenderer
29
29
  };
@@ -7,9 +7,10 @@ interface SubMenuWrapperProps {
7
7
  collapsed: boolean;
8
8
  level: number;
9
9
  isSingleTopLevel?: boolean;
10
+ showIcon?: boolean;
10
11
  onToggle: () => void;
11
12
  children: ReactNode;
12
13
  }
13
- export declare function SubMenuWrapper({ item, isOpen, active, collapsed, level, isSingleTopLevel, onToggle, children }: SubMenuWrapperProps): import("react/jsx-runtime").JSX.Element | null;
14
+ export declare function SubMenuWrapper({ item, isOpen, active, collapsed, level, isSingleTopLevel, showIcon, onToggle, children }: SubMenuWrapperProps): import("react/jsx-runtime").JSX.Element | null;
14
15
  export {};
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Sidebar/components/SubMenuWrapper/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,kDAuC3I"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../lib/components/Sidebar/components/SubMenuWrapper/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAwB,EAAE,QAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,kDAsC5J"}
@@ -1,45 +1,49 @@
1
- import { jsxs as t, jsx as n } from "react/jsx-runtime";
2
- import { IconRenderer as b } from "../IconRenderer/index.js";
3
- import '../../../../assets/index-DrxnMAdp.css';const _ = "_submenu_kaorb_1", h = "_open_kaorb_39", p = "_arrow_kaorb_50", k = "_rotate_kaorb_63", e = {
4
- submenu: _,
5
- "with-child": "_with-child_kaorb_4",
6
- "submenu-children": "_submenu-children_kaorb_13",
7
- "submenu-children-inner": "_submenu-children-inner_kaorb_16",
8
- "submenu-label": "_submenu-label_kaorb_24",
9
- open: h,
10
- arrow: p,
11
- rotate: k,
12
- "menu-icon": "_menu-icon_kaorb_67",
13
- "menu-content": "_menu-content_kaorb_84"
1
+ import { jsxs as c, jsx as n } from "react/jsx-runtime";
2
+ import { IconRenderer as d } from "../IconRenderer/index.js";
3
+ import '../../../../assets/index-eZS6kms7.css';const h = "_submenu_qk07k_1", b = "_active_qk07k_21", p = "_open_qk07k_80", w = "_arrow_qk07k_117", q = "_rotate_qk07k_130", e = {
4
+ submenu: h,
5
+ "parent-item": "_parent-item_qk07k_4",
6
+ active: b,
7
+ "top-level": "_top-level_qk07k_25",
8
+ "with-child": "_with-child_qk07k_32",
9
+ "submenu-children": "_submenu-children_qk07k_41",
10
+ "submenu-children-inner": "_submenu-children-inner_qk07k_44",
11
+ "nested-submenu": "_nested-submenu_qk07k_50",
12
+ "has-active": "_has-active_qk07k_55",
13
+ "submenu-label": "_submenu-label_qk07k_65",
14
+ open: p,
15
+ arrow: w,
16
+ rotate: q,
17
+ "menu-icon": "_menu-icon_qk07k_134",
18
+ "menu-content": "_menu-content_qk07k_151"
14
19
  };
15
- function f({ item: s, isOpen: r, active: c, collapsed: u, level: l, isSingleTopLevel: a = !1, onToggle: i, children: d }) {
16
- if (u) return null;
17
- const m = !(a && r);
18
- return /* @__PURE__ */ t("div", { className: `${e.submenu} ${r ? e["with-child"] : ""}`, children: [
19
- /* @__PURE__ */ t(
20
+ function f({ item: o, isOpen: t, active: u, collapsed: _, level: r, isSingleTopLevel: a = !1, showIcon: m = !0, onToggle: i, children: l }) {
21
+ if (_) return null;
22
+ const k = !(a && t);
23
+ return /* @__PURE__ */ c("div", { className: `${e.submenu} ${t ? e["with-child"] : ""} ${u && r === 0 ? e["has-active"] : ""} ${r > 0 ? e["nested-submenu"] : ""}`, children: [
24
+ /* @__PURE__ */ c(
20
25
  "div",
21
26
  {
22
- className: `parent-item ${c || r ? "active" : ""}`,
27
+ className: `${e["parent-item"]} ${r === 0 ? e["top-level"] : ""} ${u || t ? e.active : ""}`,
23
28
  onClick: () => {
24
- a && r || i();
29
+ a && t || i();
25
30
  },
26
- onKeyDown: (o) => {
27
- (o.key === "Enter" || o.key === " ") && (o.preventDefault(), a && r || i());
31
+ onKeyDown: (s) => {
32
+ (s.key === "Enter" || s.key === " ") && (s.preventDefault(), a && t || i());
28
33
  },
29
34
  role: "menuitem",
30
35
  tabIndex: 0,
31
- "aria-expanded": r,
32
- style: { display: "flex", alignItems: "center", padding: "8px 12px", cursor: "pointer", borderRadius: "8px", border: "1px solid transparent" },
36
+ "aria-expanded": t,
33
37
  children: [
34
- l === 0 && /* @__PURE__ */ n("span", { className: e["menu-icon"], children: /* @__PURE__ */ n(b, { icon: s.icon }) }),
35
- /* @__PURE__ */ n("span", { className: e["menu-content"], children: /* @__PURE__ */ t("span", { className: e["submenu-label"], children: [
36
- /* @__PURE__ */ n("span", { children: s.name }),
37
- m && /* @__PURE__ */ n("span", { className: `${e.arrow} ${r ? e.rotate : ""}`, children: /* @__PURE__ */ n("svg", { width: "6", height: "10", viewBox: "0 0 6 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M1 1L5 5L1 9", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
38
+ m && r === 0 && /* @__PURE__ */ n("span", { className: e["menu-icon"], children: /* @__PURE__ */ n(d, { icon: o.icon }) }),
39
+ /* @__PURE__ */ n("span", { className: e["menu-content"], children: /* @__PURE__ */ c("span", { className: e["submenu-label"], children: [
40
+ /* @__PURE__ */ n("span", { children: o.name }),
41
+ k && /* @__PURE__ */ n("span", { className: `${e.arrow} ${t ? e.rotate : ""}`, children: /* @__PURE__ */ n("svg", { width: "6", height: "10", viewBox: "0 0 6 10", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ n("path", { d: "M1 1L5 5L1 9", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })
38
42
  ] }) })
39
43
  ]
40
44
  }
41
45
  ),
42
- /* @__PURE__ */ n("div", { className: `${e["submenu-children"]} ${r ? e.open : ""}`, children: /* @__PURE__ */ n("div", { className: e["submenu-children-inner"], children: d }) })
46
+ /* @__PURE__ */ n("div", { className: `${e["submenu-children"]} ${t ? e.open : ""}`, children: /* @__PURE__ */ n("div", { className: e["submenu-children-inner"], children: l }) })
43
47
  ] });
44
48
  }
45
49
  export {
@@ -1,7 +1,7 @@
1
1
  import { MenuRenderer as e } from "./MenuRenderer/index.js";
2
2
  import { MenuItemWrapper as p } from "./MenuItemWrapper/index.js";
3
3
  import { SubMenuWrapper as n } from "./SubMenuWrapper/index.js";
4
- import { C as f } from "../../../index-DKHB_5Ee.js";
4
+ import { C as f } from "../../../index-CSxlVCTW.js";
5
5
  import { ExploreSection as u } from "./ExploreSection/index.js";
6
6
  import { ModuleSwitchButton as c } from "./ModuleSwitchButton/index.js";
7
7
  import { ContactUsButton as i } from "./ContactUsButton/index.js";
@@ -2,8 +2,12 @@ import { SidebarMenuItem } from '../types';
2
2
  interface UseMenuStateOptions {
3
3
  menuItems: SidebarMenuItem[];
4
4
  currentPath: string;
5
+ /** Max parent-level (level 0) items that can be expanded simultaneously. Undefined = unlimited. */
6
+ maxOpenParents?: number;
7
+ /** Max child-level (level > 0) items that can be expanded simultaneously within the same parent. Undefined = unlimited. */
8
+ maxOpenChildren?: number;
5
9
  }
6
- export declare function useMenuState({ menuItems, currentPath }: UseMenuStateOptions): {
10
+ export declare function useMenuState({ menuItems, currentPath, maxOpenParents, maxOpenChildren }: UseMenuStateOptions): {
7
11
  openByLevel: Record<string, boolean>;
8
12
  toggleMenu: (key: string, level: number, item: SidebarMenuItem) => void;
9
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuState.d.ts","sourceRoot":"","sources":["../../../../lib/components/Sidebar/hooks/useMenuState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,UAAU,mBAAmB;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,mBAAmB;;sBAsClE,MAAM,SAAS,MAAM,QAAQ,eAAe;EA4BrD"}
1
+ {"version":3,"file":"useMenuState.d.ts","sourceRoot":"","sources":["../../../../lib/components/Sidebar/hooks/useMenuState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,UAAU,mBAAmB;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2HAA2H;IAC3H,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,mBAAmB;;sBAsCnG,MAAM,SAAS,MAAM,QAAQ,eAAe;EAiErD"}