@opensite/ui 3.4.6 → 3.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/navbar-animated-preview.cjs +16 -9
  2. package/dist/navbar-animated-preview.d.cts +3 -1
  3. package/dist/navbar-animated-preview.d.ts +3 -1
  4. package/dist/navbar-animated-preview.js +16 -9
  5. package/dist/navbar-centered-menu.cjs +4 -4
  6. package/dist/navbar-centered-menu.d.cts +4 -2
  7. package/dist/navbar-centered-menu.d.ts +4 -2
  8. package/dist/navbar-centered-menu.js +4 -4
  9. package/dist/navbar-dark-icons.cjs +10 -9
  10. package/dist/navbar-dark-icons.d.cts +5 -3
  11. package/dist/navbar-dark-icons.d.ts +5 -3
  12. package/dist/navbar-dark-icons.js +10 -9
  13. package/dist/navbar-dropdown-menu.cjs +4 -4
  14. package/dist/navbar-dropdown-menu.d.cts +4 -2
  15. package/dist/navbar-dropdown-menu.d.ts +4 -2
  16. package/dist/navbar-dropdown-menu.js +4 -4
  17. package/dist/navbar-education-platform.cjs +4 -4
  18. package/dist/navbar-education-platform.d.cts +5 -3
  19. package/dist/navbar-education-platform.d.ts +5 -3
  20. package/dist/navbar-education-platform.js +4 -4
  21. package/dist/navbar-enterprise-mega.cjs +109 -27
  22. package/dist/navbar-enterprise-mega.d.cts +10 -8
  23. package/dist/navbar-enterprise-mega.d.ts +10 -8
  24. package/dist/navbar-enterprise-mega.js +109 -27
  25. package/dist/navbar-feature-grid.cjs +2 -2
  26. package/dist/navbar-feature-grid.d.cts +3 -1
  27. package/dist/navbar-feature-grid.d.ts +3 -1
  28. package/dist/navbar-feature-grid.js +2 -2
  29. package/dist/navbar-floating-pill.cjs +2 -2
  30. package/dist/navbar-floating-pill.d.cts +3 -1
  31. package/dist/navbar-floating-pill.d.ts +3 -1
  32. package/dist/navbar-floating-pill.js +2 -2
  33. package/dist/navbar-fullscreen-menu.d.cts +3 -1
  34. package/dist/navbar-fullscreen-menu.d.ts +3 -1
  35. package/dist/navbar-icon-links.cjs +17 -3
  36. package/dist/navbar-icon-links.d.cts +4 -2
  37. package/dist/navbar-icon-links.d.ts +4 -2
  38. package/dist/navbar-icon-links.js +17 -3
  39. package/dist/navbar-image-preview.cjs +8 -8
  40. package/dist/navbar-image-preview.d.cts +5 -3
  41. package/dist/navbar-image-preview.d.ts +5 -3
  42. package/dist/navbar-image-preview.js +8 -8
  43. package/dist/navbar-mega-menu.cjs +36 -12
  44. package/dist/navbar-mega-menu.d.cts +4 -2
  45. package/dist/navbar-mega-menu.d.ts +4 -2
  46. package/dist/navbar-mega-menu.js +36 -12
  47. package/dist/navbar-multi-column-groups.cjs +10 -10
  48. package/dist/navbar-multi-column-groups.d.cts +5 -3
  49. package/dist/navbar-multi-column-groups.d.ts +5 -3
  50. package/dist/navbar-multi-column-groups.js +10 -10
  51. package/dist/navbar-platform-resources.cjs +72 -53
  52. package/dist/navbar-platform-resources.d.cts +3 -1
  53. package/dist/navbar-platform-resources.d.ts +3 -1
  54. package/dist/navbar-platform-resources.js +72 -53
  55. package/dist/navbar-search-focused.cjs +7 -7
  56. package/dist/navbar-search-focused.d.cts +5 -3
  57. package/dist/navbar-search-focused.d.ts +5 -3
  58. package/dist/navbar-search-focused.js +7 -7
  59. package/dist/navbar-sidebar-mobile.cjs +4 -4
  60. package/dist/navbar-sidebar-mobile.d.cts +4 -2
  61. package/dist/navbar-sidebar-mobile.d.ts +4 -2
  62. package/dist/navbar-sidebar-mobile.js +4 -4
  63. package/dist/navbar-simple-links.cjs +4 -4
  64. package/dist/navbar-simple-links.d.cts +3 -1
  65. package/dist/navbar-simple-links.d.ts +3 -1
  66. package/dist/navbar-simple-links.js +4 -4
  67. package/dist/navbar-split-cta.cjs +4 -5
  68. package/dist/navbar-split-cta.d.cts +4 -2
  69. package/dist/navbar-split-cta.d.ts +4 -2
  70. package/dist/navbar-split-cta.js +4 -5
  71. package/dist/navbar-sticky-compact.cjs +14 -8
  72. package/dist/navbar-sticky-compact.d.cts +4 -2
  73. package/dist/navbar-sticky-compact.d.ts +4 -2
  74. package/dist/navbar-sticky-compact.js +14 -8
  75. package/dist/navbar-tabbed-sections.cjs +4 -5
  76. package/dist/navbar-tabbed-sections.d.cts +5 -3
  77. package/dist/navbar-tabbed-sections.d.ts +5 -3
  78. package/dist/navbar-tabbed-sections.js +4 -5
  79. package/dist/navbar-transparent-overlay.cjs +6 -6
  80. package/dist/navbar-transparent-overlay.d.cts +5 -3
  81. package/dist/navbar-transparent-overlay.d.ts +5 -3
  82. package/dist/navbar-transparent-overlay.js +6 -6
  83. package/dist/registry.cjs +337 -186
  84. package/dist/registry.js +337 -186
  85. package/dist/{types-ldjwVMcl.d.cts → types-hJ2R0GoH.d.ts} +5 -4
  86. package/dist/{types-ldjwVMcl.d.ts → types-mWZcgKth.d.cts} +5 -4
  87. package/package.json +1 -1
