@opensite/ui 0.9.4 → 0.9.6

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 (45) hide show
  1. package/dist/navbar-animated-preview.cjs +71 -29
  2. package/dist/navbar-animated-preview.js +71 -29
  3. package/dist/navbar-centered-menu.cjs +101 -31
  4. package/dist/navbar-centered-menu.js +101 -31
  5. package/dist/navbar-dark-icons.cjs +72 -30
  6. package/dist/navbar-dark-icons.js +72 -30
  7. package/dist/navbar-dropdown-menu.cjs +97 -30
  8. package/dist/navbar-dropdown-menu.js +97 -30
  9. package/dist/navbar-education-platform.cjs +71 -26
  10. package/dist/navbar-education-platform.js +71 -26
  11. package/dist/navbar-enterprise-mega.cjs +71 -29
  12. package/dist/navbar-enterprise-mega.js +71 -29
  13. package/dist/navbar-feature-grid.cjs +81 -28
  14. package/dist/navbar-feature-grid.js +81 -28
  15. package/dist/navbar-floating-pill.cjs +71 -26
  16. package/dist/navbar-floating-pill.js +71 -26
  17. package/dist/navbar-fullscreen-menu.cjs +71 -26
  18. package/dist/navbar-fullscreen-menu.js +72 -27
  19. package/dist/navbar-icon-links.cjs +72 -27
  20. package/dist/navbar-icon-links.js +72 -27
  21. package/dist/navbar-image-preview.cjs +2 -2
  22. package/dist/navbar-image-preview.js +2 -2
  23. package/dist/navbar-mega-menu.cjs +71 -40
  24. package/dist/navbar-mega-menu.js +71 -40
  25. package/dist/navbar-multi-column-groups.cjs +2 -2
  26. package/dist/navbar-multi-column-groups.js +2 -2
  27. package/dist/navbar-platform-resources.cjs +71 -26
  28. package/dist/navbar-platform-resources.js +71 -26
  29. package/dist/navbar-search-focused.cjs +2 -2
  30. package/dist/navbar-search-focused.js +2 -2
  31. package/dist/navbar-sidebar-mobile.cjs +2 -2
  32. package/dist/navbar-sidebar-mobile.js +2 -2
  33. package/dist/navbar-simple-links.cjs +72 -27
  34. package/dist/navbar-simple-links.js +72 -27
  35. package/dist/navbar-split-cta.cjs +2 -2
  36. package/dist/navbar-split-cta.js +2 -2
  37. package/dist/navbar-sticky-compact.cjs +2 -2
  38. package/dist/navbar-sticky-compact.js +2 -2
  39. package/dist/navbar-tabbed-sections.cjs +2 -2
  40. package/dist/navbar-tabbed-sections.js +2 -2
  41. package/dist/navbar-transparent-overlay.cjs +2 -2
  42. package/dist/navbar-transparent-overlay.js +2 -2
  43. package/dist/registry.cjs +242 -345
  44. package/dist/registry.js +242 -345
  45. package/package.json +6 -1
@@ -1154,6 +1154,66 @@ function Separator({
1154
1154
  }
1155
1155
  );
1156
1156
  }
1157
+ var NavbarLogo = ({
1158
+ logo,
1159
+ logoSlot,
1160
+ logoClassName,
1161
+ optixFlowConfig
1162
+ }) => {
1163
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
1164
+ if (!logo) return null;
1165
+ const hasResponsiveSources = logo.desktopSrc || logo.mobileSrc;
1166
+ return /* @__PURE__ */ jsxRuntime.jsx(
1167
+ Pressable,
1168
+ {
1169
+ href: logo.url || "/",
1170
+ className: cn("flex items-center", logoClassName),
1171
+ children: hasResponsiveSources ? (
1172
+ // Responsive logo with desktop/mobile sources
1173
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1174
+ /* @__PURE__ */ jsxRuntime.jsx(
1175
+ img.Img,
1176
+ {
1177
+ src: logo.desktopSrc || logo.src || "",
1178
+ className: cn(
1179
+ "hidden h-8 w-auto object-contain md:block",
1180
+ logo.className
1181
+ ),
1182
+ alt: logo.alt || "Logo",
1183
+ optixFlowConfig
1184
+ }
1185
+ ),
1186
+ /* @__PURE__ */ jsxRuntime.jsx(
1187
+ img.Img,
1188
+ {
1189
+ src: logo.mobileSrc || logo.src || "",
1190
+ className: cn(
1191
+ "h-8 w-auto object-contain md:hidden",
1192
+ logo.className
1193
+ ),
1194
+ alt: logo.alt || "Logo",
1195
+ optixFlowConfig
1196
+ }
1197
+ )
1198
+ ] })
1199
+ ) : logo.src ? (
1200
+ // Standard single logo image
1201
+ /* @__PURE__ */ jsxRuntime.jsx(
1202
+ img.Img,
1203
+ {
1204
+ src: logo.src,
1205
+ className: cn("max-h-8 w-auto object-contain", logo.className),
1206
+ alt: logo.alt || "Logo",
1207
+ optixFlowConfig
1208
+ }
1209
+ )
1210
+ ) : (
1211
+ // Text-based logo (title as string or React element)
1212
+ logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-semibold tracking-tighter", children: logo.title }) : logo.title)
1213
+ )
1214
+ }
1215
+ );
1216
+ };
1157
1217
 
