@octaviaflow/core 3.0.9 → 3.0.10
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/components/DropdownMenu/DropdownMenu.d.ts +8 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/index.cjs +83 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +83 -27
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,13 @@ export interface DropdownMenuProps {
|
|
|
12
12
|
items: DropdownMenuItem[];
|
|
13
13
|
align?: "start" | "end";
|
|
14
14
|
className?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Override the className applied to the auto-generated trigger <button>.
|
|
17
|
+
* Defaults to "ods-dropdown__trigger". Useful when composing the
|
|
18
|
+
* DropdownMenu inside a host component (e.g. Sidebar user card) that
|
|
19
|
+
* supplies its own button styling.
|
|
20
|
+
*/
|
|
21
|
+
triggerClassName?: string;
|
|
15
22
|
/**
|
|
16
23
|
* Accessible name for the trigger button. Required when `trigger` is not
|
|
17
24
|
* a plain string (e.g. an icon-only trigger). When omitted and `trigger`
|
|
@@ -21,5 +28,5 @@ export interface DropdownMenuProps {
|
|
|
21
28
|
/** id of an element that labels the trigger; alternative to aria-label. */
|
|
22
29
|
"aria-labelledby"?: string;
|
|
23
30
|
}
|
|
24
|
-
export declare function DropdownMenu({ trigger, items, align, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare function DropdownMenu({ trigger, items, align, className, triggerClassName, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
25
32
|
//# sourceMappingURL=DropdownMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAQ/C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsID,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAe,EACf,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,GAClC,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAQ/C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsID,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAe,EACf,SAAS,EACT,gBAAgB,EAChB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,GAClC,EAAE,iBAAiB,2CA0CnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAClD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,OAAoB,EACpB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,aAAqB,EACrB,cAAc,EACd,aAAoC,EACpC,cAAoB,EACpB,eAAqB,EACrB,YAAkB,EAClB,MAAe,EACf,SAAS,GACV,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAA4C,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAClD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAGtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EACtB,OAAoB,EACpB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,aAAqB,EACrB,cAAc,EACd,aAAoC,EACpC,cAAoB,EACpB,eAAqB,EACrB,YAAkB,EAClB,MAAe,EACf,SAAS,GACV,EAAE,YAAY,2CAuId"}
|
package/dist/index.cjs
CHANGED
|
@@ -6569,6 +6569,7 @@ function DropdownMenu({
|
|
|
6569
6569
|
items,
|
|
6570
6570
|
align = "start",
|
|
6571
6571
|
className,
|
|
6572
|
+
triggerClassName,
|
|
6572
6573
|
"aria-label": ariaLabel,
|
|
6573
6574
|
"aria-labelledby": ariaLabelledby
|
|
6574
6575
|
}) {
|
|
@@ -6587,7 +6588,15 @@ function DropdownMenu({
|
|
|
6587
6588
|
);
|
|
6588
6589
|
const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...safeTriggerProps } = buttonProps;
|
|
6589
6590
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
6590
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6591
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6592
|
+
"button",
|
|
6593
|
+
{
|
|
6594
|
+
...safeTriggerProps,
|
|
6595
|
+
ref: triggerRef,
|
|
6596
|
+
className: triggerClassName ?? "ods-dropdown__trigger",
|
|
6597
|
+
children: trigger
|
|
6598
|
+
}
|
|
6599
|
+
),
|
|
6591
6600
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6592
6601
|
MenuPopup,
|
|
6593
6602
|
{
|
|
@@ -11253,15 +11262,17 @@ function Sidebar({
|
|
|
11253
11262
|
className
|
|
11254
11263
|
}) {
|
|
11255
11264
|
const allSections = sections ?? (items ? [{ items }] : []);
|
|
11256
|
-
const [internalPinned, setInternalPinned] = (0, import_react53.useState)(
|
|
11257
|
-
|
|
11265
|
+
const [internalPinned, setInternalPinned] = (0, import_react53.useState)(defaultPinned);
|
|
11266
|
+
(0, import_react53.useEffect)(() => {
|
|
11267
|
+
if (pinnedProp !== void 0) return;
|
|
11258
11268
|
try {
|
|
11259
11269
|
const stored = window.localStorage.getItem(pinStorageKey);
|
|
11260
|
-
if (stored !== null
|
|
11270
|
+
if (stored !== null && stored !== String(internalPinned)) {
|
|
11271
|
+
setInternalPinned(stored === "true");
|
|
11272
|
+
}
|
|
11261
11273
|
} catch {
|
|
11262
11274
|
}
|
|
11263
|
-
|
|
11264
|
-
});
|
|
11275
|
+
}, []);
|
|
11265
11276
|
const pinned = pinnedProp ?? internalPinned;
|
|
11266
11277
|
const setPinned = (0, import_react53.useCallback)(
|
|
11267
11278
|
(p) => {
|
|
@@ -11299,6 +11310,17 @@ function Sidebar({
|
|
|
11299
11310
|
const autoMode = variant === "auto";
|
|
11300
11311
|
const showAsRail = autoMode ? !pinned : variant === "rail";
|
|
11301
11312
|
const overlayOpen = autoMode && !pinned && hoverOpen;
|
|
11313
|
+
(0, import_react53.useEffect)(() => {
|
|
11314
|
+
if (!overlayOpen) return;
|
|
11315
|
+
const handler = (e) => {
|
|
11316
|
+
if (e.key === "Escape") {
|
|
11317
|
+
clearTimers();
|
|
11318
|
+
setHoverOpen(false);
|
|
11319
|
+
}
|
|
11320
|
+
};
|
|
11321
|
+
window.addEventListener("keydown", handler);
|
|
11322
|
+
return () => window.removeEventListener("keydown", handler);
|
|
11323
|
+
}, [overlayOpen]);
|
|
11302
11324
|
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
11303
11325
|
"nav",
|
|
11304
11326
|
{
|
|
@@ -11404,17 +11426,34 @@ function RailLayout({
|
|
|
11404
11426
|
},
|
|
11405
11427
|
item.id
|
|
11406
11428
|
)) }),
|
|
11407
|
-
user && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
11408
|
-
|
|
11429
|
+
user && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SidebarUserRail, { user })
|
|
11430
|
+
] });
|
|
11431
|
+
}
|
|
11432
|
+
function SidebarUserRail({ user }) {
|
|
11433
|
+
const labelText = typeof user.name === "string" ? user.name : "User";
|
|
11434
|
+
const avatar = user.avatar ?? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: user.initial ?? (typeof user.name === "string" ? user.name.charAt(0).toUpperCase() : "?") });
|
|
11435
|
+
if (user.menu && user.menu.length > 0) {
|
|
11436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
11437
|
+
DropdownMenu,
|
|
11409
11438
|
{
|
|
11410
|
-
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
"aria-label":
|
|
11414
|
-
|
|
11439
|
+
trigger: avatar,
|
|
11440
|
+
items: user.menu,
|
|
11441
|
+
align: "end",
|
|
11442
|
+
"aria-label": labelText,
|
|
11443
|
+
triggerClassName: "ods-sidebar__user-rail"
|
|
11415
11444
|
}
|
|
11416
|
-
)
|
|
11417
|
-
|
|
11445
|
+
);
|
|
11446
|
+
}
|
|
11447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
11448
|
+
"button",
|
|
11449
|
+
{
|
|
11450
|
+
type: "button",
|
|
11451
|
+
className: "ods-sidebar__user-rail",
|
|
11452
|
+
onClick: user.onClick,
|
|
11453
|
+
"aria-label": labelText,
|
|
11454
|
+
children: avatar
|
|
11455
|
+
}
|
|
11456
|
+
);
|
|
11418
11457
|
}
|
|
11419
11458
|
function RailItem({
|
|
11420
11459
|
item,
|
|
@@ -11533,18 +11572,7 @@ function ExpandedLayout({
|
|
|
11533
11572
|
] }, section.id ?? sIdx)) }),
|
|
11534
11573
|
(footerItems || user) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "ods-sidebar__footer", children: [
|
|
11535
11574
|
footerItems && footerItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "ods-sidebar__footer-list", children: footerItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ExpandedItem, { item, level: 0 }, item.id)) }),
|
|
11536
|
-
user && /* @__PURE__ */ (0, import_jsx_runtime69.
|
|
11537
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ods-sidebar__user-avatar", children: user.avatar ?? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: user.initial ?? (typeof user.name === "string" ? user.name.charAt(0).toUpperCase() : "?") }) }),
|
|
11538
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("span", { className: "ods-sidebar__user-info", children: [
|
|
11539
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ods-sidebar__user-name", children: user.name }),
|
|
11540
|
-
user.email && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ods-sidebar__user-email", children: user.email })
|
|
11541
|
-
] }),
|
|
11542
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
11543
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("circle", { cx: "8", cy: "3", r: "1.3", fill: "currentColor" }),
|
|
11544
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("circle", { cx: "8", cy: "8", r: "1.3", fill: "currentColor" }),
|
|
11545
|
-
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("circle", { cx: "8", cy: "13", r: "1.3", fill: "currentColor" })
|
|
11546
|
-
] })
|
|
11547
|
-
] })
|
|
11575
|
+
user && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SidebarUserCard, { user })
|
|
11548
11576
|
] })
|
|
11549
11577
|
] });
|
|
11550
11578
|
}
|
|
@@ -11634,6 +11662,34 @@ function ExpandedItem({ item, level }) {
|
|
|
11634
11662
|
}
|
|
11635
11663
|
);
|
|
11636
11664
|
}
|
|
11665
|
+
function SidebarUserCard({ user }) {
|
|
11666
|
+
const labelText = typeof user.name === "string" ? user.name : "User";
|
|
11667
|
+
const body = /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
11668
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ods-sidebar__user-avatar", children: user.avatar ?? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { children: user.initial ?? (typeof user.name === "string" ? user.name.charAt(0).toUpperCase() : "?") }) }),
|
|
11669
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("span", { className: "ods-sidebar__user-info", children: [
|
|
11670
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ods-sidebar__user-name", children: user.name }),
|
|
11671
|
+
user.email && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "ods-sidebar__user-email", children: user.email })
|
|
11672
|
+
] }),
|
|
11673
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
11674
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("circle", { cx: "8", cy: "3", r: "1.3", fill: "currentColor" }),
|
|
11675
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("circle", { cx: "8", cy: "8", r: "1.3", fill: "currentColor" }),
|
|
11676
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("circle", { cx: "8", cy: "13", r: "1.3", fill: "currentColor" })
|
|
11677
|
+
] })
|
|
11678
|
+
] });
|
|
11679
|
+
if (user.menu && user.menu.length > 0) {
|
|
11680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
11681
|
+
DropdownMenu,
|
|
11682
|
+
{
|
|
11683
|
+
trigger: body,
|
|
11684
|
+
items: user.menu,
|
|
11685
|
+
align: "end",
|
|
11686
|
+
"aria-label": labelText,
|
|
11687
|
+
triggerClassName: "ods-sidebar__user-card"
|
|
11688
|
+
}
|
|
11689
|
+
);
|
|
11690
|
+
}
|
|
11691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("button", { type: "button", className: "ods-sidebar__user-card", onClick: user.onClick, children: body });
|
|
11692
|
+
}
|
|
11637
11693
|
function hasActiveDescendant(item) {
|
|
11638
11694
|
if (!item.children) return false;
|
|
11639
11695
|
for (const c of item.children) {
|