gov-layout 1.2.1 → 1.2.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.
package/dist/index.mjs CHANGED
@@ -415,7 +415,8 @@ function MenuItemComponent({
415
415
  onItemClick,
416
416
  currentPath,
417
417
  depth = 0,
418
- collapsed = false
418
+ collapsed = false,
419
+ onExpandRequest
419
420
  }) {
420
421
  const hasChildren = item.children && item.children.length > 0;
421
422
  const isActive = item.path ? currentPath === item.path : false;
@@ -426,8 +427,14 @@ function MenuItemComponent({
426
427
  const expanded = userToggled ? isOpen : isOpen || isChildActive;
427
428
  const handleClick = () => {
428
429
  if (hasChildren) {
429
- setUserToggled(true);
430
- setIsOpen(!expanded);
430
+ if (collapsed) {
431
+ setUserToggled(true);
432
+ setIsOpen(true);
433
+ onExpandRequest?.();
434
+ } else {
435
+ setUserToggled(true);
436
+ setIsOpen(!expanded);
437
+ }
431
438
  } else if (item.path) {
432
439
  onItemClick(item.path);
433
440
  }
@@ -536,7 +543,7 @@ function MenuItemComponent({
536
543
  } }) })
537
544
  ] });
538
545
  }
539
- function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }) {
546
+ function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed, onExpandRequest }) {
540
547
  return /* @__PURE__ */ jsx("nav", { style: {
541
548
  padding: collapsed ? "8px 8px" : "8px 12px",
542
549
  overflowY: "auto"
@@ -553,7 +560,8 @@ function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }) {
553
560
  item,
554
561
  onItemClick,
555
562
  currentPath,
556
- collapsed
563
+ collapsed,
564
+ onExpandRequest
557
565
  },
558
566
  item.id
559
567
  )) }) });
@@ -811,7 +819,8 @@ function StaffSidebar({
811
819
  className,
812
820
  collapsible = false,
813
821
  isOpen: controlledIsOpen,
814
- onToggle
822
+ onToggle,
823
+ onExpandRequest
815
824
  }) {
816
825
  const [internalOpen, setInternalOpen] = useState(true);
817
826
  const sidebarOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalOpen;
@@ -826,6 +835,17 @@ function StaffSidebar({
826
835
  setInternalOpen(!internalOpen);
827
836
  }
828
837
  };
838
+ const handleExpandRequest = () => {
839
+ if (onExpandRequest) {
840
+ onExpandRequest();
841
+ } else {
842
+ if (onToggle) {
843
+ onToggle();
844
+ } else {
845
+ setInternalOpen(true);
846
+ }
847
+ }
848
+ };
829
849
  return /* @__PURE__ */ jsxs(Fragment, { children: [
830
850
  /* @__PURE__ */ jsxs(
831
851
  "aside",
@@ -861,7 +881,8 @@ function StaffSidebar({
861
881
  menuItems,
862
882
  onItemClick: onNavigate,
863
883
  currentPath,
864
- collapsed
884
+ collapsed,
885
+ onExpandRequest: handleExpandRequest
865
886
  }
866
887
  ) }),
867
888
  /* @__PURE__ */ jsxs("div", { style: { flexShrink: 0 }, children: [
@@ -877,7 +898,8 @@ function StaffSidebar({
877
898
  menuItems: resolvedBottomMenu,
878
899
  onItemClick: onNavigate,
879
900
  currentPath,
880
- collapsed
901
+ collapsed,
902
+ onExpandRequest: handleExpandRequest
881
903
  }
882
904
  )
883
905
  ] }),