1158
1218
  // lib/mediaPlaceholders.ts
1159
1219
  var logoPlaceholders = {
@@ -1301,14 +1361,14 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
1301
1361
  ),
1302
1362
  // Navigation wrapper classes (for border and shadow)
1303
1363
  navWrapperClasses: cn(
1304
- "w-full",
1364
+ "w-full h-16 items-center",
1305
1365
  isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
1306
1366
  ),
1307
1367
  // Section container configuration for full-width navbars
1308
1368
  sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
1309
1369
  sectionContainerMaxWidth: "full",
1310
1370
  // Spacing adjustment for Section component
1311
- spacingOverride: isFloatingBar ? "none" : void 0
1371
+ spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
1312
1372
  };
1313
1373
  }
1314
1374
  var NavbarEducationPlatform = ({
@@ -1337,29 +1397,6 @@ var NavbarEducationPlatform = ({
1337
1397
  optixFlowConfig
1338
1398
  }) => {
1339
1399
  const [isOpen, setIsOpen] = React.useState(false);
1340
- const renderLogo = React.useMemo(() => {
1341
- if (logoSlot) return logoSlot;
1342
- if (!logo) return null;
1343
- return /* @__PURE__ */ jsxRuntime.jsxs(
1344
- Pressable,
1345
- {
1346
- href: logo.url || "/",
1347
- className: cn("flex items-center gap-2", logoClassName),
1348
- children: [
1349
- logo.src && /* @__PURE__ */ jsxRuntime.jsx(
1350
- img.Img,
1351
- {
1352
- src: logo.src,
1353
- alt: logo.alt || "Logo",
1354
- className: cn("h-8 dark:invert", logo.className),
1355
- optixFlowConfig
1356
- }
1357
- ),
1358
- logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-semibold", children: logo.title }) : logo.title)
1359
- ]
1360
- }
1361
- );
1362
- }, [logoSlot, logo, logoClassName, optixFlowConfig]);
1363
1400
  const renderAuthActions = React.useMemo(() => {
1364
1401
  if (authActionsSlot) return authActionsSlot;
1365
1402
  if (!authActions || authActions.length === 0) return null;
@@ -1411,7 +1448,15 @@ var NavbarEducationPlatform = ({
1411
1448
  ),
1412
1449
  children: [
1413
1450
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center gap-9", children: [
1414
- renderLogo,
1451
+ /* @__PURE__ */ jsxRuntime.jsx(
1452
+ NavbarLogo,
1453
+ {
1454
+ logo,
1455
+ logoSlot,
1456
+ logoClassName,
1457
+ optixFlowConfig
1458
+ }
1459
+ ),
1415
1460
  /* @__PURE__ */ jsxRuntime.jsx(
1416
1461
  "div",
1417
1462
  {
@@ -1130,6 +1130,66 @@ function Separator({
1130
1130
  }
1131
1131
  );
1132
1132
  }
1133
+ var NavbarLogo = ({
1134
+ logo,
1135
+ logoSlot,
1136
+ logoClassName,
1137
+ optixFlowConfig
1138
+ }) => {
1139
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
1140
+ if (!logo) return null;
1141
+ const hasResponsiveSources = logo.desktopSrc || logo.mobileSrc;
1142
+ return /* @__PURE__ */ jsx(
1143
+ Pressable,
1144
+ {
1145
+ href: logo.url || "/",
1146
+ className: cn("flex items-center", logoClassName),
1147
+ children: hasResponsiveSources ? (
1148
+ // Responsive logo with desktop/mobile sources
1149
+ /* @__PURE__ */ jsxs(Fragment, { children: [
1150
+ /* @__PURE__ */ jsx(
1151
+ Img,
1152
+ {
1153
+ src: logo.desktopSrc || logo.src || "",
1154
+ className: cn(
1155
+ "hidden h-8 w-auto object-contain md:block",
1156
+ logo.className
1157
+ ),
1158
+ alt: logo.alt || "Logo",
1159
+ optixFlowConfig
1160
+ }
1161
+ ),
1162
+ /* @__PURE__ */ jsx(
1163
+ Img,
1164
+ {
1165
+ src: logo.mobileSrc || logo.src || "",
1166
+ className: cn(
1167
+ "h-8 w-auto object-contain md:hidden",
1168
+ logo.className
1169
+ ),
1170
+ alt: logo.alt || "Logo",
1171
+ optixFlowConfig
1172
+ }
1173
+ )
1174
+ ] })
1175
+ ) : logo.src ? (
1176
+ // Standard single logo image
1177
+ /* @__PURE__ */ jsx(
1178
+ Img,
1179
+ {
1180
+ src: logo.src,
1181
+ className: cn("max-h-8 w-auto object-contain", logo.className),
1182
+ alt: logo.alt || "Logo",
1183
+ optixFlowConfig
1184
+ }
1185
+ )
1186
+ ) : (
1187
+ // Text-based logo (title as string or React element)
1188
+ logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold tracking-tighter", children: logo.title }) : logo.title)
1189
+ )
1190
+ }
1191
+ );
1192
+ };
1133
1193
 
1134
1194
  // lib/mediaPlaceholders.ts
1135
1195
  var logoPlaceholders = {
@@ -1277,14 +1337,14 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
1277
1337
  ),
1278
1338
  // Navigation wrapper classes (for border and shadow)
1279
1339
  navWrapperClasses: cn(
1280
- "w-full",
1340
+ "w-full h-16 items-center",
1281
1341
  isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
1282
1342
  ),
1283
1343
  // Section container configuration for full-width navbars
1284
1344
  sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
1285
1345
  sectionContainerMaxWidth: "full",
1286
1346
  // Spacing adjustment for Section component
1287
- spacingOverride: isFloatingBar ? "none" : void 0
1347
+ spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
1288
1348
  };
1289
1349
  }
1290
1350
  var NavbarEducationPlatform = ({
@@ -1313,29 +1373,6 @@ var NavbarEducationPlatform = ({
1313
1373
  optixFlowConfig
1314
1374
  }) => {
1315
1375
  const [isOpen, setIsOpen] = useState(false);
1316
- const renderLogo = useMemo(() => {
1317
- if (logoSlot) return logoSlot;
1318
- if (!logo) return null;
1319
- return /* @__PURE__ */ jsxs(
1320
- Pressable,
1321
- {
1322
- href: logo.url || "/",
1323
- className: cn("flex items-center gap-2", logoClassName),
1324
- children: [
1325
- logo.src && /* @__PURE__ */ jsx(
1326
- Img,
1327
- {
1328
- src: logo.src,
1329
- alt: logo.alt || "Logo",
1330
- className: cn("h-8 dark:invert", logo.className),
1331
- optixFlowConfig
1332
- }
1333
- ),
1334
- logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: logo.title }) : logo.title)
1335
- ]
1336
- }
1337
- );
1338
- }, [logoSlot, logo, logoClassName, optixFlowConfig]);
1339
1376
  const renderAuthActions = useMemo(() => {
1340
1377
  if (authActionsSlot) return authActionsSlot;
1341
1378
  if (!authActions || authActions.length === 0) return null;
@@ -1387,7 +1424,15 @@ var NavbarEducationPlatform = ({
1387
1424
  ),
1388
1425
  children: [
1389
1426
  /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center gap-9", children: [
1390
- renderLogo,
1427
+ /* @__PURE__ */ jsx(
1428
+ NavbarLogo,
1429
+ {
1430
+ logo,
1431
+ logoSlot,
1432
+ logoClassName,
1433
+ optixFlowConfig
1434
+ }
1435
+ ),
1391
1436
  /* @__PURE__ */ jsx(
1392
1437
  "div",
1393
1438
  {
@@ -1203,6 +1203,66 @@ function SheetTitle({
1203
1203
  }
1204
1204
  );
1205
1205
  }
1206
+ var NavbarLogo = ({
1207
+ logo,
1208
+ logoSlot,
1209
+ logoClassName,
1210
+ optixFlowConfig
1211
+ }) => {
1212
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
1213
+ if (!logo) return null;
1214
+ const hasResponsiveSources = logo.desktopSrc || logo.mobileSrc;
1215
+ return /* @__PURE__ */ jsxRuntime.jsx(
1216
+ Pressable,
1217
+ {
1218
+ href: logo.url || "/",
1219
+ className: cn("flex items-center", logoClassName),
1220
+ children: hasResponsiveSources ? (
1221
+ // Responsive logo with desktop/mobile sources
1222
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1223
+ /* @__PURE__ */ jsxRuntime.jsx(
1224
+ img.Img,
1225
+ {
1226
+ src: logo.desktopSrc || logo.src || "",
1227
+ className: cn(
1228
+ "hidden h-8 w-auto object-contain md:block",
1229
+ logo.className
1230
+ ),
1231
+ alt: logo.alt || "Logo",
1232
+ optixFlowConfig
1233
+ }
1234
+ ),
1235
+ /* @__PURE__ */ jsxRuntime.jsx(
1236
+ img.Img,
1237
+ {
1238
+ src: logo.mobileSrc || logo.src || "",
1239
+ className: cn(
1240
+ "h-8 w-auto object-contain md:hidden",
1241
+ logo.className
1242
+ ),
1243
+ alt: logo.alt || "Logo",
1244
+ optixFlowConfig
1245
+ }
1246
+ )
1247
+ ] })
1248
+ ) : logo.src ? (
1249
+ // Standard single logo image
1250
+ /* @__PURE__ */ jsxRuntime.jsx(
1251
+ img.Img,
1252
+ {
1253
+ src: logo.src,
1254
+ className: cn("max-h-8 w-auto object-contain", logo.className),
1255
+ alt: logo.alt || "Logo",
1256
+ optixFlowConfig
1257
+ }
1258
+ )
1259
+ ) : (
1260
+ // Text-based logo (title as string or React element)
1261
+ logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-semibold tracking-tighter", children: logo.title }) : logo.title)
1262
+ )
1263
+ }
1264
+ );
1265
+ };
1206
1266
 
1207
1267
  // lib/mediaPlaceholders.ts
1208
1268
  var logoPlaceholders = {
@@ -1233,14 +1293,14 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
1233
1293
  ),
1234
1294
  // Navigation wrapper classes (for border and shadow)
1235
1295
  navWrapperClasses: cn(
1236
- "w-full",
1296
+ "w-full h-16 items-center",
1237
1297
  isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
1238
1298
  ),
1239
1299
  // Section container configuration for full-width navbars
1240
1300
  sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
1241
1301
  sectionContainerMaxWidth: "full",
1242
1302
  // Spacing adjustment for Section component
1243
- spacingOverride: isFloatingBar ? "none" : void 0
1303
+ spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
1244
1304
  };
1245
1305
  }
1246
1306
  var MOBILE_BREAKPOINT = 1024;
@@ -1283,32 +1343,6 @@ var NavbarEnterpriseMega = ({
1283
1343
  const handleMobileMenu = () => {
1284
1344
  setOpen(!open);
1285
1345
  };
1286
- const renderLogo = React.useMemo(() => {
1287
- if (logoSlot) return logoSlot;
1288
- if (!logo) return null;
1289
- return /* @__PURE__ */ jsxRuntime.jsxs(
1290
- Pressable,
1291
- {
1292
- href: logo.url || "/",
1293
- className: cn(
1294
- "flex max-h-8 items-center gap-2 text-lg font-semibold tracking-tighter",
1295
- logoClassName
1296
- ),
1297
- children: [
1298
- logo.src && /* @__PURE__ */ jsxRuntime.jsx(
1299
- img.Img,
1300
- {
1301
- src: logo.src,
1302
- alt: logo.alt || "Logo",
1303
- className: cn("inline-block size-6", logo.className),
1304
- optixFlowConfig
1305
- }
1306
- ),
1307
- logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden md:inline-block", children: logo.title }) : logo.title)
1308
- ]
1309
- }
1310
- );
1311
- }, [logoSlot, logo, logoClassName, optixFlowConfig]);
1312
1346
  const renderActions = React.useMemo(() => {
1313
1347
  if (actionsSlot) return actionsSlot;
1314
1348
  if (!actions || actions.length === 0) return null;
@@ -1359,7 +1393,15 @@ var NavbarEnterpriseMega = ({
1359
1393
  navClassName
1360
1394
  ),
1361
1395
  children: [
1362
- renderLogo,
1396
+ /* @__PURE__ */ jsxRuntime.jsx(
1397
+ NavbarLogo,
1398
+ {
1399
+ logo,
1400
+ logoSlot,
1401
+ logoClassName,
1402
+ optixFlowConfig
1403
+ }
1404
+ ),
1363
1405
  /* @__PURE__ */ jsxRuntime.jsx(
1364
1406
  NavigationMenu,
1365
1407
  {
@@ -1179,6 +1179,66 @@ function SheetTitle({
1179
1179
  }
1180
1180
  );
1181
1181
  }
1182
+ var NavbarLogo = ({
1183
+ logo,
1184
+ logoSlot,
1185
+ logoClassName,
1186
+ optixFlowConfig
1187
+ }) => {
1188
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
1189
+ if (!logo) return null;
1190
+ const hasResponsiveSources = logo.desktopSrc || logo.mobileSrc;
1191
+ return /* @__PURE__ */ jsx(
1192
+ Pressable,
1193
+ {
1194
+ href: logo.url || "/",
1195
+ className: cn("flex items-center", logoClassName),
1196
+ children: hasResponsiveSources ? (
1197
+ // Responsive logo with desktop/mobile sources
1198
+ /* @__PURE__ */ jsxs(Fragment, { children: [
1199
+ /* @__PURE__ */ jsx(
1200
+ Img,
1201
+ {
1202
+ src: logo.desktopSrc || logo.src || "",
1203
+ className: cn(
1204
+ "hidden h-8 w-auto object-contain md:block",
1205
+ logo.className
1206
+ ),
1207
+ alt: logo.alt || "Logo",
1208
+ optixFlowConfig
1209
+ }
1210
+ ),
1211
+ /* @__PURE__ */ jsx(
1212
+ Img,
1213
+ {
1214
+ src: logo.mobileSrc || logo.src || "",
1215
+ className: cn(
1216
+ "h-8 w-auto object-contain md:hidden",
1217
+ logo.className
1218
+ ),
1219
+ alt: logo.alt || "Logo",
1220
+ optixFlowConfig
1221
+ }
1222
+ )
1223
+ ] })
1224
+ ) : logo.src ? (
1225
+ // Standard single logo image
1226
+ /* @__PURE__ */ jsx(
1227
+ Img,
1228
+ {
1229
+ src: logo.src,
1230
+ className: cn("max-h-8 w-auto object-contain", logo.className),
1231
+ alt: logo.alt || "Logo",
1232
+ optixFlowConfig
1233
+ }
1234
+ )
1235
+ ) : (
1236
+ // Text-based logo (title as string or React element)
1237
+ logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold tracking-tighter", children: logo.title }) : logo.title)
1238
+ )
1239
+ }
1240
+ );
1241
+ };
1182
1242
 
1183
1243
  // lib/mediaPlaceholders.ts
1184
1244
  var logoPlaceholders = {
@@ -1209,14 +1269,14 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
1209
1269
  ),
1210
1270
  // Navigation wrapper classes (for border and shadow)
1211
1271
  navWrapperClasses: cn(
1212
- "w-full",
1272
+ "w-full h-16 items-center",
1213
1273
  isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
1214
1274
  ),
1215
1275
  // Section container configuration for full-width navbars
1216
1276
  sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
1217
1277
  sectionContainerMaxWidth: "full",
1218
1278
  // Spacing adjustment for Section component
1219
- spacingOverride: isFloatingBar ? "none" : void 0
1279
+ spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
1220
1280
  };
1221
1281
  }
1222
1282
  var MOBILE_BREAKPOINT = 1024;
@@ -1259,32 +1319,6 @@ var NavbarEnterpriseMega = ({
1259
1319
  const handleMobileMenu = () => {
1260
1320
  setOpen(!open);
1261
1321
  };
1262
- const renderLogo = useMemo(() => {
1263
- if (logoSlot) return logoSlot;
1264
- if (!logo) return null;
1265
- return /* @__PURE__ */ jsxs(
1266
- Pressable,
1267
- {
1268
- href: logo.url || "/",
1269
- className: cn(
1270
- "flex max-h-8 items-center gap-2 text-lg font-semibold tracking-tighter",
1271
- logoClassName
1272
- ),
1273
- children: [
1274
- logo.src && /* @__PURE__ */ jsx(
1275
- Img,
1276
- {
1277
- src: logo.src,
1278
- alt: logo.alt || "Logo",
1279
- className: cn("inline-block size-6", logo.className),
1280
- optixFlowConfig
1281
- }
1282
- ),
1283
- logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsx("span", { className: "hidden md:inline-block", children: logo.title }) : logo.title)
1284
- ]
1285
- }
1286
- );
1287
- }, [logoSlot, logo, logoClassName, optixFlowConfig]);
1288
1322
  const renderActions = useMemo(() => {
1289
1323
  if (actionsSlot) return actionsSlot;
1290
1324
  if (!actions || actions.length === 0) return null;
@@ -1335,7 +1369,15 @@ var NavbarEnterpriseMega = ({
1335
1369
  navClassName
1336
1370
  ),
1337
1371
  children: [
1338
- renderLogo,
1372
+ /* @__PURE__ */ jsx(
1373
+ NavbarLogo,
1374
+ {
1375
+ logo,
1376
+ logoSlot,
1377
+ logoClassName,
1378
+ optixFlowConfig
1379
+ }
1380
+ ),
1339
1381
  /* @__PURE__ */ jsx(
1340
1382
  NavigationMenu,
1341
1383
  {
@@ -6,10 +6,10 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var classVarianceAuthority = require('class-variance-authority');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
- var img = require('@page-speed/img');
10
9
  var AccordionPrimitive = require('@radix-ui/react-accordion');
11
10
  var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
12
11
  var SheetPrimitive = require('@radix-ui/react-dialog');
12
+ var img = require('@page-speed/img');
13
13
 
14
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule) return e;
@@ -1218,6 +1218,66 @@ function SheetTitle({
1218
1218
  }
1219
1219
  );
1220
1220
  }
1221
+ var NavbarLogo = ({
1222
+ logo,
1223
+ logoSlot,
1224
+ logoClassName,
1225
+ optixFlowConfig
1226
+ }) => {
1227
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
1228
+ if (!logo) return null;
1229
+ const hasResponsiveSources = logo.desktopSrc || logo.mobileSrc;
1230
+ return /* @__PURE__ */ jsxRuntime.jsx(
1231
+ Pressable,
1232
+ {
1233
+ href: logo.url || "/",
1234
+ className: cn("flex items-center", logoClassName),
1235
+ children: hasResponsiveSources ? (
1236
+ // Responsive logo with desktop/mobile sources
1237
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1238
+ /* @__PURE__ */ jsxRuntime.jsx(
1239
+ img.Img,
1240
+ {
1241
+ src: logo.desktopSrc || logo.src || "",
1242
+ className: cn(
1243
+ "hidden h-8 w-auto object-contain md:block",
1244
+ logo.className
1245
+ ),
1246
+ alt: logo.alt || "Logo",
1247
+ optixFlowConfig
1248
+ }
1249
+ ),
1250
+ /* @__PURE__ */ jsxRuntime.jsx(
1251
+ img.Img,
1252
+ {
1253
+ src: logo.mobileSrc || logo.src || "",
1254
+ className: cn(
1255
+ "h-8 w-auto object-contain md:hidden",
1256
+ logo.className
1257
+ ),
1258
+ alt: logo.alt || "Logo",
1259
+ optixFlowConfig
1260
+ }
1261
+ )
1262
+ ] })
1263
+ ) : logo.src ? (
1264
+ // Standard single logo image
1265
+ /* @__PURE__ */ jsxRuntime.jsx(
1266
+ img.Img,
1267
+ {
1268
+ src: logo.src,
1269
+ className: cn("max-h-8 w-auto object-contain", logo.className),
1270
+ alt: logo.alt || "Logo",
1271
+ optixFlowConfig
1272
+ }
1273
+ )
1274
+ ) : (
1275
+ // Text-based logo (title as string or React element)
1276
+ logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-semibold tracking-tighter", children: logo.title }) : logo.title)
1277
+ )
1278
+ }
1279
+ );
1280
+ };
1221
1281
 
1222
1282
  // lib/mediaPlaceholders.ts
1223
1283
  var logoPlaceholders = {
@@ -1248,14 +1308,14 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
1248
1308
  ),
1249
1309
  // Navigation wrapper classes (for border and shadow)
1250
1310
  navWrapperClasses: cn(
1251
- "w-full",
1311
+ "w-full h-16 items-center",
1252
1312
  isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
1253
1313
  ),
1254
1314
  // Section container configuration for full-width navbars
1255
1315
  sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
1256
1316
  sectionContainerMaxWidth: "full",
1257
1317
  // Spacing adjustment for Section component
1258
- spacingOverride: isFloatingBar ? "none" : void 0
1318
+ spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
1259
1319
  };
1260
1320
  }
1261
1321
  var NavbarFeatureGrid = ({
@@ -1280,29 +1340,6 @@ var NavbarFeatureGrid = ({
1280
1340
  patternOpacity,
1281
1341
  optixFlowConfig
1282
1342
  }) => {
1283
- const renderLogo = React.useMemo(() => {
1284
- if (logoSlot) return logoSlot;
1285
- if (!logo) return null;
1286
- return /* @__PURE__ */ jsxRuntime.jsxs(
1287
- Pressable,
1288
- {
1289
- href: logo.url || "/",
1290
- className: cn("flex items-center gap-2", logoClassName),
1291
- children: [
1292
- logo.src && /* @__PURE__ */ jsxRuntime.jsx(
1293
- img.Img,
1294
- {
1295
- src: logo.src,
1296
- className: cn("max-h-8", logo.className),
1297
- alt: logo.alt || "Logo",
1298
- optixFlowConfig
1299
- }
1300
- ),
1301
- logo.title && (typeof logo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-semibold tracking-tighter", children: logo.title }) : logo.title)
1302
- ]
1303
- }
1304
- );
1305
- }, [logoSlot, logo, logoClassName, optixFlowConfig]);
1306
1343
  const renderAuthActions = React.useMemo(() => {
1307
1344
  if (authActionsSlot) return authActionsSlot;
1308
1345
  if (!authActions || authActions.length === 0) return null;
@@ -1346,7 +1383,15 @@ var NavbarFeatureGrid = ({
1346
1383
  {
1347
1384
  className: cn("flex items-center justify-between", navClassName),
1348
1385
  children: [
1349
- renderLogo,
1386
+ /* @__PURE__ */ jsxRuntime.jsx(
1387
+ NavbarLogo,
1388
+ {
1389
+ logo,
1390
+ logoSlot,
1391
+ logoClassName,
1392
+ optixFlowConfig
1393
+ }
1394
+ ),
1350
1395
  /* @__PURE__ */ jsxRuntime.jsx(
1351
1396
  NavigationMenu,
1352
1397
  {
@@ -1391,7 +1436,15 @@ var NavbarFeatureGrid = ({
1391
1436
  }
1392
1437
  ) }),
1393
1438
  /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { side: "top", className: "max-h-screen overflow-auto", children: [
1394
- /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: renderLogo }) }),
1439
+ /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: /* @__PURE__ */ jsxRuntime.jsx(
1440
+ NavbarLogo,
1441
+ {
1442
+ logo,
1443
+ logoSlot,
1444
+ logoClassName,
1445
+ optixFlowConfig
1446
+ }
1447
+ ) }) }),
1395
1448
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-4", children: [
1396
1449
  features && features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "single", collapsible: true, className: "mt-4 mb-2", children: /* @__PURE__ */ jsxRuntime.jsxs(AccordionItem, { value: "solutions", className: "border-none", children: [
1397
1450
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "text-base hover:no-underline", children: "Features" }),