@@ -768,17 +768,17 @@ var SolutionsMenu = ({
768
768
  platformItems,
769
769
  featuredHeroCard,
770
770
  optixFlowConfig
771
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] grid-cols-2 gap-4", children: [
772
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
771
+ }) => {
772
+ const featuredCard = featuredHeroCard ? /* @__PURE__ */ jsxRuntime.jsxs(
773
773
  pressable.Pressable,
774
774
  {
775
775
  href: featuredHeroCard.href,
776
776
  className: cn(
777
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
777
+ "group flex h-full min-h-[420px] flex-col overflow-hidden rounded-lg text-primary-foreground",
778
778
  featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
779
779
  ),
780
780
  children: [
781
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 flex-col justify-between p-5", children: [
781
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 flex-col justify-between p-5", children: [
782
782
  featuredHeroCard.subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: featuredHeroCard.subtitle }),
783
783
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
784
784
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
@@ -795,7 +795,7 @@ var SolutionsMenu = ({
795
795
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
796
796
  ] })
797
797
  ] }),
798
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
798
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
799
799
  img.Img,
800
800
  {
801
801
  src: featuredHeroCard.image,
@@ -806,35 +806,42 @@ var SolutionsMenu = ({
806
806
  ) })
807
807
  ]
808
808
  }
809
- ) }),
810
- platformItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
809
+ ) : null;
810
+ const platformSection = platformItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
811
811
  /* @__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: "Developer Platform" }) }),
812
812
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: platformItems.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
813
813
  NavigationMenuLink,
814
814
  {
815
815
  href: technology.href,
816
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
816
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
817
817
  children: [
818
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: technology.icon, size: 16, className: "shrink-0" }),
818
+ /* @__PURE__ */ jsxRuntime.jsx(
819
+ DynamicIcon,
820
+ {
821
+ name: technology.icon,
822
+ size: 16,
823
+ className: "shrink-0"
824
+ }
825
+ ),
819
826
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
820
827
  ]
821
828
  },
822
829
  technology.id
823
830
  )) })
824
- ] }),
825
- solutionCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-2 mt-2 grid grid-cols-4 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
831
+ ] }) : null;
832
+ const solutionSection = solutionCards.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
826
833
  "div",
