@opensite/ui 0.4.4 → 0.4.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 (89) hide show
  1. package/dist/navbar-animated-preview.cjs +97 -58
  2. package/dist/navbar-animated-preview.d.cts +9 -64
  3. package/dist/navbar-animated-preview.d.ts +9 -64
  4. package/dist/navbar-animated-preview.js +97 -58
  5. package/dist/navbar-centered-menu.cjs +46 -7
  6. package/dist/navbar-centered-menu.d.cts +7 -11
  7. package/dist/navbar-centered-menu.d.ts +7 -11
  8. package/dist/navbar-centered-menu.js +46 -7
  9. package/dist/navbar-dark-icons.cjs +50 -10
  10. package/dist/navbar-dark-icons.d.cts +6 -11
  11. package/dist/navbar-dark-icons.d.ts +6 -11
  12. package/dist/navbar-dark-icons.js +50 -10
  13. package/dist/navbar-dropdown-menu.cjs +47 -8
  14. package/dist/navbar-dropdown-menu.d.cts +8 -12
  15. package/dist/navbar-dropdown-menu.d.ts +8 -12
  16. package/dist/navbar-dropdown-menu.js +47 -8
  17. package/dist/navbar-education-platform.cjs +48 -10
  18. package/dist/navbar-education-platform.d.cts +6 -11
  19. package/dist/navbar-education-platform.d.ts +6 -11
  20. package/dist/navbar-education-platform.js +48 -10
  21. package/dist/navbar-enterprise-mega.cjs +50 -10
  22. package/dist/navbar-enterprise-mega.d.cts +7 -37
  23. package/dist/navbar-enterprise-mega.d.ts +7 -37
  24. package/dist/navbar-enterprise-mega.js +50 -10
  25. package/dist/navbar-feature-grid.cjs +47 -8
  26. package/dist/navbar-feature-grid.d.cts +6 -11
  27. package/dist/navbar-feature-grid.d.ts +6 -11
  28. package/dist/navbar-feature-grid.js +47 -8
  29. package/dist/navbar-floating-pill.cjs +50 -11
  30. package/dist/navbar-floating-pill.d.cts +6 -11
  31. package/dist/navbar-floating-pill.d.ts +6 -11
  32. package/dist/navbar-floating-pill.js +50 -11
  33. package/dist/navbar-fullscreen-menu.cjs +44 -5
  34. package/dist/navbar-fullscreen-menu.d.cts +6 -11
  35. package/dist/navbar-fullscreen-menu.d.ts +6 -11
  36. package/dist/navbar-fullscreen-menu.js +44 -5
  37. package/dist/navbar-icon-links.cjs +46 -8
  38. package/dist/navbar-icon-links.d.cts +9 -11
  39. package/dist/navbar-icon-links.d.ts +9 -11
  40. package/dist/navbar-icon-links.js +46 -8
  41. package/dist/navbar-image-preview.cjs +56 -12
  42. package/dist/navbar-image-preview.d.cts +11 -17
  43. package/dist/navbar-image-preview.d.ts +11 -17
  44. package/dist/navbar-image-preview.js +56 -12
  45. package/dist/navbar-mega-menu.cjs +69 -20
  46. package/dist/navbar-mega-menu.d.cts +8 -74
  47. package/dist/navbar-mega-menu.d.ts +8 -74
  48. package/dist/navbar-mega-menu.js +69 -20
  49. package/dist/navbar-multi-column-groups.cjs +47 -11
  50. package/dist/navbar-multi-column-groups.d.cts +6 -11
  51. package/dist/navbar-multi-column-groups.d.ts +6 -11
  52. package/dist/navbar-multi-column-groups.js +47 -11
  53. package/dist/navbar-platform-resources.cjs +199 -164
  54. package/dist/navbar-platform-resources.d.cts +7 -37
  55. package/dist/navbar-platform-resources.d.ts +7 -37
  56. package/dist/navbar-platform-resources.js +199 -164
  57. package/dist/navbar-search-focused.cjs +45 -7
  58. package/dist/navbar-search-focused.d.cts +6 -11
  59. package/dist/navbar-search-focused.d.ts +6 -11
  60. package/dist/navbar-search-focused.js +45 -7
  61. package/dist/navbar-sidebar-mobile.cjs +47 -8
  62. package/dist/navbar-sidebar-mobile.d.cts +6 -11
  63. package/dist/navbar-sidebar-mobile.d.ts +6 -11
  64. package/dist/navbar-sidebar-mobile.js +47 -8
  65. package/dist/navbar-simple-links.cjs +45 -7
  66. package/dist/navbar-simple-links.d.cts +6 -11
  67. package/dist/navbar-simple-links.d.ts +6 -11
  68. package/dist/navbar-simple-links.js +45 -7
  69. package/dist/navbar-split-cta.cjs +47 -8
  70. package/dist/navbar-split-cta.d.cts +6 -11
  71. package/dist/navbar-split-cta.d.ts +6 -11
  72. package/dist/navbar-split-cta.js +47 -8
  73. package/dist/navbar-sticky-compact.cjs +49 -10
  74. package/dist/navbar-sticky-compact.d.cts +6 -11
  75. package/dist/navbar-sticky-compact.d.ts +6 -11
  76. package/dist/navbar-sticky-compact.js +49 -10
  77. package/dist/navbar-tabbed-sections.cjs +47 -8
  78. package/dist/navbar-tabbed-sections.d.cts +6 -11
  79. package/dist/navbar-tabbed-sections.d.ts +6 -11
  80. package/dist/navbar-tabbed-sections.js +47 -8
  81. package/dist/navbar-transparent-overlay.cjs +47 -9
  82. package/dist/navbar-transparent-overlay.d.cts +6 -11
  83. package/dist/navbar-transparent-overlay.d.ts +6 -11
  84. package/dist/navbar-transparent-overlay.js +47 -9
  85. package/dist/registry.cjs +522 -328
  86. package/dist/registry.js +522 -328
  87. package/dist/types-COVDidbn.d.cts +119 -0
  88. package/dist/types-COVDidbn.d.ts +119 -0
  89. package/package.json +2 -2
