@opensite/ui 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/navbar-animated-preview.cjs +16 -16
  2. package/dist/navbar-animated-preview.js +16 -16
  3. package/dist/navbar-centered-menu.cjs +1 -1
  4. package/dist/navbar-centered-menu.js +1 -1
  5. package/dist/navbar-dark-icons.cjs +1 -1
  6. package/dist/navbar-dark-icons.js +1 -1
  7. package/dist/navbar-dropdown-menu.cjs +1 -1
  8. package/dist/navbar-dropdown-menu.js +1 -1
  9. package/dist/navbar-education-platform.cjs +278 -236
  10. package/dist/navbar-education-platform.d.cts +61 -36
  11. package/dist/navbar-education-platform.d.ts +61 -36
  12. package/dist/navbar-education-platform.js +279 -237
  13. package/dist/navbar-enterprise-mega.cjs +6 -6
  14. package/dist/navbar-enterprise-mega.js +6 -6
  15. package/dist/navbar-feature-grid.cjs +1 -1
  16. package/dist/navbar-feature-grid.js +1 -1
  17. package/dist/navbar-icon-links.cjs +2 -1
  18. package/dist/navbar-icon-links.js +2 -1
  19. package/dist/navbar-image-preview.cjs +129 -50
  20. package/dist/navbar-image-preview.js +128 -50
  21. package/dist/navbar-mega-menu.cjs +1 -1
  22. package/dist/navbar-mega-menu.js +1 -1
  23. package/dist/navbar-multi-column-groups.cjs +53 -49
  24. package/dist/navbar-multi-column-groups.js +53 -49
  25. package/dist/navbar-platform-resources.cjs +5 -4
  26. package/dist/navbar-platform-resources.js +5 -4
  27. package/dist/navbar-search-focused.cjs +1 -1
  28. package/dist/navbar-search-focused.js +1 -1
  29. package/dist/navbar-sidebar-mobile.cjs +235 -166
  30. package/dist/navbar-sidebar-mobile.js +236 -167
  31. package/dist/navbar-simple-links.cjs +228 -184
  32. package/dist/navbar-simple-links.d.cts +15 -3
  33. package/dist/navbar-simple-links.d.ts +15 -3
  34. package/dist/navbar-simple-links.js +228 -183
  35. package/dist/navbar-split-cta.cjs +3 -3
  36. package/dist/navbar-split-cta.js +3 -3
  37. package/dist/navbar-sticky-compact.cjs +1 -1
  38. package/dist/navbar-sticky-compact.js +1 -1
  39. package/dist/navbar-tabbed-sections.cjs +1 -1
  40. package/dist/navbar-tabbed-sections.js +1 -1
  41. package/dist/navbar-transparent-overlay.cjs +244 -123
  42. package/dist/navbar-transparent-overlay.d.cts +30 -1
  43. package/dist/navbar-transparent-overlay.d.ts +30 -1
  44. package/dist/navbar-transparent-overlay.js +244 -123
  45. package/dist/registry.cjs +1008 -894
  46. package/dist/registry.js +1008 -894
  47. package/package.json +1 -1
@@ -7,7 +7,6 @@ var tailwindMerge = require('tailwind-merge');
7
7
  var classVarianceAuthority = require('class-variance-authority');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
10
- var PopoverPrimitive = require('@radix-ui/react-popover');
11
10
  var img = require('@page-speed/img');
12
11
 