827
834
  {
828
- className: "col-span-1 flex w-full flex-col rounded-lg border border-border p-4",
835
+ className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
829
836
  children: [
830
837
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
831
838
  pressable.Pressable,
832
839
  {
833
840
  href: solution.href,
834
- className: "group flex flex-col text-left",
841
+ className: "group flex min-w-0 flex-col text-left",
835
842
  children: [
836
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
837
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-sm font-medium", children: solution.title }),
843
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
844
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
838
845
  /* @__PURE__ */ jsxRuntime.jsx(
839
846
  DynamicIcon,
840
847
  {
@@ -844,7 +851,7 @@ var SolutionsMenu = ({
844
851
  }
845
852
  )
846
853
  ] }),
847
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: solution.description })
854
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
848
855
  ]
849
856
  }
850
857
  ) }),
@@ -852,10 +859,17 @@ var SolutionsMenu = ({
852
859
  NavigationMenuLink,
853
860
  {
854
861
  href: subpage.href,
855
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
862
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
856
863
  children: [
857
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subpage.icon, size: 14, className: "shrink-0" }),
858
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: subpage.title })
864
+ /* @__PURE__ */ jsxRuntime.jsx(
865
+ DynamicIcon,
866
+ {
867
+ name: subpage.icon,
868
+ size: 14,
869
+ className: "shrink-0"
870
+ }
871
+ ),
872
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
859
873
  ]
860
874
  },
861
875
  subpage.id
@@ -863,8 +877,69 @@ var SolutionsMenu = ({
863
877
  ]
864
878
  },
865
879
  solution.id
866
- )) })
867
- ] });
880
+ )) }) : null;
881
+ if (featuredCard) {
882
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-[minmax(380px,1fr)_minmax(360px,0.95fr)] gap-4", children: [
883
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: featuredCard }),
884
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-4", children: [
885
+ platformSection,
886
+ solutionSection
887
+ ] })
888
+ ] });
889
+ }
890
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-2 gap-4", children: [
891
+ platformSection,
892
+ solutionCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-2 grid grid-cols-4 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
893
+ "div",
894
+ {
895
+ className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
896
+ children: [
897
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
898
+ pressable.Pressable,
899
+ {
900
+ href: solution.href,
901
+ className: "group flex min-w-0 flex-col text-left",
902
+ children: [
903
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
904
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
905
+ /* @__PURE__ */ jsxRuntime.jsx(
906
+ DynamicIcon,
907
+ {
908
+ name: "lucide/arrow-right",
909
+ size: 14,
910
+ className: "shrink-0 transition-transform group-hover:translate-x-1"
911
+ }
912
+ )
913
+ ] }),
914
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
915
+ ]
916
+ }
917
+ ) }),
918
+ /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: solution.subpages.map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
919
+ NavigationMenuLink,
920
+ {
921
+ href: subpage.href,
922
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
923
+ children: [
924
+ /* @__PURE__ */ jsxRuntime.jsx(
925
+ DynamicIcon,
926
+ {
927
+ name: subpage.icon,
928
+ size: 14,
929
+ className: "shrink-0"
930
+ }
931
+ ),
932
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
933
+ ]
934
+ },
935
+ subpage.id
936
+ )) })
937
+ ]
938
+ },
939
+ solution.id
940
+ )) })
941
+ ] });
942
+ };
868
943
  var ProductsMenu = ({
869
944
  productCategories,
870
945
  featuredHeroCard,
@@ -1087,7 +1162,14 @@ var GlobalMenu = ({
1087
1162
  href: location.href,
1088
1163
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
1089
1164
  children: [
1090
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: location.icon }),
1165
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
1166
+ DynamicIcon,
1167
+ {
1168
+ name: location.icon,
1169
+ size: 16,
1170
+ className: "shrink-0"
1171
+ }
1172
+ ) }),
1091
1173
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: location.title })
1092
1174
  ]
1093
1175
  },
@@ -1208,9 +1290,9 @@ var NavbarEnterpriseMega = ({
1208
1290
  ...pressableProps
1209
1291
  } = action;
1210
1292
  return /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1211
- icon,
1293
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: icon, size: 16, className: "shrink-0" }),
1212
1294
  label,