@@ -1015,7 +1015,7 @@ function NavigationMenuList({
1015
1015
  {
1016
1016
  "data-slot": "navigation-menu-list",
1017
1017
  className: cn(
1018
- "group flex flex-1 list-none items-center justify-center gap-6",
1018
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
1019
1019
  className
1020
1020
  ),
1021
1021
  ...props
@@ -1055,8 +1055,9 @@ function NavigationMenuTrigger({
1055
1055
  /* @__PURE__ */ jsxRuntime.jsx(
1056
1056
  DynamicIcon,
1057
1057
  {
1058
+ size: 18,
1058
1059
  name: "lucide/chevron-down",
1059
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1060
+ className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
1060
1061
  "aria-hidden": "true"
1061
1062
  }
1062
1063
  )
@@ -1096,7 +1097,7 @@ function NavigationMenuViewport({
1096
1097
  {
1097
1098
  "data-slot": "navigation-menu-viewport",
1098
1099
  className: cn(
1099
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
1100
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
1100
1101
  className
1101
1102
  ),
1102
1103
  ...props
@@ -1114,7 +1115,7 @@ function NavigationMenuLink({
1114
1115
  {
1115
1116
  "data-slot": "navigation-menu-link",
1116
1117
  className: cn(
1117
- "data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
1118
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1118
1119
  className
1119
1120
  ),
1120
1121
  ...props
@@ -1368,6 +1369,41 @@ var imagePlaceholders = [
1368
1369
  "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
1369
1370
  "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
1370
1371
  ];
1372
+
1373
+ // components/blocks/navbars/types.ts
1374
+ function getLinkUrl(item) {
1375
+ return item.href || item.url || "#";
1376
+ }
1377
+
1378
+ // components/blocks/navbars/layout-variant-utils.ts
1379
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1380
+ const isFloatingBar = layoutVariant === "floatingBar";
1381
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1382
+ return {
1383
+ // Section wrapper classes
1384
+ sectionClasses: cn(
1385
+ "inset-x-0 z-20",
1386
+ isFloatingBar ? "sticky top-4" : "top-0",
1387
+ customClasses?.className
1388
+ ),
1389
+ // Outer container wrapper (only for floating bar)
1390
+ containerWrapperClasses: cn(
1391
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1392
+ ),
1393
+ // Inner container classes
1394
+ innerContainerClasses: cn(
1395
+ !isFloatingBar && !isFullWidthLinks && "container",
1396
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1397
+ customClasses?.containerClassName
1398
+ ),
1399
+ // Navigation wrapper classes (for border and shadow)
1400
+ navWrapperClasses: cn(
1401
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1402
+ ),
1403
+ // Spacing adjustment for Section component
1404
+ spacingOverride: isFloatingBar ? "none" : void 0
1405
+ };
1406
+ }
1371
1407
  var MOBILE_BREAKPOINT = 1280;
1372
1408
  var NavbarAnimatedPreview = ({
1373
1409
  className,
@@ -1385,6 +1421,7 @@ var NavbarAnimatedPreview = ({
1385
1421
  navigationSlot,
1386
1422
  actions,
1387
1423
  actionsSlot,
1424
+ layoutVariant = "fullScreenContainerizedLinks",
1388
1425
  background = "white",
1389
1426
  spacing = "none",
1390
1427
  pattern,
@@ -1480,68 +1517,70 @@ var NavbarAnimatedPreview = ({
1480
1517
  `desktop-link-${index}`
1481
1518
  )) });
1482
1519
  };
1483
- return /* @__PURE__ */ jsxRuntime.jsxs(
1520
+ const {
1521
+ sectionClasses,
1522
+ containerWrapperClasses,
1523
+ innerContainerClasses,
1524
+ navWrapperClasses: baseNavWrapperClasses,
1525
+ spacingOverride
1526
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1527
+ const navWrapperClasses = cn(
1528
+ "h-20 max-w-full after:absolute after:inset-0 after:z-998 after:block after:size-full after:bg-background after:content-[''] [&>div:last-child>div]:mt-0 [&>div:last-child>div]:animate-none [&>div:last-child>div]:rounded-none [&>div:last-child>div]:border-0 [&>div:last-child>div]:shadow-[0px_-1px_0px_0px_rgba(0,0,0,0.05),0px_0px_0px_1px_rgba(17,26,37,0.05),0px_2px_5px_0px_rgba(16,25,36,0.1),0px_5px_20px_0px_rgba(16,25,36,0.1)]!",
1529
+ baseNavWrapperClasses,
1530
+ navigationMenuClassName
1531
+ );
1532
+ return /* @__PURE__ */ jsxRuntime.jsx(
1484
1533
  Section,
1485
1534
  {
1486
1535
  background,
1487
- spacing,
1536
+ spacing: spacingOverride ?? spacing,
1488
1537
  className: cn(
1489
1538
  "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
1490
- className
1539
+ sectionClasses
1491
1540
  ),
1492
1541
  pattern,
1493
1542
  patternOpacity,
1494
- children: [
1495
- /* @__PURE__ */ jsxRuntime.jsx(
1496
- NavigationMenu,
1543
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: innerContainerClasses, children: [
1544
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1545
+ "div",
1497
1546
  {
1498
1547
  className: cn(
1499
- "h-20 max-w-full after:absolute after:inset-0 after:z-998 after:block after:size-full after:bg-background after:content-[''] [&>div:last-child>div]:mt-0 [&>div:last-child>div]:animate-none [&>div:last-child>div]:rounded-none [&>div:last-child>div]:border-0 [&>div:last-child>div]:shadow-[0px_-1px_0px_0px_rgba(0,0,0,0.05),0px_0px_0px_1px_rgba(17,26,37,0.05),0px_2px_5px_0px_rgba(16,25,36,0.1),0px_5px_20px_0px_rgba(16,25,36,0.1)]!",
1500
- navigationMenuClassName
1548
+ "relative z-999 grid w-full grid-cols-2 items-center justify-between gap-8 xl:grid-cols-3"
1501
1549
  ),
1502
- children: /* @__PURE__ */ jsxRuntime.jsxs(
1503
- "div",
1504
- {
1505
- className: cn(
1506
- "relative z-999 container grid w-full grid-cols-2 items-center justify-between gap-8 xl:grid-cols-3",
1507
- containerClassName
1508
- ),
1509
- children: [
1510
- renderLogo(),
1511
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("hidden xl:flex", navClassName), children: renderNavigation() }),
1512
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("justify-self-end", actionsClassName), children: [
1513
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden xl:block", children: renderActions() }),
1514
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "xl:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
1515
- Pressable,
1550
+ children: [
1551
+ renderLogo(),
1552
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("hidden xl:flex", navClassName), children: renderNavigation() }),
1553
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("justify-self-end", actionsClassName), children: [
1554
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden xl:block", children: renderActions() }),
1555
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "xl:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
1556
+ Pressable,
1557
+ {
1558
+ className: "size-11",
1559
+ variant: "ghost",
1560
+ size: "icon",
1561
+ asButton: true,
1562
+ onClick: handleMobileMenu,
1563
+ children: open ? /* @__PURE__ */ jsxRuntime.jsx(
1564
+ DynamicIcon,
1516
1565
  {
1517
- className: "size-11",
1518
- variant: "ghost",
1519
- size: "icon",
1520
- asButton: true,
1521
- onClick: handleMobileMenu,
1522
- children: open ? /* @__PURE__ */ jsxRuntime.jsx(
1523
- DynamicIcon,
1524
- {
1525
- name: "lucide/x",
1526
- size: 22,
1527
- className: "stroke-foreground"
1528
- }
1529
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1530
- DynamicIcon,
1531
- {
1532
- name: "lucide/menu",
1533
- size: 22,
1534
- className: "stroke-foreground"
1535
- }
1536
- )
1566
+ name: "lucide/x",
1567
+ size: 22,
1568
+ className: "stroke-foreground"
1537
1569
  }
1538
- ) })
1539
- ] })
1540
- ]
1541
- }
1542
- )
1570
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1571
+ DynamicIcon,
1572
+ {
1573
+ name: "lucide/menu",
1574
+ size: 22,
1575
+ className: "stroke-foreground"
1576
+ }
1577
+ )
1578
+ }
1579
+ ) })
1580
+ ] })
1581
+ ]
1543
1582
  }
1544
- ),
1583
+ ) }),
1545
1584
  /* @__PURE__ */ jsxRuntime.jsx(
1546
1585
  MobileNavigationMenu,
1547
1586
  {
@@ -1551,7 +1590,7 @@ var NavbarAnimatedPreview = ({
1551
1590
  actionsSlot
1552
1591
  }
1553
1592
  )
1554
- ]
1593
+ ] }) })
1555
1594
  }
