@opensite/ui 1.0.1 → 1.0.2

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/registry.cjs CHANGED
@@ -58221,255 +58221,12 @@ var NavbarMegaMenu = ({
58221
58221
  }
58222
58222
  );
58223
58223
  };
58224
- var MOBILE_BREAKPOINT = 1024;
58225
- var NavbarEnterpriseMega = ({
58226
- className,
58227
- containerClassName,
58228
- navClassName,
58229
- navigationMenuClassName,
58230
- actionsClassName,
58231
- logoClassName,
58232
- logo = {
58233
- url: "/",
58234
- src: logoPlaceholders.logoMark
58235
- },
58236
- logoSlot,
58237
- menuLinks,
58238
- actions,
58239
- actionsSlot,
58240
- layoutVariant = "fullScreenContainerizedLinks",
58241
- background,
58242
- spacing,
58243
- pattern,
58244
- patternOpacity,
58245
- optixFlowConfig
58246
- }) => {
58247
- const [open, setOpen] = React52.useState(false);
58248
- React52.useEffect(() => {
58249
- const handleResize = () => {
58250
- if (window.innerWidth > MOBILE_BREAKPOINT) {
58251
- setOpen(false);
58252
- }
58253
- };
58254
- handleResize();
58255
- window.addEventListener("resize", handleResize);
58256
- return () => window.removeEventListener("resize", handleResize);
58257
- }, []);
58258
- React52.useEffect(() => {
58259
- document.body.style.overflow = open ? "hidden" : "auto";
58260
- }, [open]);
58261
- const handleMobileMenu = () => {
58262
- setOpen(!open);
58263
- };
58264
- const renderActions = React52.useMemo(() => {
58265
- if (actionsSlot) return actionsSlot;
58266
- if (!actions || actions.length === 0) return null;
58267
- return actions.map((action, index) => {
58268
- const {
58269
- label,
58270
- icon,
58271
- iconAfter,
58272
- children,
58273
- className: actionClassName,
58274
- ...pressableProps
58275
- } = action;
58276
- return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
58277
- icon,
58278
- label,
58279
- iconAfter
58280
- ] }) }, index);
58281
- });
58282
- }, [actionsSlot, actions]);
58283
- const {
58284
- sectionClasses,
58285
- containerWrapperClasses,
58286
- innerContainerClasses,
58287
- navWrapperClasses,
58288
- sectionContainerClassName,
58289
- sectionContainerMaxWidth,
58290
- spacingOverride
58291
- } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
58292
- return /* @__PURE__ */ jsxRuntime.jsxs(React52.Fragment, { children: [
58293
- /* @__PURE__ */ jsxRuntime.jsx(
58294
- Section,
58295
- {
58296
- background,
58297
- spacing: spacingOverride ?? spacing,
58298
- className: cn(
58299
- "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
58300
- sectionClasses
58301
- ),
58302
- pattern,
58303
- patternOpacity,
58304
- containerClassName: sectionContainerClassName,
58305
- containerMaxWidth: sectionContainerMaxWidth,
58306
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
58307
- "nav",
58308
- {
58309
- className: cn(
58310
- "flex h-16 items-center justify-between gap-8",
58311
- navClassName
58312
- ),
58313
- children: [
58314
- /* @__PURE__ */ jsxRuntime.jsx(
58315
- NavbarLogo,
58316
- {
58317
- logo,
58318
- logoSlot,
58319
- logoClassName,
58320
- optixFlowConfig
58321
- }
58322
- ),
58323
- /* @__PURE__ */ jsxRuntime.jsx(
58324
- NavigationMenu,
58325
- {
58326
- className: cn(
58327
- "hidden lg:flex [&>div:last-child]:left-1/2 [&>div:last-child]:-translate-x-1/2",
58328
- navigationMenuClassName
58329
- ),
58330
- viewport: true,
58331
- children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuLinks?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
58332
- DesktopMenuItem2,
58333
- {
58334
- item,
58335
- index,
58336
- optixFlowConfig
58337
- },
58338
- `desktop-link-${index}`
58339
- )) })
58340
- }
58341
- ),
58342
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", actionsClassName), children: [
58343
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden lg:flex lg:items-center lg:gap-3", children: renderActions }),
58344
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
58345
- Pressable,
58346
- {
58347
- className: "size-11",
58348
- variant: "ghost",
58349
- size: "icon",
58350
- asButton: true,
58351
- onClick: handleMobileMenu,
58352
- children: open ? /* @__PURE__ */ jsxRuntime.jsx(
58353
- DynamicIcon,
58354
- {
58355
- name: "lucide/x",
58356
- size: 22,
58357
- className: "stroke-foreground"
58358
- }
58359
- ) : /* @__PURE__ */ jsxRuntime.jsx(
58360
- DynamicIcon,
58361
- {
58362
- name: "lucide/menu",
58363
- size: 22,
58364
- className: "stroke-foreground"
58365
- }
58366
- )
58367
- }
58368
- ) })
58369
- ] })
58370
- ]
58371
- }
58372
- ) }) }) })
58373
- }
58374
- ),
58375
- /* @__PURE__ */ jsxRuntime.jsx(
58376
- MobileNavigationMenu,
58377
- {
58378
- open,
58379
- setOpen,
58380
- menuLinks: menuLinks ?? [],
58381
- actionsClassName,
58382
- actions,
58383
- actionsSlot,
58384
- optixFlowConfig
58385
- }
58386
- )
58387
- ] });
58388
- };
58389
- var DesktopMenuItem2 = ({
58390
- item,
58391
- index,
58392
- optixFlowConfig
58393
- }) => {
58394
- const hasDropdown = Boolean(item.layout);
58395
- const effectiveLayout = item.layout || "solutions-with-platform";
58396
- if (hasDropdown) {
58397
- return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
58398
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
58399
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "!rounded-xl !border-0 !p-6", children: renderDropdownContent(
58400
- { ...item, layout: effectiveLayout },
58401
- optixFlowConfig
58402
- ) })
58403
- ] }, `desktop-menu-item-${index}`);
58404
- }
58405
- return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
58406
- NavigationMenuLink,
58407
- {
58408
- href: item.href,
58409
- className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted",
58410
- children: item.label
58411
- }
58412
- ) }, `desktop-menu-item-${index}`);
58413
- };
58414
- var renderDropdownContent = (item, optixFlowConfig) => {
58415
- switch (item.layout) {
58416
- case "solutions-with-platform":
58417
- return /* @__PURE__ */ jsxRuntime.jsx(
58418
- SolutionsMenu,
58419
- {
58420
- solutionCards: item.solutionCards ?? [],
58421
- platformItems: item.platformItems ?? [],
58422
- featuredHeroCard: item.featuredHeroCard,
58423
- optixFlowConfig
58424
- }
58425
- );
58426
- case "products-categorized":
58427
- return /* @__PURE__ */ jsxRuntime.jsx(
58428
- ProductsMenu,
58429
- {
58430
- productCategories: item.productCategories ?? [],
58431
- featuredHeroCard: item.featuredHeroCard,
58432
- optixFlowConfig
58433
- }
58434
- );
58435
- case "features-with-locations":
58436
- return /* @__PURE__ */ jsxRuntime.jsx(
58437
- GlobalMenu,
58438
- {
58439
- featureCategories: item.featureCategories ?? [],
58440
- regions: item.regions ?? [],
58441
- featuredHeroCard: item.featuredHeroCard,
58442
- optixFlowConfig
58443
- }
58444
- );
58445
- case "partners-promotional":
58446
- return /* @__PURE__ */ jsxRuntime.jsx(
58447
- PartnersMenu,
58448
- {
58449
- partnerCards: item.partnerCards ?? [],
58450
- featuredHeroCard: item.featuredHeroCard,
58451
- optixFlowConfig
58452
- }
58453
- );
58454
- case "resources-with-topics":
58455
- return /* @__PURE__ */ jsxRuntime.jsx(
58456
- ResourcesMenu,
58457
- {
58458
- resourceItems: item.resourceItems ?? [],
58459
- topicGroups: item.topicGroups ?? [],
58460
- featuredHeroCard: item.featuredHeroCard
58461
- }
58462
- );
58463
- default:
58464
- return null;
58465
- }
58466
- };
58467
58224
  var SolutionsMenu = ({
58468
58225
  solutionCards,
58469
58226
  platformItems,
58470
58227
  featuredHeroCard,
58471
58228
  optixFlowConfig
58472
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-[1100px] grid-cols-2 gap-4", children: [
58229
+ }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] grid-cols-2 gap-4", children: [
58473
58230
  featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58474