1213
- iconAfter
1295
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconAfter, size: 16, className: "shrink-0" })
1214
1296
  ] }) }, index);
1215
1297
  });
1216
1298
  }, [actionsSlot, actions]);
@@ -1336,7 +1418,7 @@ var DesktopMenuItem = ({
1336
1418
  if (hasDropdown) {
1337
1419
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
1338
1420
  /* @__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 }),
1339
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "rounded-xl! border-0! p-4!", children: renderDropdownContent(
1421
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(
1340
1422
  { ...item, layout: effectiveLayout },
1341
1423
  optixFlowConfig
1342
1424
  ) })
@@ -1493,9 +1575,9 @@ var MobileNavigationMenu = ({
1493
1575
  className: actionClassName,
1494
1576
  ...pressableProps,
1495
1577
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1496
- icon,
1578
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: icon, size: 16, className: "shrink-0" }),
1497
1579
  label,
1498
- iconAfter
1580
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconAfter, size: 16, className: "shrink-0" })
1499
1581
  ] })
1500
1582
  },
1501
1583
  index
@@ -1,8 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
+ import { DynamicIconName } from './dynamic-icon.cjs';
3
4
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
4
- import { a as ILinkItem, b as IMenuLinkGroup, L as LogoConfig, N as NavbarLayoutVariant } from './types-ldjwVMcl.cjs';
5
+ import { a as ILinkItem, b as IMenuLinkGroup, L as LogoConfig, N as NavbarLayoutVariant } from './types-mWZcgKth.cjs';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
7
+ import '@page-speed/icon';
6
8
  import 'class-variance-authority';
7
9
  import '@page-speed/pressable';
8
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -18,7 +20,7 @@ interface ISubpageItem {
18
20
  id: string;
19
21
  title: string;
20
22
  href: string;
21
- icon: string;
23
+ icon: DynamicIconName;
22
24
  }
23
25
  /**
24
26
  * Solution card with bordered layout and subpages
@@ -37,7 +39,7 @@ interface ITechnologyItem {
37
39
  id: string;
38
40
  title: string;
39
41
  href: string;
40
- icon: string;
42
+ icon: DynamicIconName;
41
43
  }
42
44
  /**
43
45
  * Product item with image
@@ -64,7 +66,7 @@ interface IFeatureItem {
64
66
  title: string;
65
67
  description: string;
66
68
  href: string;
67
- icon: string;
69
+ icon: DynamicIconName;
68
70
  }
69
71
  /**
70
72
  * Feature category grouping
@@ -79,7 +81,7 @@ interface IFeatureCategory {
79
81
  interface ILocationItem {
80
82
  title: string;
81
83
  href: string;
82
- icon: string;
84
+ icon: DynamicIconName;
83
85
  }
84
86
  /**
85
87
  * Region grouping for locations
@@ -96,7 +98,7 @@ interface IResourceItem {
96
98
  title: string;
97
99
  description: string;
98
100
  href: string;
99
- icon: string;
101
+ icon: DynamicIconName;
100
102
  }
101
103
  /**
102
104
  * Topic item for sidebar
@@ -105,7 +107,7 @@ interface ITopicItem {
105
107
  id: string;
106
108
  title: string;
107
109
  href: string;
108
- icon: string;
110
+ icon: DynamicIconName;
109
111
  }
110
112
  /**
111
113
  * Topic group for sidebar sections
@@ -133,7 +135,7 @@ interface IPartnerCard {
133
135
  title: string;
134
136
  description: string;
135
137
  href: string;
136
- icon: string;
138
+ icon: DynamicIconName;
137
139
  }
138
140
  /**
139
141
  * Mega menu layout types
@@ -1,8 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
+ import { DynamicIconName } from './dynamic-icon.js';
3
4
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
4
- import { a as ILinkItem, b as IMenuLinkGroup, L as LogoConfig, N as NavbarLayoutVariant } from './types-ldjwVMcl.js';
5
+ import { a as ILinkItem, b as IMenuLinkGroup, L as LogoConfig, N as NavbarLayoutVariant } from './types-hJ2R0GoH.js';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.js';
7
+ import '@page-speed/icon';
6
8
  import 'class-variance-authority';
7
9
  import '@page-speed/pressable';
8
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -18,7 +20,7 @@ interface ISubpageItem {
18
20
  id: string;
19
21
  title: string;
20
22
  href: string;
21
- icon: string;
23
+ icon: DynamicIconName;
22
24
  }
23
25
  /**
24
26
  * Solution card with bordered layout and subpages
@@ -37,7 +39,7 @@ interface ITechnologyItem {
37
39
  id: string;
38
40
  title: string;
39
41
  href: string;
40
- icon: string;
42
+ icon: DynamicIconName;
41
43
  }
42
44
  /**
43
45
  * Product item with image
@@ -64,7 +66,7 @@ interface IFeatureItem {
64
66
  title: string;
65
67
  description: string;
66
68
  href: string;
67
- icon: string;
69
+ icon: DynamicIconName;
68
70
  }
69
71
  /**
70
72
  * Feature category grouping
@@ -79,7 +81,7 @@ interface IFeatureCategory {
79
81
  interface ILocationItem {
80
82
  title: string;
81
83
  href: string;
82
- icon: string;
84
+ icon: DynamicIconName;
83
85
  }
84
86
  /**
85
87
  * Region grouping for locations
@@ -96,7 +98,7 @@ interface IResourceItem {
96
98
  title: string;
97
99
  description: string;
98
100
  href: string;
99
- icon: string;
101
+ icon: DynamicIconName;
100
102
  }
101
103
  /**
102
104
  * Topic item for sidebar
@@ -105,7 +107,7 @@ interface ITopicItem {
105
107
  id: string;
106
108
  title: string;
107
109
  href: string;
108
- icon: string;
110
+ icon: DynamicIconName;
109
111
  }
110
112
  /**
111
113
  * Topic group for sidebar sections
@@ -133,7 +135,7 @@ interface IPartnerCard {
133
135
  title: string;
134
136
  description: string;
135
137
  href: string;
136
- icon: string;
138
+ icon: DynamicIconName;
137
139
  }
138
140
  /**
139
141
  * Mega menu layout types
@@ -745,17 +745,17 @@ var SolutionsMenu = ({
745
745
  platformItems,
746
746
  featuredHeroCard,
747
747
  optixFlowConfig
748
- }) => /* @__PURE__ */ jsxs("div", { className: "grid w-[1200px] grid-cols-2 gap-4", children: [
749
- featuredHeroCard && /* @__PURE__ */ jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxs(
748
+ }) => {
749
+ const featuredCard = featuredHeroCard ? /* @__PURE__ */ jsxs(
750
750
  Pressable,
751
751
  {
752
752
  href: featuredHeroCard.href,
753
753
  className: cn(
754
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
754
+ "group flex h-full min-h-[420px] flex-col overflow-hidden rounded-lg text-primary-foreground",
755
755
  featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
756
756
  ),
757
757
  children: [
758
- /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col justify-between p-5", children: [
758
+ /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 flex-col justify-between p-5", children: [
759
759
  featuredHeroCard.subtitle && /* @__PURE__ */ jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: featuredHeroCard.subtitle }),
760
760
  /* @__PURE__ */ jsxs("div", { children: [
761
761
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
@@ -772,7 +772,7 @@ var SolutionsMenu = ({
772
772
  /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
773
773
  ] })
774
774
  ] }),
775
- /* @__PURE__ */ jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsx(
775
+ /* @__PURE__ */ jsx("div", { className: "relative min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsx(
776
776
  Img,
777
777
  {
778
778
  src: featuredHeroCard.image,
@@ -783,35 +783,42 @@ var SolutionsMenu = ({
783
783
  ) })
784
784
  ]
785
785
  }
786
- ) }),
787
- platformItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "col-span-1", children: [
786
+ ) : null;
787
+ const platformSection = platformItems.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
788
788
  /* @__PURE__ */ jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Developer Platform" }) }),
789
789
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: platformItems.map((technology) => /* @__PURE__ */ jsxs(
790
790
  NavigationMenuLink,
791
791
  {
792
792
  href: technology.href,
793
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
793
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
794
794
  children: [
795
- /* @__PURE__ */ jsx(DynamicIcon, { name: technology.icon, size: 16, className: "shrink-0" }),
795
+ /* @__PURE__ */ jsx(
796
+ DynamicIcon,
797
+ {
798
+ name: technology.icon,
799
+ size: 16,
800
+ className: "shrink-0"
801
+ }
802
+ ),
796
803
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
797
804
  ]
798
805
  },
799
806
  technology.id
800
807
  )) })
801
- ] }),
802
- solutionCards.length > 0 && /* @__PURE__ */ jsx("div", { className: "col-span-2 mt-2 grid grid-cols-4 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxs(
808
+ ] }) : null;
809
+ const solutionSection = solutionCards.length > 0 ? /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxs(
803
810
  "div",
804
811
  {
805
- className: "col-span-1 flex w-full flex-col rounded-lg border border-border p-4",
812
+ className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
806
813
  children: [
807
814
  /* @__PURE__ */ jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxs(
808
815
  Pressable,
809
816
  {
810
817
  href: solution.href,
811
- className: "group flex flex-col text-left",
818
+ className: "group flex min-w-0 flex-col text-left",
812
819
  children: [
813
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
814
- /* @__PURE__ */ jsx("strong", { className: "text-sm font-medium", children: solution.title }),
820
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
821
+ /* @__PURE__ */ jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
815
822
  /* @__PURE__ */ jsx(
816
823
  DynamicIcon,
817
824
  {
@@ -821,7 +828,7 @@ var SolutionsMenu = ({
821
828
  }
822
829
  )
823
830
  ] }),
824
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: solution.description })
831
+ /* @__PURE__ */ jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
825
832
  ]
826
833
  }
827
834
  ) }),