1556
1595
  );
1557
1596
  };
@@ -1744,7 +1783,7 @@ var FeaturedImageLink = ({
1744
1783
  optixFlowConfig
1745
1784
  }) => {
1746
1785
  if (!link) return null;
1747
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden xl:block", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url, className: "w-full max-w-147.5", children: /* @__PURE__ */ jsxRuntime.jsx(
1786
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden xl:block", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url || "#", className: "w-full max-w-147.5", children: /* @__PURE__ */ jsxRuntime.jsx(
1748
1787
  AspectRatio,
1749
1788
  {
1750
1789
  ratio: 1.77245509,
@@ -1778,7 +1817,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
1778
1817
  return /* @__PURE__ */ jsxRuntime.jsxs(
1779
1818
  Pressable,
1780
1819
  {
1781
- href: link.url,
1820
+ href: getLinkUrl(link),
1782
1821
  className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-7",
1783
1822
  children: [
1784
1823
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
@@ -1814,7 +1853,7 @@ var NavLink = React.forwardRef(
1814
1853
  Pressable,
1815
1854
  {
1816
1855
  ref,
1817
- href: link.url,
1856
+ href: getLinkUrl(link),
1818
1857
  className: "flex w-full gap-2 transition-opacity duration-300",
1819
1858
  onMouseEnter,
1820
1859
  onMouseLeave,
@@ -1828,8 +1867,8 @@ var NavLink = React.forwardRef(
1828
1867
  }
1829
1868
  ) }),
1830
1869
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-2", children: [
1831
- link.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base leading-normal", children: link.label }),
1832
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm leading-normal text-muted-foreground", children: link.description })
1870
+ link.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm leading-normal", children: link.label }),
1871
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs leading-normal text-muted-foreground", children: link.description })
1833
1872
  ] })
1834
1873
  ]