13
12
  function _interopNamespace(e) {
@@ -30,7 +29,6 @@ function _interopNamespace(e) {
30
29
 
31
30
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
31
  var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
33
- var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
34
32
 
35
33
  // components/blocks/navbars/navbar-simple-links.tsx
36
34
  function cn(...inputs) {
@@ -1029,36 +1027,6 @@ function NavigationMenuLink({
1029
1027
  }
1030
1028
  );
1031
1029
  }
1032
- function Popover({
1033
- ...props
1034
- }) {
1035
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
1036
- }
1037
- function PopoverTrigger({
1038
- ...props
1039
- }) {
1040
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
1041
- }
1042
- function PopoverContent({
1043
- className,
1044
- align = "center",
1045
- sideOffset = 4,
1046
- ...props
1047
- }) {
1048
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1049
- PopoverPrimitive__namespace.Content,
1050
- {
1051
- "data-slot": "popover-content",
1052
- align,
1053
- sideOffset,
1054
- className: cn(
1055
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
1056
- className
1057
- ),
1058
- ...props
1059
- }
1060
- ) });
1061
- }
1062
1030
  var NavbarLogo = ({
1063
1031
  logo,
1064
1032
  logoSlot,
@@ -1119,6 +1087,62 @@ var NavbarLogo = ({
1119
1087
  }
1120
1088
  );
1121
1089
  };
1090
+ var NavbarMobileMenu = ({
1091
+ open,
1092
+ onClose,
1093
+ children,
1094
+ className,
1095
+ contentClassName,
1096
+ title = "Mobile Navigation"
1097
+ }) => {
1098
+ React__namespace.useEffect(() => {
1099
+ if (open) {
1100
+ const originalOverflow = document.body.style.overflow;
1101
+ document.body.style.overflow = "hidden";
1102
+ return () => {
1103
+ document.body.style.overflow = originalOverflow;
1104
+ };
1105
+ }
1106
+ }, [open]);
1107
+ if (!open) return null;
1108
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1109
+ "div",
1110
+ {
1111
+ className: cn(
1112
+ "fixed inset-0 z-998 flex flex-col bg-background",
1113
+ "animate-in slide-in-from-top duration-300",
1114
+ "data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=closed]:duration-300",
1115
+ className
1116
+ ),
1117
+ "data-state": open ? "open" : "closed",
1118
+ children: [
1119
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
1120
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen", children: /* @__PURE__ */ jsxRuntime.jsxs(
1121
+ "button",
1122
+ {
1123
+ onClick: onClose,
1124
+ 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",
1125
+ "aria-label": "Close mobile menu",
1126
+ children: [
1127
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
1128
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1129
+ ]
1130
+ }
1131
+ ) }),
1132
+ /* @__PURE__ */ jsxRuntime.jsx(
1133
+ "div",
1134
+ {
1135
+ className: cn(
1136
+ "h-full overflow-y-auto pt-20 pb-8 px-4 sm:px-6",
1137
+ contentClassName
1138
+ ),
1139
+ children
1140
+ }
1141
+ )
1142
+ ]
1143
+ }
1144
+ );
1145
+ };
1122
1146
 
1123
1147
  // components/blocks/navbars/layout-variant-utils.ts
1124
1148
  function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
@@ -1155,86 +1179,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
1155
1179
  spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
1156
1180
  };
1157
1181
  }
