@optimum-intelligence/opti-ui 0.5.1 → 0.5.2
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/app-shell/AppShell.js +139 -121
- package/dist/components/app-shell/AppShell.js.map +1 -1
- package/dist/components/dialog/Dialog.d.ts +8 -2
- package/dist/components/dialog/Dialog.js +91 -76
- package/dist/components/dialog/Dialog.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +4 -1
- package/dist/components/drawer/Drawer.js +136 -131
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components.json +40 -1
- package/dist/llms-full.txt +3 -0
- package/dist/opti-ui.css +11 -1
- package/package.json +1 -1
|
@@ -700,7 +700,7 @@ function PinnedTab(t0) {
|
|
|
700
700
|
* </AppShell>
|
|
701
701
|
*/
|
|
702
702
|
function AppShell(t0) {
|
|
703
|
-
const $ = c(
|
|
703
|
+
const $ = c(83);
|
|
704
704
|
let children;
|
|
705
705
|
let className;
|
|
706
706
|
let mainProps;
|
|
@@ -747,6 +747,7 @@ function AppShell(t0) {
|
|
|
747
747
|
const moreLabel = t3 === void 0 ? "More" : t3;
|
|
748
748
|
const moreTabPosition = t4 === void 0 ? "start" : t4;
|
|
749
749
|
const [open, setOpen] = React.useState(false);
|
|
750
|
+
const [drawer] = React.useState(_temp);
|
|
750
751
|
const container = usePortalContainer();
|
|
751
752
|
let t5;
|
|
752
753
|
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -775,63 +776,72 @@ function AppShell(t0) {
|
|
|
775
776
|
let t7;
|
|
776
777
|
let t8;
|
|
777
778
|
let t9;
|
|
778
|
-
if ($[15] !==
|
|
779
|
-
const tabs = [...pinned.entries()].sort(
|
|
779
|
+
if ($[15] !== drawer || $[16] !== mobileActions || $[17] !== mobileBrand || $[18] !== mobileNavPosition || $[19] !== moreLabel || $[20] !== moreTabPosition || $[21] !== pinned) {
|
|
780
|
+
const tabs = [...pinned.entries()].sort(_temp2).slice(0, MAX_PINNED);
|
|
780
781
|
hasTabs = tabs.length > 0;
|
|
781
782
|
showTopBar = !hasTabs || mobileBrand != null || mobileActions != null;
|
|
782
783
|
let t12;
|
|
783
|
-
if ($[
|
|
784
|
+
if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
|
|
784
785
|
t12 = /* @__PURE__ */ jsx("span", {
|
|
785
786
|
className: "oui-app-shell__tab-icon",
|
|
786
787
|
children: /* @__PURE__ */ jsx(MenuIcon, {})
|
|
787
788
|
});
|
|
788
|
-
$[
|
|
789
|
-
} else t12 = $[
|
|
789
|
+
$[30] = t12;
|
|
790
|
+
} else t12 = $[30];
|
|
790
791
|
let t13;
|
|
791
|
-
if ($[
|
|
792
|
-
t13 = /* @__PURE__ */
|
|
792
|
+
if ($[31] !== moreLabel) {
|
|
793
|
+
t13 = /* @__PURE__ */ jsx("span", {
|
|
794
|
+
className: "oui-app-shell__tab-label",
|
|
795
|
+
children: moreLabel
|
|
796
|
+
});
|
|
797
|
+
$[31] = moreLabel;
|
|
798
|
+
$[32] = t13;
|
|
799
|
+
} else t13 = $[32];
|
|
800
|
+
let t14;
|
|
801
|
+
if ($[33] !== drawer || $[34] !== t13) {
|
|
802
|
+
t14 = /* @__PURE__ */ jsxs(Dialog.Trigger, {
|
|
803
|
+
handle: drawer,
|
|
793
804
|
className: "oui-app-shell__tab",
|
|
794
|
-
children: [t12,
|
|
795
|
-
className: "oui-app-shell__tab-label",
|
|
796
|
-
children: moreLabel
|
|
797
|
-
})]
|
|
805
|
+
children: [t12, t13]
|
|
798
806
|
});
|
|
799
|
-
$[
|
|
800
|
-
$[
|
|
801
|
-
|
|
802
|
-
|
|
807
|
+
$[33] = drawer;
|
|
808
|
+
$[34] = t13;
|
|
809
|
+
$[35] = t14;
|
|
810
|
+
} else t14 = $[35];
|
|
811
|
+
moreTab = t14;
|
|
803
812
|
t7 = "oui-app-shell__tabbar";
|
|
804
813
|
t8 = mobileNavPosition;
|
|
805
814
|
t9 = "Quick navigation";
|
|
806
815
|
t10 = moreTabPosition === "start" && moreTab;
|
|
807
|
-
t11 = tabs.map(
|
|
808
|
-
$[15] =
|
|
809
|
-
$[16] =
|
|
810
|
-
$[17] =
|
|
811
|
-
$[18] =
|
|
812
|
-
$[19] =
|
|
813
|
-
$[20] =
|
|
814
|
-
$[21] =
|
|
815
|
-
$[22] =
|
|
816
|
-
$[23] =
|
|
817
|
-
$[24] =
|
|
818
|
-
$[25] =
|
|
819
|
-
$[26] =
|
|
820
|
-
$[27] =
|
|
821
|
-
$[28] =
|
|
816
|
+
t11 = tabs.map(_temp3);
|
|
817
|
+
$[15] = drawer;
|
|
818
|
+
$[16] = mobileActions;
|
|
819
|
+
$[17] = mobileBrand;
|
|
820
|
+
$[18] = mobileNavPosition;
|
|
821
|
+
$[19] = moreLabel;
|
|
822
|
+
$[20] = moreTabPosition;
|
|
823
|
+
$[21] = pinned;
|
|
824
|
+
$[22] = hasTabs;
|
|
825
|
+
$[23] = moreTab;
|
|
826
|
+
$[24] = showTopBar;
|
|
827
|
+
$[25] = t10;
|
|
828
|
+
$[26] = t11;
|
|
829
|
+
$[27] = t7;
|
|
830
|
+
$[28] = t8;
|
|
831
|
+
$[29] = t9;
|
|
822
832
|
} else {
|
|
823
|
-
hasTabs = $[
|
|
824
|
-
moreTab = $[
|
|
825
|
-
showTopBar = $[
|
|
826
|
-
t10 = $[
|
|
827
|
-
t11 = $[
|
|
828
|
-
t7 = $[
|
|
829
|
-
t8 = $[
|
|
830
|
-
t9 = $[
|
|
833
|
+
hasTabs = $[22];
|
|
834
|
+
moreTab = $[23];
|
|
835
|
+
showTopBar = $[24];
|
|
836
|
+
t10 = $[25];
|
|
837
|
+
t11 = $[26];
|
|
838
|
+
t7 = $[27];
|
|
839
|
+
t8 = $[28];
|
|
840
|
+
t9 = $[29];
|
|
831
841
|
}
|
|
832
842
|
const t12 = moreTabPosition === "end" && moreTab;
|
|
833
843
|
let t13;
|
|
834
|
-
if ($[
|
|
844
|
+
if ($[36] !== t10 || $[37] !== t11 || $[38] !== t12 || $[39] !== t7 || $[40] !== t8 || $[41] !== t9) {
|
|
835
845
|
t13 = /* @__PURE__ */ jsxs("nav", {
|
|
836
846
|
className: t7,
|
|
837
847
|
"data-position": t8,
|
|
@@ -842,31 +852,31 @@ function AppShell(t0) {
|
|
|
842
852
|
t12
|
|
843
853
|
]
|
|
844
854
|
});
|
|
845
|
-
$[
|
|
846
|
-
$[
|
|
847
|
-
$[
|
|
848
|
-
$[
|
|
849
|
-
$[
|
|
850
|
-
$[
|
|
851
|
-
$[
|
|
852
|
-
} else t13 = $[
|
|
855
|
+
$[36] = t10;
|
|
856
|
+
$[37] = t11;
|
|
857
|
+
$[38] = t12;
|
|
858
|
+
$[39] = t7;
|
|
859
|
+
$[40] = t8;
|
|
860
|
+
$[41] = t9;
|
|
861
|
+
$[42] = t13;
|
|
862
|
+
} else t13 = $[42];
|
|
853
863
|
const tabbar = t13;
|
|
854
864
|
let t14;
|
|
855
|
-
if ($[
|
|
865
|
+
if ($[43] === Symbol.for("react.memo_cache_sentinel")) {
|
|
856
866
|
t14 = (event) => {
|
|
857
867
|
if (event.target.closest("a, .oui-navbar__item")) setOpen(false);
|
|
858
868
|
};
|
|
859
|
-
$[
|
|
860
|
-
} else t14 = $[
|
|
869
|
+
$[43] = t14;
|
|
870
|
+
} else t14 = $[43];
|
|
861
871
|
const closeOnNavigate = t14;
|
|
862
872
|
let t15;
|
|
863
|
-
if ($[
|
|
873
|
+
if ($[44] !== className) {
|
|
864
874
|
t15 = cx("oui-app-shell", className);
|
|
865
|
-
$[
|
|
866
|
-
$[
|
|
867
|
-
} else t15 = $[
|
|
875
|
+
$[44] = className;
|
|
876
|
+
$[45] = t15;
|
|
877
|
+
} else t15 = $[45];
|
|
868
878
|
let t16;
|
|
869
|
-
if ($[
|
|
879
|
+
if ($[46] !== navbar || $[47] !== register) {
|
|
870
880
|
t16 = /* @__PURE__ */ jsx("div", {
|
|
871
881
|
className: "oui-app-shell__navbar",
|
|
872
882
|
children: /* @__PURE__ */ jsx(PinnedRegistryContext, {
|
|
@@ -874,16 +884,17 @@ function AppShell(t0) {
|
|
|
874
884
|
children: navbar
|
|
875
885
|
})
|
|
876
886
|
});
|
|
877
|
-
$[
|
|
878
|
-
$[
|
|
879
|
-
$[
|
|
880
|
-
} else t16 = $[
|
|
887
|
+
$[46] = navbar;
|
|
888
|
+
$[47] = register;
|
|
889
|
+
$[48] = t16;
|
|
890
|
+
} else t16 = $[48];
|
|
881
891
|
let t17;
|
|
882
|
-
if ($[
|
|
892
|
+
if ($[49] !== drawer || $[50] !== hasTabs || $[51] !== menuLabel || $[52] !== mobileActions || $[53] !== mobileBrand || $[54] !== showTopBar) {
|
|
883
893
|
t17 = showTopBar && /* @__PURE__ */ jsxs("header", {
|
|
884
894
|
className: "oui-app-shell__mobile-bar",
|
|
885
895
|
children: [
|
|
886
896
|
!hasTabs && /* @__PURE__ */ jsx(Dialog.Trigger, {
|
|
897
|
+
handle: drawer,
|
|
887
898
|
className: "oui-app-shell__menu-button",
|
|
888
899
|
"aria-label": menuLabel,
|
|
889
900
|
children: /* @__PURE__ */ jsx(MenuIcon, {})
|
|
@@ -895,50 +906,51 @@ function AppShell(t0) {
|
|
|
895
906
|
mobileActions
|
|
896
907
|
]
|
|
897
908
|
});
|
|
898
|
-
$[
|
|
899
|
-
$[
|
|
900
|
-
$[
|
|
901
|
-
$[
|
|
902
|
-
$[
|
|
903
|
-
$[
|
|
904
|
-
|
|
909
|
+
$[49] = drawer;
|
|
910
|
+
$[50] = hasTabs;
|
|
911
|
+
$[51] = menuLabel;
|
|
912
|
+
$[52] = mobileActions;
|
|
913
|
+
$[53] = mobileBrand;
|
|
914
|
+
$[54] = showTopBar;
|
|
915
|
+
$[55] = t17;
|
|
916
|
+
} else t17 = $[55];
|
|
905
917
|
const t18 = hasTabs && mobileNavPosition === "top" && tabbar;
|
|
906
918
|
const t19 = mainProps?.className;
|
|
907
919
|
let t20;
|
|
908
|
-
if ($[
|
|
920
|
+
if ($[56] !== t19) {
|
|
909
921
|
t20 = cx("oui-app-shell__main", t19);
|
|
910
|
-
$[
|
|
911
|
-
$[
|
|
912
|
-
} else t20 = $[
|
|
922
|
+
$[56] = t19;
|
|
923
|
+
$[57] = t20;
|
|
924
|
+
} else t20 = $[57];
|
|
913
925
|
let t21;
|
|
914
|
-
if ($[
|
|
926
|
+
if ($[58] !== children || $[59] !== mainProps || $[60] !== t20) {
|
|
915
927
|
t21 = /* @__PURE__ */ jsx("main", {
|
|
916
928
|
...mainProps,
|
|
917
929
|
className: t20,
|
|
918
930
|
children
|
|
919
931
|
});
|
|
920
|
-
$[
|
|
921
|
-
$[
|
|
922
|
-
$[
|
|
923
|
-
$[
|
|
924
|
-
} else t21 = $[
|
|
932
|
+
$[58] = children;
|
|
933
|
+
$[59] = mainProps;
|
|
934
|
+
$[60] = t20;
|
|
935
|
+
$[61] = t21;
|
|
936
|
+
} else t21 = $[61];
|
|
925
937
|
const t22 = hasTabs && mobileNavPosition === "bottom" && tabbar;
|
|
926
938
|
let t23;
|
|
927
|
-
if ($[
|
|
939
|
+
if ($[62] === Symbol.for("react.memo_cache_sentinel")) {
|
|
928
940
|
t23 = /* @__PURE__ */ jsx(Dialog.Backdrop, { className: "oui-dialog__backdrop" });
|
|
929
|
-
$[
|
|
930
|
-
} else t23 = $[
|
|
941
|
+
$[62] = t23;
|
|
942
|
+
} else t23 = $[62];
|
|
931
943
|
let t24;
|
|
932
|
-
if ($[
|
|
944
|
+
if ($[63] === Symbol.for("react.memo_cache_sentinel")) {
|
|
933
945
|
t24 = /* @__PURE__ */ jsx(Dialog.Close, {
|
|
934
946
|
className: "oui-app-shell__drawer-close",
|
|
935
947
|
"aria-label": "Close navigation",
|
|
936
948
|
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
937
949
|
});
|
|
938
|
-
$[
|
|
939
|
-
} else t24 = $[
|
|
950
|
+
$[63] = t24;
|
|
951
|
+
} else t24 = $[63];
|
|
940
952
|
let t25;
|
|
941
|
-
if ($[
|
|
953
|
+
if ($[64] !== navbar) {
|
|
942
954
|
t25 = /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
943
955
|
className: "oui-app-shell__drawer",
|
|
944
956
|
"aria-label": "Navigation",
|
|
@@ -948,66 +960,72 @@ function AppShell(t0) {
|
|
|
948
960
|
children: navbar
|
|
949
961
|
})]
|
|
950
962
|
});
|
|
951
|
-
$[
|
|
952
|
-
$[
|
|
953
|
-
} else t25 = $[
|
|
963
|
+
$[64] = navbar;
|
|
964
|
+
$[65] = t25;
|
|
965
|
+
} else t25 = $[65];
|
|
954
966
|
let t26;
|
|
955
|
-
if ($[
|
|
967
|
+
if ($[66] !== container || $[67] !== t25) {
|
|
956
968
|
t26 = /* @__PURE__ */ jsxs(Dialog.Portal, {
|
|
957
969
|
container,
|
|
958
970
|
children: [t23, t25]
|
|
959
971
|
});
|
|
960
|
-
$[
|
|
961
|
-
$[
|
|
962
|
-
$[
|
|
963
|
-
} else t26 = $[
|
|
972
|
+
$[66] = container;
|
|
973
|
+
$[67] = t25;
|
|
974
|
+
$[68] = t26;
|
|
975
|
+
} else t26 = $[68];
|
|
964
976
|
let t27;
|
|
965
|
-
if ($[
|
|
966
|
-
t27 = /* @__PURE__ */
|
|
977
|
+
if ($[69] !== drawer || $[70] !== open || $[71] !== t26) {
|
|
978
|
+
t27 = /* @__PURE__ */ jsx(Dialog.Root, {
|
|
979
|
+
handle: drawer,
|
|
967
980
|
open,
|
|
968
981
|
onOpenChange: setOpen,
|
|
969
|
-
children:
|
|
970
|
-
t17,
|
|
971
|
-
t18,
|
|
972
|
-
t21,
|
|
973
|
-
t22,
|
|
974
|
-
t26
|
|
975
|
-
]
|
|
982
|
+
children: t26
|
|
976
983
|
});
|
|
977
|
-
$[
|
|
978
|
-
$[
|
|
979
|
-
$[
|
|
980
|
-
$[
|
|
981
|
-
|
|
982
|
-
$[69] = t26;
|
|
983
|
-
$[70] = t27;
|
|
984
|
-
} else t27 = $[70];
|
|
984
|
+
$[69] = drawer;
|
|
985
|
+
$[70] = open;
|
|
986
|
+
$[71] = t26;
|
|
987
|
+
$[72] = t27;
|
|
988
|
+
} else t27 = $[72];
|
|
985
989
|
let t28;
|
|
986
|
-
if ($[
|
|
990
|
+
if ($[73] !== props || $[74] !== ref || $[75] !== t15 || $[76] !== t16 || $[77] !== t17 || $[78] !== t18 || $[79] !== t21 || $[80] !== t22 || $[81] !== t27) {
|
|
987
991
|
t28 = /* @__PURE__ */ jsxs("div", {
|
|
988
992
|
ref,
|
|
989
993
|
className: t15,
|
|
990
994
|
...props,
|
|
991
|
-
children: [
|
|
995
|
+
children: [
|
|
996
|
+
t16,
|
|
997
|
+
t17,
|
|
998
|
+
t18,
|
|
999
|
+
t21,
|
|
1000
|
+
t22,
|
|
1001
|
+
t27
|
|
1002
|
+
]
|
|
992
1003
|
});
|
|
993
|
-
$[
|
|
994
|
-
$[
|
|
995
|
-
$[
|
|
996
|
-
$[
|
|
997
|
-
$[
|
|
998
|
-
$[
|
|
999
|
-
|
|
1004
|
+
$[73] = props;
|
|
1005
|
+
$[74] = ref;
|
|
1006
|
+
$[75] = t15;
|
|
1007
|
+
$[76] = t16;
|
|
1008
|
+
$[77] = t17;
|
|
1009
|
+
$[78] = t18;
|
|
1010
|
+
$[79] = t21;
|
|
1011
|
+
$[80] = t22;
|
|
1012
|
+
$[81] = t27;
|
|
1013
|
+
$[82] = t28;
|
|
1014
|
+
} else t28 = $[82];
|
|
1000
1015
|
return t28;
|
|
1001
1016
|
}
|
|
1002
|
-
function
|
|
1017
|
+
function _temp3(t0) {
|
|
1003
1018
|
const [id_0, entry_0] = t0;
|
|
1004
1019
|
return /* @__PURE__ */ jsx(PinnedTab, { entry: entry_0 }, id_0);
|
|
1005
1020
|
}
|
|
1006
|
-
function
|
|
1021
|
+
function _temp2(t0, t1) {
|
|
1007
1022
|
const [, a] = t0;
|
|
1008
1023
|
const [, b] = t1;
|
|
1009
1024
|
return byDocumentOrder(a, b);
|
|
1010
1025
|
}
|
|
1026
|
+
function _temp() {
|
|
1027
|
+
return Dialog.createHandle();
|
|
1028
|
+
}
|
|
1011
1029
|
/** Page title block with optional breadcrumbs, eyebrow, description and actions. */
|
|
1012
1030
|
function PageHeader(t0) {
|
|
1013
1031
|
const $ = c(32);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.js","names":["React","Collapsible","BaseCollapsible","Dialog","BaseDialog","useRender","mergeProps","cx","createPrimitive","usePortalContainer","ChevronLeftIcon","ChevronRightIcon","MenuIcon","XIcon","NavbarVariant","NavbarState","variant","collapsed","peek","NavbarProps","ComponentProps","collapsible","defaultCollapsed","onCollapsedChange","expandOnHover","collapseLabel","expandLabel","NavbarCollapsedContext","createContext","NavbarDrawerContext","NavbarNestedContext","PinnedEntry","node","HTMLElement","icon","ReactNode","label","active","render","NavbarItemProps","props","Omit","PinnedRegistryContext","id","entry","Navbar","t0","$","_c","t1","t2","collapsedProp","t3","t4","t5","t6","children","ref","undefined","inDrawer","useContext","canCollapse","internal","setInternal","useState","pointerInside","setPointerInside","hovered","setHovered","t7","t8","timer","setTimeout","clearTimeout","useEffect","t9","Symbol","for","endHover","t10","toggle","t11","event","pointerType","onPointerEnter","t12","t13","state","t14","t15","t16","t17","className","onPointerLeave","t18","defaultTagName","element","t19","t20","NavbarHeader","NavbarFooter","NavbarSection","NavbarSectionLabel","NavbarBrandProps","logo","title","subtitle","NavbarBrand","NavbarItemState","badge","pinned","NavbarItem","nested","registry","register","useId","nodeRef","useRef","_className","style","_style","_title","rest","current","Ref","HTMLAnchorElement","hasActiveItem","Children","toArray","some","child","isValidElement","type","Fragment","NavbarGroup","NavbarGroupProps","HTMLAttributes","HTMLDivElement","open","defaultOpen","onOpenChange","openProp","hasActive","prevActive","setPrevActive","next","setOpen","MobileNavPosition","MoreTabPosition","AppShellProps","navbar","mobileBrand","mobileActions","mobileNavPosition","menuLabel","moreLabel","moreTabPosition","mainProps","MAX_PINNED","byDocumentOrder","a","b","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","PinnedTab","AppShell","container","Map","setPinned","prev","set","delete","hasTabs","moreTab","showTopBar","tabs","entries","sort","_temp","slice","length","map","_temp2","tabbar","target","closest","closeOnNavigate","t21","t22","t23","t24","t25","t26","t27","t28","id_0","entry_0","PageHeaderProps","breadcrumbs","eyebrow","description","actions","PageHeader","GridProps","columns","gap","Grid","_c","_Fragment","BaseCollapsible","BaseDialog"],"sources":["../../../src/components/app-shell/AppShell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { usePortalContainer } from '../../utils/portal';\nimport { ChevronLeftIcon, ChevronRightIcon, MenuIcon, XIcon } from '../../icons';\n\n// ─── Navbar ─────────────────────────────────────────────────────────────────\n\nexport type NavbarVariant = 'inverse' | 'surface';\n\nexport type NavbarState = { variant: NavbarVariant; collapsed: boolean; peek: boolean };\n\nexport interface NavbarProps extends useRender.ComponentProps<'nav', NavbarState> {\n /** `inverse` (brand-colored, default) or `surface` (light panel). */\n variant?: NavbarVariant;\n /** Shows a toggle in the top right that shrinks the navbar to an icon rail. Defaults to `true`. */\n collapsible?: boolean;\n /** Controlled collapsed state. */\n collapsed?: boolean;\n /** Initial collapsed state when uncontrolled. */\n defaultCollapsed?: boolean;\n /** Called when the user collapses or expands the navbar. */\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Temporarily opens a collapsed navbar while the mouse is over it. Defaults to `true`. */\n expandOnHover?: boolean;\n /** Accessible names for the icon-only toggle. */\n collapseLabel?: string;\n /** Accessible name of the toggle while collapsed. */\n expandLabel?: string;\n}\n\nconst NavbarCollapsedContext = React.createContext(false);\n// True inside the AppShell drawer, where the navbar always shows in full.\nconst NavbarDrawerContext = React.createContext(false);\n// True for items inside a `NavbarGroup` panel: they are indented and drop their icon.\nconst NavbarNestedContext = React.createContext(false);\n\ntype PinnedEntry = {\n node: HTMLElement | null;\n icon: React.ReactNode;\n label: React.ReactNode;\n active: boolean;\n render: NavbarItemProps['render'];\n props: Omit<NavbarItemProps, 'className' | 'style' | 'title'>;\n};\n// Provided by AppShell: pinned NavbarItems register here to appear in the mobile tab bar.\nconst PinnedRegistryContext = React.createContext<((id: string, entry: PinnedEntry | null) => void) | null>(null);\n\n/**\n * Collapsible side navigation. Use inside `AppShell`. Compose with `NavbarHeader` (`NavbarBrand`),\n * `NavbarSection` (`NavbarSectionLabel`, `NavbarItem`) and `NavbarFooter`.\n */\nexport function Navbar({\n variant = 'inverse',\n collapsible = true,\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n expandOnHover = true,\n collapseLabel = 'Collapse',\n expandLabel = 'Expand',\n render,\n children,\n ref,\n ...props\n}: NavbarProps) {\n const inDrawer = React.useContext(NavbarDrawerContext);\n const canCollapse = collapsible && !inDrawer;\n const [internal, setInternal] = React.useState(defaultCollapsed);\n const collapsed = canCollapse && (collapsedProp ?? internal);\n const label = collapsed ? expandLabel : collapseLabel;\n\n // Hover peek: shown in full once the mouse has rested over a collapsed navbar.\n const [pointerInside, setPointerInside] = React.useState(false);\n const [hovered, setHovered] = React.useState(false);\n React.useEffect(() => {\n if (!pointerInside) return;\n const timer = setTimeout(() => setHovered(true), 120);\n return () => clearTimeout(timer);\n }, [pointerInside]);\n const peek = collapsed && expandOnHover && hovered;\n\n const endHover = () => {\n setPointerInside(false);\n setHovered(false);\n };\n\n const toggle = () => {\n // Collapsing with the mouse still inside must not peek straight back open.\n endHover();\n if (collapsedProp === undefined) setInternal(!collapsed);\n onCollapsedChange?.(!collapsed);\n };\n\n const onPointerEnter = (event: React.PointerEvent) => {\n if (event.pointerType === 'mouse') setPointerInside(true);\n };\n\n const state: NavbarState = { variant, collapsed: collapsed && !peek, peek };\n const element = useRender({\n defaultTagName: 'nav',\n render,\n ref,\n state,\n props: mergeProps<'nav'>(\n {\n className: 'oui-navbar',\n onPointerEnter: collapsed && expandOnHover ? onPointerEnter : undefined,\n onPointerLeave: collapsed && expandOnHover ? endHover : undefined,\n children: (\n <>\n {canCollapse && (\n <button\n type=\"button\"\n className=\"oui-navbar__toggle\"\n aria-label={label}\n aria-expanded={!collapsed}\n title={label}\n onClick={toggle}\n >\n <ChevronLeftIcon />\n </button>\n )}\n {children}\n </>\n ),\n },\n props,\n ),\n });\n return <NavbarCollapsedContext value={collapsed && !peek}>{element}</NavbarCollapsedContext>;\n}\n\nexport const NavbarHeader = createPrimitive('div', 'oui-navbar__header', 'NavbarHeader');\nexport const NavbarFooter = createPrimitive('div', 'oui-navbar__footer', 'NavbarFooter');\nexport const NavbarSection = createPrimitive('div', 'oui-navbar__section', 'NavbarSection');\nexport const NavbarSectionLabel = createPrimitive('div', 'oui-navbar__section-label', 'NavbarSectionLabel');\n\nexport interface NavbarBrandProps extends Omit<useRender.ComponentProps<'div'>, 'title'> {\n /** Logo or icon shown before the title; stays visible when the navbar is collapsed. */\n logo?: React.ReactNode;\n /** Product or organization name. */\n title: React.ReactNode;\n /** Smaller line under the title. */\n subtitle?: React.ReactNode;\n}\n\n/** Logo, title and subtitle block for the top of a `Navbar`. */\nexport function NavbarBrand({ logo, title, subtitle, render, ref, ...props }: NavbarBrandProps) {\n return useRender({\n defaultTagName: 'div',\n render,\n ref,\n props: mergeProps<'div'>(\n {\n className: 'oui-navbar__brand',\n children: (\n <>\n {logo && <span className=\"oui-navbar__logo\">{logo}</span>}\n <span className=\"oui-navbar__brand-text\">\n <span className=\"oui-navbar__brand-title\">{title}</span>\n {subtitle && <span className=\"oui-navbar__brand-subtitle\">{subtitle}</span>}\n </span>\n </>\n ),\n },\n props,\n ),\n });\n}\n\nexport type NavbarItemState = { active: boolean };\n\nexport interface NavbarItemProps extends useRender.ComponentProps<'a', NavbarItemState> {\n /** Icon shown before the label; it stays visible when the navbar is collapsed to a rail. Not shown inside a `NavbarGroup`. */\n icon?: React.ReactNode;\n /** Marks the current page (sets aria-current). Also opens the surrounding `NavbarGroup`. */\n active?: boolean;\n /** Trailing content such as a count badge. */\n badge?: React.ReactNode;\n /**\n * Also shows the item in the `AppShell` mobile tab bar (icon and label). Pin up to four items; the\n * first four in navbar order are used. Has no effect outside an `AppShell`.\n */\n pinned?: boolean;\n}\n\n/**\n * Navigation link. Renders an `<a>`; use `render={<Link to=\"…\" />}` for a\n * router link or `render={<button />}` for an action. Inside a `NavbarGroup` it becomes an indented sub-link.\n */\nexport function NavbarItem({\n icon,\n active = false,\n badge,\n pinned = false,\n render,\n children,\n ref,\n ...props\n}: NavbarItemProps) {\n const collapsed = React.useContext(NavbarCollapsedContext);\n const nested = React.useContext(NavbarNestedContext);\n const inDrawer = React.useContext(NavbarDrawerContext);\n const registry = React.useContext(PinnedRegistryContext);\n const register = pinned && !inDrawer ? registry : null;\n const id = React.useId();\n const nodeRef = React.useRef<HTMLElement>(null);\n\n // Keep the tab bar copy in sync; the second effect removes it when unpinned or unmounted.\n React.useEffect(() => {\n if (!register) return;\n const { className: _className, style: _style, title: _title, ...rest } = props;\n register(id, { node: nodeRef.current, icon, label: children, active, render, props: rest });\n });\n React.useEffect(() => {\n if (register) return () => register(id, null);\n }, [register, id]);\n\n const state: NavbarItemState = { active };\n return useRender({\n defaultTagName: 'a',\n render,\n ref: [ref, nodeRef] as React.Ref<HTMLAnchorElement>[],\n state,\n props: mergeProps<'a'>(\n {\n className: 'oui-navbar__item',\n 'aria-current': active ? 'page' : undefined,\n title: collapsed && typeof children === 'string' ? children : undefined,\n children: (\n <>\n {icon && !nested && <span className=\"oui-navbar__item-icon\">{icon}</span>}\n <span className=\"oui-navbar__item-label\">{children}</span>\n {badge != null && <span className=\"oui-navbar__item-badge\">{badge}</span>}\n </>\n ),\n },\n props,\n ),\n });\n}\n\nfunction hasActiveItem(children: React.ReactNode): boolean {\n return React.Children.toArray(children).some(\n (child) =>\n React.isValidElement<{ active?: boolean; children?: React.ReactNode }>(child) &&\n (child.props.active === true ||\n ((child.type === React.Fragment || child.type === NavbarGroup) && hasActiveItem(child.props.children))),\n );\n}\n\nexport interface NavbarGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Ref to the group's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Text of the parent row. A string also becomes its tooltip on the collapsed rail. */\n label: React.ReactNode;\n /** Icon of the parent row; it stays visible when the navbar is collapsed to a rail. */\n icon?: React.ReactNode;\n /** Trailing content of the parent row, such as a count badge. */\n badge?: React.ReactNode;\n /** Controlled open state. Takes over from the automatic opening on an active child. */\n open?: boolean;\n /**\n * Initial open state when uncontrolled. Whenever a child item becomes `active`, the group opens.\n * @default true when a child item is active\n */\n defaultOpen?: boolean;\n /** Called when the user opens or closes the group. */\n onOpenChange?: (open: boolean) => void;\n /** Sub-links: `NavbarItem` elements (directly or in fragments), shown indented and without icons. */\n children?: React.ReactNode;\n}\n\n/**\n * Expandable parent row in a `Navbar` with nested `NavbarItem` sub-links. Place it in a `NavbarSection`\n * next to other items. On a collapsed rail the sub-links are hidden and the parent shows as active when\n * one of them is; the hover peek shows the full tree.\n *\n * @example\n * <NavbarSection>\n * <NavbarGroup icon={<Truck />} label=\"Fleet\">\n * <NavbarItem href=\"/fleet/vehicles\" active>Vehicles</NavbarItem>\n * <NavbarItem href=\"/fleet/drivers\">Drivers</NavbarItem>\n * </NavbarGroup>\n * </NavbarSection>\n */\nexport function NavbarGroup({\n label,\n icon,\n badge,\n open: openProp,\n defaultOpen,\n onOpenChange,\n className,\n children,\n ref,\n ...props\n}: NavbarGroupProps) {\n const collapsed = React.useContext(NavbarCollapsedContext);\n const hasActive = hasActiveItem(children);\n const [internal, setInternal] = React.useState(defaultOpen ?? hasActive);\n // Open when navigation lands on one of the sub-links.\n const [prevActive, setPrevActive] = React.useState(hasActive);\n if (hasActive !== prevActive) {\n setPrevActive(hasActive);\n if (hasActive) setInternal(true);\n }\n const open = openProp ?? internal;\n\n const setOpen = (next: boolean) => {\n if (openProp === undefined) setInternal(next);\n onOpenChange?.(next);\n };\n\n return (\n <BaseCollapsible.Root\n ref={ref}\n className={cx('oui-navbar__group', className)}\n open={open}\n onOpenChange={setOpen}\n data-open={open ? '' : undefined}\n {...props}\n >\n <BaseCollapsible.Trigger\n className=\"oui-navbar__item\"\n data-has-children=\"\"\n data-open={open ? '' : undefined}\n // The parent stands in for a hidden active child.\n data-active={hasActive && (collapsed || !open) ? '' : undefined}\n title={collapsed && typeof label === 'string' ? label : undefined}\n >\n {icon && <span className=\"oui-navbar__item-icon\">{icon}</span>}\n <span className=\"oui-navbar__item-label\">{label}</span>\n {badge != null && <span className=\"oui-navbar__item-badge\">{badge}</span>}\n <ChevronRightIcon className=\"oui-navbar__item-chevron\" />\n </BaseCollapsible.Trigger>\n {/* Kept mounted so pinned sub-links stay registered for the mobile tab bar while closed. */}\n <BaseCollapsible.Panel className=\"oui-navbar__group-panel\" keepMounted>\n <div className=\"oui-navbar__group-items\">\n <NavbarNestedContext value={true}>{children}</NavbarNestedContext>\n </div>\n </BaseCollapsible.Panel>\n </BaseCollapsible.Root>\n );\n}\n\n// ─── App shell ───────────────────────────────────────────────────────────────\n\nexport type MobileNavPosition = 'bottom' | 'top';\n\nexport type MoreTabPosition = 'start' | 'end';\n\nexport interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the shell's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Navbar content (usually a `<Navbar>`). Rendered in a drawer on small screens. */\n navbar: React.ReactNode;\n /** Brand shown in the mobile top bar. */\n mobileBrand?: React.ReactNode;\n /** Extra content on the right of the mobile top bar. */\n mobileActions?: React.ReactNode;\n /**\n * Where small screens show the tab bar of pinned `NavbarItem`s: below or above the main area. Both look\n * the same; the \"More\" slot (see `moreTabPosition`) opens the navbar drawer. The top bar with `mobileBrand` and\n * `mobileActions` only appears when one of them is set. Without pinned items, a top bar with a menu\n * button is shown instead.\n */\n mobileNavPosition?: MobileNavPosition;\n /** Accessible name of the button that opens the navigation drawer on small screens. */\n menuLabel?: string;\n /** Label of the tab-bar slot that opens the navigation drawer. */\n moreLabel?: string;\n /** Whether the \"More\" slot comes before or after the pinned items in the tab bar. */\n moreTabPosition?: MoreTabPosition;\n /** Props for the scrolling `<main>` element. */\n mainProps?: React.HTMLAttributes<HTMLElement>;\n}\n\nconst MAX_PINNED = 4;\n\nfunction byDocumentOrder(a: PinnedEntry, b: PinnedEntry) {\n if (!a.node || !b.node) return 0;\n return a.node.compareDocumentPosition(b.node) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\n\nfunction PinnedTab({ entry }: { entry: PinnedEntry }) {\n const state: NavbarItemState = { active: entry.active };\n return useRender({\n defaultTagName: 'a',\n render: entry.render,\n state,\n props: mergeProps<'a'>(\n {\n className: 'oui-app-shell__tab',\n 'aria-current': entry.active ? 'page' : undefined,\n title: typeof entry.label === 'string' ? entry.label : undefined,\n children: (\n <>\n <span className=\"oui-app-shell__tab-icon\">{entry.icon}</span>\n <span className=\"oui-app-shell__tab-label\">{entry.label}</span>\n </>\n ),\n },\n entry.props as React.ComponentProps<'a'>,\n ),\n });\n}\n\n/**\n * Full-height layout with a fixed navbar and an internally scrolling main\n * area. Below 900px the navbar moves into a slide-in drawer, and `NavbarItem`s marked `pinned` show in a\n * tab bar (see `mobileNavPosition`).\n * Customize width with `--oui-navbar-width` and `--oui-navbar-collapsed-width`.\n *\n * @example\n * <AppShell\n * mobileBrand=\"OptiControl\"\n * navbar={\n * <Navbar>\n * <NavbarSection>\n * <NavbarItem href=\"/\" icon={<Home />} active pinned>Overview</NavbarItem>\n * <NavbarItem href=\"/fleet\" icon={<Truck />} pinned>Fleet</NavbarItem>\n * </NavbarSection>\n * </Navbar>\n * }\n * >\n * <PageHeader title=\"Overview\" />\n * </AppShell>\n */\nexport function AppShell({\n navbar,\n mobileBrand,\n mobileActions,\n mobileNavPosition = 'bottom',\n menuLabel = 'Open navigation',\n moreLabel = 'More',\n moreTabPosition = 'start',\n mainProps,\n className,\n children,\n ref,\n ...props\n}: AppShellProps) {\n const [open, setOpen] = React.useState(false);\n const container = usePortalContainer();\n\n const [pinned, setPinned] = React.useState<ReadonlyMap<string, PinnedEntry>>(new Map());\n // Must stay referentially stable: items re-register on every render.\n const [register] = React.useState(() => (id: string, entry: PinnedEntry | null) => {\n setPinned((prev) => {\n const next = new Map(prev);\n if (entry) next.set(id, entry);\n else next.delete(id);\n return next;\n });\n });\n const tabs = [...pinned.entries()].sort(([, a], [, b]) => byDocumentOrder(a, b)).slice(0, MAX_PINNED);\n const hasTabs = tabs.length > 0;\n const showTopBar = !hasTabs || mobileBrand != null || mobileActions != null;\n\n const moreTab = (\n <BaseDialog.Trigger className=\"oui-app-shell__tab\">\n <span className=\"oui-app-shell__tab-icon\">\n <MenuIcon />\n </span>\n <span className=\"oui-app-shell__tab-label\">{moreLabel}</span>\n </BaseDialog.Trigger>\n );\n const tabbar = (\n <nav className=\"oui-app-shell__tabbar\" data-position={mobileNavPosition} aria-label=\"Quick navigation\">\n {moreTabPosition === 'start' && moreTab}\n {tabs.map(([id, entry]) => (\n <PinnedTab key={id} entry={entry} />\n ))}\n {moreTabPosition === 'end' && moreTab}\n </nav>\n );\n\n const closeOnNavigate = (event: React.MouseEvent) => {\n if ((event.target as HTMLElement).closest('a, .oui-navbar__item')) setOpen(false);\n };\n\n return (\n <div ref={ref} className={cx('oui-app-shell', className)} {...props}>\n <div className=\"oui-app-shell__navbar\">\n <PinnedRegistryContext value={register}>{navbar}</PinnedRegistryContext>\n </div>\n\n <BaseDialog.Root open={open} onOpenChange={setOpen}>\n {showTopBar && (\n <header className=\"oui-app-shell__mobile-bar\">\n {!hasTabs && (\n <BaseDialog.Trigger className=\"oui-app-shell__menu-button\" aria-label={menuLabel}>\n <MenuIcon />\n </BaseDialog.Trigger>\n )}\n <div className=\"oui-app-shell__mobile-brand\">{mobileBrand}</div>\n {mobileActions}\n </header>\n )}\n\n {hasTabs && mobileNavPosition === 'top' && tabbar}\n\n <main {...mainProps} className={cx('oui-app-shell__main', mainProps?.className)}>\n {children}\n </main>\n\n {hasTabs && mobileNavPosition === 'bottom' && tabbar}\n\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className=\"oui-dialog__backdrop\" />\n <BaseDialog.Popup className=\"oui-app-shell__drawer\" aria-label=\"Navigation\" onClick={closeOnNavigate}>\n <BaseDialog.Close className=\"oui-app-shell__drawer-close\" aria-label=\"Close navigation\">\n <XIcon />\n </BaseDialog.Close>\n <NavbarDrawerContext value={true}>{navbar}</NavbarDrawerContext>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n </div>\n );\n}\n\n// ─── Page layout helpers ─────────────────────────────────────────────────────\n\nexport interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n /** Ref to the `<header>` element. */\n ref?: React.Ref<HTMLElement>;\n /** Trail shown above the title, usually `<Breadcrumbs>`. */\n breadcrumbs?: React.ReactNode;\n /** Small label above the title. */\n eyebrow?: React.ReactNode;\n /** Page title, rendered as the page `<h1>`. */\n title: React.ReactNode;\n /** Supporting text under the title. */\n description?: React.ReactNode;\n /** Buttons or controls aligned to the right of the title. */\n actions?: React.ReactNode;\n}\n\n/** Page title block with optional breadcrumbs, eyebrow, description and actions. */\nexport function PageHeader({\n breadcrumbs,\n eyebrow,\n title,\n description,\n actions,\n className,\n ref,\n ...props\n}: PageHeaderProps) {\n return (\n <header ref={ref} className={cx('oui-page-header', className)} {...props}>\n <div className=\"oui-page-header__text\">\n {breadcrumbs && <div className=\"oui-page-header__breadcrumbs\">{breadcrumbs}</div>}\n {eyebrow && <span className=\"oui-eyebrow\">{eyebrow}</span>}\n <h1 className=\"oui-page-header__title\">{title}</h1>\n {description && <p className=\"oui-page-header__description\">{description}</p>}\n </div>\n {actions && <div className=\"oui-page-header__actions\">{actions}</div>}\n </header>\n );\n}\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the grid element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Columns on wide screens; collapses to 2 below 1200px (for 4+) and 1 below 900px. */\n columns?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Space between grid cells. */\n gap?: 'sm' | 'md' | 'lg';\n}\n\n/** Responsive dashboard grid. */\nexport function Grid({ columns = 3, gap = 'md', className, ref, ...props }: GridProps) {\n return <div ref={ref} className={cx('oui-grid', className)} data-columns={columns} data-gap={gap} {...props} />;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AppShell.js","names":["React","Collapsible","BaseCollapsible","Dialog","BaseDialog","useRender","mergeProps","cx","createPrimitive","usePortalContainer","ChevronLeftIcon","ChevronRightIcon","MenuIcon","XIcon","NavbarVariant","NavbarState","variant","collapsed","peek","NavbarProps","ComponentProps","collapsible","defaultCollapsed","onCollapsedChange","expandOnHover","collapseLabel","expandLabel","NavbarCollapsedContext","createContext","NavbarDrawerContext","NavbarNestedContext","PinnedEntry","node","HTMLElement","icon","ReactNode","label","active","render","NavbarItemProps","props","Omit","PinnedRegistryContext","id","entry","Navbar","t0","$","_c","t1","t2","collapsedProp","t3","t4","t5","t6","children","ref","undefined","inDrawer","useContext","canCollapse","internal","setInternal","useState","pointerInside","setPointerInside","hovered","setHovered","t7","t8","timer","setTimeout","clearTimeout","useEffect","t9","Symbol","for","endHover","t10","toggle","t11","event","pointerType","onPointerEnter","t12","t13","state","t14","t15","t16","t17","className","onPointerLeave","t18","defaultTagName","element","t19","t20","NavbarHeader","NavbarFooter","NavbarSection","NavbarSectionLabel","NavbarBrandProps","logo","title","subtitle","NavbarBrand","NavbarItemState","badge","pinned","NavbarItem","nested","registry","register","useId","nodeRef","useRef","_className","style","_style","_title","rest","current","Ref","HTMLAnchorElement","hasActiveItem","Children","toArray","some","child","isValidElement","type","Fragment","NavbarGroup","NavbarGroupProps","HTMLAttributes","HTMLDivElement","open","defaultOpen","onOpenChange","openProp","hasActive","prevActive","setPrevActive","next","setOpen","MobileNavPosition","MoreTabPosition","AppShellProps","navbar","mobileBrand","mobileActions","mobileNavPosition","menuLabel","moreLabel","moreTabPosition","mainProps","MAX_PINNED","byDocumentOrder","a","b","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","PinnedTab","AppShell","drawer","_temp","container","Map","setPinned","prev","set","delete","hasTabs","moreTab","showTopBar","tabs","entries","sort","_temp2","slice","length","map","_temp3","tabbar","target","closest","closeOnNavigate","t21","t22","t23","t24","t25","t26","t27","t28","id_0","entry_0","createHandle","PageHeaderProps","breadcrumbs","eyebrow","description","actions","PageHeader","GridProps","columns","gap","Grid","_c","_Fragment","BaseCollapsible","BaseDialog"],"sources":["../../../src/components/app-shell/AppShell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport { useRender } from '@base-ui/react/use-render';\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { usePortalContainer } from '../../utils/portal';\nimport { ChevronLeftIcon, ChevronRightIcon, MenuIcon, XIcon } from '../../icons';\n\n// ─── Navbar ─────────────────────────────────────────────────────────────────\n\nexport type NavbarVariant = 'inverse' | 'surface';\n\nexport type NavbarState = { variant: NavbarVariant; collapsed: boolean; peek: boolean };\n\nexport interface NavbarProps extends useRender.ComponentProps<'nav', NavbarState> {\n /** `inverse` (brand-colored, default) or `surface` (light panel). */\n variant?: NavbarVariant;\n /** Shows a toggle in the top right that shrinks the navbar to an icon rail. Defaults to `true`. */\n collapsible?: boolean;\n /** Controlled collapsed state. */\n collapsed?: boolean;\n /** Initial collapsed state when uncontrolled. */\n defaultCollapsed?: boolean;\n /** Called when the user collapses or expands the navbar. */\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Temporarily opens a collapsed navbar while the mouse is over it. Defaults to `true`. */\n expandOnHover?: boolean;\n /** Accessible names for the icon-only toggle. */\n collapseLabel?: string;\n /** Accessible name of the toggle while collapsed. */\n expandLabel?: string;\n}\n\nconst NavbarCollapsedContext = React.createContext(false);\n// True inside the AppShell drawer, where the navbar always shows in full.\nconst NavbarDrawerContext = React.createContext(false);\n// True for items inside a `NavbarGroup` panel: they are indented and drop their icon.\nconst NavbarNestedContext = React.createContext(false);\n\ntype PinnedEntry = {\n node: HTMLElement | null;\n icon: React.ReactNode;\n label: React.ReactNode;\n active: boolean;\n render: NavbarItemProps['render'];\n props: Omit<NavbarItemProps, 'className' | 'style' | 'title'>;\n};\n// Provided by AppShell: pinned NavbarItems register here to appear in the mobile tab bar.\nconst PinnedRegistryContext = React.createContext<((id: string, entry: PinnedEntry | null) => void) | null>(null);\n\n/**\n * Collapsible side navigation. Use inside `AppShell`. Compose with `NavbarHeader` (`NavbarBrand`),\n * `NavbarSection` (`NavbarSectionLabel`, `NavbarItem`) and `NavbarFooter`.\n */\nexport function Navbar({\n variant = 'inverse',\n collapsible = true,\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n expandOnHover = true,\n collapseLabel = 'Collapse',\n expandLabel = 'Expand',\n render,\n children,\n ref,\n ...props\n}: NavbarProps) {\n const inDrawer = React.useContext(NavbarDrawerContext);\n const canCollapse = collapsible && !inDrawer;\n const [internal, setInternal] = React.useState(defaultCollapsed);\n const collapsed = canCollapse && (collapsedProp ?? internal);\n const label = collapsed ? expandLabel : collapseLabel;\n\n // Hover peek: shown in full once the mouse has rested over a collapsed navbar.\n const [pointerInside, setPointerInside] = React.useState(false);\n const [hovered, setHovered] = React.useState(false);\n React.useEffect(() => {\n if (!pointerInside) return;\n const timer = setTimeout(() => setHovered(true), 120);\n return () => clearTimeout(timer);\n }, [pointerInside]);\n const peek = collapsed && expandOnHover && hovered;\n\n const endHover = () => {\n setPointerInside(false);\n setHovered(false);\n };\n\n const toggle = () => {\n // Collapsing with the mouse still inside must not peek straight back open.\n endHover();\n if (collapsedProp === undefined) setInternal(!collapsed);\n onCollapsedChange?.(!collapsed);\n };\n\n const onPointerEnter = (event: React.PointerEvent) => {\n if (event.pointerType === 'mouse') setPointerInside(true);\n };\n\n const state: NavbarState = { variant, collapsed: collapsed && !peek, peek };\n const element = useRender({\n defaultTagName: 'nav',\n render,\n ref,\n state,\n props: mergeProps<'nav'>(\n {\n className: 'oui-navbar',\n onPointerEnter: collapsed && expandOnHover ? onPointerEnter : undefined,\n onPointerLeave: collapsed && expandOnHover ? endHover : undefined,\n children: (\n <>\n {canCollapse && (\n <button\n type=\"button\"\n className=\"oui-navbar__toggle\"\n aria-label={label}\n aria-expanded={!collapsed}\n title={label}\n onClick={toggle}\n >\n <ChevronLeftIcon />\n </button>\n )}\n {children}\n </>\n ),\n },\n props,\n ),\n });\n return <NavbarCollapsedContext value={collapsed && !peek}>{element}</NavbarCollapsedContext>;\n}\n\nexport const NavbarHeader = createPrimitive('div', 'oui-navbar__header', 'NavbarHeader');\nexport const NavbarFooter = createPrimitive('div', 'oui-navbar__footer', 'NavbarFooter');\nexport const NavbarSection = createPrimitive('div', 'oui-navbar__section', 'NavbarSection');\nexport const NavbarSectionLabel = createPrimitive('div', 'oui-navbar__section-label', 'NavbarSectionLabel');\n\nexport interface NavbarBrandProps extends Omit<useRender.ComponentProps<'div'>, 'title'> {\n /** Logo or icon shown before the title; stays visible when the navbar is collapsed. */\n logo?: React.ReactNode;\n /** Product or organization name. */\n title: React.ReactNode;\n /** Smaller line under the title. */\n subtitle?: React.ReactNode;\n}\n\n/** Logo, title and subtitle block for the top of a `Navbar`. */\nexport function NavbarBrand({ logo, title, subtitle, render, ref, ...props }: NavbarBrandProps) {\n return useRender({\n defaultTagName: 'div',\n render,\n ref,\n props: mergeProps<'div'>(\n {\n className: 'oui-navbar__brand',\n children: (\n <>\n {logo && <span className=\"oui-navbar__logo\">{logo}</span>}\n <span className=\"oui-navbar__brand-text\">\n <span className=\"oui-navbar__brand-title\">{title}</span>\n {subtitle && <span className=\"oui-navbar__brand-subtitle\">{subtitle}</span>}\n </span>\n </>\n ),\n },\n props,\n ),\n });\n}\n\nexport type NavbarItemState = { active: boolean };\n\nexport interface NavbarItemProps extends useRender.ComponentProps<'a', NavbarItemState> {\n /** Icon shown before the label; it stays visible when the navbar is collapsed to a rail. Not shown inside a `NavbarGroup`. */\n icon?: React.ReactNode;\n /** Marks the current page (sets aria-current). Also opens the surrounding `NavbarGroup`. */\n active?: boolean;\n /** Trailing content such as a count badge. */\n badge?: React.ReactNode;\n /**\n * Also shows the item in the `AppShell` mobile tab bar (icon and label). Pin up to four items; the\n * first four in navbar order are used. Has no effect outside an `AppShell`.\n */\n pinned?: boolean;\n}\n\n/**\n * Navigation link. Renders an `<a>`; use `render={<Link to=\"…\" />}` for a\n * router link or `render={<button />}` for an action. Inside a `NavbarGroup` it becomes an indented sub-link.\n */\nexport function NavbarItem({\n icon,\n active = false,\n badge,\n pinned = false,\n render,\n children,\n ref,\n ...props\n}: NavbarItemProps) {\n const collapsed = React.useContext(NavbarCollapsedContext);\n const nested = React.useContext(NavbarNestedContext);\n const inDrawer = React.useContext(NavbarDrawerContext);\n const registry = React.useContext(PinnedRegistryContext);\n const register = pinned && !inDrawer ? registry : null;\n const id = React.useId();\n const nodeRef = React.useRef<HTMLElement>(null);\n\n // Keep the tab bar copy in sync; the second effect removes it when unpinned or unmounted.\n React.useEffect(() => {\n if (!register) return;\n const { className: _className, style: _style, title: _title, ...rest } = props;\n register(id, { node: nodeRef.current, icon, label: children, active, render, props: rest });\n });\n React.useEffect(() => {\n if (register) return () => register(id, null);\n }, [register, id]);\n\n const state: NavbarItemState = { active };\n return useRender({\n defaultTagName: 'a',\n render,\n ref: [ref, nodeRef] as React.Ref<HTMLAnchorElement>[],\n state,\n props: mergeProps<'a'>(\n {\n className: 'oui-navbar__item',\n 'aria-current': active ? 'page' : undefined,\n title: collapsed && typeof children === 'string' ? children : undefined,\n children: (\n <>\n {icon && !nested && <span className=\"oui-navbar__item-icon\">{icon}</span>}\n <span className=\"oui-navbar__item-label\">{children}</span>\n {badge != null && <span className=\"oui-navbar__item-badge\">{badge}</span>}\n </>\n ),\n },\n props,\n ),\n });\n}\n\nfunction hasActiveItem(children: React.ReactNode): boolean {\n return React.Children.toArray(children).some(\n (child) =>\n React.isValidElement<{ active?: boolean; children?: React.ReactNode }>(child) &&\n (child.props.active === true ||\n ((child.type === React.Fragment || child.type === NavbarGroup) && hasActiveItem(child.props.children))),\n );\n}\n\nexport interface NavbarGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Ref to the group's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Text of the parent row. A string also becomes its tooltip on the collapsed rail. */\n label: React.ReactNode;\n /** Icon of the parent row; it stays visible when the navbar is collapsed to a rail. */\n icon?: React.ReactNode;\n /** Trailing content of the parent row, such as a count badge. */\n badge?: React.ReactNode;\n /** Controlled open state. Takes over from the automatic opening on an active child. */\n open?: boolean;\n /**\n * Initial open state when uncontrolled. Whenever a child item becomes `active`, the group opens.\n * @default true when a child item is active\n */\n defaultOpen?: boolean;\n /** Called when the user opens or closes the group. */\n onOpenChange?: (open: boolean) => void;\n /** Sub-links: `NavbarItem` elements (directly or in fragments), shown indented and without icons. */\n children?: React.ReactNode;\n}\n\n/**\n * Expandable parent row in a `Navbar` with nested `NavbarItem` sub-links. Place it in a `NavbarSection`\n * next to other items. On a collapsed rail the sub-links are hidden and the parent shows as active when\n * one of them is; the hover peek shows the full tree.\n *\n * @example\n * <NavbarSection>\n * <NavbarGroup icon={<Truck />} label=\"Fleet\">\n * <NavbarItem href=\"/fleet/vehicles\" active>Vehicles</NavbarItem>\n * <NavbarItem href=\"/fleet/drivers\">Drivers</NavbarItem>\n * </NavbarGroup>\n * </NavbarSection>\n */\nexport function NavbarGroup({\n label,\n icon,\n badge,\n open: openProp,\n defaultOpen,\n onOpenChange,\n className,\n children,\n ref,\n ...props\n}: NavbarGroupProps) {\n const collapsed = React.useContext(NavbarCollapsedContext);\n const hasActive = hasActiveItem(children);\n const [internal, setInternal] = React.useState(defaultOpen ?? hasActive);\n // Open when navigation lands on one of the sub-links.\n const [prevActive, setPrevActive] = React.useState(hasActive);\n if (hasActive !== prevActive) {\n setPrevActive(hasActive);\n if (hasActive) setInternal(true);\n }\n const open = openProp ?? internal;\n\n const setOpen = (next: boolean) => {\n if (openProp === undefined) setInternal(next);\n onOpenChange?.(next);\n };\n\n return (\n <BaseCollapsible.Root\n ref={ref}\n className={cx('oui-navbar__group', className)}\n open={open}\n onOpenChange={setOpen}\n data-open={open ? '' : undefined}\n {...props}\n >\n <BaseCollapsible.Trigger\n className=\"oui-navbar__item\"\n data-has-children=\"\"\n data-open={open ? '' : undefined}\n // The parent stands in for a hidden active child.\n data-active={hasActive && (collapsed || !open) ? '' : undefined}\n title={collapsed && typeof label === 'string' ? label : undefined}\n >\n {icon && <span className=\"oui-navbar__item-icon\">{icon}</span>}\n <span className=\"oui-navbar__item-label\">{label}</span>\n {badge != null && <span className=\"oui-navbar__item-badge\">{badge}</span>}\n <ChevronRightIcon className=\"oui-navbar__item-chevron\" />\n </BaseCollapsible.Trigger>\n {/* Kept mounted so pinned sub-links stay registered for the mobile tab bar while closed. */}\n <BaseCollapsible.Panel className=\"oui-navbar__group-panel\" keepMounted>\n <div className=\"oui-navbar__group-items\">\n <NavbarNestedContext value={true}>{children}</NavbarNestedContext>\n </div>\n </BaseCollapsible.Panel>\n </BaseCollapsible.Root>\n );\n}\n\n// ─── App shell ───────────────────────────────────────────────────────────────\n\nexport type MobileNavPosition = 'bottom' | 'top';\n\nexport type MoreTabPosition = 'start' | 'end';\n\nexport interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the shell's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Navbar content (usually a `<Navbar>`). Rendered in a drawer on small screens. */\n navbar: React.ReactNode;\n /** Brand shown in the mobile top bar. */\n mobileBrand?: React.ReactNode;\n /** Extra content on the right of the mobile top bar. */\n mobileActions?: React.ReactNode;\n /**\n * Where small screens show the tab bar of pinned `NavbarItem`s: below or above the main area. Both look\n * the same; the \"More\" slot (see `moreTabPosition`) opens the navbar drawer. The top bar with `mobileBrand` and\n * `mobileActions` only appears when one of them is set. Without pinned items, a top bar with a menu\n * button is shown instead.\n */\n mobileNavPosition?: MobileNavPosition;\n /** Accessible name of the button that opens the navigation drawer on small screens. */\n menuLabel?: string;\n /** Label of the tab-bar slot that opens the navigation drawer. */\n moreLabel?: string;\n /** Whether the \"More\" slot comes before or after the pinned items in the tab bar. */\n moreTabPosition?: MoreTabPosition;\n /** Props for the scrolling `<main>` element. */\n mainProps?: React.HTMLAttributes<HTMLElement>;\n}\n\nconst MAX_PINNED = 4;\n\nfunction byDocumentOrder(a: PinnedEntry, b: PinnedEntry) {\n if (!a.node || !b.node) return 0;\n return a.node.compareDocumentPosition(b.node) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\n\nfunction PinnedTab({ entry }: { entry: PinnedEntry }) {\n const state: NavbarItemState = { active: entry.active };\n return useRender({\n defaultTagName: 'a',\n render: entry.render,\n state,\n props: mergeProps<'a'>(\n {\n className: 'oui-app-shell__tab',\n 'aria-current': entry.active ? 'page' : undefined,\n title: typeof entry.label === 'string' ? entry.label : undefined,\n children: (\n <>\n <span className=\"oui-app-shell__tab-icon\">{entry.icon}</span>\n <span className=\"oui-app-shell__tab-label\">{entry.label}</span>\n </>\n ),\n },\n entry.props as React.ComponentProps<'a'>,\n ),\n });\n}\n\n/**\n * Full-height layout with a fixed navbar and an internally scrolling main\n * area. Below 900px the navbar moves into a slide-in drawer, and `NavbarItem`s marked `pinned` show in a\n * tab bar (see `mobileNavPosition`).\n * Customize width with `--oui-navbar-width` and `--oui-navbar-collapsed-width`.\n *\n * @example\n * <AppShell\n * mobileBrand=\"OptiControl\"\n * navbar={\n * <Navbar>\n * <NavbarSection>\n * <NavbarItem href=\"/\" icon={<Home />} active pinned>Overview</NavbarItem>\n * <NavbarItem href=\"/fleet\" icon={<Truck />} pinned>Fleet</NavbarItem>\n * </NavbarSection>\n * </Navbar>\n * }\n * >\n * <PageHeader title=\"Overview\" />\n * </AppShell>\n */\nexport function AppShell({\n navbar,\n mobileBrand,\n mobileActions,\n mobileNavPosition = 'bottom',\n menuLabel = 'Open navigation',\n moreLabel = 'More',\n moreTabPosition = 'start',\n mainProps,\n className,\n children,\n ref,\n ...props\n}: AppShellProps) {\n const [open, setOpen] = React.useState(false);\n // Detached triggers keep page content outside the drawer's Root; otherwise every\n // dialog in the page counts as nested and Base UI drops its backdrop.\n const [drawer] = React.useState(() => BaseDialog.createHandle());\n const container = usePortalContainer();\n\n const [pinned, setPinned] = React.useState<ReadonlyMap<string, PinnedEntry>>(new Map());\n // Must stay referentially stable: items re-register on every render.\n const [register] = React.useState(() => (id: string, entry: PinnedEntry | null) => {\n setPinned((prev) => {\n const next = new Map(prev);\n if (entry) next.set(id, entry);\n else next.delete(id);\n return next;\n });\n });\n const tabs = [...pinned.entries()].sort(([, a], [, b]) => byDocumentOrder(a, b)).slice(0, MAX_PINNED);\n const hasTabs = tabs.length > 0;\n const showTopBar = !hasTabs || mobileBrand != null || mobileActions != null;\n\n const moreTab = (\n <BaseDialog.Trigger handle={drawer} className=\"oui-app-shell__tab\">\n <span className=\"oui-app-shell__tab-icon\">\n <MenuIcon />\n </span>\n <span className=\"oui-app-shell__tab-label\">{moreLabel}</span>\n </BaseDialog.Trigger>\n );\n const tabbar = (\n <nav className=\"oui-app-shell__tabbar\" data-position={mobileNavPosition} aria-label=\"Quick navigation\">\n {moreTabPosition === 'start' && moreTab}\n {tabs.map(([id, entry]) => (\n <PinnedTab key={id} entry={entry} />\n ))}\n {moreTabPosition === 'end' && moreTab}\n </nav>\n );\n\n const closeOnNavigate = (event: React.MouseEvent) => {\n if ((event.target as HTMLElement).closest('a, .oui-navbar__item')) setOpen(false);\n };\n\n return (\n <div ref={ref} className={cx('oui-app-shell', className)} {...props}>\n <div className=\"oui-app-shell__navbar\">\n <PinnedRegistryContext value={register}>{navbar}</PinnedRegistryContext>\n </div>\n\n {showTopBar && (\n <header className=\"oui-app-shell__mobile-bar\">\n {!hasTabs && (\n <BaseDialog.Trigger handle={drawer} className=\"oui-app-shell__menu-button\" aria-label={menuLabel}>\n <MenuIcon />\n </BaseDialog.Trigger>\n )}\n <div className=\"oui-app-shell__mobile-brand\">{mobileBrand}</div>\n {mobileActions}\n </header>\n )}\n\n {hasTabs && mobileNavPosition === 'top' && tabbar}\n\n <main {...mainProps} className={cx('oui-app-shell__main', mainProps?.className)}>\n {children}\n </main>\n\n {hasTabs && mobileNavPosition === 'bottom' && tabbar}\n\n <BaseDialog.Root handle={drawer} open={open} onOpenChange={setOpen}>\n <BaseDialog.Portal container={container}>\n <BaseDialog.Backdrop className=\"oui-dialog__backdrop\" />\n <BaseDialog.Popup className=\"oui-app-shell__drawer\" aria-label=\"Navigation\" onClick={closeOnNavigate}>\n <BaseDialog.Close className=\"oui-app-shell__drawer-close\" aria-label=\"Close navigation\">\n <XIcon />\n </BaseDialog.Close>\n <NavbarDrawerContext value={true}>{navbar}</NavbarDrawerContext>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n </div>\n );\n}\n\n// ─── Page layout helpers ─────────────────────────────────────────────────────\n\nexport interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n /** Ref to the `<header>` element. */\n ref?: React.Ref<HTMLElement>;\n /** Trail shown above the title, usually `<Breadcrumbs>`. */\n breadcrumbs?: React.ReactNode;\n /** Small label above the title. */\n eyebrow?: React.ReactNode;\n /** Page title, rendered as the page `<h1>`. */\n title: React.ReactNode;\n /** Supporting text under the title. */\n description?: React.ReactNode;\n /** Buttons or controls aligned to the right of the title. */\n actions?: React.ReactNode;\n}\n\n/** Page title block with optional breadcrumbs, eyebrow, description and actions. */\nexport function PageHeader({\n breadcrumbs,\n eyebrow,\n title,\n description,\n actions,\n className,\n ref,\n ...props\n}: PageHeaderProps) {\n return (\n <header ref={ref} className={cx('oui-page-header', className)} {...props}>\n <div className=\"oui-page-header__text\">\n {breadcrumbs && <div className=\"oui-page-header__breadcrumbs\">{breadcrumbs}</div>}\n {eyebrow && <span className=\"oui-eyebrow\">{eyebrow}</span>}\n <h1 className=\"oui-page-header__title\">{title}</h1>\n {description && <p className=\"oui-page-header__description\">{description}</p>}\n </div>\n {actions && <div className=\"oui-page-header__actions\">{actions}</div>}\n </header>\n );\n}\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the grid element. */\n ref?: React.Ref<HTMLDivElement>;\n /** Columns on wide screens; collapses to 2 below 1200px (for 4+) and 1 below 900px. */\n columns?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Space between grid cells. */\n gap?: 'sm' | 'md' | 'lg';\n}\n\n/** Responsive dashboard grid. */\nexport function Grid({ columns = 3, gap = 'md', className, ref, ...props }: GridProps) {\n return <div ref={ref} className={cx('oui-grid', className)} data-columns={columns} data-gap={gap} {...props} />;\n}\n"],"mappings":"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"}
|