@opensite/ui 1.0.3 → 1.0.5
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/navbar-animated-preview.cjs +67 -82
- package/dist/navbar-animated-preview.js +67 -81
- package/dist/navbar-centered-menu.cjs +101 -125
- package/dist/navbar-centered-menu.js +101 -124
- package/dist/navbar-dark-icons.cjs +67 -81
- package/dist/navbar-dark-icons.js +67 -80
- package/dist/navbar-dropdown-menu.cjs +87 -122
- package/dist/navbar-dropdown-menu.js +87 -121
- package/dist/navbar-education-platform.cjs +1 -1
- package/dist/navbar-education-platform.js +1 -1
- package/dist/navbar-enterprise-mega.cjs +7 -7
- package/dist/navbar-enterprise-mega.js +7 -7
- package/dist/navbar-feature-grid.cjs +131 -150
- package/dist/navbar-feature-grid.d.cts +9 -1
- package/dist/navbar-feature-grid.d.ts +9 -1
- package/dist/navbar-feature-grid.js +131 -149
- package/dist/navbar-floating-pill.cjs +2 -2
- package/dist/navbar-floating-pill.js +2 -2
- package/dist/navbar-fullscreen-menu.cjs +1 -1
- package/dist/navbar-fullscreen-menu.js +1 -1
- package/dist/navbar-icon-links.cjs +102 -138
- package/dist/navbar-icon-links.js +102 -137
- package/dist/navbar-image-preview.cjs +64 -95
- package/dist/navbar-image-preview.js +64 -94
- package/dist/navbar-mega-menu.cjs +1 -1
- package/dist/navbar-mega-menu.js +1 -1
- package/dist/navbar-multi-column-groups.cjs +67 -81
- package/dist/navbar-multi-column-groups.js +67 -80
- package/dist/navbar-platform-resources.cjs +80 -42
- package/dist/navbar-platform-resources.js +80 -42
- package/dist/navbar-search-focused.cjs +76 -93
- package/dist/navbar-search-focused.js +76 -92
- package/dist/navbar-sidebar-mobile.cjs +76 -93
- package/dist/navbar-sidebar-mobile.js +76 -92
- package/dist/navbar-simple-links.cjs +1 -1
- package/dist/navbar-simple-links.js +1 -1
- package/dist/navbar-split-cta.cjs +78 -95
- package/dist/navbar-split-cta.js +78 -94
- package/dist/navbar-sticky-compact.cjs +82 -100
- package/dist/navbar-sticky-compact.js +82 -99
- package/dist/navbar-tabbed-sections.cjs +91 -115
- package/dist/navbar-tabbed-sections.js +91 -114
- package/dist/navbar-transparent-overlay.cjs +1 -1
- package/dist/navbar-transparent-overlay.js +1 -1
- package/dist/registry.cjs +594 -618
- package/dist/registry.js +593 -617
- package/package.json +1 -1
|
@@ -8,7 +8,6 @@ var tailwindMerge = require('tailwind-merge');
|
|
|
8
8
|
var classVarianceAuthority = require('class-variance-authority');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
10
|
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
11
|
-
var SheetPrimitive = require('@radix-ui/react-dialog');
|
|
12
11
|
var img = require('@page-speed/img');
|
|
13
12
|
|
|
14
13
|
function _interopNamespace(e) {
|
|
@@ -32,7 +31,6 @@ function _interopNamespace(e) {
|
|
|
32
31
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
33
32
|
var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
|
|
34
33
|
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
35
|
-
var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
|
|
36
34
|
|
|
37
35
|
// components/blocks/navbars/navbar-centered-menu.tsx
|
|
38
36
|
function cn(...inputs) {
|
|
@@ -828,14 +826,14 @@ function PatternBackground({
|
|
|
828
826
|
);
|
|
829
827
|
}
|
|
830
828
|
if (pattern in patternOverlays) {
|
|
831
|
-
const
|
|
829
|
+
const Overlay = patternOverlays[pattern];
|
|
832
830
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
833
831
|
"div",
|
|
834
832
|
{
|
|
835
833
|
className: cn("pointer-events-none absolute inset-0 z-0", className),
|
|
836
834
|
style: { opacity, ...style },
|
|
837
835
|
"aria-hidden": "true",
|
|
838
|
-
children:
|
|
836
|
+
children: Overlay()
|
|
839
837
|
}
|
|
840
838
|
);
|
|
841
839
|
}
|
|
@@ -1087,90 +1085,62 @@ function NavigationMenuLink({
|
|
|
1087
1085
|
}
|
|
1088
1086
|
);
|
|
1089
1087
|
}
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
...props
|
|
1095
|
-
}) {
|
|
1096
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
1097
|
-
}
|
|
1098
|
-
function SheetPortal({
|
|
1099
|
-
...props
|
|
1100
|
-
}) {
|
|
1101
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SheetPrimitive__namespace.Portal, { "data-slot": "sheet-portal", ...props });
|
|
1102
|
-
}
|
|
1103
|
-
function SheetOverlay({
|
|
1088
|
+
var NavbarMobileMenu = ({
|
|
1089
|
+
open,
|
|
1090
|
+
onClose,
|
|
1091
|
+
children,
|
|
1104
1092
|
className,
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1093
|
+
contentClassName,
|
|
1094
|
+
title = "Mobile Navigation"
|
|
1095
|
+
}) => {
|
|
1096
|
+
React__namespace.useEffect(() => {
|
|
1097
|
+
if (open) {
|
|
1098
|
+
const originalOverflow = document.body.style.overflow;
|
|
1099
|
+
document.body.style.overflow = "hidden";
|
|
1100
|
+
return () => {
|
|
1101
|
+
document.body.style.overflow = originalOverflow;
|
|
1102
|
+
};
|
|
1103
|
+
}
|
|
1104
|
+
}, [open]);
|
|
1105
|
+
if (!open) return null;
|
|
1106
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1107
|
+
"div",
|
|
1109
1108
|
{
|
|
1110
|
-
"data-slot": "sheet-overlay",
|
|
1111
1109
|
className: cn(
|
|
1112
|
-
"
|
|
1110
|
+
"fixed inset-0 z-[998] flex flex-col bg-background",
|
|
1111
|
+
"animate-in slide-in-from-top duration-300",
|
|
1112
|
+
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=closed]:duration-300",
|
|
1113
1113
|
className
|
|
1114
1114
|
),
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
children,
|
|
1142
|
-
/* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
|
|
1143
|
-
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1144
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1145
|
-
] })
|
|
1146
|
-
]
|
|
1147
|
-
}
|
|
1148
|
-
)
|
|
1149
|
-
] });
|
|
1150
|
-
}
|
|
1151
|
-
function SheetHeader({ className, ...props }) {
|
|
1152
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1153
|
-
"div",
|
|
1154
|
-
{
|
|
1155
|
-
"data-slot": "sheet-header",
|
|
1156
|
-
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
1157
|
-
...props
|
|
1158
|
-
}
|
|
1159
|
-
);
|
|
1160
|
-
}
|
|
1161
|
-
function SheetTitle({
|
|
1162
|
-
className,
|
|
1163
|
-
...props
|
|
1164
|
-
}) {
|
|
1165
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1166
|
-
SheetPrimitive__namespace.Title,
|
|
1167
|
-
{
|
|
1168
|
-
"data-slot": "sheet-title",
|
|
1169
|
-
className: cn("text-foreground font-semibold", className),
|
|
1170
|
-
...props
|
|
1115
|
+
"data-state": open ? "open" : "closed",
|
|
1116
|
+
children: [
|
|
1117
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1118
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-4 right-4 z-10", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1119
|
+
"button",
|
|
1120
|
+
{
|
|
1121
|
+
onClick: onClose,
|
|
1122
|
+
className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
|
|
1123
|
+
"aria-label": "Close mobile menu",
|
|
1124
|
+
children: [
|
|
1125
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1126
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1127
|
+
]
|
|
1128
|
+
}
|
|
1129
|
+
) }),
|
|
1130
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1131
|
+
"div",
|
|
1132
|
+
{
|
|
1133
|
+
className: cn(
|
|
1134
|
+
"h-full overflow-y-auto pt-20 pb-8 px-4 sm:px-6",
|
|
1135
|
+
contentClassName
|
|
1136
|
+
),
|
|
1137
|
+
children
|
|
1138
|
+
}
|
|
1139
|
+
)
|
|
1140
|
+
]
|
|
1171
1141
|
}
|
|
1172
1142
|
);
|
|
1173
|
-
}
|
|
1143
|
+
};
|
|
1174
1144
|
var NavbarLogo = ({
|
|
1175
1145
|
logo,
|
|
1176
1146
|
logoSlot,
|
|
@@ -1247,7 +1217,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1247
1217
|
// Outer container wrapper (only for floating bar - this containerizes the entire navbar)
|
|
1248
1218
|
containerWrapperClasses: cn(
|
|
1249
1219
|
"w-full",
|
|
1250
|
-
isFloatingBar && "mx-auto
|
|
1220
|
+
isFloatingBar && "mx-auto container relative z-10 px-0 sm:px-0 lg:px-0"
|
|
1251
1221
|
),
|
|
1252
1222
|
// Inner container classes (only for fullScreenContainerizedLinks - this containerizes the content inside the navbar)
|
|
1253
1223
|
innerContainerClasses: cn(
|
|
@@ -1313,15 +1283,26 @@ var renderMenuItem = (item) => {
|
|
|
1313
1283
|
var renderMobileMenuItem = (item) => {
|
|
1314
1284
|
if (item.items) {
|
|
1315
1285
|
return /* @__PURE__ */ jsxRuntime.jsxs(AccordionItem, { value: item.title, className: "border-b-0", children: [
|
|
1316
|
-
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "
|
|
1317
|
-
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "
|
|
1286
|
+
/* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: item.title }),
|
|
1287
|
+
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "max-h-[60dvh] overflow-y-auto space-y-2", children: item.items.map((subItem) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1288
|
+
Pressable,
|
|
1289
|
+
{
|
|
1290
|
+
href: subItem.url,
|
|
1291
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
|
|
1292
|
+
children: [
|
|
1293
|
+
subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subItem.icon, size: 14 }),
|
|
1294
|
+
subItem.title
|
|
1295
|
+
]
|
|
1296
|
+
},
|
|
1297
|
+
subItem.title
|
|
1298
|
+
)) })
|
|
1318
1299
|
] }, item.title);
|
|
1319
1300
|
}
|
|
1320
1301
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1321
1302
|
Pressable,
|
|
1322
1303
|
{
|
|
1323
1304
|
href: item.url,
|
|
1324
|
-
className: "text-
|
|
1305
|
+
className: "flex h-15 items-center text-base font-normal text-foreground",
|
|
1325
1306
|
children: item.title
|
|
1326
1307
|
},
|
|
1327
1308
|
item.title
|
|
@@ -1348,6 +1329,7 @@ var NavbarCenteredMenu = ({
|
|
|
1348
1329
|
patternOpacity,
|
|
1349
1330
|
optixFlowConfig
|
|
1350
1331
|
}) => {
|
|
1332
|
+
const [open, setOpen] = React__namespace.useState(false);
|
|
1351
1333
|
const renderAuthActions = React.useMemo(() => {
|
|
1352
1334
|
if (authActionsSlot) return authActionsSlot;
|
|
1353
1335
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -1444,49 +1426,43 @@ var NavbarCenteredMenu = ({
|
|
|
1444
1426
|
optixFlowConfig
|
|
1445
1427
|
}
|
|
1446
1428
|
),
|
|
1447
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1429
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1430
|
+
Pressable,
|
|
1431
|
+
{
|
|
1432
|
+
variant: "outline",
|
|
1433
|
+
size: "icon",
|
|
1434
|
+
asButton: true,
|
|
1435
|
+
onClick: () => setOpen(!open),
|
|
1436
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
|
|
1437
|
+
}
|
|
1438
|
+
)
|
|
1439
|
+
] }) }),
|
|
1440
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1441
|
+
NavbarMobileMenu,
|
|
1442
|
+
{
|
|
1443
|
+
open,
|
|
1444
|
+
onClose: () => setOpen(false),
|
|
1445
|
+
title: "Mobile Navigation",
|
|
1446
|
+
contentClassName: "pt-10 pb-20",
|
|
1447
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
|
|
1448
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1449
|
+
Accordion,
|
|
1462
1450
|
{
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
optixFlowConfig
|
|
1451
|
+
type: "multiple",
|
|
1452
|
+
className: "w-full",
|
|
1453
|
+
children: renderMobileMenu
|
|
1467
1454
|
}
|
|
1468
|
-
)
|
|
1469
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
children: renderMobileMenu
|
|
1477
|
-
}
|
|
1478
|
-
),
|
|
1479
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1480
|
-
"div",
|
|
1481
|
-
{
|
|
1482
|
-
className: cn("flex flex-col gap-3", actionsClassName),
|
|
1483
|
-
children: renderAuthActions
|
|
1484
|
-
}
|
|
1485
|
-
)
|
|
1486
|
-
] })
|
|
1455
|
+
),
|
|
1456
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1457
|
+
"div",
|
|
1458
|
+
{
|
|
1459
|
+
className: cn("mt-6 flex flex-col gap-4", actionsClassName),
|
|
1460
|
+
children: renderAuthActions
|
|
1461
|
+
}
|
|
1462
|
+
)
|
|
1487
1463
|
] })
|
|
1488
|
-
|
|
1489
|
-
|
|
1464
|
+
}
|
|
1465
|
+
)
|
|
1490
1466
|
] }) }) })
|
|
1491
1467
|
}
|
|
1492
1468
|
);
|
|
@@ -7,7 +7,6 @@ import { twMerge } from 'tailwind-merge';
|
|
|
7
7
|
import { cva } from 'class-variance-authority';
|
|
8
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
9
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
10
|
-
import * as SheetPrimitive from '@radix-ui/react-dialog';
|
|
11
10
|
import { Img } from '@page-speed/img';
|
|
12
11
|
|
|
13
12
|
// components/blocks/navbars/navbar-centered-menu.tsx
|
|
@@ -804,14 +803,14 @@ function PatternBackground({
|
|
|
804
803
|
);
|
|
805
804
|
}
|
|
806
805
|
if (pattern in patternOverlays) {
|
|
807
|
-
const
|
|
806
|
+
const Overlay = patternOverlays[pattern];
|
|
808
807
|
return /* @__PURE__ */ jsx(
|
|
809
808
|
"div",
|
|
810
809
|
{
|
|
811
810
|
className: cn("pointer-events-none absolute inset-0 z-0", className),
|
|
812
811
|
style: { opacity, ...style },
|
|
813
812
|
"aria-hidden": "true",
|
|
814
|
-
children:
|
|
813
|
+
children: Overlay()
|
|
815
814
|
}
|
|
816
815
|
);
|
|
817
816
|
}
|
|
@@ -1063,90 +1062,62 @@ function NavigationMenuLink({
|
|
|
1063
1062
|
}
|
|
1064
1063
|
);
|
|
1065
1064
|
}
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
...props
|
|
1071
|
-
}) {
|
|
1072
|
-
return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
1073
|
-
}
|
|
1074
|
-
function SheetPortal({
|
|
1075
|
-
...props
|
|
1076
|
-
}) {
|
|
1077
|
-
return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
1078
|
-
}
|
|
1079
|
-
function SheetOverlay({
|
|
1065
|
+
var NavbarMobileMenu = ({
|
|
1066
|
+
open,
|
|
1067
|
+
onClose,
|
|
1068
|
+
children,
|
|
1080
1069
|
className,
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1070
|
+
contentClassName,
|
|
1071
|
+
title = "Mobile Navigation"
|
|
1072
|
+
}) => {
|
|
1073
|
+
React.useEffect(() => {
|
|
1074
|
+
if (open) {
|
|
1075
|
+
const originalOverflow = document.body.style.overflow;
|
|
1076
|
+
document.body.style.overflow = "hidden";
|
|
1077
|
+
return () => {
|
|
1078
|
+
document.body.style.overflow = originalOverflow;
|
|
1079
|
+
};
|
|
1080
|
+
}
|
|
1081
|
+
}, [open]);
|
|
1082
|
+
if (!open) return null;
|
|
1083
|
+
return /* @__PURE__ */ jsxs(
|
|
1084
|
+
"div",
|
|
1085
1085
|
{
|
|
1086
|
-
"data-slot": "sheet-overlay",
|
|
1087
1086
|
className: cn(
|
|
1088
|
-
"
|
|
1087
|
+
"fixed inset-0 z-[998] flex flex-col bg-background",
|
|
1088
|
+
"animate-in slide-in-from-top duration-300",
|
|
1089
|
+
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=closed]:duration-300",
|
|
1089
1090
|
className
|
|
1090
1091
|
),
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
children,
|
|
1118
|
-
/* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
|
|
1119
|
-
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1120
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1121
|
-
] })
|
|
1122
|
-
]
|
|
1123
|
-
}
|
|
1124
|
-
)
|
|
1125
|
-
] });
|
|
1126
|
-
}
|
|
1127
|
-
function SheetHeader({ className, ...props }) {
|
|
1128
|
-
return /* @__PURE__ */ jsx(
|
|
1129
|
-
"div",
|
|
1130
|
-
{
|
|
1131
|
-
"data-slot": "sheet-header",
|
|
1132
|
-
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
1133
|
-
...props
|
|
1134
|
-
}
|
|
1135
|
-
);
|
|
1136
|
-
}
|
|
1137
|
-
function SheetTitle({
|
|
1138
|
-
className,
|
|
1139
|
-
...props
|
|
1140
|
-
}) {
|
|
1141
|
-
return /* @__PURE__ */ jsx(
|
|
1142
|
-
SheetPrimitive.Title,
|
|
1143
|
-
{
|
|
1144
|
-
"data-slot": "sheet-title",
|
|
1145
|
-
className: cn("text-foreground font-semibold", className),
|
|
1146
|
-
...props
|
|
1092
|
+
"data-state": open ? "open" : "closed",
|
|
1093
|
+
children: [
|
|
1094
|
+
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1095
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-10", children: /* @__PURE__ */ jsxs(
|
|
1096
|
+
"button",
|
|
1097
|
+
{
|
|
1098
|
+
onClick: onClose,
|
|
1099
|
+
className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
|
|
1100
|
+
"aria-label": "Close mobile menu",
|
|
1101
|
+
children: [
|
|
1102
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1103
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1104
|
+
]
|
|
1105
|
+
}
|
|
1106
|
+
) }),
|
|
1107
|
+
/* @__PURE__ */ jsx(
|
|
1108
|
+
"div",
|
|
1109
|
+
{
|
|
1110
|
+
className: cn(
|
|
1111
|
+
"h-full overflow-y-auto pt-20 pb-8 px-4 sm:px-6",
|
|
1112
|
+
contentClassName
|
|
1113
|
+
),
|
|
1114
|
+
children
|
|
1115
|
+
}
|
|
1116
|
+
)
|
|
1117
|
+
]
|
|
1147
1118
|
}
|
|
1148
1119
|
);
|
|
1149
|
-
}
|
|
1120
|
+
};
|
|
1150
1121
|
var NavbarLogo = ({
|
|
1151
1122
|
logo,
|
|
1152
1123
|
logoSlot,
|
|
@@ -1223,7 +1194,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1223
1194
|
// Outer container wrapper (only for floating bar - this containerizes the entire navbar)
|
|
1224
1195
|
containerWrapperClasses: cn(
|
|
1225
1196
|
"w-full",
|
|
1226
|
-
isFloatingBar && "mx-auto
|
|
1197
|
+
isFloatingBar && "mx-auto container relative z-10 px-0 sm:px-0 lg:px-0"
|
|
1227
1198
|
),
|
|
1228
1199
|
// Inner container classes (only for fullScreenContainerizedLinks - this containerizes the content inside the navbar)
|
|
1229
1200
|
innerContainerClasses: cn(
|
|
@@ -1289,15 +1260,26 @@ var renderMenuItem = (item) => {
|
|
|
1289
1260
|
var renderMobileMenuItem = (item) => {
|
|
1290
1261
|
if (item.items) {
|
|
1291
1262
|
return /* @__PURE__ */ jsxs(AccordionItem, { value: item.title, className: "border-b-0", children: [
|
|
1292
|
-
/* @__PURE__ */ jsx(AccordionTrigger, { className: "
|
|
1293
|
-
/* @__PURE__ */ jsx(AccordionContent, { className: "
|
|
1263
|
+
/* @__PURE__ */ jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: item.title }),
|
|
1264
|
+
/* @__PURE__ */ jsx(AccordionContent, { className: "max-h-[60dvh] overflow-y-auto space-y-2", children: item.items.map((subItem) => /* @__PURE__ */ jsxs(
|
|
1265
|
+
Pressable,
|
|
1266
|
+
{
|
|
1267
|
+
href: subItem.url,
|
|
1268
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
|
|
1269
|
+
children: [
|
|
1270
|
+
subItem.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: subItem.icon, size: 14 }),
|
|
1271
|
+
subItem.title
|
|
1272
|
+
]
|
|
1273
|
+
},
|
|
1274
|
+
subItem.title
|
|
1275
|
+
)) })
|
|
1294
1276
|
] }, item.title);
|
|
1295
1277
|
}
|
|
1296
1278
|
return /* @__PURE__ */ jsx(
|
|
1297
1279
|
Pressable,
|
|
1298
1280
|
{
|
|
1299
1281
|
href: item.url,
|
|
1300
|
-
className: "text-
|
|
1282
|
+
className: "flex h-15 items-center text-base font-normal text-foreground",
|
|
1301
1283
|
children: item.title
|
|
1302
1284
|
},
|
|
1303
1285
|
item.title
|
|
@@ -1324,6 +1306,7 @@ var NavbarCenteredMenu = ({
|
|
|
1324
1306
|
patternOpacity,
|
|
1325
1307
|
optixFlowConfig
|
|
1326
1308
|
}) => {
|
|
1309
|
+
const [open, setOpen] = React.useState(false);
|
|
1327
1310
|
const renderAuthActions = useMemo(() => {
|
|
1328
1311
|
if (authActionsSlot) return authActionsSlot;
|
|
1329
1312
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -1420,49 +1403,43 @@ var NavbarCenteredMenu = ({
|
|
|
1420
1403
|
optixFlowConfig
|
|
1421
1404
|
}
|
|
1422
1405
|
),
|
|
1423
|
-
/* @__PURE__ */
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1406
|
+
/* @__PURE__ */ jsx(
|
|
1407
|
+
Pressable,
|
|
1408
|
+
{
|
|
1409
|
+
variant: "outline",
|
|
1410
|
+
size: "icon",
|
|
1411
|
+
asButton: true,
|
|
1412
|
+
onClick: () => setOpen(!open),
|
|
1413
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
|
|
1414
|
+
}
|
|
1415
|
+
)
|
|
1416
|
+
] }) }),
|
|
1417
|
+
/* @__PURE__ */ jsx(
|
|
1418
|
+
NavbarMobileMenu,
|
|
1419
|
+
{
|
|
1420
|
+
open,
|
|
1421
|
+
onClose: () => setOpen(false),
|
|
1422
|
+
title: "Mobile Navigation",
|
|
1423
|
+
contentClassName: "pt-10 pb-20",
|
|
1424
|
+
children: /* @__PURE__ */ jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
|
|
1425
|
+
/* @__PURE__ */ jsx(
|
|
1426
|
+
Accordion,
|
|
1438
1427
|
{
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
optixFlowConfig
|
|
1428
|
+
type: "multiple",
|
|
1429
|
+
className: "w-full",
|
|
1430
|
+
children: renderMobileMenu
|
|
1443
1431
|
}
|
|
1444
|
-
)
|
|
1445
|
-
/* @__PURE__ */
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
children: renderMobileMenu
|
|
1453
|
-
}
|
|
1454
|
-
),
|
|
1455
|
-
/* @__PURE__ */ jsx(
|
|
1456
|
-
"div",
|
|
1457
|
-
{
|
|
1458
|
-
className: cn("flex flex-col gap-3", actionsClassName),
|
|
1459
|
-
children: renderAuthActions
|
|
1460
|
-
}
|
|
1461
|
-
)
|
|
1462
|
-
] })
|
|
1432
|
+
),
|
|
1433
|
+
/* @__PURE__ */ jsx(
|
|
1434
|
+
"div",
|
|
1435
|
+
{
|
|
1436
|
+
className: cn("mt-6 flex flex-col gap-4", actionsClassName),
|
|
1437
|
+
children: renderAuthActions
|
|
1438
|
+
}
|
|
1439
|
+
)
|
|
1463
1440
|
] })
|
|
1464
|
-
|
|
1465
|
-
|
|
1441
|
+
}
|
|
1442
|
+
)
|
|
1466
1443
|
] }) }) })
|
|
1467
1444
|
}
|
|
1468
1445
|
);
|