@opensite/ui 3.4.9 → 3.5.1

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 (139) hide show
  1. package/dist/components.cjs +13 -7
  2. package/dist/components.js +13 -7
  3. package/dist/footer-accordion-social.cjs +1 -1
  4. package/dist/footer-accordion-social.js +1 -1
  5. package/dist/footer-animated-social.cjs +1 -1
  6. package/dist/footer-animated-social.js +1 -1
  7. package/dist/footer-background-card.cjs +1 -1
  8. package/dist/footer-background-card.js +1 -1
  9. package/dist/footer-brand-description.cjs +1 -0
  10. package/dist/footer-brand-description.js +1 -0
  11. package/dist/footer-brand-links-contact.cjs +1 -1
  12. package/dist/footer-brand-links-contact.js +1 -1
  13. package/dist/footer-comprehensive-links.cjs +1 -1
  14. package/dist/footer-comprehensive-links.js +1 -1
  15. package/dist/footer-contact-card.cjs +1 -1
  16. package/dist/footer-contact-card.js +1 -1
  17. package/dist/footer-cta-banner.cjs +1 -1
  18. package/dist/footer-cta-banner.js +1 -1
  19. package/dist/footer-cta-social.cjs +1 -1
  20. package/dist/footer-cta-social.js +1 -1
  21. package/dist/footer-info-cards-accordion.cjs +1 -1
  22. package/dist/footer-info-cards-accordion.js +1 -1
  23. package/dist/footer-links-grid.cjs +1 -0
  24. package/dist/footer-links-grid.js +1 -0
  25. package/dist/footer-nav-social.cjs +1 -0
  26. package/dist/footer-nav-social.js +1 -0
  27. package/dist/footer-newsletter-contact.cjs +1 -1
  28. package/dist/footer-newsletter-contact.js +1 -1
  29. package/dist/footer-newsletter-grid.cjs +1 -0
  30. package/dist/footer-newsletter-grid.js +1 -0
  31. package/dist/footer-newsletter-minimal.cjs +1 -1
  32. package/dist/footer-newsletter-minimal.js +1 -1
  33. package/dist/footer-simple-centered.cjs +1 -1
  34. package/dist/footer-simple-centered.js +1 -1
  35. package/dist/footer-social-apps.cjs +1 -0
  36. package/dist/footer-social-apps.js +1 -0
  37. package/dist/footer-social-newsletter.cjs +1 -0
  38. package/dist/footer-social-newsletter.js +1 -0
  39. package/dist/footer-split-image-accordion.cjs +1 -1
  40. package/dist/footer-split-image-accordion.js +1 -1
  41. package/dist/hero-stats-social-proof.cjs +35 -5
  42. package/dist/hero-stats-social-proof.d.cts +1 -1
  43. package/dist/hero-stats-social-proof.d.ts +1 -1
  44. package/dist/hero-stats-social-proof.js +19 -4
  45. package/dist/hero-tech-carousel.cjs +489 -292
  46. package/dist/hero-tech-carousel.d.cts +137 -32
  47. package/dist/hero-tech-carousel.d.ts +137 -32
  48. package/dist/hero-tech-carousel.js +490 -289
  49. package/dist/index.cjs +13 -7
  50. package/dist/index.js +13 -7
  51. package/dist/navbar-animated-preview.cjs +1 -0
  52. package/dist/navbar-animated-preview.d.cts +15 -1
  53. package/dist/navbar-animated-preview.d.ts +15 -1
  54. package/dist/navbar-animated-preview.js +1 -0
  55. package/dist/navbar-centered-menu.cjs +1 -1
  56. package/dist/navbar-centered-menu.d.cts +15 -1
  57. package/dist/navbar-centered-menu.d.ts +15 -1
  58. package/dist/navbar-centered-menu.js +1 -1
  59. package/dist/navbar-dark-icons.cjs +1 -1
  60. package/dist/navbar-dark-icons.d.cts +15 -1
  61. package/dist/navbar-dark-icons.d.ts +15 -1
  62. package/dist/navbar-dark-icons.js +1 -1
  63. package/dist/navbar-dropdown-menu.cjs +1 -1
  64. package/dist/navbar-dropdown-menu.d.cts +15 -1
  65. package/dist/navbar-dropdown-menu.d.ts +15 -1
  66. package/dist/navbar-dropdown-menu.js +1 -1
  67. package/dist/navbar-education-platform.cjs +1 -0
  68. package/dist/navbar-education-platform.d.cts +15 -1
  69. package/dist/navbar-education-platform.d.ts +15 -1
  70. package/dist/navbar-education-platform.js +1 -0
  71. package/dist/navbar-enterprise-mega.cjs +2 -1
  72. package/dist/navbar-enterprise-mega.d.cts +15 -1
  73. package/dist/navbar-enterprise-mega.d.ts +15 -1
  74. package/dist/navbar-enterprise-mega.js +2 -1
  75. package/dist/navbar-feature-grid.cjs +1 -1
  76. package/dist/navbar-feature-grid.d.cts +19 -1
  77. package/dist/navbar-feature-grid.d.ts +19 -1
  78. package/dist/navbar-feature-grid.js +1 -1
  79. package/dist/navbar-floating-pill.cjs +1 -1
  80. package/dist/navbar-floating-pill.d.cts +15 -1
  81. package/dist/navbar-floating-pill.d.ts +15 -1
  82. package/dist/navbar-floating-pill.js +1 -1
  83. package/dist/navbar-fullscreen-menu.cjs +1 -0
  84. package/dist/navbar-fullscreen-menu.d.cts +15 -1
  85. package/dist/navbar-fullscreen-menu.d.ts +15 -1
  86. package/dist/navbar-fullscreen-menu.js +1 -0
  87. package/dist/navbar-icon-links.cjs +1 -1
  88. package/dist/navbar-icon-links.d.cts +15 -1
  89. package/dist/navbar-icon-links.d.ts +15 -1
  90. package/dist/navbar-icon-links.js +1 -1
  91. package/dist/navbar-image-preview.cjs +1 -1
  92. package/dist/navbar-image-preview.d.cts +15 -1
  93. package/dist/navbar-image-preview.d.ts +15 -1
  94. package/dist/navbar-image-preview.js +1 -1
  95. package/dist/navbar-mega-menu.cjs +1 -1
  96. package/dist/navbar-mega-menu.d.cts +15 -1
  97. package/dist/navbar-mega-menu.d.ts +15 -1
  98. package/dist/navbar-mega-menu.js +1 -1
  99. package/dist/navbar-multi-column-groups.cjs +1 -0
  100. package/dist/navbar-multi-column-groups.d.cts +15 -1
  101. package/dist/navbar-multi-column-groups.d.ts +15 -1
  102. package/dist/navbar-multi-column-groups.js +1 -0
  103. package/dist/navbar-platform-resources.cjs +59 -26
  104. package/dist/navbar-platform-resources.d.cts +16 -2
  105. package/dist/navbar-platform-resources.d.ts +16 -2
  106. package/dist/navbar-platform-resources.js +59 -26
  107. package/dist/navbar-search-focused.cjs +1 -0
  108. package/dist/navbar-search-focused.d.cts +19 -1
  109. package/dist/navbar-search-focused.d.ts +19 -1
  110. package/dist/navbar-search-focused.js +1 -0
  111. package/dist/navbar-sidebar-mobile.cjs +1 -0
  112. package/dist/navbar-sidebar-mobile.d.cts +15 -1
  113. package/dist/navbar-sidebar-mobile.d.ts +15 -1
  114. package/dist/navbar-sidebar-mobile.js +1 -0
  115. package/dist/navbar-simple-links.cjs +1 -0
  116. package/dist/navbar-simple-links.d.cts +19 -1
  117. package/dist/navbar-simple-links.d.ts +19 -1
  118. package/dist/navbar-simple-links.js +1 -0
  119. package/dist/navbar-split-cta.cjs +1 -1
  120. package/dist/navbar-split-cta.d.cts +15 -1
  121. package/dist/navbar-split-cta.d.ts +15 -1
  122. package/dist/navbar-split-cta.js +1 -1
  123. package/dist/navbar-sticky-compact.cjs +1 -0
  124. package/dist/navbar-sticky-compact.d.cts +15 -1
  125. package/dist/navbar-sticky-compact.d.ts +15 -1
  126. package/dist/navbar-sticky-compact.js +1 -0
  127. package/dist/navbar-tabbed-sections.cjs +1 -1
  128. package/dist/navbar-tabbed-sections.d.cts +15 -1
  129. package/dist/navbar-tabbed-sections.d.ts +15 -1
  130. package/dist/navbar-tabbed-sections.js +1 -1
  131. package/dist/navbar-transparent-overlay.cjs +1 -0
  132. package/dist/navbar-transparent-overlay.d.cts +15 -1
  133. package/dist/navbar-transparent-overlay.d.ts +15 -1
  134. package/dist/navbar-transparent-overlay.js +1 -0
  135. package/dist/registry.cjs +380 -223
  136. package/dist/registry.js +380 -223
  137. package/dist/social-link-icon.d.cts +1 -1
  138. package/dist/social-link-icon.d.ts +1 -1
  139. package/package.json +1 -1