@@ -829,10 +836,17 @@ var SolutionsMenu = ({
829
836
  NavigationMenuLink,
830
837
  {
831
838
  href: subpage.href,
832
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
839
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
833
840
  children: [
834
- /* @__PURE__ */ jsx(DynamicIcon, { name: subpage.icon, size: 14, className: "shrink-0" }),
835
- /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: subpage.title })
841
+ /* @__PURE__ */ jsx(
842
+ DynamicIcon,
843
+ {
844
+ name: subpage.icon,
845
+ size: 14,
846
+ className: "shrink-0"
847
+ }
848
+ ),
849
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
836
850
  ]
837
851
  },
838
852
  subpage.id
@@ -840,8 +854,69 @@ var SolutionsMenu = ({
840
854
  ]
841
855
  },
842
856
  solution.id
843
- )) })
844
- ] });
857
+ )) }) : null;
858
+ if (featuredCard) {
859
+ return /* @__PURE__ */ jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-[minmax(380px,1fr)_minmax(360px,0.95fr)] gap-4", children: [
860
+ /* @__PURE__ */ jsx("div", { className: "min-w-0", children: featuredCard }),
861
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col gap-4", children: [
862
+ platformSection,
863
+ solutionSection
864
+ ] })
865
+ ] });
866
+ }
867
+ return /* @__PURE__ */ jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-2 gap-4", children: [
868
+ platformSection,
869
+ solutionCards.length > 0 && /* @__PURE__ */ jsx("div", { className: "col-span-2 grid grid-cols-4 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxs(
870
+ "div",
871
+ {
872
+ className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
873
+ children: [
874
+ /* @__PURE__ */ jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxs(
875
+ Pressable,
876
+ {
877
+ href: solution.href,
878
+ className: "group flex min-w-0 flex-col text-left",
879
+ children: [
880
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
881
+ /* @__PURE__ */ jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
882
+ /* @__PURE__ */ jsx(
883
+ DynamicIcon,
884
+ {
885
+ name: "lucide/arrow-right",
886
+ size: 14,
887
+ className: "shrink-0 transition-transform group-hover:translate-x-1"
888
+ }
889
+ )
890
+ ] }),
891
+ /* @__PURE__ */ jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
892
+ ]
893
+ }
894
+ ) }),
895
+ /* @__PURE__ */ jsx("menu", { className: "mt-3 grid gap-2", children: solution.subpages.map((subpage) => /* @__PURE__ */ jsxs(
896
+ NavigationMenuLink,
897
+ {
898
+ href: subpage.href,
899
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
900
+ children: [
901
+ /* @__PURE__ */ jsx(
902
+ DynamicIcon,
903
+ {
904
+ name: subpage.icon,
905
+ size: 14,
906
+ className: "shrink-0"
907
+ }
908
+ ),
909
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
910
+ ]
911
+ },
912
+ subpage.id
913
+ )) })
914
+ ]
915
+ },
916
+ solution.id
917
+ )) })
918
+ ] });
919
+ };
845
920
  var ProductsMenu = ({
846
921
  productCategories,
847
922
  featuredHeroCard,
@@ -1064,7 +1139,14 @@ var GlobalMenu = ({
1064
1139
  href: location.href,
1065
1140
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
1066
1141
  children: [
1067
- /* @__PURE__ */ jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: location.icon }),
1142
+ /* @__PURE__ */ jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx(
1143
+ DynamicIcon,
1144
+ {
1145
+ name: location.icon,
1146
+ size: 16,
1147
+ className: "shrink-0"
1148
+ }
1149
+ ) }),
1068
1150
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: location.title })
1069
1151
  ]