1158
- var AnimatedHamburger = ({ isOpen }) => {
1159
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "group relative size-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute flex size-full items-center justify-center", children: [
1160
- /* @__PURE__ */ jsxRuntime.jsx(
1161
- DynamicIcon,
1162
- {
1163
- name: "lucide/menu",
1164
- size: 24,
1165
- className: `absolute text-muted-foreground transition-all duration-300 group-hover:text-foreground ${isOpen ? "rotate-90 opacity-0" : "rotate-0 opacity-100"}`
1166
- }
1167
- ),
1168
- /* @__PURE__ */ jsxRuntime.jsx(
1169
- DynamicIcon,
1170
- {
1171
- name: "lucide/x",
1172
- size: 24,
1173
- className: `absolute text-muted-foreground transition-all duration-300 group-hover:text-foreground ${isOpen ? "rotate-0 opacity-100" : "-rotate-90 opacity-0"}`
1174
- }
1175
- )
1176
- ] }) });
1177
- };
1178
- var MobileNav = ({
1179
- navItems,
1180
- activeItem,
1181
- setActiveItem,
1182
- actions,
1183
- actionsSlot
1184
- }) => {
1185
- const [isOpen, setIsOpen] = React.useState(false);
1186
- const renderActions = React.useMemo(() => {
1187
- if (actionsSlot) return actionsSlot;
1188
- if (!actions || actions.length === 0) return null;
1189
- return actions.map((action, index) => {
1190
- const {
1191
- label,
1192
- icon,
1193
- iconAfter,
1194
- children,
1195
- className: actionClassName,
1196
- ...pressableProps
1197
- } = action;
1198
- return /* @__PURE__ */ jsxRuntime.jsx(
1199
- Pressable,
1200
- {
1201
- asButton: true,
1202
- className: actionClassName,
1203
- ...pressableProps,
1204
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1205
- icon,
1206
- label,
1207
- iconAfter
1208
- ] })
1209
- },
1210
- index
1211
- );
1212
- });
1213
- }, [actionsSlot, actions]);
1214
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [
1215
- /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { variant: "ghost", size: "icon", asButton: true, onClick: () => {
1216
- }, children: /* @__PURE__ */ jsxRuntime.jsx(AnimatedHamburger, { isOpen }) }) }),
1217
- /* @__PURE__ */ jsxRuntime.jsx(
1218
- PopoverContent,
1219
- {
1220
- align: "end",
1221
- className: "relative top-4 -right-4 block w-[calc(100vw-32px)] overflow-hidden rounded-xl p-0 sm:top-auto sm:right-auto sm:w-80 lg:hidden",
1222
- children: /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "w-full bg-background py-4 text-foreground", children: [
1223
- navItems.map((navItem, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1224
- Pressable,
1225
- {
1226
- href: navItem.link,
1227
- onClick: () => setActiveItem(navItem.name),
1228
- className: `flex items-center border-l-[3px] px-6 py-4 text-sm font-medium text-foreground transition-all duration-75 ${activeItem === navItem.name ? "border-foreground text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"}`,
1229
- children: navItem.name
1230
- }
1231
- ) }, idx)),
1232
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("li", { className: "flex flex-col gap-3 px-7 py-2", children: renderActions })
1233
- ] })
1234
- }
1235
- )
1236
- ] }) });
1237
- };
1182
+ var MOBILE_BREAKPOINT = 1024;
1238
1183
  var NavbarSimpleLinks = ({
1239
1184
  className,
1240
1185
  containerClassName,
@@ -1242,6 +1187,7 @@ var NavbarSimpleLinks = ({
1242
1187
  navigationMenuClassName,
1243
1188
  menuListClassName,
1244
1189
  actionsClassName,
1190
+ mobileMenuClassName,
1245
1191
  logo,
1246
1192
  logoSlot,
1247
1193
  logoClassName,
@@ -1250,6 +1196,8 @@ var NavbarSimpleLinks = ({
1250
1196
  defaultActiveItem,
1251
1197
  actions,
1252
1198
  actionsSlot,
1199
+ mobileActions,
1200
+ mobileActionsSlot,
1253
1201
  layoutVariant = "fullScreenContainerizedLinks",
1254
1202
  background,
1255
1203
  spacing,
@@ -1260,8 +1208,20 @@ var NavbarSimpleLinks = ({
1260
1208
  const [activeItem, setActiveItem] = React.useState(
1261
1209
  defaultActiveItem || navItems?.[0]?.name || ""
1262
1210
  );
1211
+ const [isOpen, setIsOpen] = React.useState(false);
1263
1212
  const indicatorRef = React.useRef(null);
1264
1213
  const menuRef = React.useRef(null);
1214
+ React.useEffect(() => {
1215
+ if (typeof window === "undefined") return;
1216
+ const handleResize = () => {
1217
+ if (window.innerWidth > MOBILE_BREAKPOINT) {
1218
+ setIsOpen(false);
1219
+ }
1220
+ };
1221
+ handleResize();
1222
+ window.addEventListener("resize", handleResize);
1223
+ return () => window.removeEventListener("resize", handleResize);
1224
+ }, []);
1265
1225
  React.useEffect(() => {
1266
1226
  const updateIndicator = () => {
1267
1227
  const activeEl = document.querySelector(
@@ -1278,6 +1238,9 @@ var NavbarSimpleLinks = ({
1278
1238
  window.addEventListener("resize", updateIndicator);
1279
1239
  return () => window.removeEventListener("resize", updateIndicator);
1280
1240
  }, [activeItem]);
1241
+ const handleMobileMenuClose = () => {
1242
+ setIsOpen(false);
1243
+ };
1281
1244
  const renderNavItems = React.useMemo(() => {
1282
1245
  if (navItemsSlot) return navItemsSlot;
1283
1246
  if (!navItems || navItems.length === 0) return null;
@@ -1331,80 +1294,161 @@ var NavbarSimpleLinks = ({
1331
1294
  sectionContainerMaxWidth,
1332
1295
  spacingOverride
1333
1296
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1297
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1298
+ /* @__PURE__ */ jsxRuntime.jsx(
1299
+ Section,
1300
+ {
1301
+ background,
1302
+ spacing: spacingOverride ?? spacing,
1303
+ className: sectionClasses,
1304
+ pattern,
1305
+ patternOpacity,
1306
+ containerClassName: sectionContainerClassName,
1307
+ containerMaxWidth: sectionContainerMaxWidth,
1308
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1309
+ "nav",
1310
+ {
1311
+ className: cn("flex items-center justify-between", navClassName),
1312
+ children: [
1313
+ /* @__PURE__ */ jsxRuntime.jsx(
1314
+ NavbarLogo,
1315
+ {
1316
+ logo,
1317
+ logoSlot,
1318
+ logoClassName,
1319
+ optixFlowConfig
1320
+ }
1321
+ ),
1322
+ /* @__PURE__ */ jsxRuntime.jsx(
1323
+ NavigationMenu,
1324
+ {
1325
+ className: cn("hidden lg:block", navigationMenuClassName),
1326
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
1327
+ NavigationMenuList,
1328
+ {
1329
+ ref: menuRef,
1330
+ className: cn(
1331
+ "flex items-center gap-6 rounded-4xl px-8 py-3",
1332
+ menuListClassName
1333
+ ),
1334
+ children: [
1335
+ renderNavItems,
1336
+ /* @__PURE__ */ jsxRuntime.jsx(
1337
+ "div",
1338
+ {
1339
+ ref: indicatorRef,
1340
+ className: "absolute bottom-2 flex h-1 items-center justify-center px-2 transition-all duration-300",
1341
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-0.5 w-full rounded-t-none bg-foreground transition-all duration-300" })
1342
+ }
1343
+ )
1344
+ ]
1345
+ }
1346
+ )
1347
+ }
1348
+ ),
1349
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
1350
+ Pressable,
1351
+ {
1352
+ className: "size-11",
1353
+ variant: "ghost",
1354
+ size: "icon",
1355
+ asButton: true,
1356
+ onClick: () => setIsOpen(!isOpen),
1357
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1358
+ DynamicIcon,
1359
+ {
1360
+ name: "lucide/menu",
1361
+ size: 22,
1362
+ className: "stroke-foreground"
1363
+ }
1364
+ )
1365
+ }
1366
+ ) }),
1367
+ /* @__PURE__ */ jsxRuntime.jsx(
1368
+ "div",
1369
+ {
1370
+ className: cn(
1371
+ "hidden items-center gap-2 lg:flex",
1372
+ actionsClassName
1373
+ ),
1374
+ children: renderActions
1375
+ }
1376
+ )
1377
+ ]
1378
+ }
1379
+ ) }) }) })
1380
+ }
1381
+ ),
1382
+ /* @__PURE__ */ jsxRuntime.jsx(
1383
+ MobileNavigationMenu,
1384
+ {
1385
+ open: isOpen,
1386
+ onClose: handleMobileMenuClose,
1387
+ navItems: navItems ?? [],
1388
+ mobileActions,
1389
+ mobileActionsSlot,
1390
+ mobileMenuClassName
1391
+ }
1392
+ )
1393
+ ] });
1394
+ };
1395
+ var MobileNavigationMenu = ({
1396
+ open,
1397
+ onClose,
1398
+ navItems,
1399
+ mobileActions,
1400
+ mobileActionsSlot,
1401
+ mobileMenuClassName
1402
+ }) => {
1403
+ const renderMobileActions = React.useMemo(() => {
1404
+ if (mobileActionsSlot) return mobileActionsSlot;
1405
+ if (!mobileActions || mobileActions.length === 0) return null;
1406
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 px-4", children: mobileActions.map((action, index) => {
1407
+ const {
1408
+ label,
1409
+ icon,
1410
+ iconAfter,
1411
+ children,
1412
+ className: actionClassName,
1413
+ ...pressableProps
1414
+ } = action;
1415
+ return /* @__PURE__ */ jsxRuntime.jsx(
1416
+ Pressable,
1417
+ {
1418
+ asButton: true,
1419
+ className: cn("w-full", actionClassName),
1420
+ onClick: onClose,
1421
+ ...pressableProps,
1422
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1423
+ icon,
1424
+ label,
1425
+ iconAfter
1426
+ ] })
1427
+ },
1428
+ index
1429
+ );
1430
+ }) });
1431
+ }, [mobileActionsSlot, mobileActions, onClose]);
1334
1432
  return /* @__PURE__ */ jsxRuntime.jsx(
1335
- Section,
1433
+ NavbarMobileMenu,
1336
1434
  {
1337
- background,
1338
- spacing: spacingOverride ?? spacing,
1339
- className: sectionClasses,
1340
- pattern,
1341
- patternOpacity,
1342
- containerClassName: sectionContainerClassName,
1343
- containerMaxWidth: sectionContainerMaxWidth,
1344
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1345
- "nav",
1346
- {
1347
- className: cn("flex items-center justify-between", navClassName),
1348
- children: [
1349
- /* @__PURE__ */ jsxRuntime.jsx(
1350
- NavbarLogo,
1351
- {
1352
- logo,
1353
- logoSlot,
1354
- logoClassName,
1355
- optixFlowConfig
1356
- }
1357
- ),
1358
- /* @__PURE__ */ jsxRuntime.jsx(
1359
- NavigationMenu,
1360
- {
1361
- className: cn("hidden lg:block", navigationMenuClassName),
1362
- children: /* @__PURE__ */ jsxRuntime.jsxs(
1363
- NavigationMenuList,
1364
- {
1365
- ref: menuRef,
1366
- className: cn(
1367
- "flex items-center gap-6 rounded-4xl px-8 py-3",
1368
- menuListClassName
1369
- ),
1370
- children: [
1371
- renderNavItems,
1372
- /* @__PURE__ */ jsxRuntime.jsx(
1373
- "div",
1374
- {
1375
- ref: indicatorRef,
1376
- className: "absolute bottom-2 flex h-1 items-center justify-center px-2 transition-all duration-300",
1377
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-0.5 w-full rounded-t-none bg-foreground transition-all duration-300" })
1378
- }
1379
- )
1380
- ]
1381
- }
1382
- )
1383
- }
1384
- ),
1385
- /* @__PURE__ */ jsxRuntime.jsx(
1386
- MobileNav,
1387
- {
1388
- navItems: navItems ?? [],
1389
- activeItem,
1390
- setActiveItem,
1391
- actions,
1392
- actionsSlot
1393
- }
1394
- ),
1395
- /* @__PURE__ */ jsxRuntime.jsx(
1396
- "div",
1397
- {
1398
- className: cn(
1399
- "hidden items-center gap-2 lg:flex",
1400
- actionsClassName
1401
- ),
1402
- children: renderActions
1403
- }
1404
- )
1405
- ]
1406
- }
1407
- ) }) }) })
1435
+ open,
1436
+ onClose,
1437
+ title: "Navigation",
1438
+ className: mobileMenuClassName,
1439
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
1440
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col", children: navItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
1441
+ Pressable,
1442
+ {
1443
+ href: item.link,
1444
+ className: "flex h-15 items-center rounded-md px-4 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all hover:bg-muted focus-visible:ring-4 focus-visible:outline-1",
1445
+ onClick: onClose,
1446
+ children: item.name
1447
+ },
1448
+ `nav-link-${index}`
1449
+ )) }),
1450
+ renderMobileActions
1451
+ ] }) })
1408
1452
  }