1835
1874
  }
@@ -2,38 +2,14 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
4
4
  import { SectionBackground, SectionSpacing } from './types.cjs';
5
+ import { L as LogoConfig, b as ILinkItem, a as IMenuLinkGroup, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
6
7
  import 'class-variance-authority';
7
8
  import './button-variants-lRElsmTc.cjs';
8
9
  import 'class-variance-authority/types';
9
10
 
10
11
  /**
11
- * SHARED TYPE INTERFACES FOR ALL NAVBAR COMPONENTS
12
- * These types provide a consistent interface across all navbar blocks
13
- */
14
- /**
15
- * Base link item - used across all navbar components
16
- */
17
- interface ILinkItem {
18
- label: React.ReactNode;
19
- description?: React.ReactNode;
20
- url: string;
21
- icon?: React.ReactNode;
22
- iconName?: string;
23
- image?: string;
24
- background?: string;
25
- }
26
- /**
27
- * Group of links with optional metadata
28
- */
29
- interface IMenuLinkGroup {
30
- label: React.ReactNode;
31
- description?: string;
32
- image?: string;
33
- links: ILinkItem[];
34
- }
35
- /**
36
- * Featured image link with badge
12
+ * Featured image link with badge (specific to animated-preview)
37
13
  */
38
14
  interface IFeaturedImageLink {
39
15
  url: string;
@@ -42,35 +18,10 @@ interface IFeaturedImageLink {
42
18
  }
43
19
  /**
44
20
  * Layout types for animated preview dropdown menus
45
- *
46
- * LAYOUT OPTIONS FOR AI PAGE BUILDER:
47
- *
48
- * 1. "animated-image-preview"
49
- * - Visual: Grid layout with large image preview on left (360px wide), links list on right
50
- * - Behavior: Image changes on hover based on which link is being hovered
51
- * - Best for: Product showcases, feature highlights, visual content navigation
52
- * - Required data: links[] with label, description, url, image
53
- * - Example use case: Product categories where each has a hero image
54
- *
55
- * 2. "featured-cards-grid"
56
- * - Visual: 2-column grid of featured cards with background images and icons
57
- * - Behavior: Static grid, cards have hover effects
58
- * - Best for: Highlighting key features or products with visual emphasis
59
- * - Required data: featuredLinks[] with label, description, url, iconName, background
60
- * links[] for additional non-featured links
61
- * - Example use case: Premium features or flagship products
62
- *
63
- * 3. "grouped-links-image"
64
- * - Visual: Left side has grouped link sections, right side has single featured image card
65
- * - Behavior: Static layout with organized link groups
66
- * - Best for: Organized navigation with many links grouped by category
67
- * - Required data: groupLinks[] with title and links[]
68
- * imageLink with label, description, url, image, badge (optional)
69
- * - Example use case: Developer resources grouped by topic with featured documentation
70
21
  */
71
22
  type AnimatedPreviewLayout = "animated-image-preview" | "featured-cards-grid" | "grouped-links-image";
72
23
  /**
73
- * Menu link configuration with layout-based dropdown options
24
+ * Menu link configuration with layout-based dropdown options (specific to animated-preview)
74
25
  */
75
26
  interface IMenuLink {
76
27
  label: React.ReactNode;
@@ -82,16 +33,6 @@ interface IMenuLink {
82
33
  groupLinks?: IMenuLinkGroup[];
83
34
  imageLink?: IFeaturedImageLink;
84
35
  }
85
- /**
86
- * Logo configuration interface
87
- */
88
- interface LogoConfig {
89
- url?: string;
90
- src?: string;
91
- alt?: string;
92
- title?: React.ReactNode;
93
- className?: string;
94
- }
95
36
  /**
96
37
  * Props for the NavbarAnimatedPreview component
97
38
  */
@@ -160,6 +101,10 @@ interface NavbarAnimatedPreviewProps {
160
101
  * Pattern overlay opacity (0-1)
161
102
  */
162
103
  patternOpacity?: number;
104
+ /**
105
+ * Layout variant for the navbar
106
+ */
107
+ layoutVariant?: NavbarLayoutVariant;
163
108
  /**
164
109
  * OptixFlow image optimization configuration
165
110
  */
@@ -174,6 +119,6 @@ interface NavbarAnimatedPreviewProps {
174
119
  * menu spans full width with smooth fade-in animations. Mobile view uses a full-screen sheet with
175
120
  * accordion navigation. Ideal for complex SaaS products and developer platforms.
176
121
  */
177
- declare const NavbarAnimatedPreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, menuLinks, navigationSlot, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarAnimatedPreviewProps) => react_jsx_runtime.JSX.Element;
122
+ declare const NavbarAnimatedPreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, menuLinks, navigationSlot, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarAnimatedPreviewProps) => react_jsx_runtime.JSX.Element;
178
123
 
179
- export { type AnimatedPreviewLayout, type IFeaturedImageLink, type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
124
+ export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
@@ -2,38 +2,14 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.js';
4
4
  import { SectionBackground, SectionSpacing } from './types.js';
5
+ import { L as LogoConfig, b as ILinkItem, a as IMenuLinkGroup, N as NavbarLayoutVariant } from './types-COVDidbn.js';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
6
7
  import 'class-variance-authority';
7
8
  import './button-variants-lRElsmTc.js';
8
9
  import 'class-variance-authority/types';
9
10
 
10
11
  /**
11
- * SHARED TYPE INTERFACES FOR ALL NAVBAR COMPONENTS
12
- * These types provide a consistent interface across all navbar blocks
13
- */
14
- /**
15
- * Base link item - used across all navbar components
16
- */
17
- interface ILinkItem {
18
- label: React.ReactNode;
19
- description?: React.ReactNode;
20
- url: string;
21
- icon?: React.ReactNode;
22
- iconName?: string;
23
- image?: string;
24
- background?: string;
25
- }
26
- /**
27
- * Group of links with optional metadata
28
- */
29
- interface IMenuLinkGroup {
30
- label: React.ReactNode;
31
- description?: string;
32
- image?: string;
33
- links: ILinkItem[];
34
- }
35
- /**
36
- * Featured image link with badge
12
+ * Featured image link with badge (specific to animated-preview)
37
13
  */
38
14
  interface IFeaturedImageLink {
39
15
  url: string;
@@ -42,35 +18,10 @@ interface IFeaturedImageLink {
42
18
  }
43
19
  /**
44
20
  * Layout types for animated preview dropdown menus
45
- *
46
- * LAYOUT OPTIONS FOR AI PAGE BUILDER:
47
- *
48
- * 1. "animated-image-preview"
49
- * - Visual: Grid layout with large image preview on left (360px wide), links list on right
50
- * - Behavior: Image changes on hover based on which link is being hovered
51
- * - Best for: Product showcases, feature highlights, visual content navigation
52
- * - Required data: links[] with label, description, url, image
53
- * - Example use case: Product categories where each has a hero image
54
- *
55
- * 2. "featured-cards-grid"
56
- * - Visual: 2-column grid of featured cards with background images and icons
57
- * - Behavior: Static grid, cards have hover effects
58
- * - Best for: Highlighting key features or products with visual emphasis
59
- * - Required data: featuredLinks[] with label, description, url, iconName, background
60
- * links[] for additional non-featured links
61
- * - Example use case: Premium features or flagship products
62
- *
63
- * 3. "grouped-links-image"
64
- * - Visual: Left side has grouped link sections, right side has single featured image card
65
- * - Behavior: Static layout with organized link groups
66
- * - Best for: Organized navigation with many links grouped by category
67
- * - Required data: groupLinks[] with title and links[]
68
- * imageLink with label, description, url, image, badge (optional)
69
- * - Example use case: Developer resources grouped by topic with featured documentation
70
21
  */
71
22
  type AnimatedPreviewLayout = "animated-image-preview" | "featured-cards-grid" | "grouped-links-image";
72
23
  /**
73
- * Menu link configuration with layout-based dropdown options
24
+ * Menu link configuration with layout-based dropdown options (specific to animated-preview)
74
25
  */
75
26
  interface IMenuLink {
76
27
  label: React.ReactNode;
@@ -82,16 +33,6 @@ interface IMenuLink {
82
33
  groupLinks?: IMenuLinkGroup[];
83
34
  imageLink?: IFeaturedImageLink;
84
35
  }
85
- /**
86
- * Logo configuration interface
87
- */
88
- interface LogoConfig {
89
- url?: string;
90
- src?: string;
91
- alt?: string;
92
- title?: React.ReactNode;
93
- className?: string;
94
- }
95
36
  /**
96
37
  * Props for the NavbarAnimatedPreview component
97
38
  */
@@ -160,6 +101,10 @@ interface NavbarAnimatedPreviewProps {
160
101
  * Pattern overlay opacity (0-1)
161
102
  */
162
103
  patternOpacity?: number;
104
+ /**
105
+ * Layout variant for the navbar
106
+ */
107
+ layoutVariant?: NavbarLayoutVariant;
163
108
  /**
164
109
  * OptixFlow image optimization configuration
165
110
  */
@@ -174,6 +119,6 @@ interface NavbarAnimatedPreviewProps {
174
119
  * menu spans full width with smooth fade-in animations. Mobile view uses a full-screen sheet with
175
120
  * accordion navigation. Ideal for complex SaaS products and developer platforms.
176
121
  */
177
- declare const NavbarAnimatedPreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, menuLinks, navigationSlot, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarAnimatedPreviewProps) => react_jsx_runtime.JSX.Element;
122
+ declare const NavbarAnimatedPreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, menuLinks, navigationSlot, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarAnimatedPreviewProps) => react_jsx_runtime.JSX.Element;
178
123
 
179
- export { type AnimatedPreviewLayout, type IFeaturedImageLink, type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
124
+ export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };