@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.
- package/dist/navbar-animated-preview.cjs +97 -58
- package/dist/navbar-animated-preview.d.cts +9 -64
- package/dist/navbar-animated-preview.d.ts +9 -64
- package/dist/navbar-animated-preview.js +97 -58
- package/dist/navbar-centered-menu.cjs +46 -7
- package/dist/navbar-centered-menu.d.cts +7 -11
- package/dist/navbar-centered-menu.d.ts +7 -11
- package/dist/navbar-centered-menu.js +46 -7
- package/dist/navbar-dark-icons.cjs +50 -10
- package/dist/navbar-dark-icons.d.cts +6 -11
- package/dist/navbar-dark-icons.d.ts +6 -11
- package/dist/navbar-dark-icons.js +50 -10
- package/dist/navbar-dropdown-menu.cjs +47 -8
- package/dist/navbar-dropdown-menu.d.cts +8 -12
- package/dist/navbar-dropdown-menu.d.ts +8 -12
- package/dist/navbar-dropdown-menu.js +47 -8
- package/dist/navbar-education-platform.cjs +48 -10
- package/dist/navbar-education-platform.d.cts +6 -11
- package/dist/navbar-education-platform.d.ts +6 -11
- package/dist/navbar-education-platform.js +48 -10
- package/dist/navbar-enterprise-mega.cjs +50 -10
- package/dist/navbar-enterprise-mega.d.cts +7 -37
- package/dist/navbar-enterprise-mega.d.ts +7 -37
- package/dist/navbar-enterprise-mega.js +50 -10
- package/dist/navbar-feature-grid.cjs +47 -8
- package/dist/navbar-feature-grid.d.cts +6 -11
- package/dist/navbar-feature-grid.d.ts +6 -11
- package/dist/navbar-feature-grid.js +47 -8
- package/dist/navbar-floating-pill.cjs +50 -11
- package/dist/navbar-floating-pill.d.cts +6 -11
- package/dist/navbar-floating-pill.d.ts +6 -11
- package/dist/navbar-floating-pill.js +50 -11
- package/dist/navbar-fullscreen-menu.cjs +44 -5
- package/dist/navbar-fullscreen-menu.d.cts +6 -11
- package/dist/navbar-fullscreen-menu.d.ts +6 -11
- package/dist/navbar-fullscreen-menu.js +44 -5
- package/dist/navbar-icon-links.cjs +46 -8
- package/dist/navbar-icon-links.d.cts +9 -11
- package/dist/navbar-icon-links.d.ts +9 -11
- package/dist/navbar-icon-links.js +46 -8
- package/dist/navbar-image-preview.cjs +56 -12
- package/dist/navbar-image-preview.d.cts +11 -17
- package/dist/navbar-image-preview.d.ts +11 -17
- package/dist/navbar-image-preview.js +56 -12
- package/dist/navbar-mega-menu.cjs +69 -20
- package/dist/navbar-mega-menu.d.cts +8 -74
- package/dist/navbar-mega-menu.d.ts +8 -74
- package/dist/navbar-mega-menu.js +69 -20
- package/dist/navbar-multi-column-groups.cjs +47 -11
- package/dist/navbar-multi-column-groups.d.cts +6 -11
- package/dist/navbar-multi-column-groups.d.ts +6 -11
- package/dist/navbar-multi-column-groups.js +47 -11
- package/dist/navbar-platform-resources.cjs +199 -164
- package/dist/navbar-platform-resources.d.cts +7 -37
- package/dist/navbar-platform-resources.d.ts +7 -37
- package/dist/navbar-platform-resources.js +199 -164
- package/dist/navbar-search-focused.cjs +45 -7
- package/dist/navbar-search-focused.d.cts +6 -11
- package/dist/navbar-search-focused.d.ts +6 -11
- package/dist/navbar-search-focused.js +45 -7
- package/dist/navbar-sidebar-mobile.cjs +47 -8
- package/dist/navbar-sidebar-mobile.d.cts +6 -11
- package/dist/navbar-sidebar-mobile.d.ts +6 -11
- package/dist/navbar-sidebar-mobile.js +47 -8
- package/dist/navbar-simple-links.cjs +45 -7
- package/dist/navbar-simple-links.d.cts +6 -11
- package/dist/navbar-simple-links.d.ts +6 -11
- package/dist/navbar-simple-links.js +45 -7
- package/dist/navbar-split-cta.cjs +47 -8
- package/dist/navbar-split-cta.d.cts +6 -11
- package/dist/navbar-split-cta.d.ts +6 -11
- package/dist/navbar-split-cta.js +47 -8
- package/dist/navbar-sticky-compact.cjs +49 -10
- package/dist/navbar-sticky-compact.d.cts +6 -11
- package/dist/navbar-sticky-compact.d.ts +6 -11
- package/dist/navbar-sticky-compact.js +49 -10
- package/dist/navbar-tabbed-sections.cjs +47 -8
- package/dist/navbar-tabbed-sections.d.cts +6 -11
- package/dist/navbar-tabbed-sections.d.ts +6 -11
- package/dist/navbar-tabbed-sections.js +47 -8
- package/dist/navbar-transparent-overlay.cjs +47 -9
- package/dist/navbar-transparent-overlay.d.cts +6 -11
- package/dist/navbar-transparent-overlay.d.ts +6 -11
- package/dist/navbar-transparent-overlay.js +47 -9
- package/dist/registry.cjs +522 -328
- package/dist/registry.js +522 -328
- package/dist/types-COVDidbn.d.cts +119 -0
- package/dist/types-COVDidbn.d.ts +119 -0
- 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-
|
|
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-
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
1539
|
+
sectionClasses
|
|
1491
1540
|
),
|
|
1492
1541
|
pattern,
|
|
1493
1542
|
patternOpacity,
|
|
1494
|
-
children: [
|
|
1495
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1496
|
-
|
|
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
|
-
"
|
|
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:
|
|
1503
|
-
|
|
1504
|
-
{
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
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
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
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
|
|
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
|
|
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-
|
|
1832
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-
|
|
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
|
-
*
|
|
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,
|
|
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
|
-
*
|
|
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,
|
|
124
|
+
export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
|