58231
  Pressable,
58475
58232
  {
@@ -58570,7 +58327,7 @@ var ProductsMenu = ({
58570
58327
  productCategories,
58571
58328
  featuredHeroCard,
58572
58329
  optixFlowConfig
58573
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-[1000px] grid-cols-[320px_1fr] gap-6", children: [
58330
+ }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[320px_1fr] gap-6", children: [
58574
58331
  featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58575
58332
  Pressable,
58576
58333
  {
@@ -58633,20 +58390,100 @@ var ProductsMenu = ({
58633
58390
  )) })
58634
58391
  ] }, category.title)) })
58635
58392
  ] });
58636
- var GlobalMenu = ({
58637
- featureCategories,
58638
- regions,
58639
- featuredHeroCard,
58640
- optixFlowConfig
58641
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-[1000px]", children: [
58642
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[280px_1fr] gap-6", children: [
58643
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58644
- Pressable,
58645
- {
58646
- href: featuredHeroCard.href,
58647
- className: cn(
58648
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
58649
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
58393
+ var ResourcesMenu = ({
58394
+ resourceItems,
58395
+ topicGroups,
58396
+ featuredHeroCard
58397
+ }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[280px_1fr_220px] gap-6", children: [
58398
+ featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58399
+ Pressable,
58400
+ {
58401
+ href: featuredHeroCard.href,
58402
+ className: cn(
58403
+ "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
58404
+ featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
58405
+ ),
58406
+ children: [
58407
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
58408
+ img.Img,
58409
+ {
58410
+ src: featuredHeroCard.image,
58411
+ alt: featuredHeroCard.title,
58412
+ className: "h-full w-full object-cover invert"
58413
+ }
58414
+ ) }),
58415
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
58416
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
58417
+ featuredHeroCard.title,
58418
+ /* @__PURE__ */ jsxRuntime.jsx(
58419
+ DynamicIcon,
58420
+ {
58421
+ name: "lucide/arrow-right",
58422
+ size: 16,
58423
+ className: "transition-transform group-hover:translate-x-1"
58424
+ }
58425
+ )
58426
+ ] }),
58427
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
58428
+ ] })
58429
+ ]
58430
+ }
58431
+ ) }),
58432
+ resourceItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
58433
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Resources" }) }),
58434
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
58435
+ NavigationMenuLink,
58436
+ {
58437
+ href: resource.href,
58438
+ className: "group col-span-1 !flex !w-full items-start gap-3 rounded-lg border border-border p-3 hover:bg-muted",
58439
+ children: [
58440
+ /* @__PURE__ */ jsxRuntime.jsx(
58441
+ DynamicIcon,
58442
+ {
58443
+ name: resource.icon,
58444
+ size: 18,
58445
+ className: "mt-0.5 shrink-0"
58446
+ }
58447
+ ),
58448
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
58449
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: resource.title }),
58450
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: resource.description })
58451
+ ] })
58452
+ ]
58453
+ },
58454
+ resource.id
58455
+ )) })
58456
+ ] }),
58457
+ topicGroups.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: topicGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-5 last:mb-0", children: [
58458
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.title }) }),
58459
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
58460
+ NavigationMenuLink,
58461
+ {
58462
+ href: topic.href,
58463
+ className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
58464
+ children: [
58465
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: topic.icon, size: 14, className: "shrink-0" }),
58466
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
58467
+ ]
58468
+ },
58469
+ topic.id
58470
+ )) })
58471
+ ] }, group.title)) })
58472
+ ] });
58473
+ var GlobalMenu = ({
58474
+ featureCategories,
58475
+ regions,
58476
+ featuredHeroCard,
58477
+ optixFlowConfig
58478
+ }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-[1100px]", children: [
58479
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[280px_1fr] gap-6", children: [
58480
+ featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58481
+ Pressable,
58482
+ {
58483
+ href: featuredHeroCard.href,
58484
+ className: cn(
58485
+ "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
58486
+ featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
58650
58487
  ),
58651
58488
  children: [
58652
58489
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -58724,7 +58561,7 @@ var PartnersMenu = ({
58724
58561
  partnerCards,
58725
58562
  featuredHeroCard,
58726
58563
  optixFlowConfig
58727
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-[900px] grid-cols-[2fr_1fr] gap-6", children: [
58564
+ }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1000px] grid-cols-[2fr_1fr] gap-6", children: [
58728
58565
  featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58729
58566
  Pressable,
58730
58567
  {
@@ -58779,86 +58616,249 @@ var PartnersMenu = ({
58779
58616
  card.title
58780
58617
  )) })
58781
58618
  ] });
