@opensite/ui 3.5.0 → 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.
- package/dist/hero-tech-carousel.cjs +489 -292
- package/dist/hero-tech-carousel.d.cts +137 -32
- package/dist/hero-tech-carousel.d.ts +137 -32
- package/dist/hero-tech-carousel.js +490 -289
- package/dist/navbar-platform-resources.cjs +21 -21
- package/dist/navbar-platform-resources.d.cts +6 -6
- package/dist/navbar-platform-resources.d.ts +6 -6
- package/dist/navbar-platform-resources.js +21 -21
- package/dist/registry.cjs +301 -193
- package/dist/registry.js +301 -193
- package/dist/social-link-icon.d.cts +1 -1
- package/dist/social-link-icon.d.ts +1 -1
- package/package.json +1 -1
package/dist/registry.cjs
CHANGED
|
@@ -51238,105 +51238,219 @@ function HeroAnnouncementBadge({
|
|
|
51238
51238
|
}
|
|
51239
51239
|
);
|
|
51240
51240
|
}
|
|
51241
|
+
var HERO_TECH_CAROUSEL_MAX_ITEMS = 4;
|
|
51242
|
+
function resolveLogoSrc(logo) {
|
|
51243
|
+
if (typeof logo.src === "string") return logo.src;
|
|
51244
|
+
return logo.src?.light;
|
|
51245
|
+
}
|
|
51246
|
+
function HeroPanel({
|
|
51247
|
+
item,
|
|
51248
|
+
defaultAutoplayIntervalMs,
|
|
51249
|
+
optixFlowConfig,
|
|
51250
|
+
panelContentClassName
|
|
51251
|
+
}) {
|
|
51252
|
+
const {
|
|
51253
|
+
logo,
|
|
51254
|
+
logoSlot,
|
|
51255
|
+
title,
|
|
51256
|
+
content,
|
|
51257
|
+
actions,
|
|
51258
|
+
backgroundMedia,
|
|
51259
|
+
backgroundAutoplayIntervalMs,
|
|
51260
|
+
id,
|
|
51261
|
+
className,
|
|
51262
|
+
contentClassName,
|
|
51263
|
+
logoClassName,
|
|
51264
|
+
titleClassName,
|
|
51265
|
+
textClassName,
|
|
51266
|
+
actionsClassName,
|
|
51267
|
+
overlayClassName,
|
|
51268
|
+
optixFlowConfig: itemOptixFlowConfig
|
|
51269
|
+
} = item;
|
|
51270
|
+
const resolvedOptixFlow = itemOptixFlowConfig ?? optixFlowConfig;
|
|
51271
|
+
const renderBackground = React30.useMemo(() => {
|
|
51272
|
+
if (!backgroundMedia || backgroundMedia.length === 0) return null;
|
|
51273
|
+
if (backgroundMedia.length === 1) {
|
|
51274
|
+
const image = backgroundMedia[0];
|
|
51275
|
+
if (!image?.src) return null;
|
|
51276
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 z-0", children: [
|
|
51277
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51278
|
+
img.Img,
|
|
51279
|
+
{
|
|
51280
|
+
src: image.src,
|
|
51281
|
+
alt: image.alt ?? "",
|
|
51282
|
+
className: cn(
|
|
51283
|
+
"h-full w-full object-cover object-center",
|
|
51284
|
+
image.className
|
|
51285
|
+
),
|
|
51286
|
+
optixFlowConfig: image.optixFlowConfig ?? resolvedOptixFlow,
|
|
51287
|
+
loading: "eager"
|
|
51288
|
+
}
|
|
51289
|
+
),
|
|
51290
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51291
|
+
"div",
|
|
51292
|
+
{
|
|
51293
|
+
className: cn(
|
|
51294
|
+
"absolute inset-0 bg-linear-to-b from-black/55 via-black/45 to-black/65",
|
|
51295
|
+
overlayClassName
|
|
51296
|
+
)
|
|
51297
|
+
}
|
|
51298
|
+
)
|
|
51299
|
+
] });
|
|
51300
|
+
}
|
|
51301
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-0 z-0", children: [
|
|
51302
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51303
|
+
ImageSlider,
|
|
51304
|
+
{
|
|
51305
|
+
images: backgroundMedia,
|
|
51306
|
+
className: "h-full w-full rounded-none border-0 shadow-none",
|
|
51307
|
+
imageClassName: "object-cover object-center",
|
|
51308
|
+
transition: "fade",
|
|
51309
|
+
autoplay: true,
|
|
51310
|
+
autoplayIntervalMs: backgroundAutoplayIntervalMs ?? defaultAutoplayIntervalMs,
|
|
51311
|
+
enableKeyboard: false,
|
|
51312
|
+
overlay: false,
|
|
51313
|
+
optixFlowConfig: resolvedOptixFlow
|
|
51314
|
+
}
|
|
51315
|
+
),
|
|
51316
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51317
|
+
"div",
|
|
51318
|
+
{
|
|
51319
|
+
className: cn(
|
|
51320
|
+
"absolute inset-0 bg-linear-to-b from-black/55 via-black/45 to-black/65",
|
|
51321
|
+
overlayClassName
|
|
51322
|
+
)
|
|
51323
|
+
}
|
|
51324
|
+
)
|
|
51325
|
+
] });
|
|
51326
|
+
}, [
|
|
51327
|
+
backgroundMedia,
|
|
51328
|
+
backgroundAutoplayIntervalMs,
|
|
51329
|
+
defaultAutoplayIntervalMs,
|
|
51330
|
+
resolvedOptixFlow,
|
|
51331
|
+
overlayClassName
|
|
51332
|
+
]);
|
|
51333
|
+
const hasBackground = !!backgroundMedia && backgroundMedia.length > 0;
|
|
51334
|
+
const renderLogo = React30.useMemo(() => {
|
|
51335
|
+
if (logoSlot) return logoSlot;
|
|
51336
|
+
if (!logo) return null;
|
|
51337
|
+
const src = resolveLogoSrc(logo);
|
|
51338
|
+
if (!src) return null;
|
|
51339
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51340
|
+
img.Img,
|
|
51341
|
+
{
|
|
51342
|
+
src,
|
|
51343
|
+
alt: logo.alt,
|
|
51344
|
+
className: cn(
|
|
51345
|
+
"h-10 md:h-12 lg:h-14 w-auto max-w-[70%] object-contain",
|
|
51346
|
+
logo.imgClassName,
|
|
51347
|
+
logoClassName
|
|
51348
|
+
),
|
|
51349
|
+
optixFlowConfig: resolvedOptixFlow
|
|
51350
|
+
}
|
|
51351
|
+
);
|
|
51352
|
+
}, [logoSlot, logo, logoClassName, resolvedOptixFlow]);
|
|
51353
|
+
const renderTitle = React30.useMemo(() => {
|
|
51354
|
+
if (title === void 0 || title === null || title === "") return null;
|
|
51355
|
+
if (typeof title === "string") {
|
|
51356
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51357
|
+
"h2",
|
|
51358
|
+
{
|
|
51359
|
+
className: cn(
|
|
51360
|
+
"text-3xl md:text-4xl lg:text-5xl font-semibold text-balance",
|
|
51361
|
+
hasBackground && "text-white text-shadow-lg",
|
|
51362
|
+
titleClassName
|
|
51363
|
+
),
|
|
51364
|
+
children: title
|
|
51365
|
+
}
|
|
51366
|
+
);
|
|
51367
|
+
}
|
|
51368
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
|
|
51369
|
+
}, [title, titleClassName, hasBackground]);
|
|
51370
|
+
const renderContent = React30.useMemo(() => {
|
|
51371
|
+
if (content === void 0 || content === null || content === "") return null;
|
|
51372
|
+
if (typeof content === "string") {
|
|
51373
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51374
|
+
"p",
|
|
51375
|
+
{
|
|
51376
|
+
className: cn(
|
|
51377
|
+
"text-base md:text-lg leading-relaxed text-balance",
|
|
51378
|
+
hasBackground ? "text-white/90 text-shadow" : "text-muted-foreground",
|
|
51379
|
+
textClassName
|
|
51380
|
+
),
|
|
51381
|
+
children: content
|
|
51382
|
+
}
|
|
51383
|
+
);
|
|
51384
|
+
}
|
|
51385
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: textClassName, children: content });
|
|
51386
|
+
}, [content, textClassName, hasBackground]);
|
|
51387
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51388
|
+
"div",
|
|
51389
|
+
{
|
|
51390
|
+
id,
|
|
51391
|
+
"data-slot": "hero-tech-carousel-panel",
|
|
51392
|
+
className: cn(
|
|
51393
|
+
// Mobile: stack vertically with content-fit height + padding.
|
|
51394
|
+
"relative w-full overflow-hidden",
|
|
51395
|
+
// Desktop: flex children share the row equally and fill height.
|
|
51396
|
+
"md:h-full md:flex-1 md:basis-0 md:min-w-0",
|
|
51397
|
+
// Provide a default panel background when no media is supplied so
|
|
51398
|
+
// separators between panels remain visible.
|
|
51399
|
+
!hasBackground && "bg-muted/30",
|
|
51400
|
+
className
|
|
51401
|
+
),
|
|
51402
|
+
children: [
|
|
51403
|
+
renderBackground,
|
|
51404
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
51405
|
+
"div",
|
|
51406
|
+
{
|
|
51407
|
+
className: cn(
|
|
51408
|
+
"relative z-10 flex h-full w-full flex-col items-center justify-center gap-4 md:gap-6",
|
|
51409
|
+
// Mobile padding keeps content readable when stacked.
|
|
51410
|
+
"px-6 py-12 md:px-8 md:py-12 lg:px-10",
|
|
51411
|
+
// Center content vertically; on desktop columns can be quite tall.
|
|
51412
|
+
"text-center",
|
|
51413
|
+
panelContentClassName,
|
|
51414
|
+
contentClassName
|
|
51415
|
+
),
|
|
51416
|
+
children: [
|
|
51417
|
+
renderLogo,
|
|
51418
|
+
renderTitle,
|
|
51419
|
+
renderContent,
|
|
51420
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51421
|
+
BlockActions,
|
|
51422
|
+
{
|
|
51423
|
+
actions,
|
|
51424
|
+
actionsClassName,
|
|
51425
|
+
verticalSpacing: "mt-2 md:mt-4",
|
|
51426
|
+
mobileConfig: { width: "fit", position: "center" }
|
|
51427
|
+
}
|
|
51428
|
+
)
|
|
51429
|
+
]
|
|
51430
|
+
}
|
|
51431
|
+
)
|
|
51432
|
+
]
|
|
51433
|
+
}
|
|
51434
|
+
);
|
|
51435
|
+
}
|
|
51241
51436
|
function HeroTechCarousel({
|
|
51242
51437
|
sectionId = "hero-tech-carousel",
|
|
51243
|
-
|
|
51244
|
-
|
|
51245
|
-
technologies,
|
|
51246
|
-
carouselSlot,
|
|
51247
|
-
autoplayDelay = 5e3,
|
|
51438
|
+
items,
|
|
51439
|
+
backgroundAutoplayIntervalMs = 5e3,
|
|
51248
51440
|
background,
|
|
51441
|
+
spacing = "none",
|
|
51249
51442
|
pattern,
|
|
51250
51443
|
patternOpacity,
|
|
51251
51444
|
className,
|
|
51252
|
-
containerClassName = "px-
|
|
51253
|
-
|
|
51254
|
-
|
|
51255
|
-
descriptionClassName,
|
|
51445
|
+
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",
|
|
51446
|
+
panelsClassName,
|
|
51447
|
+
panelContentClassName,
|
|
51256
51448
|
optixFlowConfig
|
|
51257
51449
|
}) {
|
|
51258
|
-
const
|
|
51259
|
-
|
|
51260
|
-
|
|
51261
|
-
|
|
51262
|
-
const [current, setCurrent] = React30.useState(0);
|
|
51263
|
-
const [fadeIn, setFadeIn] = React30.useState(true);
|
|
51264
|
-
React30.useEffect(() => {
|
|
51265
|
-
if (!api) return;
|
|
51266
|
-
setCurrent(api.selectedScrollSnap());
|
|
51267
|
-
const updateCurrent = () => {
|
|
51268
|
-
setFadeIn(false);
|
|
51269
|
-
setTimeout(() => {
|
|
51270
|
-
setCurrent(api.selectedScrollSnap());
|
|
51271
|
-
setFadeIn(true);
|
|
51272
|
-
}, 200);
|
|
51273
|
-
};
|
|
51274
|
-
api.on("select", updateCurrent);
|
|
51275
|
-
api.on("settle", updateCurrent);
|
|
51276
|
-
return () => {
|
|
51277
|
-
api.off("select", updateCurrent);
|
|
51278
|
-
api.off("settle", updateCurrent);
|
|
51279
|
-
};
|
|
51280
|
-
}, [api]);
|
|
51281
|
-
const selectTechnology = (index) => {
|
|
51282
|
-
if (api) {
|
|
51283
|
-
api.scrollTo(index);
|
|
51284
|
-
}
|
|
51285
|
-
};
|
|
51286
|
-
const renderCarousel = React30.useMemo(() => {
|
|
51287
|
-
if (carouselSlot) return carouselSlot;
|
|
51288
|
-
if (!technologies || technologies.length === 0) return null;
|
|
51289
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51290
|
-
Carousel,
|
|
51291
|
-
{
|
|
51292
|
-
setApi,
|
|
51293
|
-
plugins: [plugin.current],
|
|
51294
|
-
opts: {
|
|
51295
|
-
loop: true
|
|
51296
|
-
},
|
|
51297
|
-
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",
|
|
51298
|
-
onMouseEnter: plugin.current.stop,
|
|
51299
|
-
onMouseLeave: plugin.current.reset,
|
|
51300
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(CarouselContent, { children: technologies.map((technology, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
51301
|
-
CarouselItem,
|
|
51302
|
-
{
|
|
51303
|
-
className: "basis-1/3 select-none sm:basis-1/4 md:basis-1/6",
|
|
51304
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51305
|
-
"div",
|
|
51306
|
-
{
|
|
51307
|
-
className: cn(
|
|
51308
|
-
"flex cursor-pointer items-center justify-center gap-2 rounded-md border px-4 py-2",
|
|
51309
|
-
idx === current ? "border-input" : "border-transparent"
|
|
51310
|
-
),
|
|
51311
|
-
onClick: () => selectTechnology(idx),
|
|
51312
|
-
children: [
|
|
51313
|
-
technology.logo && /* @__PURE__ */ jsxRuntime.jsx(
|
|
51314
|
-
img.Img,
|
|
51315
|
-
{
|
|
51316
|
-
className: "h-4 shrink-0 md:h-7",
|
|
51317
|
-
src: technology.logo,
|
|
51318
|
-
alt: technology.name,
|
|
51319
|
-
optixFlowConfig
|
|
51320
|
-
}
|
|
51321
|
-
),
|
|
51322
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-nowrap", children: technology.name })
|
|
51323
|
-
]
|
|
51324
|
-
}
|
|
51325
|
-
)
|
|
51326
|
-
},
|
|
51327
|
-
idx
|
|
51328
|
-
)) })
|
|
51329
|
-
}
|
|
51330
|
-
);
|
|
51331
|
-
}, [
|
|
51332
|
-
carouselSlot,
|
|
51333
|
-
technologies,
|
|
51334
|
-
setApi,
|
|
51335
|
-
plugin,
|
|
51336
|
-
current,
|
|
51337
|
-
selectTechnology,
|
|
51338
|
-
optixFlowConfig
|
|
51339
|
-
]);
|
|
51450
|
+
const visibleItems = React30.useMemo(() => {
|
|
51451
|
+
if (!items || items.length === 0) return [];
|
|
51452
|
+
return items.slice(0, HERO_TECH_CAROUSEL_MAX_ITEMS);
|
|
51453
|
+
}, [items]);
|
|
51340
51454
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51341
51455
|
Section,
|
|
51342
51456
|
{
|
|
@@ -51345,80 +51459,37 @@ function HeroTechCarousel({
|
|
|
51345
51459
|
spacing,
|
|
51346
51460
|
pattern,
|
|
51347
51461
|
patternOpacity,
|
|
51348
|
-
className
|
|
51462
|
+
className: cn(
|
|
51463
|
+
"relative w-screen overflow-hidden",
|
|
51464
|
+
// Desktop fills the viewport; on mobile content drives the height.
|
|
51465
|
+
"h-auto md:h-dvh",
|
|
51466
|
+
"px-0 pt-0 pb-0",
|
|
51467
|
+
className
|
|
51468
|
+
),
|
|
51349
51469
|
containerClassName,
|
|
51350
|
-
children: /* @__PURE__ */ jsxRuntime.
|
|
51351
|
-
|
|
51352
|
-
|
|
51353
|
-
|
|
51354
|
-
|
|
51355
|
-
|
|
51356
|
-
|
|
51357
|
-
|
|
51358
|
-
|
|
51359
|
-
|
|
51360
|
-
|
|
51361
|
-
)
|
|
51362
|
-
|
|
51363
|
-
{
|
|
51364
|
-
className: cn(
|
|
51365
|
-
"mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl text-balance",
|
|
51366
|
-
headingClassName
|
|
51367
|
-
),
|
|
51368
|
-
children: heading
|
|
51369
|
-
}
|
|
51370
|
-
)),
|
|
51371
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
51372
|
-
"p",
|
|
51373
|
-
{
|
|
51374
|
-
className: cn(
|
|
51375
|
-
"mx-auto mt-4 max-w-xl text-center text-lg text-balance",
|
|
51376
|
-
descriptionClassName
|
|
51377
|
-
),
|
|
51378
|
-
children: description
|
|
51379
|
-
}
|
|
51380
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
51381
|
-
technologies && technologies.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
51382
|
-
"div",
|
|
51470
|
+
children: visibleItems.length === 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
51471
|
+
"div",
|
|
51472
|
+
{
|
|
51473
|
+
"data-slot": "hero-tech-carousel-panels",
|
|
51474
|
+
className: cn(
|
|
51475
|
+
// Mobile: vertical stack with auto height per panel.
|
|
51476
|
+
"flex w-full flex-col",
|
|
51477
|
+
// Desktop: equal-width row that fills section height.
|
|
51478
|
+
"md:h-full md:flex-row md:items-stretch",
|
|
51479
|
+
panelsClassName
|
|
51480
|
+
),
|
|
51481
|
+
children: visibleItems.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
51482
|
+
HeroPanel,
|
|
51383
51483
|
{
|
|
51384
|
-
|
|
51385
|
-
|
|
51386
|
-
|
|
51387
|
-
|
|
51388
|
-
|
|
51389
|
-
|
|
51390
|
-
|
|
51391
|
-
|
|
51392
|
-
|
|
51393
|
-
),
|
|
51394
|
-
children: [
|
|
51395
|
-
technologies && current && technologies[current] && technologies[current].logo ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
51396
|
-
img.Img,
|
|
51397
|
-
{
|
|
51398
|
-
src: technologies[current]?.logo,
|
|
51399
|
-
alt: technologies[current]?.name,
|
|
51400
|
-
className: "h-4 md:h-7",
|
|
51401
|
-
optixFlowConfig
|
|
51402
|
-
}
|
|
51403
|
-
) : null,
|
|
51404
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51405
|
-
"p",
|
|
51406
|
-
{
|
|
51407
|
-
className: cn(
|
|
51408
|
-
"px-2 font-mono text-sm",
|
|
51409
|
-
technologies && technologies[current] && technologies[current].logo ? "border-l" : ""
|
|
51410
|
-
),
|
|
51411
|
-
children: technologies[current]?.command
|
|
51412
|
-
}
|
|
51413
|
-
)
|
|
51414
|
-
]
|
|
51415
|
-
}
|
|
51416
|
-
)
|
|
51417
|
-
}
|
|
51418
|
-
)
|
|
51419
|
-
] }),
|
|
51420
|
-
renderCarousel
|
|
51421
|
-
] })
|
|
51484
|
+
item,
|
|
51485
|
+
defaultAutoplayIntervalMs: backgroundAutoplayIntervalMs,
|
|
51486
|
+
optixFlowConfig,
|
|
51487
|
+
panelContentClassName
|
|
51488
|
+
},
|
|
51489
|
+
item.id ?? idx
|
|
51490
|
+
))
|
|
51491
|
+
}
|
|
51492
|
+
)
|
|
51422
51493
|
}
|
|
51423
51494
|
);
|
|
51424
51495
|
}
|
|
@@ -65351,8 +65422,8 @@ var NavbarPlatformResources = ({
|
|
|
65351
65422
|
}
|
|
65352
65423
|
) }),
|
|
65353
65424
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1 overflow-hidden", children: [
|
|
65354
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65355
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65425
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium truncate", children: item.label }),
|
|
65426
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65356
65427
|
] })
|
|
65357
65428
|
]
|
|
65358
65429
|
},
|
|
@@ -65379,8 +65450,8 @@ var NavbarPlatformResources = ({
|
|
|
65379
65450
|
}
|
|
65380
65451
|
) }),
|
|
65381
65452
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
65382
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: item.label }),
|
|
65383
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65453
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium truncate", children: item.label }),
|
|
65454
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground group-hover/link:text-foreground", children: item.description })
|
|
65384
65455
|
] })
|
|
65385
65456
|
]
|
|
65386
65457
|
}
|
|
@@ -65409,8 +65480,8 @@ var NavbarPlatformResources = ({
|
|
|
65409
65480
|
}
|
|
65410
65481
|
) }),
|
|
65411
65482
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5 xl:p-8", children: [
|
|
65412
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-base", children: featuredItem.label }),
|
|
65413
|
-
featuredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-normal text-muted-foreground", children: featuredItem.description })
|
|
65483
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-base truncate", children: featuredItem.label }),
|
|
65484
|
+
featuredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: featuredItem.description })
|
|
65414
65485
|
] })
|
|
65415
65486
|
] })
|
|
65416
65487
|
}
|
|
@@ -65430,8 +65501,8 @@ var NavbarPlatformResources = ({
|
|
|
65430
65501
|
size: 20
|
|
65431
65502
|
}
|
|
65432
65503
|
) }),
|
|
65433
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1
|
|
65434
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65504
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 truncate text-base", children: item.label }),
|
|
65505
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65435
65506
|
]
|
|
65436
65507
|
},
|
|
65437
65508
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65457,7 +65528,7 @@ var NavbarPlatformResources = ({
|
|
|
65457
65528
|
size: 16
|
|
65458
65529
|
}
|
|
65459
65530
|
) }),
|
|
65460
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0
|
|
65531
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 truncate text-base", children: item.label })
|
|
65461
65532
|
]
|
|
65462
65533
|
},
|
|
65463
65534
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65481,8 +65552,8 @@ var NavbarPlatformResources = ({
|
|
|
65481
65552
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col p-5 xl:p-8", children: [
|
|
65482
65553
|
ctaItem.background && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 text-xs tracking-widest text-muted-foreground uppercase", children: ctaItem.background }),
|
|
65483
65554
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-auto", children: [
|
|
65484
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4
|
|
65485
|
-
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65555
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 truncate text-xl", children: ctaItem.label }),
|
|
65556
|
+
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: ctaItem.description })
|
|
65486
65557
|
] })
|
|
65487
65558
|
] })
|
|
65488
65559
|
] })
|
|
@@ -65510,7 +65581,7 @@ var NavbarPlatformResources = ({
|
|
|
65510
65581
|
size: 16
|
|
65511
65582
|
}
|
|
65512
65583
|
),
|
|
65513
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0
|
|
65584
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 truncate text-base", children: item.label })
|
|
65514
65585
|
]
|
|
65515
65586
|
},
|
|
65516
65587
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65523,8 +65594,8 @@ var NavbarPlatformResources = ({
|
|
|
65523
65594
|
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",
|
|
65524
65595
|
children: [
|
|
65525
65596
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1 p-5 xl:p-8", children: [
|
|
65526
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2
|
|
65527
|
-
showcase.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65597
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 truncate text-base", children: showcase.label }),
|
|
65598
|
+
showcase.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: showcase.description })
|
|
65528
65599
|
] }),
|
|
65529
65600
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[154px] max-w-[264px] shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
65530
65601
|
img.Img,
|
|
@@ -65556,8 +65627,8 @@ var NavbarPlatformResources = ({
|
|
|
65556
65627
|
href: getLinkUrl(item),
|
|
65557
65628
|
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",
|
|
65558
65629
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-auto", children: [
|
|
65559
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2
|
|
65560
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65630
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 truncate text-base", children: item.label }),
|
|
65631
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65561
65632
|
] })
|
|
65562
65633
|
},
|
|
65563
65634
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65574,8 +65645,8 @@ var NavbarPlatformResources = ({
|
|
|
65574
65645
|
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",
|
|
65575
65646
|
children: [
|
|
65576
65647
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1 p-5 xl:p-8", children: [
|
|
65577
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2
|
|
65578
|
-
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65648
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 truncate text-base", children: ctaItem.label }),
|
|
65649
|
+
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: ctaItem.description })
|
|
65579
65650
|
] }),
|
|
65580
65651
|
ctaItem.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-1/3 max-w-[130px] shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
65581
65652
|
img.Img,
|
|
@@ -65591,7 +65662,7 @@ var NavbarPlatformResources = ({
|
|
|
65591
65662
|
),
|
|
65592
65663
|
ctaItem.background && /* @__PURE__ */ jsxRuntime.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: [
|
|
65593
65664
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-md bg-secondary px-2 py-1 text-xs font-semibold text-secondary-foreground", children: ctaItem.background }),
|
|
65594
|
-
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-
|
|
65665
|
+
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm text-secondary-foreground", children: ctaItem.description })
|
|
65595
65666
|
] })
|
|
65596
65667
|
] })
|
|
65597
65668
|
] }) });
|
|
@@ -65613,8 +65684,8 @@ var NavbarPlatformResources = ({
|
|
|
65613
65684
|
) }),
|
|
65614
65685
|
!item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon || item.iconName, size: 18 }) }),
|
|
65615
65686
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
65616
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65617
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65687
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-medium text-foreground", children: item.label }),
|
|
65688
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65618
65689
|
] })
|
|
65619
65690
|
]
|
|
65620
65691
|
},
|
|
@@ -111009,22 +111080,59 @@ var BLOCK_REGISTRY = {
|
|
|
111009
111080
|
},
|
|
111010
111081
|
"hero-tech-carousel": {
|
|
111011
111082
|
id: "hero-tech-carousel",
|
|
111012
|
-
name: "
|
|
111013
|
-
description: "A hero
|
|
111083
|
+
name: "Multi-Panel Hero",
|
|
111084
|
+
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.",
|
|
111014
111085
|
semanticTags: [
|
|
111015
111086
|
"hero",
|
|
111016
|
-
"
|
|
111017
|
-
"
|
|
111018
|
-
"
|
|
111019
|
-
"
|
|
111020
|
-
"
|
|
111087
|
+
"multi-panel",
|
|
111088
|
+
"split",
|
|
111089
|
+
"full-bleed",
|
|
111090
|
+
"fullscreen",
|
|
111091
|
+
"background-image",
|
|
111092
|
+
"image-carousel",
|
|
111021
111093
|
"brands",
|
|
111022
|
-
"
|
|
111094
|
+
"showcase",
|
|
111095
|
+
"cta"
|
|
111023
111096
|
],
|
|
111024
111097
|
category: "hero",
|
|
111025
111098
|
component: HeroTechCarousel,
|
|
111026
111099
|
props: "HeroTechCarouselProps",
|
|
111027
|
-
exampleUsage:
|
|
111100
|
+
exampleUsage: `
|
|
111101
|
+
<HeroTechCarousel
|
|
111102
|
+
items={[
|
|
111103
|
+
{
|
|
111104
|
+
logo: { src: "/logos/insurance.svg", alt: "InsuranceSite" },
|
|
111105
|
+
title: "InsuranceSite",
|
|
111106
|
+
content: "Built for modern brokers",
|
|
111107
|
+
actions: [{ label: "Get Started", href: "/insurance" }],
|
|
111108
|
+
backgroundMedia: [
|
|
111109
|
+
{ src: "/img/insurance-1.jpg", alt: "" },
|
|
111110
|
+
{ src: "/img/insurance-2.jpg", alt: "" },
|
|
111111
|
+
],
|
|
111112
|
+
},
|
|
111113
|
+
{
|
|
111114
|
+
logo: { src: "/logos/realtor.svg", alt: "RealtorSite" },
|
|
111115
|
+
title: "RealtorSite",
|
|
111116
|
+
content: "For high-volume listing agents",
|
|
111117
|
+
actions: [{ label: "Get Started", href: "/realtor" }],
|
|
111118
|
+
backgroundMedia: [{ src: "/img/realtor.jpg", alt: "" }],
|
|
111119
|
+
},
|
|
111120
|
+
{
|
|
111121
|
+
logo: { src: "/logos/castkit.svg", alt: "CastKit" },
|
|
111122
|
+
title: "CastKit",
|
|
111123
|
+
content: "AI-powered podcast production",
|
|
111124
|
+
actions: [{ label: "Get Started", href: "/castkit" }],
|
|
111125
|
+
},
|
|
111126
|
+
{
|
|
111127
|
+
logo: { src: "/logos/opensite.svg", alt: "OpenSite" },
|
|
111128
|
+
title: "OpenSite",
|
|
111129
|
+
content: "The platform behind it all",
|
|
111130
|
+
actions: [{ label: "Get Started", href: "/opensite" }],
|
|
111131
|
+
backgroundMedia: [{ src: "/img/opensite.jpg", alt: "" }],
|
|
111132
|
+
},
|
|
111133
|
+
]}
|
|
111134
|
+
/>
|
|
111135
|
+
`.trim()
|
|
111028
111136
|
},
|
|
111029
111137
|
"hero-simple-centered-image": {
|
|
111030
111138
|
id: "hero-simple-centered-image",
|