@opensite/ui 3.5.0 → 3.5.3
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 +490 -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 +491 -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 +302 -193
- package/dist/registry.js +302 -193
- package/package.json +1 -1
package/dist/registry.cjs
CHANGED
|
@@ -51238,105 +51238,220 @@ 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-2xl md:text-3xl lg:text-4xl 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 === "")
|
|
51372
|
+
return null;
|
|
51373
|
+
if (typeof content === "string") {
|
|
51374
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51375
|
+
"p",
|
|
51376
|
+
{
|
|
51377
|
+
className: cn(
|
|
51378
|
+
"text-sm md:text-base leading-snug text-balance",
|
|
51379
|
+
hasBackground ? "text-white text-shadow-lg" : "",
|
|
51380
|
+
textClassName
|
|
51381
|
+
),
|
|
51382
|
+
children: content
|
|
51383
|
+
}
|
|
51384
|
+
);
|
|
51385
|
+
}
|
|
51386
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: textClassName, children: content });
|
|
51387
|
+
}, [content, textClassName, hasBackground]);
|
|
51388
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51389
|
+
"div",
|
|
51390
|
+
{
|
|
51391
|
+
id,
|
|
51392
|
+
"data-slot": "hero-tech-carousel-panel",
|
|
51393
|
+
className: cn(
|
|
51394
|
+
// Mobile: stack vertically with content-fit height + padding.
|
|
51395
|
+
"relative w-full overflow-hidden",
|
|
51396
|
+
// Desktop: flex children share the row equally and fill height.
|
|
51397
|
+
"md:h-full md:flex-1 md:basis-0 md:min-w-0",
|
|
51398
|
+
// Provide a default panel background when no media is supplied so
|
|
51399
|
+
// separators between panels remain visible.
|
|
51400
|
+
!hasBackground && "bg-muted/30",
|
|
51401
|
+
className
|
|
51402
|
+
),
|
|
51403
|
+
children: [
|
|
51404
|
+
renderBackground,
|
|
51405
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
51406
|
+
"div",
|
|
51407
|
+
{
|
|
51408
|
+
className: cn(
|
|
51409
|
+
"relative z-10 flex h-full w-full flex-col items-center justify-center gap-4 md:gap-6",
|
|
51410
|
+
// Mobile padding keeps content readable when stacked.
|
|
51411
|
+
"px-6 py-12 md:px-8 md:py-12 lg:px-10",
|
|
51412
|
+
// Center content vertically; on desktop columns can be quite tall.
|
|
51413
|
+
"text-center",
|
|
51414
|
+
panelContentClassName,
|
|
51415
|
+
contentClassName
|
|
51416
|
+
),
|
|
51417
|
+
children: [
|
|
51418
|
+
renderLogo,
|
|
51419
|
+
renderTitle,
|
|
51420
|
+
renderContent,
|
|
51421
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
51422
|
+
BlockActions,
|
|
51423
|
+
{
|
|
51424
|
+
actions,
|
|
51425
|
+
actionsClassName,
|
|
51426
|
+
verticalSpacing: "mt-2 md:mt-4",
|
|
51427
|
+
mobileConfig: { width: "fit", position: "center" }
|
|
51428
|
+
}
|
|
51429
|
+
)
|
|
51430
|
+
]
|
|
51431
|
+
}
|
|
51432
|
+
)
|
|
51433
|
+
]
|
|
51434
|
+
}
|
|
51435
|
+
);
|
|
51436
|
+
}
|
|
51241
51437
|
function HeroTechCarousel({
|
|
51242
51438
|
sectionId = "hero-tech-carousel",
|
|
51243
|
-
|
|
51244
|
-
|
|
51245
|
-
technologies,
|
|
51246
|
-
carouselSlot,
|
|
51247
|
-
autoplayDelay = 5e3,
|
|
51439
|
+
items,
|
|
51440
|
+
backgroundAutoplayIntervalMs = 5e3,
|
|
51248
51441
|
background,
|
|
51442
|
+
spacing = "none",
|
|
51249
51443
|
pattern,
|
|
51250
51444
|
patternOpacity,
|
|
51251
51445
|
className,
|
|
51252
|
-
containerClassName = "px-
|
|
51253
|
-
|
|
51254
|
-
|
|
51255
|
-
descriptionClassName,
|
|
51446
|
+
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",
|
|
51447
|
+
panelsClassName,
|
|
51448
|
+
panelContentClassName,
|
|
51256
51449
|
optixFlowConfig
|
|
51257
51450
|
}) {
|
|
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
|
-
]);
|
|
51451
|
+
const visibleItems = React30.useMemo(() => {
|
|
51452
|
+
if (!items || items.length === 0) return [];
|
|
51453
|
+
return items.slice(0, HERO_TECH_CAROUSEL_MAX_ITEMS);
|
|
51454
|
+
}, [items]);
|
|
51340
51455
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51341
51456
|
Section,
|
|
51342
51457
|
{
|
|
@@ -51345,80 +51460,37 @@ function HeroTechCarousel({
|
|
|
51345
51460
|
spacing,
|
|
51346
51461
|
pattern,
|
|
51347
51462
|
patternOpacity,
|
|
51348
|
-
className
|
|
51463
|
+
className: cn(
|
|
51464
|
+
"relative w-screen overflow-hidden",
|
|
51465
|
+
// Desktop fills the viewport; on mobile content drives the height.
|
|
51466
|
+
"h-auto md:h-dvh",
|
|
51467
|
+
"px-0 pt-0 pb-0",
|
|
51468
|
+
className
|
|
51469
|
+
),
|
|
51349
51470
|
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",
|
|
51471
|
+
children: visibleItems.length === 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
51472
|
+
"div",
|
|
51473
|
+
{
|
|
51474
|
+
"data-slot": "hero-tech-carousel-panels",
|
|
51475
|
+
className: cn(
|
|
51476
|
+
// Mobile: vertical stack with auto height per panel.
|
|
51477
|
+
"flex w-full flex-col",
|
|
51478
|
+
// Desktop: equal-width row that fills section height.
|
|
51479
|
+
"md:h-full md:flex-row md:items-stretch",
|
|
51480
|
+
panelsClassName
|
|
51481
|
+
),
|
|
51482
|
+
children: visibleItems.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
51483
|
+
HeroPanel,
|
|
51383
51484
|
{
|
|
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
|
-
] })
|
|
51485
|
+
item,
|
|
51486
|
+
defaultAutoplayIntervalMs: backgroundAutoplayIntervalMs,
|
|
51487
|
+
optixFlowConfig,
|
|
51488
|
+
panelContentClassName
|
|
51489
|
+
},
|
|
51490
|
+
item.id ?? idx
|
|
51491
|
+
))
|
|
51492
|
+
}
|
|
51493
|
+
)
|
|
51422
51494
|
}
|
|
51423
51495
|
);
|
|
51424
51496
|
}
|
|
@@ -65351,8 +65423,8 @@ var NavbarPlatformResources = ({
|
|
|
65351
65423
|
}
|
|
65352
65424
|
) }),
|
|
65353
65425
|
/* @__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: "
|
|
65426
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium truncate", children: item.label }),
|
|
65427
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65356
65428
|
] })
|
|
65357
65429
|
]
|
|
65358
65430
|
},
|
|
@@ -65379,8 +65451,8 @@ var NavbarPlatformResources = ({
|
|
|
65379
65451
|
}
|
|
65380
65452
|
) }),
|
|
65381
65453
|
/* @__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: "
|
|
65454
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium truncate", children: item.label }),
|
|
65455
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground group-hover/link:text-foreground", children: item.description })
|
|
65384
65456
|
] })
|
|
65385
65457
|
]
|
|
65386
65458
|
}
|
|
@@ -65409,8 +65481,8 @@ var NavbarPlatformResources = ({
|
|
|
65409
65481
|
}
|
|
65410
65482
|
) }),
|
|
65411
65483
|
/* @__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 })
|
|
65484
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-base truncate", children: featuredItem.label }),
|
|
65485
|
+
featuredItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: featuredItem.description })
|
|
65414
65486
|
] })
|
|
65415
65487
|
] })
|
|
65416
65488
|
}
|
|
@@ -65430,8 +65502,8 @@ var NavbarPlatformResources = ({
|
|
|
65430
65502
|
size: 20
|
|
65431
65503
|
}
|
|
65432
65504
|
) }),
|
|
65433
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1
|
|
65434
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65505
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 truncate text-base", children: item.label }),
|
|
65506
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65435
65507
|
]
|
|
65436
65508
|
},
|
|
65437
65509
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65457,7 +65529,7 @@ var NavbarPlatformResources = ({
|
|
|
65457
65529
|
size: 16
|
|
65458
65530
|
}
|
|
65459
65531
|
) }),
|
|
65460
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0
|
|
65532
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 truncate text-base", children: item.label })
|
|
65461
65533
|
]
|
|
65462
65534
|
},
|
|
65463
65535
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65481,8 +65553,8 @@ var NavbarPlatformResources = ({
|
|
|
65481
65553
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col p-5 xl:p-8", children: [
|
|
65482
65554
|
ctaItem.background && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 text-xs tracking-widest text-muted-foreground uppercase", children: ctaItem.background }),
|
|
65483
65555
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-auto", children: [
|
|
65484
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4
|
|
65485
|
-
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
65556
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 truncate text-xl", children: ctaItem.label }),
|
|
65557
|
+
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: ctaItem.description })
|
|
65486
65558
|
] })
|
|
65487
65559
|
] })
|
|
65488
65560
|
] })
|
|
@@ -65510,7 +65582,7 @@ var NavbarPlatformResources = ({
|
|
|
65510
65582
|
size: 16
|
|
65511
65583
|
}
|
|
65512
65584
|
),
|
|
65513
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0
|
|
65585
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 truncate text-base", children: item.label })
|
|
65514
65586
|
]
|
|
65515
65587
|
},
|
|
65516
65588
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65523,8 +65595,8 @@ var NavbarPlatformResources = ({
|
|
|
65523
65595
|
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
65596
|
children: [
|
|
65525
65597
|
/* @__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: "
|
|
65598
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 truncate text-base", children: showcase.label }),
|
|
65599
|
+
showcase.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: showcase.description })
|
|
65528
65600
|
] }),
|
|
65529
65601
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[154px] max-w-[264px] shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
65530
65602
|
img.Img,
|
|
@@ -65556,8 +65628,8 @@ var NavbarPlatformResources = ({
|
|
|
65556
65628
|
href: getLinkUrl(item),
|
|
65557
65629
|
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
65630
|
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: "
|
|
65631
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 truncate text-base", children: item.label }),
|
|
65632
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65561
65633
|
] })
|
|
65562
65634
|
},
|
|
65563
65635
|
`${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
|
|
@@ -65574,8 +65646,8 @@ var NavbarPlatformResources = ({
|
|
|
65574
65646
|
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
65647
|
children: [
|
|
65576
65648
|
/* @__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: "
|
|
65649
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 truncate text-base", children: ctaItem.label }),
|
|
65650
|
+
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: ctaItem.description })
|
|
65579
65651
|
] }),
|
|
65580
65652
|
ctaItem.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-1/3 max-w-[130px] shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
65581
65653
|
img.Img,
|
|
@@ -65591,7 +65663,7 @@ var NavbarPlatformResources = ({
|
|
|
65591
65663
|
),
|
|
65592
65664
|
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
65665
|
/* @__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-
|
|
65666
|
+
ctaItem.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm text-secondary-foreground", children: ctaItem.description })
|
|
65595
65667
|
] })
|
|
65596
65668
|
] })
|
|
65597
65669
|
] }) });
|
|
@@ -65613,8 +65685,8 @@ var NavbarPlatformResources = ({
|
|
|
65613
65685
|
) }),
|
|
65614
65686
|
!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
65687
|
/* @__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: "
|
|
65688
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-medium text-foreground", children: item.label }),
|
|
65689
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-muted-foreground", children: item.description })
|
|
65618
65690
|
] })
|
|
65619
65691
|
]
|
|
65620
65692
|
},
|
|
@@ -111009,22 +111081,59 @@ var BLOCK_REGISTRY = {
|
|
|
111009
111081
|
},
|
|
111010
111082
|
"hero-tech-carousel": {
|
|
111011
111083
|
id: "hero-tech-carousel",
|
|
111012
|
-
name: "
|
|
111013
|
-
description: "A hero
|
|
111084
|
+
name: "Multi-Panel Hero",
|
|
111085
|
+
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
111086
|
semanticTags: [
|
|
111015
111087
|
"hero",
|
|
111016
|
-
"
|
|
111017
|
-
"
|
|
111018
|
-
"
|
|
111019
|
-
"
|
|
111020
|
-
"
|
|
111088
|
+
"multi-panel",
|
|
111089
|
+
"split",
|
|
111090
|
+
"full-bleed",
|
|
111091
|
+
"fullscreen",
|
|
111092
|
+
"background-image",
|
|
111093
|
+
"image-carousel",
|
|
111021
111094
|
"brands",
|
|
111022
|
-
"
|
|
111095
|
+
"showcase",
|
|
111096
|
+
"cta"
|
|
111023
111097
|
],
|
|
111024
111098
|
category: "hero",
|
|
111025
111099
|
component: HeroTechCarousel,
|
|
111026
111100
|
props: "HeroTechCarouselProps",
|
|
111027
|
-
exampleUsage:
|
|
111101
|
+
exampleUsage: `
|
|
111102
|
+
<HeroTechCarousel
|
|
111103
|
+
items={[
|
|
111104
|
+
{
|
|
111105
|
+
logo: { src: "/logos/insurance.svg", alt: "InsuranceSite" },
|
|
111106
|
+
title: "InsuranceSite",
|
|
111107
|
+
content: "Built for modern brokers",
|
|
111108
|
+
actions: [{ label: "Get Started", href: "/insurance" }],
|
|
111109
|
+
backgroundMedia: [
|
|
111110
|
+
{ src: "/img/insurance-1.jpg", alt: "" },
|
|
111111
|
+
{ src: "/img/insurance-2.jpg", alt: "" },
|
|
111112
|
+
],
|
|
111113
|
+
},
|
|
111114
|
+
{
|
|
111115
|
+
logo: { src: "/logos/realtor.svg", alt: "RealtorSite" },
|
|
111116
|
+
title: "RealtorSite",
|
|
111117
|
+
content: "For high-volume listing agents",
|
|
111118
|
+
actions: [{ label: "Get Started", href: "/realtor" }],
|
|
111119
|
+
backgroundMedia: [{ src: "/img/realtor.jpg", alt: "" }],
|
|
111120
|
+
},
|
|
111121
|
+
{
|
|
111122
|
+
logo: { src: "/logos/castkit.svg", alt: "CastKit" },
|
|
111123
|
+
title: "CastKit",
|
|
111124
|
+
content: "AI-powered podcast production",
|
|
111125
|
+
actions: [{ label: "Get Started", href: "/castkit" }],
|
|
111126
|
+
},
|
|
111127
|
+
{
|
|
111128
|
+
logo: { src: "/logos/opensite.svg", alt: "OpenSite" },
|
|
111129
|
+
title: "OpenSite",
|
|
111130
|
+
content: "The platform behind it all",
|
|
111131
|
+
actions: [{ label: "Get Started", href: "/opensite" }],
|
|
111132
|
+
backgroundMedia: [{ src: "/img/opensite.jpg", alt: "" }],
|
|
111133
|
+
},
|
|
111134
|
+
]}
|
|
111135
|
+
/>
|
|
111136
|
+
`.trim()
|
|
111028
111137
|
},
|
|
111029
111138
|
"hero-simple-centered-image": {
|
|
111030
111139
|
id: "hero-simple-centered-image",
|