58782
- var ResourcesMenu = ({
58783
- resourceItems,
58784
- topicGroups,
58785
- featuredHeroCard
58786
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-[1000px] grid-cols-[280px_1fr_220px] gap-6", children: [
58787
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
58788
- Pressable,
58789
- {
58790
- href: featuredHeroCard.href,
58791
- className: cn(
58792
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
58793
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
58794
- ),
58795
- children: [
58796
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
58797
- img.Img,
58619
+ var MOBILE_BREAKPOINT = 1024;
58620
+ var NavbarEnterpriseMega = ({
58621
+ className,
58622
+ containerClassName,
58623
+ navClassName,
58624
+ navigationMenuClassName,
58625
+ actionsClassName,
58626
+ logoClassName,
58627
+ logo = {
58628
+ url: "/",
58629
+ src: logoPlaceholders.logoMark
58630
+ },
58631
+ logoSlot,
58632
+ menuLinks,
58633
+ actions,
58634
+ actionsSlot,
58635
+ layoutVariant = "fullScreenContainerizedLinks",
58636
+ background,
58637
+ spacing,
58638
+ pattern,
58639
+ patternOpacity,
58640
+ optixFlowConfig
58641
+ }) => {
58642
+ const [open, setOpen] = React52.useState(false);
58643
+ React52.useEffect(() => {
58644
+ const handleResize = () => {
58645
+ if (window.innerWidth > MOBILE_BREAKPOINT) {
58646
+ setOpen(false);
58647
+ }
58648
+ };
58649
+ handleResize();
58650
+ window.addEventListener("resize", handleResize);
58651
+ return () => window.removeEventListener("resize", handleResize);
58652
+ }, []);
58653
+ React52.useEffect(() => {
58654
+ document.body.style.overflow = open ? "hidden" : "auto";
58655
+ }, [open]);
58656
+ const handleMobileMenu = () => {
58657
+ setOpen(!open);
58658
+ };
58659
+ const renderActions = React52.useMemo(() => {
58660
+ if (actionsSlot) return actionsSlot;
58661
+ if (!actions || actions.length === 0) return null;
58662
+ return actions.map((action, index) => {
58663
+ const {
58664
+ label,
58665
+ icon,
58666
+ iconAfter,
58667
+ children,
58668
+ className: actionClassName,
58669
+ ...pressableProps
58670
+ } = action;
58671
+ return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
58672
+ icon,
58673
+ label,
58674
+ iconAfter
58675
+ ] }) }, index);
58676
+ });
58677
+ }, [actionsSlot, actions]);
58678
+ const {
58679
+ sectionClasses,
58680
+ containerWrapperClasses,
58681
+ innerContainerClasses,
58682
+ navWrapperClasses,
58683
+ sectionContainerClassName,
58684
+ sectionContainerMaxWidth,
58685
+ spacingOverride
58686
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
58687
+ return /* @__PURE__ */ jsxRuntime.jsxs(React52.Fragment, { children: [
58688
+ /* @__PURE__ */ jsxRuntime.jsx(
58689
+ Section,
58690
+ {
58691
+ background,
58692
+ spacing: spacingOverride ?? spacing,
58693
+ className: cn(
58694
+ "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
58695
+ sectionClasses
58696
+ ),
58697
+ pattern,
58698
+ patternOpacity,
58699
+ containerClassName: sectionContainerClassName,
58700
+ containerMaxWidth: sectionContainerMaxWidth,
58701
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
58702
+ "nav",
58798
58703
  {
58799
- src: featuredHeroCard.image,
58800
- alt: featuredHeroCard.title,
58801
- className: "h-full w-full object-cover invert"
58704
+ className: cn(
58705
+ "flex h-16 items-center justify-between gap-8",
58706
+ navClassName
58707
+ ),
58708
+ children: [
58709
+ /* @__PURE__ */ jsxRuntime.jsx(
58710
+ NavbarLogo,
58711
+ {
58712
+ logo,
58713
+ logoSlot,
58714
+ logoClassName,
58715
+ optixFlowConfig
58716
+ }
58717
+ ),
58718
+ /* @__PURE__ */ jsxRuntime.jsx(
58719
+ NavigationMenu,
58720
+ {
58721
+ className: cn(
58722
+ "hidden lg:flex [&>div:last-child]:left-1/2 [&>div:last-child]:-translate-x-1/2",
58723
+ navigationMenuClassName
58724
+ ),
58725
+ viewport: true,
58726
+ children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuLinks?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
58727
+ DesktopMenuItem2,
58728
+ {
58729
+ item,
58730
+ index,
58731
+ optixFlowConfig
58732
+ },
58733
+ `desktop-link-${index}`
58734
+ )) })
58735
+ }
58736
+ ),
58737
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", actionsClassName), children: [
58738
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden lg:flex lg:items-center lg:gap-3", children: renderActions }),
58739
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
58740
+ Pressable,
58741
+ {
58742
+ className: "size-11",
58743
+ variant: "ghost",
58744
+ size: "icon",
58745
+ asButton: true,
58746
+ onClick: handleMobileMenu,
58747
+ children: open ? /* @__PURE__ */ jsxRuntime.jsx(
58748
+ DynamicIcon,
58749
+ {
58750
+ name: "lucide/x",
58751
+ size: 22,
58752
+ className: "stroke-foreground"
58753
+ }
58754
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
58755
+ DynamicIcon,
58756
+ {
58757
+ name: "lucide/menu",
58758
+ size: 22,
58759
+ className: "stroke-foreground"
58760
+ }
58761
+ )
58762
+ }
58763
+ ) })
58764
+ ] })
58765
+ ]
58802
58766
  }