1070
1152
  },
@@ -1185,9 +1267,9 @@ var NavbarEnterpriseMega = ({
1185
1267
  ...pressableProps
1186
1268
  } = action;
1187
1269
  return /* @__PURE__ */ jsx(Pressable, { className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
1188
- icon,
1270
+ /* @__PURE__ */ jsx(DynamicIcon, { name: icon, size: 16, className: "shrink-0" }),
1189
1271
  label,
1190
- iconAfter
1272
+ /* @__PURE__ */ jsx(DynamicIcon, { name: iconAfter, size: 16, className: "shrink-0" })
1191
1273
  ] }) }, index);
1192
1274
  });
1193
1275
  }, [actionsSlot, actions]);
@@ -1313,7 +1395,7 @@ var DesktopMenuItem = ({
1313
1395
  if (hasDropdown) {
1314
1396
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
1315
1397
  /* @__PURE__ */ 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 }),
1316
- /* @__PURE__ */ jsx(NavigationMenuContent, { className: "rounded-xl! border-0! p-4!", children: renderDropdownContent(
1398
+ /* @__PURE__ */ jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(
1317
1399
  { ...item, layout: effectiveLayout },
1318
1400
  optixFlowConfig
1319
1401
  ) })
@@ -1470,9 +1552,9 @@ var MobileNavigationMenu = ({
1470
1552
  className: actionClassName,
1471
1553
  ...pressableProps,
1472
1554
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
1473
- icon,
1555
+ /* @__PURE__ */ jsx(DynamicIcon, { name: icon, size: 16, className: "shrink-0" }),
1474
1556
  label,
1475
- iconAfter
1557
+ /* @__PURE__ */ jsx(DynamicIcon, { name: iconAfter, size: 16, className: "shrink-0" })
1476
1558
  ] })
1477
1559
  },
1478
1560
  index
@@ -798,9 +798,9 @@ var NavbarFeatureGrid = ({
798
798
  ...pressableProps
799
799
  } = action;
800
800
  return /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
801
- icon,
801
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: icon, size: 16, className: "shrink-0" }),
802
802
  label,
803
- iconAfter
803
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconAfter, size: 16, className: "shrink-0" })
804
804
  ] }) }, index);
805
805
  });
806
806
  }, [authActionsSlot, authActions]);
@@ -1,8 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
4
- import { L as LogoConfig, N as NavbarLayoutVariant } from './types-ldjwVMcl.cjs';
4
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-mWZcgKth.cjs';
5
5
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
6
+ import './dynamic-icon.cjs';
7
+ import '@page-speed/icon';
6
8
  import 'class-variance-authority';
7
9
  import '@page-speed/pressable';
8
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -1,8 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
4
- import { L as LogoConfig, N as NavbarLayoutVariant } from './types-ldjwVMcl.js';
4
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-hJ2R0GoH.js';
5
5
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.js';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
6
8
  import 'class-variance-authority';
7
9
  import '@page-speed/pressable';
8
10
  import '@opensite/hooks/usePlatformFromUrl';