@opensite/ui 0.4.5 → 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 +87 -53
- package/dist/navbar-animated-preview.d.cts +6 -2
- package/dist/navbar-animated-preview.d.ts +6 -2
- package/dist/navbar-animated-preview.js +87 -53
- package/dist/navbar-centered-menu.cjs +89 -59
- package/dist/navbar-centered-menu.d.cts +6 -2
- package/dist/navbar-centered-menu.d.ts +6 -2
- package/dist/navbar-centered-menu.js +89 -59
- package/dist/navbar-dark-icons.cjs +50 -10
- package/dist/navbar-dark-icons.d.cts +6 -2
- package/dist/navbar-dark-icons.d.ts +6 -2
- package/dist/navbar-dark-icons.js +50 -10
- package/dist/navbar-dropdown-menu.cjs +89 -59
- package/dist/navbar-dropdown-menu.d.cts +6 -2
- package/dist/navbar-dropdown-menu.d.ts +6 -2
- package/dist/navbar-dropdown-menu.js +89 -59
- package/dist/navbar-education-platform.cjs +48 -10
- package/dist/navbar-education-platform.d.cts +6 -2
- package/dist/navbar-education-platform.d.ts +6 -2
- package/dist/navbar-education-platform.js +48 -10
- package/dist/navbar-enterprise-mega.cjs +50 -10
- package/dist/navbar-enterprise-mega.d.cts +6 -2
- package/dist/navbar-enterprise-mega.d.ts +6 -2
- package/dist/navbar-enterprise-mega.js +50 -10
- package/dist/navbar-feature-grid.cjs +47 -8
- package/dist/navbar-feature-grid.d.cts +6 -2
- package/dist/navbar-feature-grid.d.ts +6 -2
- package/dist/navbar-feature-grid.js +47 -8
- package/dist/navbar-floating-pill.cjs +50 -11
- package/dist/navbar-floating-pill.d.cts +6 -2
- package/dist/navbar-floating-pill.d.ts +6 -2
- package/dist/navbar-floating-pill.js +50 -11
- package/dist/navbar-fullscreen-menu.cjs +44 -5
- package/dist/navbar-fullscreen-menu.d.cts +6 -2
- package/dist/navbar-fullscreen-menu.d.ts +6 -2
- package/dist/navbar-fullscreen-menu.js +44 -5
- package/dist/navbar-icon-links.cjs +46 -8
- package/dist/navbar-icon-links.d.cts +6 -2
- package/dist/navbar-icon-links.d.ts +6 -2
- package/dist/navbar-icon-links.js +46 -8
- package/dist/navbar-image-preview.cjs +47 -8
- package/dist/navbar-image-preview.d.cts +6 -2
- package/dist/navbar-image-preview.d.ts +6 -2
- package/dist/navbar-image-preview.js +47 -8
- package/dist/navbar-mega-menu.cjs +56 -12
- package/dist/navbar-mega-menu.d.cts +7 -3
- package/dist/navbar-mega-menu.d.ts +7 -3
- package/dist/navbar-mega-menu.js +56 -12
- package/dist/navbar-multi-column-groups.cjs +47 -11
- package/dist/navbar-multi-column-groups.d.cts +6 -2
- package/dist/navbar-multi-column-groups.d.ts +6 -2
- package/dist/navbar-multi-column-groups.js +47 -11
- package/dist/navbar-platform-resources.cjs +184 -154
- package/dist/navbar-platform-resources.d.cts +6 -2
- package/dist/navbar-platform-resources.d.ts +6 -2
- package/dist/navbar-platform-resources.js +184 -154
- package/dist/navbar-search-focused.cjs +45 -7
- package/dist/navbar-search-focused.d.cts +6 -2
- package/dist/navbar-search-focused.d.ts +6 -2
- package/dist/navbar-search-focused.js +45 -7
- package/dist/navbar-sidebar-mobile.cjs +47 -8
- package/dist/navbar-sidebar-mobile.d.cts +6 -2
- package/dist/navbar-sidebar-mobile.d.ts +6 -2
- package/dist/navbar-sidebar-mobile.js +47 -8
- package/dist/navbar-simple-links.cjs +88 -59
- package/dist/navbar-simple-links.d.cts +6 -2
- package/dist/navbar-simple-links.d.ts +6 -2
- package/dist/navbar-simple-links.js +88 -59
- package/dist/navbar-split-cta.cjs +47 -8
- package/dist/navbar-split-cta.d.cts +6 -2
- package/dist/navbar-split-cta.d.ts +6 -2
- package/dist/navbar-split-cta.js +47 -8
- package/dist/navbar-sticky-compact.cjs +49 -10
- package/dist/navbar-sticky-compact.d.cts +6 -2
- package/dist/navbar-sticky-compact.d.ts +6 -2
- package/dist/navbar-sticky-compact.js +49 -10
- package/dist/navbar-tabbed-sections.cjs +47 -8
- package/dist/navbar-tabbed-sections.d.cts +6 -2
- package/dist/navbar-tabbed-sections.d.ts +6 -2
- package/dist/navbar-tabbed-sections.js +47 -8
- package/dist/navbar-transparent-overlay.cjs +47 -9
- package/dist/navbar-transparent-overlay.d.cts +6 -2
- package/dist/navbar-transparent-overlay.d.ts +6 -2
- package/dist/navbar-transparent-overlay.js +47 -9
- package/dist/registry.cjs +625 -463
- package/dist/registry.js +625 -463
- package/dist/{types-D2b35ylu.d.cts → types-COVDidbn.d.cts} +22 -1
- package/dist/{types-D2b35ylu.d.ts → types-COVDidbn.d.ts} +22 -1
- 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
|
|
@@ -1373,6 +1374,36 @@ var imagePlaceholders = [
|
|
|
1373
1374
|
function getLinkUrl(item) {
|
|
1374
1375
|
return item.href || item.url || "#";
|
|
1375
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
|
+
}
|
|
1376
1407
|
var MOBILE_BREAKPOINT = 1280;
|
|
1377
1408
|
var NavbarAnimatedPreview = ({
|
|
1378
1409
|
className,
|
|
@@ -1390,6 +1421,7 @@ var NavbarAnimatedPreview = ({
|
|
|
1390
1421
|
navigationSlot,
|
|
1391
1422
|
actions,
|
|
1392
1423
|
actionsSlot,
|
|
1424
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1393
1425
|
background = "white",
|
|
1394
1426
|
spacing = "none",
|
|
1395
1427
|
pattern,
|
|
@@ -1485,68 +1517,70 @@ var NavbarAnimatedPreview = ({
|
|
|
1485
1517
|
`desktop-link-${index}`
|
|
1486
1518
|
)) });
|
|
1487
1519
|
};
|
|
1488
|
-
|
|
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(
|
|
1489
1533
|
Section,
|
|
1490
1534
|
{
|
|
1491
1535
|
background,
|
|
1492
|
-
spacing,
|
|
1536
|
+
spacing: spacingOverride ?? spacing,
|
|
1493
1537
|
className: cn(
|
|
1494
1538
|
"pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
|
|
1495
|
-
|
|
1539
|
+
sectionClasses
|
|
1496
1540
|
),
|
|
1497
1541
|
pattern,
|
|
1498
1542
|
patternOpacity,
|
|
1499
|
-
children: [
|
|
1500
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1501
|
-
|
|
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",
|
|
1502
1546
|
{
|
|
1503
1547
|
className: cn(
|
|
1504
|
-
"
|
|
1505
|
-
navigationMenuClassName
|
|
1548
|
+
"relative z-999 grid w-full grid-cols-2 items-center justify-between gap-8 xl:grid-cols-3"
|
|
1506
1549
|
),
|
|
1507
|
-
children:
|
|
1508
|
-
|
|
1509
|
-
{
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
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,
|
|
1521
1565
|
{
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
asButton: true,
|
|
1526
|
-
onClick: handleMobileMenu,
|
|
1527
|
-
children: open ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1528
|
-
DynamicIcon,
|
|
1529
|
-
{
|
|
1530
|
-
name: "lucide/x",
|
|
1531
|
-
size: 22,
|
|
1532
|
-
className: "stroke-foreground"
|
|
1533
|
-
}
|
|
1534
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1535
|
-
DynamicIcon,
|
|
1536
|
-
{
|
|
1537
|
-
name: "lucide/menu",
|
|
1538
|
-
size: 22,
|
|
1539
|
-
className: "stroke-foreground"
|
|
1540
|
-
}
|
|
1541
|
-
)
|
|
1566
|
+
name: "lucide/x",
|
|
1567
|
+
size: 22,
|
|
1568
|
+
className: "stroke-foreground"
|
|
1542
1569
|
}
|
|
1543
|
-
)
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1570
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1571
|
+
DynamicIcon,
|
|
1572
|
+
{
|
|
1573
|
+
name: "lucide/menu",
|
|
1574
|
+
size: 22,
|
|
1575
|
+
className: "stroke-foreground"
|
|
1576
|
+
}
|
|
1577
|
+
)
|
|
1578
|
+
}
|
|
1579
|
+
) })
|
|
1580
|
+
] })
|
|
1581
|
+
]
|
|
1548
1582
|
}
|
|
1549
|
-
),
|
|
1583
|
+
) }),
|
|
1550
1584
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1551
1585
|
MobileNavigationMenu,
|
|
1552
1586
|
{
|
|
@@ -1556,7 +1590,7 @@ var NavbarAnimatedPreview = ({
|
|
|
1556
1590
|
actionsSlot
|
|
1557
1591
|
}
|
|
1558
1592
|
)
|
|
1559
|
-
]
|
|
1593
|
+
] }) })
|
|
1560
1594
|
}
|
|
1561
1595
|
);
|
|
1562
1596
|
};
|
|
@@ -2,7 +2,7 @@ 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 } from './types-
|
|
5
|
+
import { L as LogoConfig, b as ILinkItem, a as IMenuLinkGroup, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
|
|
6
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
|
|
7
7
|
import 'class-variance-authority';
|
|
8
8
|
import './button-variants-lRElsmTc.cjs';
|
|
@@ -101,6 +101,10 @@ interface NavbarAnimatedPreviewProps {
|
|
|
101
101
|
* Pattern overlay opacity (0-1)
|
|
102
102
|
*/
|
|
103
103
|
patternOpacity?: number;
|
|
104
|
+
/**
|
|
105
|
+
* Layout variant for the navbar
|
|
106
|
+
*/
|
|
107
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
104
108
|
/**
|
|
105
109
|
* OptixFlow image optimization configuration
|
|
106
110
|
*/
|
|
@@ -115,6 +119,6 @@ interface NavbarAnimatedPreviewProps {
|
|
|
115
119
|
* menu spans full width with smooth fade-in animations. Mobile view uses a full-screen sheet with
|
|
116
120
|
* accordion navigation. Ideal for complex SaaS products and developer platforms.
|
|
117
121
|
*/
|
|
118
|
-
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;
|
|
119
123
|
|
|
120
124
|
export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
|
|
@@ -2,7 +2,7 @@ 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 } from './types-
|
|
5
|
+
import { L as LogoConfig, b as ILinkItem, a as IMenuLinkGroup, N as NavbarLayoutVariant } from './types-COVDidbn.js';
|
|
6
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
|
|
7
7
|
import 'class-variance-authority';
|
|
8
8
|
import './button-variants-lRElsmTc.js';
|
|
@@ -101,6 +101,10 @@ interface NavbarAnimatedPreviewProps {
|
|
|
101
101
|
* Pattern overlay opacity (0-1)
|
|
102
102
|
*/
|
|
103
103
|
patternOpacity?: number;
|
|
104
|
+
/**
|
|
105
|
+
* Layout variant for the navbar
|
|
106
|
+
*/
|
|
107
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
104
108
|
/**
|
|
105
109
|
* OptixFlow image optimization configuration
|
|
106
110
|
*/
|
|
@@ -115,6 +119,6 @@ interface NavbarAnimatedPreviewProps {
|
|
|
115
119
|
* menu spans full width with smooth fade-in animations. Mobile view uses a full-screen sheet with
|
|
116
120
|
* accordion navigation. Ideal for complex SaaS products and developer platforms.
|
|
117
121
|
*/
|
|
118
|
-
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;
|
|
119
123
|
|
|
120
124
|
export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
|
|
@@ -989,7 +989,7 @@ function NavigationMenuList({
|
|
|
989
989
|
{
|
|
990
990
|
"data-slot": "navigation-menu-list",
|
|
991
991
|
className: cn(
|
|
992
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
992
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
993
993
|
className
|
|
994
994
|
),
|
|
995
995
|
...props
|
|
@@ -1029,8 +1029,9 @@ function NavigationMenuTrigger({
|
|
|
1029
1029
|
/* @__PURE__ */ jsx(
|
|
1030
1030
|
DynamicIcon,
|
|
1031
1031
|
{
|
|
1032
|
+
size: 18,
|
|
1032
1033
|
name: "lucide/chevron-down",
|
|
1033
|
-
className: "relative top-
|
|
1034
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
1034
1035
|
"aria-hidden": "true"
|
|
1035
1036
|
}
|
|
1036
1037
|
)
|
|
@@ -1070,7 +1071,7 @@ function NavigationMenuViewport({
|
|
|
1070
1071
|
{
|
|
1071
1072
|
"data-slot": "navigation-menu-viewport",
|
|
1072
1073
|
className: cn(
|
|
1073
|
-
"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-
|
|
1074
|
+
"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)",
|
|
1074
1075
|
className
|
|
1075
1076
|
),
|
|
1076
1077
|
...props
|
|
@@ -1088,7 +1089,7 @@ function NavigationMenuLink({
|
|
|
1088
1089
|
{
|
|
1089
1090
|
"data-slot": "navigation-menu-link",
|
|
1090
1091
|
className: cn(
|
|
1091
|
-
"
|
|
1092
|
+
"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",
|
|
1092
1093
|
className
|
|
1093
1094
|
),
|
|
1094
1095
|
...props
|
|
@@ -1347,6 +1348,36 @@ var imagePlaceholders = [
|
|
|
1347
1348
|
function getLinkUrl(item) {
|
|
1348
1349
|
return item.href || item.url || "#";
|
|
1349
1350
|
}
|
|
1351
|
+
|
|
1352
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1353
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1354
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1355
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1356
|
+
return {
|
|
1357
|
+
// Section wrapper classes
|
|
1358
|
+
sectionClasses: cn(
|
|
1359
|
+
"inset-x-0 z-20",
|
|
1360
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1361
|
+
customClasses?.className
|
|
1362
|
+
),
|
|
1363
|
+
// Outer container wrapper (only for floating bar)
|
|
1364
|
+
containerWrapperClasses: cn(
|
|
1365
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1366
|
+
),
|
|
1367
|
+
// Inner container classes
|
|
1368
|
+
innerContainerClasses: cn(
|
|
1369
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1370
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1371
|
+
customClasses?.containerClassName
|
|
1372
|
+
),
|
|
1373
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1374
|
+
navWrapperClasses: cn(
|
|
1375
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1376
|
+
),
|
|
1377
|
+
// Spacing adjustment for Section component
|
|
1378
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1379
|
+
};
|
|
1380
|
+
}
|
|
1350
1381
|
var MOBILE_BREAKPOINT = 1280;
|
|
1351
1382
|
var NavbarAnimatedPreview = ({
|
|
1352
1383
|
className,
|
|
@@ -1364,6 +1395,7 @@ var NavbarAnimatedPreview = ({
|
|
|
1364
1395
|
navigationSlot,
|
|
1365
1396
|
actions,
|
|
1366
1397
|
actionsSlot,
|
|
1398
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1367
1399
|
background = "white",
|
|
1368
1400
|
spacing = "none",
|
|
1369
1401
|
pattern,
|
|
@@ -1459,68 +1491,70 @@ var NavbarAnimatedPreview = ({
|
|
|
1459
1491
|
`desktop-link-${index}`
|
|
1460
1492
|
)) });
|
|
1461
1493
|
};
|
|
1462
|
-
|
|
1494
|
+
const {
|
|
1495
|
+
sectionClasses,
|
|
1496
|
+
containerWrapperClasses,
|
|
1497
|
+
innerContainerClasses,
|
|
1498
|
+
navWrapperClasses: baseNavWrapperClasses,
|
|
1499
|
+
spacingOverride
|
|
1500
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1501
|
+
const navWrapperClasses = cn(
|
|
1502
|
+
"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)]!",
|
|
1503
|
+
baseNavWrapperClasses,
|
|
1504
|
+
navigationMenuClassName
|
|
1505
|
+
);
|
|
1506
|
+
return /* @__PURE__ */ jsx(
|
|
1463
1507
|
Section,
|
|
1464
1508
|
{
|
|
1465
1509
|
background,
|
|
1466
|
-
spacing,
|
|
1510
|
+
spacing: spacingOverride ?? spacing,
|
|
1467
1511
|
className: cn(
|
|
1468
1512
|
"pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
|
|
1469
|
-
|
|
1513
|
+
sectionClasses
|
|
1470
1514
|
),
|
|
1471
1515
|
pattern,
|
|
1472
1516
|
patternOpacity,
|
|
1473
|
-
children: [
|
|
1474
|
-
/* @__PURE__ */ jsx(
|
|
1475
|
-
|
|
1517
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxs("div", { className: innerContainerClasses, children: [
|
|
1518
|
+
/* @__PURE__ */ jsx(NavigationMenu, { className: navWrapperClasses, children: /* @__PURE__ */ jsxs(
|
|
1519
|
+
"div",
|
|
1476
1520
|
{
|
|
1477
1521
|
className: cn(
|
|
1478
|
-
"
|
|
1479
|
-
navigationMenuClassName
|
|
1522
|
+
"relative z-999 grid w-full grid-cols-2 items-center justify-between gap-8 xl:grid-cols-3"
|
|
1480
1523
|
),
|
|
1481
|
-
children:
|
|
1482
|
-
|
|
1483
|
-
{
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1524
|
+
children: [
|
|
1525
|
+
renderLogo(),
|
|
1526
|
+
/* @__PURE__ */ jsx("div", { className: cn("hidden xl:flex", navClassName), children: renderNavigation() }),
|
|
1527
|
+
/* @__PURE__ */ jsxs("div", { className: cn("justify-self-end", actionsClassName), children: [
|
|
1528
|
+
/* @__PURE__ */ jsx("div", { className: "hidden xl:block", children: renderActions() }),
|
|
1529
|
+
/* @__PURE__ */ jsx("div", { className: "xl:hidden", children: /* @__PURE__ */ jsx(
|
|
1530
|
+
Pressable,
|
|
1531
|
+
{
|
|
1532
|
+
className: "size-11",
|
|
1533
|
+
variant: "ghost",
|
|
1534
|
+
size: "icon",
|
|
1535
|
+
asButton: true,
|
|
1536
|
+
onClick: handleMobileMenu,
|
|
1537
|
+
children: open ? /* @__PURE__ */ jsx(
|
|
1538
|
+
DynamicIcon,
|
|
1495
1539
|
{
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
asButton: true,
|
|
1500
|
-
onClick: handleMobileMenu,
|
|
1501
|
-
children: open ? /* @__PURE__ */ jsx(
|
|
1502
|
-
DynamicIcon,
|
|
1503
|
-
{
|
|
1504
|
-
name: "lucide/x",
|
|
1505
|
-
size: 22,
|
|
1506
|
-
className: "stroke-foreground"
|
|
1507
|
-
}
|
|
1508
|
-
) : /* @__PURE__ */ jsx(
|
|
1509
|
-
DynamicIcon,
|
|
1510
|
-
{
|
|
1511
|
-
name: "lucide/menu",
|
|
1512
|
-
size: 22,
|
|
1513
|
-
className: "stroke-foreground"
|
|
1514
|
-
}
|
|
1515
|
-
)
|
|
1540
|
+
name: "lucide/x",
|
|
1541
|
+
size: 22,
|
|
1542
|
+
className: "stroke-foreground"
|
|
1516
1543
|
}
|
|
1517
|
-
)
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1544
|
+
) : /* @__PURE__ */ jsx(
|
|
1545
|
+
DynamicIcon,
|
|
1546
|
+
{
|
|
1547
|
+
name: "lucide/menu",
|
|
1548
|
+
size: 22,
|
|
1549
|
+
className: "stroke-foreground"
|
|
1550
|
+
}
|
|
1551
|
+
)
|
|
1552
|
+
}
|
|
1553
|
+
) })
|
|
1554
|
+
] })
|
|
1555
|
+
]
|
|
1522
1556
|
}
|
|
1523
|
-
),
|
|
1557
|
+
) }),
|
|
1524
1558
|
/* @__PURE__ */ jsx(
|
|
1525
1559
|
MobileNavigationMenu,
|
|
1526
1560
|
{
|
|
@@ -1530,7 +1564,7 @@ var NavbarAnimatedPreview = ({
|
|
|
1530
1564
|
actionsSlot
|
|
1531
1565
|
}
|
|
1532
1566
|
)
|
|
1533
|
-
]
|
|
1567
|
+
] }) })
|
|
1534
1568
|
}
|
|
1535
1569
|
);
|
|
1536
1570
|
};
|