58803
- ) }),
58804
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
58805
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
58806
- featuredHeroCard.title,
58807
- /* @__PURE__ */ jsxRuntime.jsx(
58808
- DynamicIcon,
58809
- {
58810
- name: "lucide/arrow-right",
58811
- size: 16,
58812
- className: "transition-transform group-hover:translate-x-1"
58813
- }
58814
- )
58815
- ] }),
58816
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
58817
- ] })
58818
- ]
58819
- }
58820
- ) }),
58821
- resourceItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
58822
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Resources" }) }),
58823
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
58824
- NavigationMenuLink,
58825
- {
58826
- href: resource.href,
58827
- className: "group col-span-1 !flex !w-full items-start gap-3 rounded-lg border border-border p-3 hover:bg-muted",
58828
- children: [
58829
- /* @__PURE__ */ jsxRuntime.jsx(
58830
- DynamicIcon,
58831
- {
58832
- name: resource.icon,
58833
- size: 18,
58834
- className: "mt-0.5 shrink-0"
58835
- }
58836
- ),
58837
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
58838
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: resource.title }),
58839
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: resource.description })
58840
- ] })
58841
- ]
58842
- },
58843
- resource.id
58844
- )) })
58845
- ] }),
58846
- topicGroups.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: topicGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-5 last:mb-0", children: [
58847
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.title }) }),
58848
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
58849
- NavigationMenuLink,
58850
- {
58851
- href: topic.href,
58852
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
58853
- children: [
58854
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: topic.icon, size: 14, className: "shrink-0" }),
58855
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
58856
- ]
58857
- },
58858
- topic.id
58859
- )) })
58860
- ] }, group.title)) })
58861
- ] });
58767
+ ) }) }) })
58768
+ }
58769
+ ),
58770
+ /* @__PURE__ */ jsxRuntime.jsx(
58771
+ MobileNavigationMenu,
58772
+ {
58773
+ open,
58774
+ setOpen,
58775
+ menuLinks: menuLinks ?? [],
58776
+ actionsClassName,
58777
+ actions,
58778
+ actionsSlot,
58779
+ optixFlowConfig
58780
+ }
58781
+ )
58782
+ ] });
58783
+ };
58784
+ var DesktopMenuItem2 = ({
58785
+ item,
58786
+ index,
58787
+ optixFlowConfig
58788
+ }) => {
58789
+ const hasDropdown = Boolean(item.layout);
58790
+ const effectiveLayout = item.layout || "solutions-with-platform";
58791
+ if (hasDropdown) {
58792
+ return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
58793
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
58794
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "!rounded-xl !border-0 !p-6", children: renderDropdownContent(
58795
+ { ...item, layout: effectiveLayout },
58796
+ optixFlowConfig
58797
+ ) })
58798
+ ] }, `desktop-menu-item-${index}`);
58799
+ }
58800
+ return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
58801
+ NavigationMenuLink,
58802
+ {
58803
+ href: item.href,
58804
+ className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted",
58805
+ children: item.label
58806
+ }
58807
+ ) }, `desktop-menu-item-${index}`);
58808
+ };
58809
+ var renderDropdownContent = (item, optixFlowConfig) => {
58810
+ switch (item.layout) {
58811
+ case "solutions-with-platform":
58812
+ return /* @__PURE__ */ jsxRuntime.jsx(
58813
+ SolutionsMenu,
58814
+ {
58815
+ solutionCards: item.solutionCards ?? [],
58816
+ platformItems: item.platformItems ?? [],
58817
+ featuredHeroCard: item.featuredHeroCard,
58818
+ optixFlowConfig
58819
+ }
58820
+ );
58821
+ case "products-categorized":
58822
+ return /* @__PURE__ */ jsxRuntime.jsx(
58823
+ ProductsMenu,
58824
+ {
58825
+ productCategories: item.productCategories ?? [],
58826
+ featuredHeroCard: item.featuredHeroCard,
58827
+ optixFlowConfig
58828
+ }
58829
+ );
58830
+ case "features-with-locations":
58831
+ return /* @__PURE__ */ jsxRuntime.jsx(
58832
+ GlobalMenu,
58833
+ {
58834
+ featureCategories: item.featureCategories ?? [],
58835
+ regions: item.regions ?? [],
58836
+ featuredHeroCard: item.featuredHeroCard,
58837
+ optixFlowConfig
58838
+ }
58839
+ );
58840
+ case "partners-promotional":
58841
+ return /* @__PURE__ */ jsxRuntime.jsx(
58842
+ PartnersMenu,
58843
+ {
58844
+ partnerCards: item.partnerCards ?? [],
58845
+ featuredHeroCard: item.featuredHeroCard,
58846
+ optixFlowConfig
58847
+ }
58848
+ );
58849
+ case "resources-with-topics":
58850
+ return /* @__PURE__ */ jsxRuntime.jsx(
58851
+ ResourcesMenu,
58852
+ {
58853
+ resourceItems: item.resourceItems ?? [],
58854
+ topicGroups: item.topicGroups ?? [],
58855
+ featuredHeroCard: item.featuredHeroCard
58856
+ }
58857
+ );
58858
+ default:
58859
+ return null;
58860
+ }
58861
+ };
58862
58862
  var renderMobileDropdownContent = (item) => {
58863
58863
  switch (item.layout) {
58864
58864
  case "solutions-with-platform":
@@ -63250,8 +63250,11 @@ var NavbarIconLinks = ({
63250
63250
  /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
63251
63251
  Pressable,
63252
63252
  {
63253
- asButton: true,
63254
- className: actionClassName,
63253
+ className: cn(
63254
+ "flex h-10 w-10 items-center justify-center rounded-md transition-colors",
63255
+ "text-muted-foreground hover:bg-accent hover:text-accent-foreground",
63256
+ actionClassName
63257
+ ),
63255
63258
  ...pressableProps,
63256
63259
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
63257
63260
  icon,
@@ -63288,16 +63291,87 @@ var NavbarIconLinks = ({
63288
63291
  patternOpacity,
63289
63292
  containerClassName: sectionContainerClassName,
63290
63293
  containerMaxWidth: sectionContainerMaxWidth,
63291
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
63292
- "nav",
63293
- {
63294
- className: cn(
63295
- "flex items-center justify-between py-3",
63296
- navClassName
63297
- ),
63298
- children: [
63299
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6", children: [
63294
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: innerContainerClasses, children: [
63295
+ /* @__PURE__ */ jsxRuntime.jsxs(
63296
+ "nav",
63297
+ {
63298
+ className: cn(
63299
+ "hidden items-center justify-between py-3 lg:flex",
63300
+ navClassName
63301
+ ),
63302
+ children: [
63303
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6", children: [
63304
+ /* @__PURE__ */ jsxRuntime.jsx(
63305
+ NavbarLogo,
63306
+ {
63307
+ logo,
63308
+ logoSlot,
63309
+ logoClassName,
63310
+ optixFlowConfig
63311
+ }
63312
+ ),
63313
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxRuntime.jsx(
63314
+ NavigationMenu,
63315
+ {
63316
+ className: cn("flex", navigationMenuClassName),
63317
+ children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { className: "gap-1", children: navItemsSlot ? navItemsSlot : renderNavItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, { children: [
63318
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
63319
+ Pressable,
63320
+ {
63321
+ href: item.url,
63322
+ onClick: () => setActiveItem(item.title),
63323
+ className: cn(
63324
+ "flex h-10 w-10 items-center justify-center rounded-md transition-colors",
63325
+ activeItem === item.title ? "bg-accent text-accent-foreground" : "text-muted-foreground hover:bg-accent hover:text-accent-foreground"
63326
+ ),
63327
+ children: [
63328
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 20 }),
63329
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: item.title })
63330
+ ]
63331
+ }
63332
+ ) }) }),
63333
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: item.title }) })
63334
+ ] }) }, index)) })
63335
+ }
63336
+ ) })
63337
+ ] }),
63300
63338
  /* @__PURE__ */ jsxRuntime.jsx(
63339
+ "div",
63340
+ {
63341
+ className: cn(
63342
+ "flex items-center gap-2",
63343
+ actionsClassName
63344
+ ),
63345
+ children: renderAuthActions
63346
+ }
63347
+ )
63348
+ ]
63349
+ }
63350
+ ),
63351
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "block py-3 lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
63352
+ /* @__PURE__ */ jsxRuntime.jsx(
63353
+ NavbarLogo,
63354
+ {
63355
+ logo,
63356
+ logoSlot,
63357
+ logoClassName,
63358
+ optixFlowConfig
63359
+ }
63360
+ ),
63361
+ /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { open: isOpen, onOpenChange: setIsOpen, children: [
63362
+ /* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
63363
+ Pressable,
63364
+ {
63365
+ variant: "outline",
63366
+ size: "icon",
63367
+ asButton: true,
63368
+ onClick: () => {
63369
+ },
63370
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
63371
+ }
63372
+ ) }),
63373
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { className: "overflow-y-auto", children: [
63374
+ /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: /* @__PURE__ */ jsxRuntime.jsx(
63301
63375
  NavbarLogo,
63302
63376
  {
63303
63377
  logo,
@@ -63305,98 +63379,45 @@ var NavbarIconLinks = ({
63305
63379
  logoClassName,
63306
63380
  optixFlowConfig
63307
63381
  }
63308
- ),
63309
- /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxRuntime.jsx(
63310
- NavigationMenu,
63311
- {
63312
- className: cn("hidden lg:flex", navigationMenuClassName),
63313
- children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { className: "gap-1", children: navItemsSlot ? navItemsSlot : renderNavItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, { children: [
63314
- /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
63315
- Pressable,
63316
- {
63317
- href: item.url,
63318
- onClick: () => setActiveItem(item.title),
63319
- className: cn(
63320
- "flex h-10 w-10 items-center justify-center rounded-md transition-colors",
63321
- activeItem === item.title ? "bg-accent text-accent-foreground" : "text-muted-foreground hover:bg-accent hover:text-accent-foreground"
63322
- ),
63323
- children: [
63324
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 20 }),
63325
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: item.title })
63326
- ]
63327
- }
63328
- ) }) }),
63329
- /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: item.title }) })
63330
- ] }) }, index)) })
63331
- }
63332
- ) })
63333
- ] }),
63334
- /* @__PURE__ */ jsxRuntime.jsx(
63335
- "div",
63336
- {
63337
- className: cn(
63338
- "hidden items-center gap-2 lg:flex",
63339
- actionsClassName
63340
- ),
63341
- children: renderAuthActions
63342
- }
63343
- ),
63344
- /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { open: isOpen, onOpenChange: setIsOpen, children: [
63345
- /* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { asChild: true, className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(
63346
- Pressable,
63347
- {
63348
- variant: "ghost",
63349
- size: "icon",
63350
- asButton: true,
63351
- onClick: () => {
63352
- },
63353
- children: [
63354
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 20 }),
63355
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle menu" })
63356
- ]
63357
- }
63358
- ) }),
63359
- /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { side: "right", className: "w-[280px]", children: [
63360
- /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { className: "sr-only", children: "Navigation Menu" }),
63361
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 pt-8", children: [
63362
- navItemsSlot ? navItemsSlot : renderNavItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
63363
- Pressable,
63364
- {
63365
- href: item.url,
63366
- onClick: () => {
63367
- setActiveItem(item.title);
63368
- setIsOpen(false);
63369
- },
63370
- className: cn(
63371
- "flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors",
63372
- activeItem === item.title ? "bg-accent text-accent-foreground" : "text-muted-foreground hover:bg-accent hover:text-accent-foreground"
63373
- ),
63374
- children: [
63375
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 18 }),
63376
- item.title
63377
- ]
63378
- },
63379
- index
63380
- )),
63381
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 border-t pt-4", children: authActions?.map((action, index) => /* @__PURE__ */ jsxRuntime.jsxs(
63382
- Pressable,
63383
- {
63384
- href: action.href,
63385
- className: "flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground hover:bg-accent hover:text-accent-foreground",
63386
- onClick: () => setIsOpen(false),
63387
- children: [
63388
- action.icon,
63389
- action.label
63390
- ]
63382
+ ) }) }),
63383
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
63384
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: navItemsSlot ? navItemsSlot : renderNavItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
63385
+ Pressable,
63386
+ {
63387
+ href: item.url,
63388
+ onClick: () => {
63389
+ setActiveItem(item.title);
63390
+ setIsOpen(false);
63391
63391
  },
63392
- index
63393
- )) })
63394
- ] })
63392
+ className: cn(
63393
+ "flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition-colors",
63394
+ activeItem === item.title ? "bg-accent text-accent-foreground" : "text-muted-foreground hover:bg-accent hover:text-accent-foreground"
63395
+ ),
63396
+ children: [
63397
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 18 }),
63398
+ item.title
63399
+ ]
63400
+ },
63401
+ index
63402
+ )) }),
63403
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t pt-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-3", children: authActions?.map((action, index) => /* @__PURE__ */ jsxRuntime.jsxs(
63404
+ Pressable,
63405
+ {
63406
+ href: action.href,
63407
+ className: "flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground hover:bg-accent hover:text-accent-foreground",
63408
+ onClick: () => setIsOpen(false),
63409
+ children: [
63410
+ action.icon,
63411
+ action.label
63412
+ ]
63413
+ },
63414
+ index
63415
+ )) }) })
63395
63416
  ] })
63396
63417
  ] })
63397
- ]
63398
- }
63399
- ) }) }) })
63418
+ ] })
63419
+ ] }) })
63420
+ ] }) }) })
63400
63421
  }
63401
63422
  );
63402
63423
  };