package/dist/registry.js CHANGED
@@ -4189,6 +4189,7 @@ function FooterLinksGrid({
4189
4189
  return /* @__PURE__ */ jsx(
4190
4190
  Section,
4191
4191
  {
4192
+ id: "footer-links-grid",
4192
4193
  background,
4193
4194
  spacing,
4194
4195
  pattern,
@@ -4307,6 +4308,7 @@ function FooterSocialNewsletter({
4307
4308
  return /* @__PURE__ */ jsx(
4308
4309
  Section,
4309
4310
  {
4311
+ id: "footer-social-newsletter",
4310
4312
  background,
4311
4313
  spacing,
4312
4314
  pattern,
@@ -4464,6 +4466,7 @@ function FooterSocialApps({
4464
4466
  return /* @__PURE__ */ jsx(
4465
4467
  Section,
4466
4468
  {
4469
+ id: "footer-social-apps",
4467
4470
  background,
4468
4471
  spacing,
4469
4472
  pattern,
@@ -4579,7 +4582,7 @@ function FooterSimpleCentered({
4579
4582
  return /* @__PURE__ */ jsx(
4580
4583
  Section,
4581
4584
  {
4582
- id: sectionId,
4585
+ id: "footer-simple-centered",
4583
4586
  background,
4584
4587
  spacing,
4585
4588
  pattern,
@@ -4709,6 +4712,7 @@ function FooterBrandDescription({
4709
4712
  return /* @__PURE__ */ jsx(
4710
4713
  Section,
4711
4714
  {
4715
+ id: "footer-brand-description",
4712
4716
  background,
4713
4717
  spacing,
4714
4718
  pattern,
@@ -4920,6 +4924,7 @@ function FooterNewsletterGrid({
4920
4924
  return /* @__PURE__ */ jsx(
4921
4925
  Section,
4922
4926
  {
4927
+ id: "footer-newsletter-grid",
4923
4928
  background,
4924
4929
  spacing,
4925
4930
  pattern,
@@ -5036,7 +5041,7 @@ function FooterCtaBanner({
5036
5041
  return /* @__PURE__ */ jsx(
5037
5042
  Section,
5038
5043
  {
5039
- id: sectionId,
5044
+ id: "footer-cta-banner",
5040
5045
  background,
5041
5046
  spacing,
5042
5047
  pattern,
@@ -5257,7 +5262,7 @@ function FooterContactCard({
5257
5262
  return /* @__PURE__ */ jsx(
5258
5263
  Section,
5259
5264
  {
5260
- id: sectionId,
5265
+ id: "footer-contact-card",
5261
5266
  background,
5262
5267
  spacing,
5263
5268
  pattern,
@@ -5442,7 +5447,7 @@ function FooterBackgroundCard({
5442
5447
  return /* @__PURE__ */ jsx(
5443
5448
  Section,
5444
5449
  {
5445
- id: sectionId,
5450
+ id: "footer-background-card",
5446
5451
  background,
5447
5452
  spacing,
5448
5453
  pattern,
@@ -5742,7 +5747,7 @@ function FooterAnimatedSocial({
5742
5747
  return /* @__PURE__ */ jsx(
5743
5748
  Section,
5744
5749
  {
5745
- id: sectionId,
5750
+ id: "footer-animated-social",
5746
5751
  background,
5747
5752
  spacing,
5748
5753
  pattern,
@@ -6010,7 +6015,7 @@ function FooterNewsletterMinimal({
6010
6015
  return /* @__PURE__ */ jsx(
6011
6016
  Section,
6012
6017
  {
6013
- id: sectionId,
6018
+ id: "footer-newsletter-minimal",
6014
6019
  background,
6015
6020
  spacing,
6016
6021
  pattern,
@@ -6227,7 +6232,7 @@ function FooterCtaSocial({
6227
6232
  return /* @__PURE__ */ jsx(
6228
6233
  Section,
6229
6234
  {
6230
- id: sectionId,
6235
+ id: "footer-cta-social",
6231
6236
  background,
6232
6237
  spacing,
6233
6238
  pattern,
@@ -6362,6 +6367,7 @@ function FooterNavSocial({
6362
6367
  return /* @__PURE__ */ jsx(
6363
6368
  Section,
6364
6369
  {
6370
+ id: "footer-nav-social",
6365
6371
  background,
6366
6372
  spacing,
6367
6373
  pattern,
@@ -27692,7 +27698,7 @@ function FooterBrandLinksContact({
27692
27698
  return /* @__PURE__ */ jsxs(
27693
27699
  Section,
27694
27700
  {
27695
- id: sectionId,
27701
+ id: "footer-brand-links-contact",
27696
27702
  background,
27697
27703
  spacing,
27698
27704
  pattern,
@@ -27837,7 +27843,7 @@ function FooterComprehensiveLinks({
27837
27843
  return /* @__PURE__ */ jsxs(
27838
27844
  Section,
27839
27845
  {
27840
- id: sectionId,
27846
+ id: "footer-comprehensive-links",
27841
27847
  background,
27842
27848
  spacing,
27843
27849
  pattern,
@@ -42842,7 +42848,7 @@ function FooterNewsletterContact({
42842
42848
  return /* @__PURE__ */ jsx(
42843
42849
  Section,
42844
42850
  {
42845
- id: sectionId,
42851
+ id: "footer-newsletter-contact",
42846
42852
  background,
42847
42853
  spacing,
42848
42854
  pattern,
@@ -42989,7 +42995,7 @@ function FooterSplitImageAccordion({
42989
42995
  return /* @__PURE__ */ jsx(
42990
42996
  Section,
42991
42997
  {
42992
- id: sectionId,
42998
+ id: "footer-split-image-accordion",
42993
42999
  background,
42994
43000
  spacing,
42995
43001
  pattern,
@@ -43247,7 +43253,7 @@ function FooterAccordionSocial({
43247
43253
  return /* @__PURE__ */ jsx(
43248
43254
  Section,
43249
43255
  {
43250
- id: sectionId,
43256
+ id: "footer-accordion-social",
43251
43257
  background,
43252
43258
  spacing,
43253
43259
  pattern,
@@ -43369,7 +43375,7 @@ function FooterInfoCardsAccordion({
43369
43375
  return /* @__PURE__ */ jsx(
43370
43376
  Section,
43371
43377
  {
43372
- id: sectionId,
43378
+ id: "footer-info-cards-accordion",
43373
43379
  background,
43374
43380
  spacing,
43375
43381
  pattern,
@@ -51192,105 +51198,219 @@ function HeroAnnouncementBadge({
51192
51198
  }
51193
51199
  );
51194
51200
  }
51201
+ var HERO_TECH_CAROUSEL_MAX_ITEMS = 4;
51202
+ function resolveLogoSrc(logo) {
51203
+ if (typeof logo.src === "string") return logo.src;
51204
+ return logo.src?.light;
51205
+ }
51206
+ function HeroPanel({
51207
+ item,
51208
+ defaultAutoplayIntervalMs,
51209
+ optixFlowConfig,
51210
+ panelContentClassName
51211
+ }) {
51212
+ const {
51213
+ logo,
51214
+ logoSlot,
51215
+ title,
51216
+ content,
51217
+ actions,
51218
+ backgroundMedia,
51219
+ backgroundAutoplayIntervalMs,
51220
+ id,
51221
+ className,
51222
+ contentClassName,
51223
+ logoClassName,
51224
+ titleClassName,
51225
+ textClassName,
51226
+ actionsClassName,
51227
+ overlayClassName,
51228
+ optixFlowConfig: itemOptixFlowConfig
51229
+ } = item;
51230
+ const resolvedOptixFlow = itemOptixFlowConfig ?? optixFlowConfig;
51231
+ const renderBackground = useMemo(() => {
51232
+ if (!backgroundMedia || backgroundMedia.length === 0) return null;
51233
+ if (backgroundMedia.length === 1) {
51234
+ const image = backgroundMedia[0];
51235
+ if (!image?.src) return null;
51236
+ return /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 z-0", children: [
51237
+ /* @__PURE__ */ jsx(
51238
+ Img,
51239
+ {
51240
+ src: image.src,
51241
+ alt: image.alt ?? "",
51242
+ className: cn(
51243
+ "h-full w-full object-cover object-center",
51244
+ image.className
51245
+ ),
51246
+ optixFlowConfig: image.optixFlowConfig ?? resolvedOptixFlow,
51247
+ loading: "eager"
51248
+ }
51249
+ ),
51250
+ /* @__PURE__ */ jsx(
51251
+ "div",
51252
+ {
51253
+ className: cn(
51254
+ "absolute inset-0 bg-linear-to-b from-black/55 via-black/45 to-black/65",
51255
+ overlayClassName
51256
+ )
51257
+ }
51258
+ )
51259
+ ] });
51260
+ }
51261
+ return /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 z-0", children: [
51262
+ /* @__PURE__ */ jsx(
51263
+ ImageSlider,
51264
+ {
51265
+ images: backgroundMedia,
51266
+ className: "h-full w-full rounded-none border-0 shadow-none",
51267
+ imageClassName: "object-cover object-center",
51268
+ transition: "fade",
51269
+ autoplay: true,
51270
+ autoplayIntervalMs: backgroundAutoplayIntervalMs ?? defaultAutoplayIntervalMs,
51271
+ enableKeyboard: false,
51272
+ overlay: false,
51273
+ optixFlowConfig: resolvedOptixFlow
51274
+ }
51275
+ ),
51276
+ /* @__PURE__ */ jsx(
51277
+ "div",
51278
+ {
51279
+ className: cn(
51280
+ "absolute inset-0 bg-linear-to-b from-black/55 via-black/45 to-black/65",
51281
+ overlayClassName
51282
+ )
51283
+ }
51284
+ )
51285
+ ] });
51286
+ }, [
51287
+ backgroundMedia,
51288
+ backgroundAutoplayIntervalMs,
51289
+ defaultAutoplayIntervalMs,
51290
+ resolvedOptixFlow,
51291
+ overlayClassName
51292
+ ]);
51293
+ const hasBackground = !!backgroundMedia && backgroundMedia.length > 0;
51294
+ const renderLogo = useMemo(() => {
51295
+ if (logoSlot) return logoSlot;
51296
+ if (!logo) return null;
51297
+ const src = resolveLogoSrc(logo);
51298
+ if (!src) return null;
51299
+ return /* @__PURE__ */ jsx(
51300
+ Img,
51301
+ {
51302
+ src,
51303
+ alt: logo.alt,
51304
+ className: cn(
51305
+ "h-10 md:h-12 lg:h-14 w-auto max-w-[70%] object-contain",
51306
+ logo.imgClassName,
51307
+ logoClassName
51308
+ ),
51309
+ optixFlowConfig: resolvedOptixFlow
51310
+ }
51311
+ );
51312
+ }, [logoSlot, logo, logoClassName, resolvedOptixFlow]);
51313
+ const renderTitle = useMemo(() => {
51314
+ if (title === void 0 || title === null || title === "") return null;
51315
+ if (typeof title === "string") {
51316
+ return /* @__PURE__ */ jsx(
51317
+ "h2",
51318
+ {
51319
+ className: cn(
51320
+ "text-3xl md:text-4xl lg:text-5xl font-semibold text-balance",
51321
+ hasBackground && "text-white text-shadow-lg",
51322
+ titleClassName
51323
+ ),
51324
+ children: title
51325
+ }
51326
+ );
51327
+ }
51328
+ return /* @__PURE__ */ jsx("div", { className: titleClassName, children: title });
51329
+ }, [title, titleClassName, hasBackground]);
51330
+ const renderContent = useMemo(() => {
51331
+ if (content === void 0 || content === null || content === "") return null;
51332
+ if (typeof content === "string") {
51333
+ return /* @__PURE__ */ jsx(
51334
+ "p",
51335
+ {
51336
+ className: cn(
51337
+ "text-base md:text-lg leading-relaxed text-balance",
51338
+ hasBackground ? "text-white/90 text-shadow" : "text-muted-foreground",
51339
+ textClassName
51340
+ ),
51341
+ children: content
51342
+ }
51343
+ );
51344
+ }
51345
+ return /* @__PURE__ */ jsx("div", { className: textClassName, children: content });
51346
+ }, [content, textClassName, hasBackground]);
51347
+ return /* @__PURE__ */ jsxs(
51348
+ "div",
51349
+ {
51350
+ id,
51351
+ "data-slot": "hero-tech-carousel-panel",
51352
+ className: cn(
51353
+ // Mobile: stack vertically with content-fit height + padding.
51354
+ "relative w-full overflow-hidden",
51355
+ // Desktop: flex children share the row equally and fill height.
51356
+ "md:h-full md:flex-1 md:basis-0 md:min-w-0",
51357
+ // Provide a default panel background when no media is supplied so
51358
+ // separators between panels remain visible.
51359
+ !hasBackground && "bg-muted/30",
51360
+ className
51361
+ ),
51362
+ children: [
51363
+ renderBackground,
51364
+ /* @__PURE__ */ jsxs(
51365
+ "div",
51366
+ {
51367
+ className: cn(
51368
+ "relative z-10 flex h-full w-full flex-col items-center justify-center gap-4 md:gap-6",
51369
+ // Mobile padding keeps content readable when stacked.
51370
+ "px-6 py-12 md:px-8 md:py-12 lg:px-10",
51371
+ // Center content vertically; on desktop columns can be quite tall.
51372
+ "text-center",
51373
+ panelContentClassName,
51374
+ contentClassName
51375
+ ),
51376
+ children: [
51377
+ renderLogo,
51378
+ renderTitle,
51379
+ renderContent,
51380
+ /* @__PURE__ */ jsx(
51381
+ BlockActions,
51382
+ {
51383
+ actions,
51384
+ actionsClassName,
51385
+ verticalSpacing: "mt-2 md:mt-4",
51386
+ mobileConfig: { width: "fit", position: "center" }
51387
+ }
51388
+ )
51389
+ ]
51390
+ }
51391
+ )
51392
+ ]
51393
+ }
51394
+ );
51395
+ }
51195
51396
  function HeroTechCarousel({
51196
51397
  sectionId = "hero-tech-carousel",
51197
- heading,
51198
- description,
51199
- technologies,
51200
- carouselSlot,
51201
- autoplayDelay = 5e3,
51398
+ items,
51399
+ backgroundAutoplayIntervalMs = 5e3,
51202
51400
  background,
51401
+ spacing = "none",
51203
51402
  pattern,
51204
51403
  patternOpacity,
51205
51404
  className,
51206
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
51207
- spacing = "py-32",
51208
- headingClassName,
51209
- descriptionClassName,
51405
+ containerClassName = "px-0 sm:px-0 lg:px-0 max-w-full relative z-10 h-auto md:h-dvh w-screen flex items-stretch",
51406
+ panelsClassName,
51407
+ panelContentClassName,
51210
51408
  optixFlowConfig
51211
51409
  }) {
51212
- const plugin = useRef(
51213
- Autoplay({ delay: autoplayDelay, stopOnInteraction: false })
51214
- );
51215
- const [api, setApi] = useState();
51216
- const [current, setCurrent] = useState(0);
51217
- const [fadeIn, setFadeIn] = useState(true);
51218
- useEffect(() => {
51219
- if (!api) return;
51220
- setCurrent(api.selectedScrollSnap());
51221
- const updateCurrent = () => {
51222
- setFadeIn(false);
51223
- setTimeout(() => {
51224
- setCurrent(api.selectedScrollSnap());
51225
- setFadeIn(true);
51226
- }, 200);
51227
- };
51228
- api.on("select", updateCurrent);
51229
- api.on("settle", updateCurrent);
51230
- return () => {
51231
- api.off("select", updateCurrent);
51232
- api.off("settle", updateCurrent);
51233
- };
51234
- }, [api]);
51235
- const selectTechnology = (index) => {
51236
- if (api) {
51237
- api.scrollTo(index);
51238
- }
51239
- };
51240
- const renderCarousel = useMemo(() => {
51241
- if (carouselSlot) return carouselSlot;
51242
- if (!technologies || technologies.length === 0) return null;
51243
- return /* @__PURE__ */ jsx(
51244
- Carousel,
51245
- {
51246
- setApi,
51247
- plugins: [plugin.current],
51248
- opts: {
51249
- loop: true
51250
- },
51251
- className: "relative mx-auto w-full max-w-3xl before:absolute before:top-0 before:bottom-0 before:left-0 before:z-10 before:w-36 before:bg-linear-to-r before:from-background before:to-transparent after:absolute after:top-0 after:right-0 after:bottom-0 after:z-10 after:w-36 after:bg-linear-to-l after:from-background after:to-transparent",
51252
- onMouseEnter: plugin.current.stop,
51253
- onMouseLeave: plugin.current.reset,
51254
- children: /* @__PURE__ */ jsx(CarouselContent, { children: technologies.map((technology, idx) => /* @__PURE__ */ jsx(
51255
- CarouselItem,
51256
- {
51257
- className: "basis-1/3 select-none sm:basis-1/4 md:basis-1/6",
51258
- children: /* @__PURE__ */ jsxs(
51259
- "div",
51260
- {
51261
- className: cn(
51262
- "flex cursor-pointer items-center justify-center gap-2 rounded-md border px-4 py-2",
51263
- idx === current ? "border-input" : "border-transparent"
51264
- ),
51265
- onClick: () => selectTechnology(idx),
51266
- children: [
51267
- technology.logo && /* @__PURE__ */ jsx(
51268
- Img,
51269
- {
51270
- className: "h-4 shrink-0 md:h-7",
51271
- src: technology.logo,
51272
- alt: technology.name,
51273
- optixFlowConfig
51274
- }
51275
- ),
51276
- /* @__PURE__ */ jsx("p", { className: "text-nowrap", children: technology.name })
51277
- ]
51278
- }
51279
- )
51280
- },
51281
- idx
51282
- )) })
51283
- }
51284
- );
51285
- }, [
51286
- carouselSlot,
51287
- technologies,
51288
- setApi,
51289
- plugin,
51290
- current,
51291
- selectTechnology,
51292
- optixFlowConfig
51293
- ]);
51410
+ const visibleItems = useMemo(() => {
51411
+ if (!items || items.length === 0) return [];
51412
+ return items.slice(0, HERO_TECH_CAROUSEL_MAX_ITEMS);
51413
+ }, [items]);
51294
51414
  return /* @__PURE__ */ jsx(
51295
51415
  Section,
51296
51416
  {
@@ -51299,80 +51419,37 @@ function HeroTechCarousel({
51299
51419
  spacing,
51300
51420
  pattern,
51301
51421
  patternOpacity,
51302
- className,
51422
+ className: cn(
51423
+ "relative w-screen overflow-hidden",
51424
+ // Desktop fills the viewport; on mobile content drives the height.
51425
+ "h-auto md:h-dvh",
51426
+ "px-0 pt-0 pb-0",
51427
+ className
51428
+ ),
51303
51429
  containerClassName,
51304
- children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
51305
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
51306
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
51307
- "h1",
51308
- {
51309
- className: cn(
51310
- "mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl text-balance",
51311
- headingClassName
51312
- ),
51313
- children: heading
51314
- }
51315
- ) : /* @__PURE__ */ jsx(
51316
- "h1",
51317
- {
51318
- className: cn(
51319
- "mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl text-balance",
51320
- headingClassName
51321
- ),
51322
- children: heading
51323
- }
51324
- )),
51325
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
51326
- "p",
51327
- {
51328
- className: cn(
51329
- "mx-auto mt-4 max-w-xl text-center text-lg text-balance",
51330
- descriptionClassName
51331
- ),
51332
- children: description
51333
- }
51334
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
51335
- technologies && technologies.length > 0 && /* @__PURE__ */ jsx(
51336
- "div",
51430
+ children: visibleItems.length === 0 ? null : /* @__PURE__ */ jsx(
51431
+ "div",
51432
+ {
51433
+ "data-slot": "hero-tech-carousel-panels",
51434
+ className: cn(
51435
+ // Mobile: vertical stack with auto height per panel.
51436
+ "flex w-full flex-col",
51437
+ // Desktop: equal-width row that fills section height.
51438
+ "md:h-full md:flex-row md:items-stretch",
51439
+ panelsClassName
51440
+ ),
51441
+ children: visibleItems.map((item, idx) => /* @__PURE__ */ jsx(
51442
+ HeroPanel,
51337
51443
  {
51338
- className: cn(
51339
- "mx-auto bg-muted mt-8 mb-12 flex h-[60px] w-fit items-center gap-2 rounded-md px-4 py-2 text-center"
51340
- ),
51341
- children: /* @__PURE__ */ jsxs(
51342
- "div",
51343
- {
51344
- className: cn(
51345
- "flex items-center gap-2 transition-opacity duration-300",
51346
- fadeIn ? "opacity-100" : "opacity-0"
51347
- ),
51348
- children: [
51349
- technologies && current && technologies[current] && technologies[current].logo ? /* @__PURE__ */ jsx(
51350
- Img,
51351
- {
51352
- src: technologies[current]?.logo,
51353
- alt: technologies[current]?.name,
51354
- className: "h-4 md:h-7",
51355
- optixFlowConfig
51356
- }
51357
- ) : null,
51358
- /* @__PURE__ */ jsx(
51359
- "p",
51360
- {
51361
- className: cn(
51362
- "px-2 font-mono text-sm",
51363
- technologies && technologies[current] && technologies[current].logo ? "border-l" : ""
51364
- ),
51365
- children: technologies[current]?.command
51366
- }
51367
- )
51368
- ]
51369
- }
51370
- )
51371
- }
51372
- )
51373
- ] }),
51374
- renderCarousel
51375
- ] })
51444
+ item,
51445
+ defaultAutoplayIntervalMs: backgroundAutoplayIntervalMs,
51446
+ optixFlowConfig,
51447
+ panelContentClassName
51448
+ },
51449
+ item.id ?? idx
51450
+ ))
51451
+ }
51452
+ )
51376
51453
  }
51377
51454
  );
51378
51455
  }
@@ -56393,7 +56470,7 @@ function HeroStatsSocialProof({
56393
56470
  "pr-4 md:pr-6 shadow-2xl bg-card text-card-foreground"
56394
56471
  ),
56395
56472
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
56396
- statusCard.icon && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: statusCard.icon }),
56473
+ statusCard.icon ? /* @__PURE__ */ jsx("div", { className: "flex shrink-0 h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: statusCard.icon }) }) : null,
56397
56474
  /* @__PURE__ */ jsxs("div", { className: "text-balance", children: [
56398
56475
  statusCard.title && /* @__PURE__ */ jsx("div", { className: "font-semibold text-sm md:text-md leading-snug", children: statusCard.title }),
56399
56476
  statusCard.subtitle && /* @__PURE__ */ jsx("div", { className: "text-sm leading-snug tracking-tight", children: statusCard.subtitle })
@@ -63167,7 +63244,7 @@ var NavbarDropdownMenu = ({
63167
63244
  return /* @__PURE__ */ jsx(
63168
63245
  Section,
63169
63246
  {
63170
- id: sectionId,
63247
+ id: "navbar-dropdown-menu",
63171
63248
  background,
63172
63249
  spacing: spacingOverride ?? spacing,
63173
63250
  className: sectionClasses,
@@ -63395,7 +63472,7 @@ var NavbarCenteredMenu = ({
63395
63472
  return /* @__PURE__ */ jsx(
63396
63473
  Section,
63397
63474
  {
63398
- id: sectionId,
63475
+ id: "navbar-centered-menu",
63399
63476
  background,
63400
63477
  spacing: spacingOverride ?? spacing,
63401
63478
  className: sectionClasses,
@@ -63772,7 +63849,7 @@ var NavbarMegaMenu = ({
63772
63849
  return /* @__PURE__ */ jsx(
63773
63850
  Section,
63774
63851
  {
63775
- id: sectionId,
63852
+ id: "navbar-mega-menu",
63776
63853
  background,
63777
63854
  spacing: spacingOverride ?? spacing,
63778
63855
  className: sectionClasses,
@@ -64449,7 +64526,7 @@ var NavbarEnterpriseMega = ({
64449
64526
  actions,
64450
64527
  actionsSlot,
64451
64528
  layoutVariant = "fullScreenContainerizedLinks",
64452
- background,
64529
+ background = "white",
64453
64530
  spacing,
64454
64531
  pattern,
64455
64532
  patternOpacity,
@@ -64504,6 +64581,7 @@ var NavbarEnterpriseMega = ({
64504
64581
  /* @__PURE__ */ jsx(
64505
64582
  Section,
64506
64583
  {
64584
+ id: "navbar-enterprise-mega",
64507
64585
  background,
64508
64586
  spacing: spacingOverride ?? spacing,
64509
64587
  className: cn(
@@ -64870,7 +64948,7 @@ var NavbarFeatureGrid = ({
64870
64948
  return /* @__PURE__ */ jsx(
64871
64949
  Section,
64872
64950
  {
64873
- id: sectionId,
64951
+ id: "navbar-feature-grid",
64874
64952
  background,
64875
64953
  spacing: spacingOverride ?? spacing,
64876
64954
  className: sectionClasses,
@@ -65061,7 +65139,7 @@ var NavbarFloatingPill = ({
65061
65139
  return /* @__PURE__ */ jsx(
65062
65140
  Section,
65063
65141
  {
65064
- id: sectionId,
65142
+ id: "navbar-floating-pill",
65065
65143
  background,
65066
65144
  spacing: spacingOverride ?? spacing,
65067
65145
  className: sectionClasses,
@@ -65279,8 +65357,41 @@ var NavbarPlatformResources = ({
65279
65357
  const hasDropdownItems = (link) => Boolean(link.links?.length || link.dropdownGroups?.length);
65280
65358
  const renderDropdownContent3 = (link) => {
65281
65359
  const layout = link.layout || "simple-list";
65360
+ if (layout === "list-with-icons") {
65361
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[900px] max-w-[calc(100vw-2rem)] overflow-y-auto p-4 md:!w-[900px]", children: /* @__PURE__ */ jsx("div", { className: "grid w-full grid-cols-3 gap-4", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxs(
65362
+ NavigationMenuLink,
65363
+ {
65364
+ href: getLinkUrl(item),
65365
+ className: "!flex h-full min-h-20 !w-full min-w-0 flex-row items-center gap-4 rounded-lg border border-input bg-background p-4 hover:bg-accent hover:text-accent-foreground",
65366
+ children: [
65367
+ item.image && /* @__PURE__ */ jsx("div", { className: "h-12 w-12 shrink-0 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
65368
+ Img,
65369
+ {
65370
+ src: item.image,
65371
+ alt: typeof item.label === "string" ? item.label : "Menu item",
65372
+ className: "h-full w-full object-cover object-center",
65373
+ optixFlowConfig
65374
+ }
65375
+ ) }),
65376
+ !item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: /* @__PURE__ */ jsx(
65377
+ DynamicIcon,
65378
+ {
65379
+ name: item.icon || item.iconName,
65380
+ size: 18,
65381
+ className: "shrink-0"
65382
+ }
65383
+ ) }),
65384
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 overflow-hidden", children: [
65385
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium truncate", children: item.label }),
65386
+ item.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
65387
+ ] })
65388
+ ]
65389
+ },
65390
+ `${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
65391
+ )) }) });
65392
+ }
65282
65393
  if (layout === "simple-list") {
65283
- return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "w-[400px] max-w-[calc(100vw-2rem)] p-3", children: /* @__PURE__ */ jsx("ul", { className: "w-full space-y-1", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsx(
65394
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[400px] max-w-[calc(100vw-2rem)] p-3 md:!w-[400px]", children: /* @__PURE__ */ jsx("ul", { className: "w-full space-y-1", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsx(
65284
65395
  "li",
65285
65396
  {
65286
65397
  className: "w-full",
@@ -65299,8 +65410,8 @@ var NavbarPlatformResources = ({
65299
65410
  }
65300
65411
  ) }),
65301
65412
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
65302
- /* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: item.label }),
65303
- item.description && /* @__PURE__ */ jsx("div", { className: "break-words text-xs text-muted-foreground group-hover/link:text-foreground", children: item.description })
65413
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium truncate", children: item.label }),
65414
+ item.description && /* @__PURE__ */ jsx("div", { className: "truncate text-xs text-muted-foreground group-hover/link:text-foreground", children: item.description })
65304
65415
  ] })
65305
65416
  ]
65306
65417
  }
@@ -65312,7 +65423,7 @@ var NavbarPlatformResources = ({
65312
65423
  if (layout === "featured-grid" && link.links && link.links.length > 0) {
65313
65424
  const featuredItem = link.links[0];
65314
65425
  const gridItems = link.links.slice(1);
65315
- return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "w-[900px] max-w-[calc(100vw-2rem)] p-6", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(260px,0.8fr)_minmax(0,1.2fr)] gap-8", children: [
65426
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[900px] max-w-[calc(100vw-2rem)] p-6 md:!w-[900px]", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(260px,0.8fr)_minmax(0,1.2fr)] gap-8", children: [
65316
65427
  /* @__PURE__ */ jsx(
65317
65428
  NavigationMenuLink,
65318
65429
  {
@@ -65329,8 +65440,8 @@ var NavbarPlatformResources = ({
65329
65440
  }
65330
65441
  ) }),
65331
65442
  /* @__PURE__ */ jsxs("div", { className: "p-5 xl:p-8", children: [
65332
- /* @__PURE__ */ jsx("div", { className: "mb-2 text-base", children: featuredItem.label }),
65333
- featuredItem.description && /* @__PURE__ */ jsx("div", { className: "text-sm font-normal text-muted-foreground", children: featuredItem.description })
65443
+ /* @__PURE__ */ jsx("div", { className: "mb-2 text-base truncate", children: featuredItem.label }),
65444
+ featuredItem.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: featuredItem.description })
65334
65445
  ] })
65335
65446
  ] })
65336
65447
  }
@@ -65350,8 +65461,8 @@ var NavbarPlatformResources = ({
65350
65461
  size: 20
65351
65462
  }
65352
65463
  ) }),
65353
- /* @__PURE__ */ jsx("div", { className: "mb-1 break-words text-base", children: item.label }),
65354
- item.description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-normal text-muted-foreground", children: item.description })
65464
+ /* @__PURE__ */ jsx("div", { className: "mb-1 truncate text-base", children: item.label }),
65465
+ item.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
65355
65466
  ]
65356
65467
  },
65357
65468
  `${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
@@ -65361,7 +65472,7 @@ var NavbarPlatformResources = ({
65361
65472
  }
65362
65473
  if (layout === "two-column-cta" && link.dropdownGroups && link.dropdownGroups.length > 0) {
65363
65474
  const ctaItem = link.links && link.links.length > 0 ? link.links[link.links.length - 1] : null;
65364
- return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "w-[900px] max-w-[calc(100vw-2rem)] p-6", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-4", children: [
65475
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[900px] max-w-[calc(100vw-2rem)] p-6 md:!w-[900px]", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] gap-4", children: [
65365
65476
  /* @__PURE__ */ jsx("div", { className: "min-w-0", children: link.dropdownGroups[0] && /* @__PURE__ */ jsxs(Fragment, { children: [
65366
65477
  /* @__PURE__ */ jsx("div", { className: "mb-6 text-xs tracking-widest text-muted-foreground uppercase", children: link.dropdownGroups[0].label }),
65367
65478
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-4", children: link.dropdownGroups[0].links.map((item, itemIndex) => /* @__PURE__ */ jsxs(
@@ -65377,7 +65488,7 @@ var NavbarPlatformResources = ({
65377
65488
  size: 16
65378
65489
  }
65379
65490
  ) }),
65380
- /* @__PURE__ */ jsx("div", { className: "min-w-0 break-words text-base", children: item.label })
65491
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 truncate text-base", children: item.label })
65381
65492
  ]
65382
65493
  },
65383
65494
  `${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
@@ -65401,8 +65512,8 @@ var NavbarPlatformResources = ({
65401
65512
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col p-5 xl:p-8", children: [
65402
65513
  ctaItem.background && /* @__PURE__ */ jsx("div", { className: "mb-8 text-xs tracking-widest text-muted-foreground uppercase", children: ctaItem.background }),
65403
65514
  /* @__PURE__ */ jsxs("div", { className: "mt-auto", children: [
65404
- /* @__PURE__ */ jsx("div", { className: "mb-4 break-words text-xl", children: ctaItem.label }),
65405
- ctaItem.description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-normal text-muted-foreground", children: ctaItem.description })
65515
+ /* @__PURE__ */ jsx("div", { className: "mb-4 truncate text-xl", children: ctaItem.label }),
65516
+ ctaItem.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: ctaItem.description })
65406
65517
  ] })
65407
65518
  ] })
65408
65519
  ] })
@@ -65413,7 +65524,7 @@ var NavbarPlatformResources = ({
65413
65524
  if (layout === "list-showcase" && link.dropdownGroups && link.dropdownGroups.length > 0) {
65414
65525
  const listItems = link.dropdownGroups[0].links;
65415
65526
  const showcaseItems = link.links || [];
65416
- return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "w-[900px] max-w-[calc(100vw-2rem)] p-6", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(260px,0.7fr)_minmax(0,1.3fr)] gap-8", children: [
65527
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[900px] max-w-[calc(100vw-2rem)] p-6 md:!w-[900px]", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(260px,0.7fr)_minmax(0,1.3fr)] gap-8", children: [
65417
65528
  /* @__PURE__ */ jsx("div", { className: "min-w-0", children: /* @__PURE__ */ jsxs(Fragment, { children: [
65418
65529
  /* @__PURE__ */ jsx("div", { className: "mb-4 text-xs tracking-widest text-muted-foreground uppercase", children: link.dropdownGroups[0].label }),
65419
65530
  link.dropdownGroups[0].description && /* @__PURE__ */ jsx("div", { className: "mb-6 text-sm font-normal text-muted-foreground", children: link.dropdownGroups[0].description }),
@@ -65430,7 +65541,7 @@ var NavbarPlatformResources = ({
65430
65541
  size: 16
65431
65542
  }
65432
65543
  ),
65433
- /* @__PURE__ */ jsx("div", { className: "min-w-0 break-words text-base", children: item.label })
65544
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 truncate text-base", children: item.label })
65434
65545
  ]
65435
65546
  },
65436
65547
  `${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
@@ -65443,8 +65554,8 @@ var NavbarPlatformResources = ({
65443
65554
  className: "!flex !w-full min-w-0 flex-row items-center overflow-clip rounded-lg border border-input bg-background p-0 hover:bg-transparent",
65444
65555
  children: [
65445
65556
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 p-5 xl:p-8", children: [
65446
- /* @__PURE__ */ jsx("div", { className: "mb-2 break-words text-base", children: showcase.label }),
65447
- showcase.description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-normal text-muted-foreground", children: showcase.description })
65557
+ /* @__PURE__ */ jsx("div", { className: "mb-2 truncate text-base", children: showcase.label }),
65558
+ showcase.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: showcase.description })
65448
65559
  ] }),
65449
65560
  /* @__PURE__ */ jsx("div", { className: "h-[154px] max-w-[264px] shrink-0", children: /* @__PURE__ */ jsx(
65450
65561
  Img,
@@ -65463,7 +65574,7 @@ var NavbarPlatformResources = ({
65463
65574
  }
65464
65575
  if (layout === "multi-section" && link.dropdownGroups) {
65465
65576
  const ctaItem = link.links && link.links.length > 0 ? link.links[link.links.length - 1] : null;
65466
- return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "w-[900px] max-w-[calc(100vw-2rem)] p-8", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-8", children: [
65577
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[900px] max-w-[calc(100vw-2rem)] p-8 md:!w-[900px]", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-8", children: [
65467
65578
  link.dropdownGroups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
65468
65579
  "div",
65469
65580
  {
@@ -65476,8 +65587,8 @@ var NavbarPlatformResources = ({
65476
65587
  href: getLinkUrl(item),
65477
65588
  className: "!flex h-full w-full min-w-0 flex-col overflow-clip rounded-lg border border-input bg-background p-5 hover:bg-accent hover:text-accent-foreground xl:p-8",
65478
65589
  children: /* @__PURE__ */ jsxs("div", { className: "mt-auto", children: [
65479
- /* @__PURE__ */ jsx("div", { className: "mb-2 break-words text-base", children: item.label }),
65480
- item.description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-normal text-muted-foreground", children: item.description })
65590
+ /* @__PURE__ */ jsx("div", { className: "mb-2 truncate text-base", children: item.label }),
65591
+ item.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
65481
65592
  ] })
65482
65593
  },
65483
65594
  `${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
@@ -65494,8 +65605,8 @@ var NavbarPlatformResources = ({
65494
65605
  className: "mb-6 !flex !w-full min-w-0 flex-row overflow-clip rounded-lg border border-input bg-background p-0 hover:bg-transparent",
65495
65606
  children: [
65496
65607
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 p-5 xl:p-8", children: [
65497
- /* @__PURE__ */ jsx("div", { className: "mb-2 break-words text-base", children: ctaItem.label }),
65498
- ctaItem.description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-normal text-muted-foreground", children: ctaItem.description })
65608
+ /* @__PURE__ */ jsx("div", { className: "mb-2 truncate text-base", children: ctaItem.label }),
65609
+ ctaItem.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: ctaItem.description })
65499
65610
  ] }),
65500
65611
  ctaItem.image && /* @__PURE__ */ jsx("div", { className: "w-1/3 max-w-[130px] shrink-0", children: /* @__PURE__ */ jsx(
65501
65612
  Img,
@@ -65511,12 +65622,12 @@ var NavbarPlatformResources = ({
65511
65622
  ),
65512
65623
  ctaItem.background && /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-3 rounded-lg bg-secondary/30 p-3 hover:bg-secondary/80 focus:bg-secondary/80", children: [
65513
65624
  /* @__PURE__ */ jsx("span", { className: "rounded-md bg-secondary px-2 py-1 text-xs font-semibold text-secondary-foreground", children: ctaItem.background }),
65514
- ctaItem.description && /* @__PURE__ */ jsx("span", { className: "text-sm text-ellipsis text-secondary-foreground", children: ctaItem.description })
65625
+ ctaItem.description && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-secondary-foreground", children: ctaItem.description })
65515
65626
  ] })
65516
65627
  ] })
65517
65628
  ] }) });
65518
65629
  }
65519
- return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "w-[900px] max-w-[calc(100vw-2rem)] p-4", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxs(
65630
+ return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "md:left-1/2 md:-translate-x-1/2 !w-[900px] max-w-[calc(100vw-2rem)] p-4 md:!w-[900px]", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxs(
65520
65631
  NavigationMenuLink,
65521
65632
  {
65522
65633
  href: getLinkUrl(item),
@@ -65533,8 +65644,8 @@ var NavbarPlatformResources = ({
65533
65644
  ) }),
65534
65645
  !item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon || item.iconName, size: 18 }) }),
65535
65646
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
65536
- /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-medium text-foreground", children: item.label }),
65537
- item.description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-normal text-muted-foreground", children: item.description })
65647
+ /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-medium text-foreground", children: item.label }),
65648
+ item.description && /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
65538
65649
  ] })
65539
65650
  ]
65540
65651
  },
@@ -65571,7 +65682,7 @@ var NavbarPlatformResources = ({
65571
65682
  return /* @__PURE__ */ jsx(
65572
65683
  Section,
65573
65684
  {
65574
- id: sectionId,
65685
+ id: "navbar-platform-resources",
65575
65686
  background,
65576
65687
  spacing: spacingOverride ?? spacing,
65577
65688
  className: sectionClasses,
@@ -65839,7 +65950,7 @@ var NavbarImagePreview = ({
65839
65950
  return /* @__PURE__ */ jsxs(
65840
65951
  Section,
65841
65952
  {
65842
- id: sectionId,
65953
+ id: "navbar-image-preview",
65843
65954
  background,
65844
65955
  spacing: spacingOverride ?? spacing,
65845
65956
  className: sectionClasses,
@@ -66222,7 +66333,7 @@ var NavbarDarkIcons = ({
66222
66333
  return /* @__PURE__ */ jsxs(
66223
66334
  Section,
66224
66335
  {
66225
- id: sectionId,
66336
+ id: "navbar-dark-icons",
66226
66337
  background,
66227
66338
  spacing: spacingOverride ?? spacing,
66228
66339
  className: cn("dark pointer-events-auto relative z-999", sectionClasses),
@@ -66572,6 +66683,7 @@ var NavbarAnimatedPreview = ({
66572
66683
  /* @__PURE__ */ jsx(
66573
66684
  Section,
66574
66685
  {
66686
+ id: "navbar-animated-preview",
66575
66687
  background,
66576
66688
  spacing: spacingOverride ?? spacing,
66577
66689
  className: cn(
@@ -67097,6 +67209,7 @@ var NavbarMultiColumnGroups = ({
67097
67209
  /* @__PURE__ */ jsx(
67098
67210
  Section,
67099
67211
  {
67212
+ id: "navbar-multi-column-groups",
67100
67213
  background,
67101
67214
  spacing: spacingOverride ?? spacing,
67102
67215
  className: sectionClasses,
@@ -67410,6 +67523,7 @@ var NavbarSidebarMobile = ({
67410
67523
  /* @__PURE__ */ jsx(
67411
67524
  Section,
67412
67525
  {
67526
+ id: "navbar-sidebar-mobile",
67413
67527
  background,
67414
67528
  spacing: spacingOverride ?? spacing,
67415
67529
  className: sectionClasses,
@@ -67732,6 +67846,7 @@ var NavbarTransparentOverlay = ({
67732
67846
  /* @__PURE__ */ jsx(
67733
67847
  Section,
67734
67848
  {
67849
+ id: "navbar-transparent-overlay",
67735
67850
  background,
67736
67851
  spacing: spacingOverride ?? spacing,
67737
67852
  className: sectionClasses,
@@ -67994,6 +68109,7 @@ var NavbarEducationPlatform = ({
67994
68109
  /* @__PURE__ */ jsx(
67995
68110
  Section,
67996
68111
  {
68112
+ id: "navbar-education-platform",
67997
68113
  background,
67998
68114
  spacing: spacingOverride ?? spacing,
67999
68115
  className: sectionClasses,
@@ -68358,6 +68474,7 @@ var NavbarStickyCompact = ({
68358
68474
  /* @__PURE__ */ jsx(
68359
68475
  Section,
68360
68476
  {
68477
+ id: "navbar-sticky-compact",
68361
68478
  background,
68362
68479
  spacing: spacingOverride ?? spacing,
68363
68480
  className: cn(
@@ -68629,6 +68746,7 @@ var NavbarSearchFocused = ({
68629
68746
  /* @__PURE__ */ jsx(
68630
68747
  Section,
68631
68748
  {
68749
+ id: "navbar-search-focused",
68632
68750
  background,
68633
68751
  spacing: spacingOverride ?? spacing,
68634
68752
  className: sectionClasses,
@@ -68896,6 +69014,7 @@ var NavbarSimpleLinks = ({
68896
69014
  /* @__PURE__ */ jsx(
68897
69015
  Section,
68898
69016
  {
69017
+ id: "navbar-simple-links",
68899
69018
  background,
68900
69019
  spacing: spacingOverride ?? spacing,
68901
69020
  className: sectionClasses,
@@ -69117,7 +69236,7 @@ var NavbarSplitCta = ({
69117
69236
  return /* @__PURE__ */ jsx(
69118
69237
  Section,
69119
69238
  {
69120
- id: sectionId,
69239
+ id: "navbar-split-cta",
69121
69240
  background,
69122
69241
  spacing: spacingOverride ?? spacing,
69123
69242
  className: sectionClasses,
@@ -69336,7 +69455,7 @@ var NavbarIconLinks = ({
69336
69455
  return /* @__PURE__ */ jsx(
69337
69456
  Section,
69338
69457
  {
69339
- id: sectionId,
69458
+ id: "navbar-icon-links",
69340
69459
  background,
69341
69460
  spacing: spacingOverride ?? spacing,
69342
69461
  className: sectionClasses,
@@ -69659,7 +69778,7 @@ var NavbarTabbedSections = ({
69659
69778
  return /* @__PURE__ */ jsx(
69660
69779
  Section,
69661
69780
  {
69662
- id: sectionId,
69781
+ id: "navbar-tabbed-sections",
69663
69782
  background,
69664
69783
  spacing: spacingOverride ?? spacing,
69665
69784
  className: sectionClasses,
@@ -69807,6 +69926,7 @@ var NavbarFullscreenMenu = ({
69807
69926
  /* @__PURE__ */ jsx(
69808
69927
  Section,
69809
69928
  {
69929
+ id: "navbar-fullscreen-menu",
69810
69930
  background,
69811
69931
  spacing: spacingOverride ?? spacing,
69812
69932
  className: sectionClasses,
@@ -110920,22 +111040,59 @@ var BLOCK_REGISTRY = {
110920
111040
  },
110921
111041
  "hero-tech-carousel": {
110922
111042
  id: "hero-tech-carousel",
110923
- name: "Tech Carousel Hero",
110924
- description: "A hero section with a carousel of technology logos or partner brands. Features headline, description, and auto-scrolling logo carousel. Perfect for showcasing integrations.",
111043
+ name: "Multi-Panel Hero",
111044
+ description: "A full-bleed hero with up to four side-by-side panels on desktop that stack vertically on mobile. Each panel supports an optional logo, title, content, action buttons, and an optional background image or autoplaying image carousel.",
110925
111045
  semanticTags: [
110926
111046
  "hero",
110927
- "carousel",
110928
- "tech",
110929
- "logos",
110930
- "partners",
110931
- "integrations",
111047
+ "multi-panel",
111048
+ "split",
111049
+ "full-bleed",
111050
+ "fullscreen",
111051
+ "background-image",
111052
+ "image-carousel",
110932
111053
  "brands",
110933
- "auto-scroll"
111054
+ "showcase",
111055
+ "cta"
110934
111056
  ],
110935
111057
  category: "hero",
110936
111058
  component: HeroTechCarousel,
110937
111059
  props: "HeroTechCarouselProps",
110938
- exampleUsage: `<HeroTechCarousel />`.trim()
111060
+ exampleUsage: `
111061
+ <HeroTechCarousel
111062
+ items={[
111063
+ {
111064
+ logo: { src: "/logos/insurance.svg", alt: "InsuranceSite" },
111065
+ title: "InsuranceSite",
111066
+ content: "Built for modern brokers",
111067
+ actions: [{ label: "Get Started", href: "/insurance" }],
111068
+ backgroundMedia: [
111069
+ { src: "/img/insurance-1.jpg", alt: "" },
111070
+ { src: "/img/insurance-2.jpg", alt: "" },
111071
+ ],
111072
+ },
111073
+ {
111074
+ logo: { src: "/logos/realtor.svg", alt: "RealtorSite" },
111075
+ title: "RealtorSite",
111076
+ content: "For high-volume listing agents",
111077
+ actions: [{ label: "Get Started", href: "/realtor" }],
111078
+ backgroundMedia: [{ src: "/img/realtor.jpg", alt: "" }],
111079
+ },
111080
+ {
111081
+ logo: { src: "/logos/castkit.svg", alt: "CastKit" },
111082
+ title: "CastKit",
111083
+ content: "AI-powered podcast production",
111084
+ actions: [{ label: "Get Started", href: "/castkit" }],
111085
+ },
111086
+ {
111087
+ logo: { src: "/logos/opensite.svg", alt: "OpenSite" },
111088
+ title: "OpenSite",
111089
+ content: "The platform behind it all",
111090
+ actions: [{ label: "Get Started", href: "/opensite" }],
111091
+ backgroundMedia: [{ src: "/img/opensite.jpg", alt: "" }],
111092
+ },
111093
+ ]}
111094
+ />
111095
+ `.trim()
110939
111096
  },
110940
111097
  "hero-simple-centered-image": {
110941
111098
  id: "hero-simple-centered-image",