1409
1453
  );
1410
1454
  };
@@ -42,6 +42,10 @@ interface NavbarSimpleLinksProps {
42
42
  * Additional CSS classes for the actions container
43
43
  */
44
44
  actionsClassName?: string;
45
+ /**
46
+ * Additional CSS classes for the mobile menu
47
+ */
48
+ mobileMenuClassName?: string;
45
49
  /**
46
50
  * Logo configuration
47
51
  */
@@ -74,6 +78,14 @@ interface NavbarSimpleLinksProps {
74
78
  * Custom slot for actions (overrides actions array)
75
79
  */
76
80
  actionsSlot?: React.ReactNode;
81
+ /**
82
+ * Mobile-specific action configurations
83
+ */
84
+ mobileActions?: ActionConfig[];
85
+ /**
86
+ * Custom slot for mobile actions (overrides mobileActions array)
87
+ */
88
+ mobileActionsSlot?: React.ReactNode;
77
89
  /**
78
90
  * Background style for the section
79
91
  */
@@ -104,10 +116,10 @@ interface NavbarSimpleLinksProps {
104
116
  *
105
117
  * Features a clean, simple design with horizontal navigation links and an animated
106
118
  * underline indicator that slides to show the active item. Desktop view shows all
107
- * links inline with a smooth sliding indicator. Mobile view uses a popover menu
108
- * with a left border indicator for the active item. Perfect for simple marketing
119
+ * links inline with a smooth sliding indicator. Mobile view uses the shared
120
+ * NavbarMobileMenu component with a fullscreen overlay. Perfect for simple marketing
109
121
  * sites and portfolios.
110
122
  */
111
- declare const NavbarSimpleLinks: ({ className, containerClassName, navClassName, navigationMenuClassName, menuListClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navItemsSlot, defaultActiveItem, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSimpleLinksProps) => react_jsx_runtime.JSX.Element;
123
+ declare const NavbarSimpleLinks: ({ className, containerClassName, navClassName, navigationMenuClassName, menuListClassName, actionsClassName, mobileMenuClassName, logo, logoSlot, logoClassName, navItems, navItemsSlot, defaultActiveItem, actions, actionsSlot, mobileActions, mobileActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSimpleLinksProps) => react_jsx_runtime.JSX.Element;
112
124
 
113
125
  export { NavbarSimpleLinks, type NavbarSimpleLinksProps };
@@ -42,6 +42,10 @@ interface NavbarSimpleLinksProps {
42
42
  * Additional CSS classes for the actions container
43
43
  */
44
44
  actionsClassName?: string;
45
+ /**
46
+ * Additional CSS classes for the mobile menu
47
+ */
48
+ mobileMenuClassName?: string;
45
49
  /**
46
50
  * Logo configuration
47
51
  */
@@ -74,6 +78,14 @@ interface NavbarSimpleLinksProps {
74
78
  * Custom slot for actions (overrides actions array)
75
79
  */
76
80
  actionsSlot?: React.ReactNode;
81
+ /**
82
+ * Mobile-specific action configurations
83
+ */
84
+ mobileActions?: ActionConfig[];
85
+ /**
86
+ * Custom slot for mobile actions (overrides mobileActions array)
87
+ */
88
+ mobileActionsSlot?: React.ReactNode;
77
89
  /**
78
90
  * Background style for the section
79
91
  */
@@ -104,10 +116,10 @@ interface NavbarSimpleLinksProps {
104
116
  *
105
117
  * Features a clean, simple design with horizontal navigation links and an animated
106
118
  * underline indicator that slides to show the active item. Desktop view shows all
107
- * links inline with a smooth sliding indicator. Mobile view uses a popover menu
108
- * with a left border indicator for the active item. Perfect for simple marketing
119
+ * links inline with a smooth sliding indicator. Mobile view uses the shared
120
+ * NavbarMobileMenu component with a fullscreen overlay. Perfect for simple marketing
109
121
  * sites and portfolios.
110
122
  */
111
- declare const NavbarSimpleLinks: ({ className, containerClassName, navClassName, navigationMenuClassName, menuListClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navItemsSlot, defaultActiveItem, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSimpleLinksProps) => react_jsx_runtime.JSX.Element;
123
+ declare const NavbarSimpleLinks: ({ className, containerClassName, navClassName, navigationMenuClassName, menuListClassName, actionsClassName, mobileMenuClassName, logo, logoSlot, logoClassName, navItems, navItemsSlot, defaultActiveItem, actions, actionsSlot, mobileActions, mobileActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSimpleLinksProps) => react_jsx_runtime.JSX.Element;
112
124
 
113
125
  export { NavbarSimpleLinks, type NavbarSimpleLinksProps };