@opensite/ui 3.5.9 → 3.6.0
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/navbar-animated-preview.cjs +18 -18
- package/dist/navbar-animated-preview.js +18 -18
- package/dist/registry.cjs +1747 -401
- package/dist/registry.js +1747 -401
- package/package.json +1 -1
package/dist/registry.cjs
CHANGED
|
@@ -3610,13 +3610,13 @@ function isThemedLogo(logo) {
|
|
|
3610
3610
|
}
|
|
3611
3611
|
var FooterLogo = ({
|
|
3612
3612
|
logo,
|
|
3613
|
-
logoSlot,
|
|
3613
|
+
logoSlot: logoSlot2,
|
|
3614
3614
|
logoClassName,
|
|
3615
3615
|
logoImageClassName,
|
|
3616
3616
|
logoTitleClassName,
|
|
3617
3617
|
optixFlowConfig
|
|
3618
3618
|
}) => {
|
|
3619
|
-
if (
|
|
3619
|
+
if (logoSlot2) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot2 });
|
|
3620
3620
|
if (!logo) return null;
|
|
3621
3621
|
const hasThemedSources = isThemedLogo(logo) && (logo.light || logo.dark);
|
|
3622
3622
|
const hasStandardSource = !isThemedLogo(logo) && logo.src;
|
|
@@ -22462,7 +22462,7 @@ function FeatureSplitImage({
|
|
|
22462
22462
|
description,
|
|
22463
22463
|
imageSrc,
|
|
22464
22464
|
imageAlt,
|
|
22465
|
-
imageSlot,
|
|
22465
|
+
imageSlot: imageSlot2,
|
|
22466
22466
|
actions,
|
|
22467
22467
|
actionsSlot,
|
|
22468
22468
|
className,
|
|
@@ -22509,7 +22509,7 @@ function FeatureSplitImage({
|
|
|
22509
22509
|
});
|
|
22510
22510
|
}, [actionsSlot, actions]);
|
|
22511
22511
|
const imageContent = React30.useMemo(() => {
|
|
22512
|
-
if (
|
|
22512
|
+
if (imageSlot2) return imageSlot2;
|
|
22513
22513
|
if (!imageSrc) return null;
|
|
22514
22514
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22515
22515
|
img.Img,
|
|
@@ -22524,7 +22524,7 @@ function FeatureSplitImage({
|
|
|
22524
22524
|
optixFlowConfig
|
|
22525
22525
|
}
|
|
22526
22526
|
);
|
|
22527
|
-
}, [
|
|
22527
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
22528
22528
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22529
22529
|
Section,
|
|
22530
22530
|
{
|
|
@@ -22613,7 +22613,7 @@ function FeatureSplitImageReverse({
|
|
|
22613
22613
|
description,
|
|
22614
22614
|
imageSrc,
|
|
22615
22615
|
imageAlt,
|
|
22616
|
-
imageSlot,
|
|
22616
|
+
imageSlot: imageSlot2,
|
|
22617
22617
|
actions,
|
|
22618
22618
|
actionsSlot,
|
|
22619
22619
|
className,
|
|
@@ -22660,7 +22660,7 @@ function FeatureSplitImageReverse({
|
|
|
22660
22660
|
});
|
|
22661
22661
|
}, [actionsSlot, actions]);
|
|
22662
22662
|
const imageContent = React30.useMemo(() => {
|
|
22663
|
-
if (
|
|
22663
|
+
if (imageSlot2) return imageSlot2;
|
|
22664
22664
|
if (!imageSrc) return null;
|
|
22665
22665
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22666
22666
|
img.Img,
|
|
@@ -22675,7 +22675,7 @@ function FeatureSplitImageReverse({
|
|
|
22675
22675
|
optixFlowConfig
|
|
22676
22676
|
}
|
|
22677
22677
|
);
|
|
22678
|
-
}, [
|
|
22678
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
22679
22679
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22680
22680
|
Section,
|
|
22681
22681
|
{
|
|
@@ -22910,7 +22910,7 @@ function FeatureChecklistImage({
|
|
|
22910
22910
|
descriptionClassName,
|
|
22911
22911
|
imageSrc,
|
|
22912
22912
|
imageAlt,
|
|
22913
|
-
imageSlot,
|
|
22913
|
+
imageSlot: imageSlot2,
|
|
22914
22914
|
actions,
|
|
22915
22915
|
actionsSlot,
|
|
22916
22916
|
checklistItems,
|
|
@@ -22971,7 +22971,7 @@ function FeatureChecklistImage({
|
|
|
22971
22971
|
});
|
|
22972
22972
|
}, [actionsSlot, actions]);
|
|
22973
22973
|
const imageContent = React30.useMemo(() => {
|
|
22974
|
-
if (
|
|
22974
|
+
if (imageSlot2) return imageSlot2;
|
|
22975
22975
|
if (!imageSrc) return null;
|
|
22976
22976
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22977
22977
|
"div",
|
|
@@ -22995,7 +22995,7 @@ function FeatureChecklistImage({
|
|
|
22995
22995
|
)
|
|
22996
22996
|
}
|
|
22997
22997
|
);
|
|
22998
|
-
}, [
|
|
22998
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
22999
22999
|
const checklistContent = React30.useMemo(() => {
|
|
23000
23000
|
if (checklistSlot) return checklistSlot;
|
|
23001
23001
|
const items = checklistItems ?? benefits;
|
|
@@ -25968,7 +25968,7 @@ function FeatureImageOverlayBadge({
|
|
|
25968
25968
|
actionsSlot,
|
|
25969
25969
|
imageSrc,
|
|
25970
25970
|
imageAlt,
|
|
25971
|
-
imageSlot,
|
|
25971
|
+
imageSlot: imageSlot2,
|
|
25972
25972
|
avatarSrc,
|
|
25973
25973
|
avatarBadgeText,
|
|
25974
25974
|
overlayTitle,
|
|
@@ -26036,7 +26036,7 @@ function FeatureImageOverlayBadge({
|
|
|
26036
26036
|
});
|
|
26037
26037
|
}, [actionsSlot, actions]);
|
|
26038
26038
|
const imageContent = React30.useMemo(() => {
|
|
26039
|
-
if (
|
|
26039
|
+
if (imageSlot2) return imageSlot2;
|
|
26040
26040
|
if (imageSrc) {
|
|
26041
26041
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26042
26042
|
img.Img,
|
|
@@ -26053,7 +26053,7 @@ function FeatureImageOverlayBadge({
|
|
|
26053
26053
|
);
|
|
26054
26054
|
}
|
|
26055
26055
|
return null;
|
|
26056
|
-
}, [
|
|
26056
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
26057
26057
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26058
26058
|
Section,
|
|
26059
26059
|
{
|
|
@@ -50909,13 +50909,13 @@ function HeroPatternBadgeLogos({
|
|
|
50909
50909
|
function HeroLogoCenteredScreenshot({
|
|
50910
50910
|
sectionId = "hero-logo-centered-screenshot",
|
|
50911
50911
|
logo,
|
|
50912
|
-
logoSlot,
|
|
50912
|
+
logoSlot: logoSlot2,
|
|
50913
50913
|
heading,
|
|
50914
50914
|
description,
|
|
50915
50915
|
action,
|
|
50916
50916
|
actionSlot,
|
|
50917
50917
|
image,
|
|
50918
|
-
imageSlot,
|
|
50918
|
+
imageSlot: imageSlot2,
|
|
50919
50919
|
background,
|
|
50920
50920
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
50921
50921
|
spacing = "pt-32 pb-8 md:pt-32 md:pb-32",
|
|
@@ -50929,7 +50929,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50929
50929
|
optixFlowConfig
|
|
50930
50930
|
}) {
|
|
50931
50931
|
const renderLogo = React30.useMemo(() => {
|
|
50932
|
-
if (
|
|
50932
|
+
if (logoSlot2) return logoSlot2;
|
|
50933
50933
|
if (!logo) return null;
|
|
50934
50934
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
50935
50935
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -50941,7 +50941,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50941
50941
|
optixFlowConfig
|
|
50942
50942
|
}
|
|
50943
50943
|
);
|
|
50944
|
-
}, [
|
|
50944
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
50945
50945
|
const renderAction = React30.useMemo(() => {
|
|
50946
50946
|
if (actionSlot) return actionSlot;
|
|
50947
50947
|
if (!action) return null;
|
|
@@ -50960,7 +50960,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50960
50960
|
] }) });
|
|
50961
50961
|
}, [actionSlot, action]);
|
|
50962
50962
|
const renderImage = React30.useMemo(() => {
|
|
50963
|
-
if (
|
|
50963
|
+
if (imageSlot2) return imageSlot2;
|
|
50964
50964
|
if (!image) return null;
|
|
50965
50965
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
50966
50966
|
img.Img,
|
|
@@ -50975,7 +50975,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50975
50975
|
optixFlowConfig
|
|
50976
50976
|
}
|
|
50977
50977
|
);
|
|
50978
|
-
}, [
|
|
50978
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
50979
50979
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
50980
50980
|
Section,
|
|
50981
50981
|
{
|
|
@@ -51038,7 +51038,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
51038
51038
|
function HeroPatternLogoTechStack({
|
|
51039
51039
|
sectionId = "hero-pattern-logo-tech-stack",
|
|
51040
51040
|
logo,
|
|
51041
|
-
logoSlot,
|
|
51041
|
+
logoSlot: logoSlot2,
|
|
51042
51042
|
heading,
|
|
51043
51043
|
highlightedWord,
|
|
51044
51044
|
description,
|
|
@@ -51061,7 +51061,7 @@ function HeroPatternLogoTechStack({
|
|
|
51061
51061
|
optixFlowConfig
|
|
51062
51062
|
}) {
|
|
51063
51063
|
const renderLogo = React30.useMemo(() => {
|
|
51064
|
-
if (
|
|
51064
|
+
if (logoSlot2) return logoSlot2;
|
|
51065
51065
|
if (!logo) return null;
|
|
51066
51066
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
51067
51067
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -51073,7 +51073,7 @@ function HeroPatternLogoTechStack({
|
|
|
51073
51073
|
optixFlowConfig
|
|
51074
51074
|
}
|
|
51075
51075
|
) });
|
|
51076
|
-
}, [
|
|
51076
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
51077
51077
|
const renderActions = React30.useMemo(() => {
|
|
51078
51078
|
if (actionsSlot) return actionsSlot;
|
|
51079
51079
|
if (!actions || actions.length === 0) return null;
|
|
@@ -51308,7 +51308,7 @@ function HeroPanel({
|
|
|
51308
51308
|
}) {
|
|
51309
51309
|
const {
|
|
51310
51310
|
logo,
|
|
51311
|
-
logoSlot,
|
|
51311
|
+
logoSlot: logoSlot2,
|
|
51312
51312
|
title,
|
|
51313
51313
|
content,
|
|
51314
51314
|
actions,
|
|
@@ -51389,7 +51389,7 @@ function HeroPanel({
|
|
|
51389
51389
|
]);
|
|
51390
51390
|
const hasBackground = !!backgroundMedia && backgroundMedia.length > 0;
|
|
51391
51391
|
const renderLogo = React30.useMemo(() => {
|
|
51392
|
-
if (
|
|
51392
|
+
if (logoSlot2) return logoSlot2;
|
|
51393
51393
|
if (!logo) return null;
|
|
51394
51394
|
const src = resolveLogoSrc(logo);
|
|
51395
51395
|
if (!src) return null;
|
|
@@ -51406,7 +51406,7 @@ function HeroPanel({
|
|
|
51406
51406
|
optixFlowConfig: resolvedOptixFlow
|
|
51407
51407
|
}
|
|
51408
51408
|
);
|
|
51409
|
-
}, [
|
|
51409
|
+
}, [logoSlot2, logo, logoClassName, resolvedOptixFlow]);
|
|
51410
51410
|
const renderTitle = React30.useMemo(() => {
|
|
51411
51411
|
if (title === void 0 || title === null || title === "") return null;
|
|
51412
51412
|
if (typeof title === "string") {
|
|
@@ -51680,7 +51680,7 @@ function HeroSimpleCenteredImage({
|
|
|
51680
51680
|
function HeroPlatformFeaturesGrid({
|
|
51681
51681
|
sectionId = "hero-platform-features-grid",
|
|
51682
51682
|
logo,
|
|
51683
|
-
logoSlot,
|
|
51683
|
+
logoSlot: logoSlot2,
|
|
51684
51684
|
subtitle,
|
|
51685
51685
|
description,
|
|
51686
51686
|
heading,
|
|
@@ -51700,7 +51700,7 @@ function HeroPlatformFeaturesGrid({
|
|
|
51700
51700
|
optixFlowConfig
|
|
51701
51701
|
}) {
|
|
51702
51702
|
const renderLogo = React30.useMemo(() => {
|
|
51703
|
-
if (
|
|
51703
|
+
if (logoSlot2) return logoSlot2;
|
|
51704
51704
|
if (!logo) return null;
|
|
51705
51705
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
51706
51706
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -51715,7 +51715,7 @@ function HeroPlatformFeaturesGrid({
|
|
|
51715
51715
|
optixFlowConfig
|
|
51716
51716
|
}
|
|
51717
51717
|
);
|
|
51718
|
-
}, [
|
|
51718
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
51719
51719
|
const renderAction = React30.useMemo(() => {
|
|
51720
51720
|
if (actionSlot) return actionSlot;
|
|
51721
51721
|
if (!action) return null;
|
|
@@ -53178,7 +53178,7 @@ function HeroDashedBorderFeatures({
|
|
|
53178
53178
|
function HeroDesignCarouselPortfolio({
|
|
53179
53179
|
sectionId = "hero-design-carousel-portfolio",
|
|
53180
53180
|
logo,
|
|
53181
|
-
logoSlot,
|
|
53181
|
+
logoSlot: logoSlot2,
|
|
53182
53182
|
features,
|
|
53183
53183
|
featuresSlot,
|
|
53184
53184
|
heading,
|
|
@@ -53202,7 +53202,7 @@ function HeroDesignCarouselPortfolio({
|
|
|
53202
53202
|
optixFlowConfig
|
|
53203
53203
|
}) {
|
|
53204
53204
|
const renderLogo = React30.useMemo(() => {
|
|
53205
|
-
if (
|
|
53205
|
+
if (logoSlot2) return logoSlot2;
|
|
53206
53206
|
if (!logo) return null;
|
|
53207
53207
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
53208
53208
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -53214,7 +53214,7 @@ function HeroDesignCarouselPortfolio({
|
|
|
53214
53214
|
optixFlowConfig
|
|
53215
53215
|
}
|
|
53216
53216
|
);
|
|
53217
|
-
}, [
|
|
53217
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
53218
53218
|
const renderFeatures = React30.useMemo(() => {
|
|
53219
53219
|
if (featuresSlot) return featuresSlot;
|
|
53220
53220
|
if (!features || features.length === 0) return null;
|
|
@@ -53338,7 +53338,7 @@ function HeroGradientClientFocused({
|
|
|
53338
53338
|
actions,
|
|
53339
53339
|
actionsSlot,
|
|
53340
53340
|
image,
|
|
53341
|
-
imageSlot,
|
|
53341
|
+
imageSlot: imageSlot2,
|
|
53342
53342
|
background,
|
|
53343
53343
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
53344
53344
|
spacing = "xl",
|
|
@@ -53352,7 +53352,7 @@ function HeroGradientClientFocused({
|
|
|
53352
53352
|
optixFlowConfig
|
|
53353
53353
|
}) {
|
|
53354
53354
|
const renderImage = React30.useMemo(() => {
|
|
53355
|
-
if (
|
|
53355
|
+
if (imageSlot2) return imageSlot2;
|
|
53356
53356
|
if (!image) return null;
|
|
53357
53357
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53358
53358
|
img.Img,
|
|
@@ -53367,7 +53367,7 @@ function HeroGradientClientFocused({
|
|
|
53367
53367
|
optixFlowConfig
|
|
53368
53368
|
}
|
|
53369
53369
|
);
|
|
53370
|
-
}, [
|
|
53370
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
53371
53371
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53372
53372
|
Section,
|
|
53373
53373
|
{
|
|
@@ -53434,7 +53434,7 @@ function HeroPremiumSplitAvatars({
|
|
|
53434
53434
|
avatarsSlot,
|
|
53435
53435
|
socialProofText,
|
|
53436
53436
|
image,
|
|
53437
|
-
imageSlot,
|
|
53437
|
+
imageSlot: imageSlot2,
|
|
53438
53438
|
className,
|
|
53439
53439
|
spacing = "hero",
|
|
53440
53440
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
@@ -53498,7 +53498,7 @@ function HeroPremiumSplitAvatars({
|
|
|
53498
53498
|
] });
|
|
53499
53499
|
}, [avatarsSlot, avatars, socialProofText]);
|
|
53500
53500
|
const renderImage = React30.useMemo(() => {
|
|
53501
|
-
if (
|
|
53501
|
+
if (imageSlot2) return imageSlot2;
|
|
53502
53502
|
if (!image) return null;
|
|
53503
53503
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53504
53504
|
MediaAspectRatio,
|
|
@@ -53520,7 +53520,7 @@ function HeroPremiumSplitAvatars({
|
|
|
53520
53520
|
}
|
|
53521
53521
|
);
|
|
53522
53522
|
}, [
|
|
53523
|
-
|
|
53523
|
+
imageSlot2,
|
|
53524
53524
|
image,
|
|
53525
53525
|
imageClassName,
|
|
53526
53526
|
optixFlowConfig,
|
|
@@ -53572,14 +53572,14 @@ function HeroPremiumSplitAvatars({
|
|
|
53572
53572
|
function HeroUiLibraryShowcase({
|
|
53573
53573
|
sectionId = "hero-ui-library-showcase",
|
|
53574
53574
|
logo,
|
|
53575
|
-
logoSlot,
|
|
53575
|
+
logoSlot: logoSlot2,
|
|
53576
53576
|
heading,
|
|
53577
53577
|
description,
|
|
53578
53578
|
actions,
|
|
53579
53579
|
actionsSlot,
|
|
53580
53580
|
actionsClassName,
|
|
53581
53581
|
image,
|
|
53582
|
-
imageSlot,
|
|
53582
|
+
imageSlot: imageSlot2,
|
|
53583
53583
|
background,
|
|
53584
53584
|
pattern,
|
|
53585
53585
|
patternOpacity,
|
|
@@ -53593,7 +53593,7 @@ function HeroUiLibraryShowcase({
|
|
|
53593
53593
|
optixFlowConfig
|
|
53594
53594
|
}) {
|
|
53595
53595
|
const renderLogo = React30.useMemo(() => {
|
|
53596
|
-
if (
|
|
53596
|
+
if (logoSlot2) return logoSlot2;
|
|
53597
53597
|
if (!logo) return null;
|
|
53598
53598
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53599
53599
|
img.Img,
|
|
@@ -53604,9 +53604,9 @@ function HeroUiLibraryShowcase({
|
|
|
53604
53604
|
optixFlowConfig
|
|
53605
53605
|
}
|
|
53606
53606
|
);
|
|
53607
|
-
}, [
|
|
53607
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
53608
53608
|
const renderImage = React30.useMemo(() => {
|
|
53609
|
-
if (
|
|
53609
|
+
if (imageSlot2) return imageSlot2;
|
|
53610
53610
|
if (!image) return null;
|
|
53611
53611
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full overflow-hidden rounded-2xl shadow-xl mt-12 md:mt-20", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.916786227 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
53612
53612
|
img.Img,
|
|
@@ -53621,7 +53621,7 @@ function HeroUiLibraryShowcase({
|
|
|
53621
53621
|
optixFlowConfig
|
|
53622
53622
|
}
|
|
53623
53623
|
) }) });
|
|
53624
|
-
}, [
|
|
53624
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
53625
53625
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
53626
53626
|
Section,
|
|
53627
53627
|
{
|
|
@@ -53786,7 +53786,7 @@ function HeroFullscreenBackgroundImage({
|
|
|
53786
53786
|
function HeroFullscreenLogoCta({
|
|
53787
53787
|
sectionId = "hero-fullscreen-logo-cta",
|
|
53788
53788
|
logo,
|
|
53789
|
-
logoSlot,
|
|
53789
|
+
logoSlot: logoSlot2,
|
|
53790
53790
|
heading,
|
|
53791
53791
|
description,
|
|
53792
53792
|
action,
|
|
@@ -53820,7 +53820,7 @@ function HeroFullscreenLogoCta({
|
|
|
53820
53820
|
] });
|
|
53821
53821
|
}, [backgroundImage, optixFlowConfig]);
|
|
53822
53822
|
const renderLogo = React30.useMemo(() => {
|
|
53823
|
-
if (
|
|
53823
|
+
if (logoSlot2) return logoSlot2;
|
|
53824
53824
|
if (!logo) return null;
|
|
53825
53825
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
53826
53826
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -53832,7 +53832,7 @@ function HeroFullscreenLogoCta({
|
|
|
53832
53832
|
optixFlowConfig
|
|
53833
53833
|
}
|
|
53834
53834
|
);
|
|
53835
|
-
}, [
|
|
53835
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
53836
53836
|
const renderAction = React30.useMemo(() => {
|
|
53837
53837
|
if (actionSlot) return actionSlot;
|
|
53838
53838
|
if (!action) return null;
|
|
@@ -54938,7 +54938,7 @@ function HeroCrmStreamlined({
|
|
|
54938
54938
|
actionsSlot,
|
|
54939
54939
|
actionsClassName,
|
|
54940
54940
|
image,
|
|
54941
|
-
imageSlot,
|
|
54941
|
+
imageSlot: imageSlot2,
|
|
54942
54942
|
background,
|
|
54943
54943
|
pattern,
|
|
54944
54944
|
patternOpacity,
|
|
@@ -55004,7 +55004,7 @@ function HeroCrmStreamlined({
|
|
|
55004
55004
|
"div",
|
|
55005
55005
|
{
|
|
55006
55006
|
className: cn("relative basis-[42%] py-9 md:py-16", imageClassName),
|
|
55007
|
-
children:
|
|
55007
|
+
children: imageSlot2 ? imageSlot2 : image ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "aspect-square w-full overflow-hidden rounded-xl shadow-xl", children: [
|
|
55008
55008
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
55009
55009
|
img.Img,
|
|
55010
55010
|
{
|
|
@@ -55522,7 +55522,7 @@ function HeroConversionVideoPlay({
|
|
|
55522
55522
|
videoDialogTitle,
|
|
55523
55523
|
actionsSlot,
|
|
55524
55524
|
image,
|
|
55525
|
-
imageSlot,
|
|
55525
|
+
imageSlot: imageSlot2,
|
|
55526
55526
|
logosTagline,
|
|
55527
55527
|
logos,
|
|
55528
55528
|
logosSlot,
|
|
@@ -55653,7 +55653,7 @@ function HeroConversionVideoPlay({
|
|
|
55653
55653
|
]
|
|
55654
55654
|
}
|
|
55655
55655
|
),
|
|
55656
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", children:
|
|
55656
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", children: imageSlot2 ? imageSlot2 : image ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative h-fit w-full", imageClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-20 w-full max-w-330 overflow-hidden rounded-t-xl md:rounded-t-3xl", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 2.095238095 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
55657
55657
|
img.Img,
|
|
55658
55658
|
{
|
|
55659
55659
|
src: image.src,
|
|
@@ -56229,7 +56229,7 @@ function HeroSplitImageNewsletter({
|
|
|
56229
56229
|
helperText,
|
|
56230
56230
|
formSlot,
|
|
56231
56231
|
image,
|
|
56232
|
-
imageSlot,
|
|
56232
|
+
imageSlot: imageSlot2,
|
|
56233
56233
|
background,
|
|
56234
56234
|
spacing = "xl",
|
|
56235
56235
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
@@ -56341,7 +56341,7 @@ function HeroSplitImageNewsletter({
|
|
|
56341
56341
|
resetSubmissionState
|
|
56342
56342
|
]);
|
|
56343
56343
|
const renderImage = React30__namespace.useMemo(() => {
|
|
56344
|
-
if (
|
|
56344
|
+
if (imageSlot2) return imageSlot2;
|
|
56345
56345
|
if (!image) return null;
|
|
56346
56346
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
56347
56347
|
img.Img,
|
|
@@ -56356,7 +56356,7 @@ function HeroSplitImageNewsletter({
|
|
|
56356
56356
|
optixFlowConfig
|
|
56357
56357
|
}
|
|
56358
56358
|
) });
|
|
56359
|
-
}, [
|
|
56359
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
56360
56360
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
56361
56361
|
Section,
|
|
56362
56362
|
{
|
|
@@ -57339,7 +57339,7 @@ function HeroVideoDialogGradient({
|
|
|
57339
57339
|
actions,
|
|
57340
57340
|
videoAction,
|
|
57341
57341
|
image,
|
|
57342
|
-
imageSlot,
|
|
57342
|
+
imageSlot: imageSlot2,
|
|
57343
57343
|
modalVideo,
|
|
57344
57344
|
videoDialogTitle,
|
|
57345
57345
|
videoDialog,
|
|
@@ -57382,7 +57382,7 @@ function HeroVideoDialogGradient({
|
|
|
57382
57382
|
}
|
|
57383
57383
|
};
|
|
57384
57384
|
const renderImage = React30.useMemo(() => {
|
|
57385
|
-
if (
|
|
57385
|
+
if (imageSlot2) return imageSlot2;
|
|
57386
57386
|
if (!image) return null;
|
|
57387
57387
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mt-16 w-full max-w-[1000px] overflow-hidden rounded-xl shadow-[4px_2px_3.123rem_rgba(0,0,0,.15)]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.406469761 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
57388
57388
|
img.Img,
|
|
@@ -57397,7 +57397,7 @@ function HeroVideoDialogGradient({
|
|
|
57397
57397
|
optixFlowConfig
|
|
57398
57398
|
}
|
|
57399
57399
|
) }) });
|
|
57400
|
-
}, [
|
|
57400
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
57401
57401
|
return /* @__PURE__ */ jsxRuntime.jsxs(React30.Fragment, { children: [
|
|
57402
57402
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
57403
57403
|
Section,
|
|
@@ -58346,7 +58346,7 @@ function HeroMentorshipVideoSplit({
|
|
|
58346
58346
|
videoTitle,
|
|
58347
58347
|
videoSlot,
|
|
58348
58348
|
image,
|
|
58349
|
-
imageSlot,
|
|
58349
|
+
imageSlot: imageSlot2,
|
|
58350
58350
|
background,
|
|
58351
58351
|
spacing = "py-32 md:py-32",
|
|
58352
58352
|
pattern,
|
|
@@ -58446,7 +58446,7 @@ function HeroMentorshipVideoSplit({
|
|
|
58446
58446
|
setIsVideoOpen
|
|
58447
58447
|
]);
|
|
58448
58448
|
const renderImage = React30.useMemo(() => {
|
|
58449
|
-
if (
|
|
58449
|
+
if (imageSlot2) return imageSlot2;
|
|
58450
58450
|
if (!image) return null;
|
|
58451
58451
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
58452
58452
|
img.Img,
|
|
@@ -58461,7 +58461,7 @@ function HeroMentorshipVideoSplit({
|
|
|
58461
58461
|
optixFlowConfig
|
|
58462
58462
|
}
|
|
58463
58463
|
) });
|
|
58464
|
-
}, [
|
|
58464
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
58465
58465
|
return /* @__PURE__ */ jsxRuntime.jsxs(React30.Fragment, { children: [
|
|
58466
58466
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
58467
58467
|
Section,
|
|
@@ -59852,7 +59852,7 @@ function HeroConversationIntelligence({
|
|
|
59852
59852
|
actions,
|
|
59853
59853
|
actionsSlot,
|
|
59854
59854
|
image,
|
|
59855
|
-
imageSlot,
|
|
59855
|
+
imageSlot: imageSlot2,
|
|
59856
59856
|
background,
|
|
59857
59857
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
59858
59858
|
spacing = "hero",
|
|
@@ -59868,7 +59868,7 @@ function HeroConversationIntelligence({
|
|
|
59868
59868
|
optixFlowConfig
|
|
59869
59869
|
}) {
|
|
59870
59870
|
const renderImage = React30.useMemo(() => {
|
|
59871
|
-
if (
|
|
59871
|
+
if (imageSlot2) return imageSlot2;
|
|
59872
59872
|
if (!image) return null;
|
|
59873
59873
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
59874
59874
|
"div",
|
|
@@ -59891,7 +59891,7 @@ function HeroConversationIntelligence({
|
|
|
59891
59891
|
)
|
|
59892
59892
|
}
|
|
59893
59893
|
);
|
|
59894
|
-
}, [
|
|
59894
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
59895
59895
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
59896
59896
|
Section,
|
|
59897
59897
|
{
|
|
@@ -60405,7 +60405,7 @@ function HeroMobileAppDownload({
|
|
|
60405
60405
|
starCount,
|
|
60406
60406
|
ratingSlot,
|
|
60407
60407
|
image,
|
|
60408
|
-
imageSlot,
|
|
60408
|
+
imageSlot: imageSlot2,
|
|
60409
60409
|
notification,
|
|
60410
60410
|
notificationSlot,
|
|
60411
60411
|
background,
|
|
@@ -60513,7 +60513,7 @@ function HeroMobileAppDownload({
|
|
|
60513
60513
|
);
|
|
60514
60514
|
}, [notificationSlot, notification]);
|
|
60515
60515
|
const renderImage = React30.useMemo(() => {
|
|
60516
|
-
if (
|
|
60516
|
+
if (imageSlot2) return imageSlot2;
|
|
60517
60517
|
if (!image) return null;
|
|
60518
60518
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
60519
60519
|
"div",
|
|
@@ -60539,7 +60539,7 @@ function HeroMobileAppDownload({
|
|
|
60539
60539
|
] })
|
|
60540
60540
|
}
|
|
60541
60541
|
);
|
|
60542
|
-
}, [
|
|
60542
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig, renderNotification]);
|
|
60543
60543
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
60544
60544
|
Section,
|
|
60545
60545
|
{
|
|
@@ -61117,7 +61117,7 @@ function HeroEventRegistration({
|
|
|
61117
61117
|
stats,
|
|
61118
61118
|
statsSlot,
|
|
61119
61119
|
image,
|
|
61120
|
-
imageSlot,
|
|
61120
|
+
imageSlot: imageSlot2,
|
|
61121
61121
|
locationLabel,
|
|
61122
61122
|
locationSublabel,
|
|
61123
61123
|
locationSlot,
|
|
@@ -61236,7 +61236,7 @@ function HeroEventRegistration({
|
|
|
61236
61236
|
);
|
|
61237
61237
|
}, [locationSlot, locationLabel, locationSublabel]);
|
|
61238
61238
|
const renderImage = React30.useMemo(() => {
|
|
61239
|
-
if (
|
|
61239
|
+
if (imageSlot2) return imageSlot2;
|
|
61240
61240
|
if (!image) return null;
|
|
61241
61241
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full md:w-[50%]", children: [
|
|
61242
61242
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -61259,7 +61259,7 @@ function HeroEventRegistration({
|
|
|
61259
61259
|
),
|
|
61260
61260
|
renderLocation
|
|
61261
61261
|
] });
|
|
61262
|
-
}, [
|
|
61262
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig, renderLocation]);
|
|
61263
61263
|
const desktopOrder = directionConfig.desktop === "mediaRight" ? "md:flex-row" : "md:flex-row-reverse";
|
|
61264
61264
|
const mobileOrder = directionConfig.mobile === "mediaTop" ? "flex-col-reverse" : "flex-col";
|
|
61265
61265
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -63151,11 +63151,11 @@ var NavbarMobileMenu = ({
|
|
|
63151
63151
|
};
|
|
63152
63152
|
var NavbarLogo = ({
|
|
63153
63153
|
logo,
|
|
63154
|
-
logoSlot,
|
|
63154
|
+
logoSlot: logoSlot2,
|
|
63155
63155
|
logoClassName,
|
|
63156
63156
|
optixFlowConfig
|
|
63157
63157
|
}) => {
|
|
63158
|
-
if (
|
|
63158
|
+
if (logoSlot2) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot2 });
|
|
63159
63159
|
if (!logo) return null;
|
|
63160
63160
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
63161
63161
|
pressable.Pressable,
|
|
@@ -63272,7 +63272,7 @@ var renderMobileMenuItem = (item, optixFlowConfig) => {
|
|
|
63272
63272
|
var NavbarDropdownMenu = ({
|
|
63273
63273
|
sectionId = "navbar-dropdown-menu",
|
|
63274
63274
|
logo,
|
|
63275
|
-
logoSlot,
|
|
63275
|
+
logoSlot: logoSlot2,
|
|
63276
63276
|
logoClassName,
|
|
63277
63277
|
menu,
|
|
63278
63278
|
menuSlot,
|
|
@@ -63364,7 +63364,7 @@ var NavbarDropdownMenu = ({
|
|
|
63364
63364
|
NavbarLogo,
|
|
63365
63365
|
{
|
|
63366
63366
|
logo,
|
|
63367
|
-
logoSlot,
|
|
63367
|
+
logoSlot: logoSlot2,
|
|
63368
63368
|
logoClassName,
|
|
63369
63369
|
optixFlowConfig
|
|
63370
63370
|
}
|
|
@@ -63380,7 +63380,7 @@ var NavbarDropdownMenu = ({
|
|
|
63380
63380
|
NavbarLogo,
|
|
63381
63381
|
{
|
|
63382
63382
|
logo,
|
|
63383
|
-
logoSlot,
|
|
63383
|
+
logoSlot: logoSlot2,
|
|
63384
63384
|
logoClassName,
|
|
63385
63385
|
optixFlowConfig
|
|
63386
63386
|
}
|
|
@@ -63500,7 +63500,7 @@ var renderMobileMenuItem2 = (item) => {
|
|
|
63500
63500
|
var NavbarCenteredMenu = ({
|
|
63501
63501
|
sectionId = "navbar-centered-menu",
|
|
63502
63502
|
logo,
|
|
63503
|
-
logoSlot,
|
|
63503
|
+
logoSlot: logoSlot2,
|
|
63504
63504
|
logoClassName,
|
|
63505
63505
|
menu,
|
|
63506
63506
|
menuSlot,
|
|
@@ -63591,7 +63591,7 @@ var NavbarCenteredMenu = ({
|
|
|
63591
63591
|
NavbarLogo,
|
|
63592
63592
|
{
|
|
63593
63593
|
logo,
|
|
63594
|
-
logoSlot,
|
|
63594
|
+
logoSlot: logoSlot2,
|
|
63595
63595
|
logoClassName,
|
|
63596
63596
|
optixFlowConfig
|
|
63597
63597
|
}
|
|
@@ -63612,7 +63612,7 @@ var NavbarCenteredMenu = ({
|
|
|
63612
63612
|
NavbarLogo,
|
|
63613
63613
|
{
|
|
63614
63614
|
logo,
|
|
63615
|
-
logoSlot,
|
|
63615
|
+
logoSlot: logoSlot2,
|
|
63616
63616
|
logoClassName,
|
|
63617
63617
|
optixFlowConfig
|
|
63618
63618
|
}
|
|
@@ -63890,7 +63890,7 @@ var NavbarMegaMenu = ({
|
|
|
63890
63890
|
logoClassName,
|
|
63891
63891
|
mobileMenuClassName,
|
|
63892
63892
|
logo,
|
|
63893
|
-
logoSlot,
|
|
63893
|
+
logoSlot: logoSlot2,
|
|
63894
63894
|
menuLinks,
|
|
63895
63895
|
actions,
|
|
63896
63896
|
layoutVariant = "fullScreenContainerizedLinks",
|
|
@@ -63968,7 +63968,7 @@ var NavbarMegaMenu = ({
|
|
|
63968
63968
|
NavbarLogo,
|
|
63969
63969
|
{
|
|
63970
63970
|
logo,
|
|
63971
|
-
logoSlot,
|
|
63971
|
+
logoSlot: logoSlot2,
|
|
63972
63972
|
logoClassName,
|
|
63973
63973
|
optixFlowConfig
|
|
63974
63974
|
}
|
|
@@ -64619,7 +64619,7 @@ var NavbarEnterpriseMega = ({
|
|
|
64619
64619
|
actionsClassName,
|
|
64620
64620
|
logoClassName,
|
|
64621
64621
|
logo,
|
|
64622
|
-
logoSlot,
|
|
64622
|
+
logoSlot: logoSlot2,
|
|
64623
64623
|
menuLinks,
|
|
64624
64624
|
actions,
|
|
64625
64625
|
actionsSlot,
|
|
@@ -64702,7 +64702,7 @@ var NavbarEnterpriseMega = ({
|
|
|
64702
64702
|
NavbarLogo,
|
|
64703
64703
|
{
|
|
64704
64704
|
logo,
|
|
64705
|
-
logoSlot,
|
|
64705
|
+
logoSlot: logoSlot2,
|
|
64706
64706
|
logoClassName,
|
|
64707
64707
|
optixFlowConfig
|
|
64708
64708
|
}
|
|
@@ -65002,7 +65002,7 @@ var NavbarFeatureGrid = ({
|
|
|
65002
65002
|
actionsClassName,
|
|
65003
65003
|
logoClassName,
|
|
65004
65004
|
logo,
|
|
65005
|
-
logoSlot,
|
|
65005
|
+
logoSlot: logoSlot2,
|
|
65006
65006
|
features,
|
|
65007
65007
|
menu,
|
|
65008
65008
|
authActions,
|
|
@@ -65063,7 +65063,7 @@ var NavbarFeatureGrid = ({
|
|
|
65063
65063
|
NavbarLogo,
|
|
65064
65064
|
{
|
|
65065
65065
|
logo,
|
|
65066
|
-
logoSlot,
|
|
65066
|
+
logoSlot: logoSlot2,
|
|
65067
65067
|
logoClassName,
|
|
65068
65068
|
optixFlowConfig
|
|
65069
65069
|
}
|
|
@@ -65172,7 +65172,7 @@ var NavbarFeatureGrid = ({
|
|
|
65172
65172
|
var NavbarFloatingPill = ({
|
|
65173
65173
|
sectionId = "navbar-floating-pill",
|
|
65174
65174
|
logo,
|
|
65175
|
-
logoSlot,
|
|
65175
|
+
logoSlot: logoSlot2,
|
|
65176
65176
|
logoClassName,
|
|
65177
65177
|
items,
|
|
65178
65178
|
menuSlot,
|
|
@@ -65265,7 +65265,7 @@ var NavbarFloatingPill = ({
|
|
|
65265
65265
|
NavbarLogo,
|
|
65266
65266
|
{
|
|
65267
65267
|
logo,
|
|
65268
|
-
logoSlot,
|
|
65268
|
+
logoSlot: logoSlot2,
|
|
65269
65269
|
logoClassName,
|
|
65270
65270
|
optixFlowConfig
|
|
65271
65271
|
}
|
|
@@ -65441,7 +65441,7 @@ var NavbarPlatformResources = ({
|
|
|
65441
65441
|
logoClassName,
|
|
65442
65442
|
mobileMenuClassName,
|
|
65443
65443
|
logo,
|
|
65444
|
-
logoSlot,
|
|
65444
|
+
logoSlot: logoSlot2,
|
|
65445
65445
|
menuLinks,
|
|
65446
65446
|
actions,
|
|
65447
65447
|
layoutVariant = "fullScreenContainerizedLinks",
|
|
@@ -65799,7 +65799,7 @@ var NavbarPlatformResources = ({
|
|
|
65799
65799
|
NavbarLogo,
|
|
65800
65800
|
{
|
|
65801
65801
|
logo,
|
|
65802
|
-
logoSlot,
|
|
65802
|
+
logoSlot: logoSlot2,
|
|
65803
65803
|
logoClassName,
|
|
65804
65804
|
optixFlowConfig
|
|
65805
65805
|
}
|
|
@@ -65943,7 +65943,7 @@ var NavbarImagePreview = ({
|
|
|
65943
65943
|
navigationMenuClassName,
|
|
65944
65944
|
actionsClassName,
|
|
65945
65945
|
logo,
|
|
65946
|
-
logoSlot,
|
|
65946
|
+
logoSlot: logoSlot2,
|
|
65947
65947
|
logoClassName,
|
|
65948
65948
|
navigation,
|
|
65949
65949
|
navigationSlot,
|
|
@@ -66069,7 +66069,7 @@ var NavbarImagePreview = ({
|
|
|
66069
66069
|
NavbarLogo,
|
|
66070
66070
|
{
|
|
66071
66071
|
logo,
|
|
66072
|
-
logoSlot,
|
|
66072
|
+
logoSlot: logoSlot2,
|
|
66073
66073
|
logoClassName,
|
|
66074
66074
|
optixFlowConfig
|
|
66075
66075
|
}
|
|
@@ -66337,7 +66337,7 @@ var NavbarDarkIcons = ({
|
|
|
66337
66337
|
navigationMenuClassName,
|
|
66338
66338
|
actionsClassName,
|
|
66339
66339
|
logo,
|
|
66340
|
-
logoSlot,
|
|
66340
|
+
logoSlot: logoSlot2,
|
|
66341
66341
|
logoClassName,
|
|
66342
66342
|
navigation,
|
|
66343
66343
|
navigationSlot,
|
|
@@ -66452,7 +66452,7 @@ var NavbarDarkIcons = ({
|
|
|
66452
66452
|
NavbarLogo,
|
|
66453
66453
|
{
|
|
66454
66454
|
logo,
|
|
66455
|
-
logoSlot,
|
|
66455
|
+
logoSlot: logoSlot2,
|
|
66456
66456
|
logoClassName,
|
|
66457
66457
|
optixFlowConfig
|
|
66458
66458
|
}
|
|
@@ -66681,7 +66681,7 @@ var NavbarAnimatedPreview = ({
|
|
|
66681
66681
|
navigationMenuClassName,
|
|
66682
66682
|
actionsClassName,
|
|
66683
66683
|
logo,
|
|
66684
|
-
logoSlot,
|
|
66684
|
+
logoSlot: logoSlot2,
|
|
66685
66685
|
logoClassName,
|
|
66686
66686
|
menuLinks,
|
|
66687
66687
|
navigationSlot,
|
|
@@ -66803,7 +66803,7 @@ var NavbarAnimatedPreview = ({
|
|
|
66803
66803
|
NavbarLogo,
|
|
66804
66804
|
{
|
|
66805
66805
|
logo,
|
|
66806
|
-
logoSlot,
|
|
66806
|
+
logoSlot: logoSlot2,
|
|
66807
66807
|
logoClassName,
|
|
66808
66808
|
optixFlowConfig
|
|
66809
66809
|
}
|
|
@@ -67073,35 +67073,35 @@ var FeaturedImageLink = ({
|
|
|
67073
67073
|
) }) });
|
|
67074
67074
|
};
|
|
67075
67075
|
var FeaturedLink = ({ link, optixFlowConfig }) => {
|
|
67076
|
+
const hasBgImg = !!link.background;
|
|
67076
67077
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
67077
67078
|
pressable.Pressable,
|
|
67078
67079
|
{
|
|
67079
67080
|
href: getLinkUrl(link),
|
|
67080
|
-
className:
|
|
67081
|
+
className: `group relative flex w-full overflow-hidden rounded-xl px-4 pt-24 pb-4 ${hasBgImg ? "" : "bg-primary"}`,
|
|
67081
67082
|
children: [
|
|
67082
67083
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
|
|
67083
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-
|
|
67084
|
-
|
|
67084
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-card text-card-foreground shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon || link.iconName, size: 20 }) }),
|
|
67085
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
67086
|
+
"div",
|
|
67085
67087
|
{
|
|
67086
|
-
|
|
67087
|
-
|
|
67088
|
-
|
|
67088
|
+
className: `flex flex-col ${hasBgImg ? "text-white text-shadow-lg" : "text-primary-foreground"}`,
|
|
67089
|
+
children: [
|
|
67090
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg font-semibold", children: link.label }),
|
|
67091
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: link.description })
|
|
67092
|
+
]
|
|
67089
67093
|
}
|
|
67090
|
-
)
|
|
67091
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col text-white text-shadow-lg", children: [
|
|
67092
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg font-semibold", children: link.label }),
|
|
67093
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: link.description })
|
|
67094
|
-
] })
|
|
67094
|
+
)
|
|
67095
67095
|
] }),
|
|
67096
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
67096
|
+
link.background && link.background?.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
67097
67097
|
img.Img,
|
|
67098
67098
|
{
|
|
67099
67099
|
src: link.background,
|
|
67100
|
-
alt: typeof link.label === "string" ? link.label : "",
|
|
67100
|
+
alt: link.label && typeof link.label === "string" ? link.label : "Featured link background image",
|
|
67101
67101
|
className: "absolute top-0 left-0 size-full brightness-50 object-cover object-center opacity-90 transition-opacity duration-300 ease-in-out group-hover:opacity-100",
|
|
67102
67102
|
optixFlowConfig
|
|
67103
67103
|
}
|
|
67104
|
-
)
|
|
67104
|
+
) : null
|
|
67105
67105
|
]
|
|
67106
67106
|
}
|
|
67107
67107
|
);
|
|
@@ -67117,17 +67117,17 @@ var NavLink = React30.forwardRef(
|
|
|
67117
67117
|
onMouseEnter,
|
|
67118
67118
|
onMouseLeave,
|
|
67119
67119
|
children: [
|
|
67120
|
-
|
|
67120
|
+
link.icon || link.iconName ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-6 shrink-0 rounded-md border shadow", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
67121
67121
|
DynamicIcon,
|
|
67122
67122
|
{
|
|
67123
67123
|
name: link.icon || link.iconName,
|
|
67124
67124
|
size: 14,
|
|
67125
67125
|
className: "m-auto"
|
|
67126
67126
|
}
|
|
67127
|
-
) }),
|
|
67128
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-
|
|
67127
|
+
) }) : null,
|
|
67128
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-1", children: [
|
|
67129
67129
|
link.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm leading-normal", children: link.label }),
|
|
67130
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs leading-normal
|
|
67130
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs leading-normal opacity-70", children: link.description })
|
|
67131
67131
|
] })
|
|
67132
67132
|
]
|
|
67133
67133
|
}
|
|
@@ -67223,7 +67223,7 @@ var NavbarMultiColumnGroups = ({
|
|
|
67223
67223
|
navigationMenuClassName,
|
|
67224
67224
|
actionsClassName,
|
|
67225
67225
|
logo,
|
|
67226
|
-
logoSlot,
|
|
67226
|
+
logoSlot: logoSlot2,
|
|
67227
67227
|
logoClassName,
|
|
67228
67228
|
navigation,
|
|
67229
67229
|
navigationSlot,
|
|
@@ -67334,7 +67334,7 @@ var NavbarMultiColumnGroups = ({
|
|
|
67334
67334
|
NavbarLogo,
|
|
67335
67335
|
{
|
|
67336
67336
|
logo,
|
|
67337
|
-
logoSlot,
|
|
67337
|
+
logoSlot: logoSlot2,
|
|
67338
67338
|
logoClassName,
|
|
67339
67339
|
optixFlowConfig
|
|
67340
67340
|
}
|
|
@@ -67538,7 +67538,7 @@ var MobileNavigationMenu5 = ({
|
|
|
67538
67538
|
};
|
|
67539
67539
|
var NavbarSidebarMobile = ({
|
|
67540
67540
|
logo,
|
|
67541
|
-
logoSlot,
|
|
67541
|
+
logoSlot: logoSlot2,
|
|
67542
67542
|
logoClassName,
|
|
67543
67543
|
menu,
|
|
67544
67544
|
menuSlot,
|
|
@@ -67648,7 +67648,7 @@ var NavbarSidebarMobile = ({
|
|
|
67648
67648
|
NavbarLogo,
|
|
67649
67649
|
{
|
|
67650
67650
|
logo,
|
|
67651
|
-
logoSlot,
|
|
67651
|
+
logoSlot: logoSlot2,
|
|
67652
67652
|
logoClassName,
|
|
67653
67653
|
optixFlowConfig
|
|
67654
67654
|
}
|
|
@@ -67854,7 +67854,7 @@ var NavbarTransparentOverlay = ({
|
|
|
67854
67854
|
mobileMenuClassName,
|
|
67855
67855
|
socialLinksClassName,
|
|
67856
67856
|
logo,
|
|
67857
|
-
logoSlot,
|
|
67857
|
+
logoSlot: logoSlot2,
|
|
67858
67858
|
logoClassName,
|
|
67859
67859
|
navItems,
|
|
67860
67860
|
navigationSlot,
|
|
@@ -67972,7 +67972,7 @@ var NavbarTransparentOverlay = ({
|
|
|
67972
67972
|
NavbarLogo,
|
|
67973
67973
|
{
|
|
67974
67974
|
logo,
|
|
67975
|
-
logoSlot,
|
|
67975
|
+
logoSlot: logoSlot2,
|
|
67976
67976
|
logoClassName: cn(
|
|
67977
67977
|
"z-50",
|
|
67978
67978
|
!isScrolled && !isOpen && "[&_img]:brightness-0 [&_img]:invert [&_span]:text-background",
|
|
@@ -68139,7 +68139,7 @@ var NavbarEducationPlatform = ({
|
|
|
68139
68139
|
logoClassName,
|
|
68140
68140
|
mobileMenuClassName,
|
|
68141
68141
|
logo,
|
|
68142
|
-
logoSlot,
|
|
68142
|
+
logoSlot: logoSlot2,
|
|
68143
68143
|
menu,
|
|
68144
68144
|
menuSlot,
|
|
68145
68145
|
authActions,
|
|
@@ -68234,7 +68234,7 @@ var NavbarEducationPlatform = ({
|
|
|
68234
68234
|
NavbarLogo,
|
|
68235
68235
|
{
|
|
68236
68236
|
logo,
|
|
68237
|
-
logoSlot,
|
|
68237
|
+
logoSlot: logoSlot2,
|
|
68238
68238
|
logoClassName,
|
|
68239
68239
|
optixFlowConfig
|
|
68240
68240
|
}
|
|
@@ -68468,7 +68468,7 @@ var MobileNavigationMenu8 = ({
|
|
|
68468
68468
|
};
|
|
68469
68469
|
var NavbarStickyCompact = ({
|
|
68470
68470
|
logo,
|
|
68471
|
-
logoSlot,
|
|
68471
|
+
logoSlot: logoSlot2,
|
|
68472
68472
|
logoClassName,
|
|
68473
68473
|
menu,
|
|
68474
68474
|
menuSlot,
|
|
@@ -68603,7 +68603,7 @@ var NavbarStickyCompact = ({
|
|
|
68603
68603
|
NavbarLogo,
|
|
68604
68604
|
{
|
|
68605
68605
|
logo,
|
|
68606
|
-
logoSlot,
|
|
68606
|
+
logoSlot: logoSlot2,
|
|
68607
68607
|
logoClassName,
|
|
68608
68608
|
optixFlowConfig
|
|
68609
68609
|
}
|
|
@@ -68748,7 +68748,7 @@ var NavbarSearchFocused = ({
|
|
|
68748
68748
|
navigationMenuClassName,
|
|
68749
68749
|
actionsClassName,
|
|
68750
68750
|
logo,
|
|
68751
|
-
logoSlot,
|
|
68751
|
+
logoSlot: logoSlot2,
|
|
68752
68752
|
logoClassName,
|
|
68753
68753
|
navItems,
|
|
68754
68754
|
navigationSlot,
|
|
@@ -68870,7 +68870,7 @@ var NavbarSearchFocused = ({
|
|
|
68870
68870
|
NavbarLogo,
|
|
68871
68871
|
{
|
|
68872
68872
|
logo,
|
|
68873
|
-
logoSlot,
|
|
68873
|
+
logoSlot: logoSlot2,
|
|
68874
68874
|
logoClassName,
|
|
68875
68875
|
optixFlowConfig
|
|
68876
68876
|
}
|
|
@@ -69009,7 +69009,7 @@ var NavbarSimpleLinks = ({
|
|
|
69009
69009
|
actionsClassName,
|
|
69010
69010
|
mobileMenuClassName,
|
|
69011
69011
|
logo,
|
|
69012
|
-
logoSlot,
|
|
69012
|
+
logoSlot: logoSlot2,
|
|
69013
69013
|
logoClassName,
|
|
69014
69014
|
navItems,
|
|
69015
69015
|
navItemsSlot,
|
|
@@ -69135,7 +69135,7 @@ var NavbarSimpleLinks = ({
|
|
|
69135
69135
|
NavbarLogo,
|
|
69136
69136
|
{
|
|
69137
69137
|
logo,
|
|
69138
|
-
logoSlot,
|
|
69138
|
+
logoSlot: logoSlot2,
|
|
69139
69139
|
logoClassName,
|
|
69140
69140
|
optixFlowConfig
|
|
69141
69141
|
}
|
|
@@ -69276,7 +69276,7 @@ var MobileNavigationMenu11 = ({
|
|
|
69276
69276
|
var NavbarSplitCta = ({
|
|
69277
69277
|
sectionId = "navbar-split-cta",
|
|
69278
69278
|
logo,
|
|
69279
|
-
logoSlot,
|
|
69279
|
+
logoSlot: logoSlot2,
|
|
69280
69280
|
logoClassName,
|
|
69281
69281
|
menu,
|
|
69282
69282
|
menuSlot,
|
|
@@ -69361,7 +69361,7 @@ var NavbarSplitCta = ({
|
|
|
69361
69361
|
NavbarLogo,
|
|
69362
69362
|
{
|
|
69363
69363
|
logo,
|
|
69364
|
-
logoSlot,
|
|
69364
|
+
logoSlot: logoSlot2,
|
|
69365
69365
|
logoClassName,
|
|
69366
69366
|
optixFlowConfig
|
|
69367
69367
|
}
|
|
@@ -69481,7 +69481,7 @@ var NavbarSplitCta = ({
|
|
|
69481
69481
|
var NavbarIconLinks = ({
|
|
69482
69482
|
sectionId = "navbar-icon-links",
|
|
69483
69483
|
logo,
|
|
69484
|
-
logoSlot,
|
|
69484
|
+
logoSlot: logoSlot2,
|
|
69485
69485
|
logoClassName,
|
|
69486
69486
|
navItems,
|
|
69487
69487
|
navItemsSlot,
|
|
@@ -69581,7 +69581,7 @@ var NavbarIconLinks = ({
|
|
|
69581
69581
|
NavbarLogo,
|
|
69582
69582
|
{
|
|
69583
69583
|
logo,
|
|
69584
|
-
logoSlot,
|
|
69584
|
+
logoSlot: logoSlot2,
|
|
69585
69585
|
logoClassName,
|
|
69586
69586
|
optixFlowConfig
|
|
69587
69587
|
}
|
|
@@ -69620,7 +69620,7 @@ var NavbarIconLinks = ({
|
|
|
69620
69620
|
NavbarLogo,
|
|
69621
69621
|
{
|
|
69622
69622
|
logo,
|
|
69623
|
-
logoSlot,
|
|
69623
|
+
logoSlot: logoSlot2,
|
|
69624
69624
|
logoClassName,
|
|
69625
69625
|
optixFlowConfig
|
|
69626
69626
|
}
|
|
@@ -69692,7 +69692,7 @@ var NavbarIconLinks = ({
|
|
|
69692
69692
|
var NavbarTabbedSections = ({
|
|
69693
69693
|
sectionId = "navbar-tabbed-sections",
|
|
69694
69694
|
logo,
|
|
69695
|
-
logoSlot,
|
|
69695
|
+
logoSlot: logoSlot2,
|
|
69696
69696
|
logoClassName,
|
|
69697
69697
|
menu,
|
|
69698
69698
|
menuSlot,
|
|
@@ -69903,7 +69903,7 @@ var NavbarTabbedSections = ({
|
|
|
69903
69903
|
NavbarLogo,
|
|
69904
69904
|
{
|
|
69905
69905
|
logo,
|
|
69906
|
-
logoSlot,
|
|
69906
|
+
logoSlot: logoSlot2,
|
|
69907
69907
|
logoClassName,
|
|
69908
69908
|
optixFlowConfig
|
|
69909
69909
|
}
|
|
@@ -69962,7 +69962,7 @@ var NavbarTabbedSections = ({
|
|
|
69962
69962
|
};
|
|
69963
69963
|
var NavbarFullscreenMenu = ({
|
|
69964
69964
|
logo,
|
|
69965
|
-
logoSlot,
|
|
69965
|
+
logoSlot: logoSlot2,
|
|
69966
69966
|
logoClassName,
|
|
69967
69967
|
menuItems,
|
|
69968
69968
|
menuSlot,
|
|
@@ -70050,7 +70050,7 @@ var NavbarFullscreenMenu = ({
|
|
|
70050
70050
|
NavbarLogo,
|
|
70051
70051
|
{
|
|
70052
70052
|
logo,
|
|
70053
|
-
logoSlot,
|
|
70053
|
+
logoSlot: logoSlot2,
|
|
70054
70054
|
logoClassName,
|
|
70055
70055
|
optixFlowConfig
|
|
70056
70056
|
}
|
|
@@ -70082,7 +70082,7 @@ var NavbarFullscreenMenu = ({
|
|
|
70082
70082
|
NavbarLogo,
|
|
70083
70083
|
{
|
|
70084
70084
|
logo,
|
|
70085
|
-
logoSlot,
|
|
70085
|
+
logoSlot: logoSlot2,
|
|
70086
70086
|
logoClassName,
|
|
70087
70087
|
optixFlowConfig
|
|
70088
70088
|
}
|
|
@@ -85312,7 +85312,7 @@ function OfferModalMembershipImage({
|
|
|
85312
85312
|
title,
|
|
85313
85313
|
description,
|
|
85314
85314
|
image,
|
|
85315
|
-
imageSlot,
|
|
85315
|
+
imageSlot: imageSlot2,
|
|
85316
85316
|
closeButtonSlot,
|
|
85317
85317
|
formSlot,
|
|
85318
85318
|
footerSlot,
|
|
@@ -85336,7 +85336,7 @@ function OfferModalMembershipImage({
|
|
|
85336
85336
|
}) {
|
|
85337
85337
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85338
85338
|
const renderImage = React30__namespace.useMemo(() => {
|
|
85339
|
-
if (
|
|
85339
|
+
if (imageSlot2) return imageSlot2;
|
|
85340
85340
|
if (!image) return null;
|
|
85341
85341
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85342
85342
|
"div",
|
|
@@ -85360,7 +85360,7 @@ function OfferModalMembershipImage({
|
|
|
85360
85360
|
}
|
|
85361
85361
|
);
|
|
85362
85362
|
}, [
|
|
85363
|
-
|
|
85363
|
+
imageSlot2,
|
|
85364
85364
|
image,
|
|
85365
85365
|
imageWrapperClassName,
|
|
85366
85366
|
imageClassName,
|
|
@@ -85589,11 +85589,11 @@ var DEFAULT_FORM_FIELDS55 = [
|
|
|
85589
85589
|
];
|
|
85590
85590
|
function OfferModalSheetNewsletter({
|
|
85591
85591
|
logo,
|
|
85592
|
-
logoSlot,
|
|
85592
|
+
logoSlot: logoSlot2,
|
|
85593
85593
|
title,
|
|
85594
85594
|
description,
|
|
85595
85595
|
image,
|
|
85596
|
-
imageSlot,
|
|
85596
|
+
imageSlot: imageSlot2,
|
|
85597
85597
|
termsUrl,
|
|
85598
85598
|
termsText,
|
|
85599
85599
|
privacyUrl,
|
|
@@ -85622,7 +85622,7 @@ function OfferModalSheetNewsletter({
|
|
|
85622
85622
|
}) {
|
|
85623
85623
|
const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85624
85624
|
const renderLogo = React30__namespace.useMemo(() => {
|
|
85625
|
-
if (
|
|
85625
|
+
if (logoSlot2) return logoSlot2;
|
|
85626
85626
|
if (!logo) return null;
|
|
85627
85627
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
85628
85628
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -85634,7 +85634,7 @@ function OfferModalSheetNewsletter({
|
|
|
85634
85634
|
optixFlowConfig
|
|
85635
85635
|
}
|
|
85636
85636
|
);
|
|
85637
|
-
}, [
|
|
85637
|
+
}, [logoSlot2, logo, logoClassName, optixFlowConfig]);
|
|
85638
85638
|
const renderHeader = React30__namespace.useMemo(() => {
|
|
85639
85639
|
if (headerSlot) return headerSlot;
|
|
85640
85640
|
return /* @__PURE__ */ jsxRuntime.jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
|
|
@@ -85716,7 +85716,7 @@ function OfferModalSheetNewsletter({
|
|
|
85716
85716
|
] });
|
|
85717
85717
|
}, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
|
|
85718
85718
|
const renderImage = React30__namespace.useMemo(() => {
|
|
85719
|
-
if (
|
|
85719
|
+
if (imageSlot2) return imageSlot2;
|
|
85720
85720
|
if (!image) return null;
|
|
85721
85721
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
85722
85722
|
img.Img,
|
|
@@ -85731,7 +85731,7 @@ function OfferModalSheetNewsletter({
|
|
|
85731
85731
|
}
|
|
85732
85732
|
) }) });
|
|
85733
85733
|
}, [
|
|
85734
|
-
|
|
85734
|
+
imageSlot2,
|
|
85735
85735
|
image,
|
|
85736
85736
|
imageWrapperClassName,
|
|
85737
85737
|
imageClassName,
|
|
@@ -103500,6 +103500,1586 @@ function LinkPageBentoLayout({
|
|
|
103500
103500
|
}
|
|
103501
103501
|
|
|
103502
103502
|
// src/registry/blocks.ts
|
|
103503
|
+
var ABOUT_EXAMPLE_IMAGE_URL = "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp";
|
|
103504
|
+
var ABOUT_MEDIA_NOTE = "All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.";
|
|
103505
|
+
var aboutImage = (alt) => ({
|
|
103506
|
+
src: ABOUT_EXAMPLE_IMAGE_URL,
|
|
103507
|
+
alt
|
|
103508
|
+
});
|
|
103509
|
+
var imageSlot = (path, note, roles = ["feature"], minPixelClass = "large", required = true, preferredAspect) => ({
|
|
103510
|
+
path,
|
|
103511
|
+
roles,
|
|
103512
|
+
disallowedRoles: ["logo", "favicon", "video-thumbnail"],
|
|
103513
|
+
minPixelClass,
|
|
103514
|
+
required,
|
|
103515
|
+
...preferredAspect ? { preferredAspect } : {},
|
|
103516
|
+
note: `${note} IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets.`
|
|
103517
|
+
});
|
|
103518
|
+
var logoSlot = (path, note, required = false) => ({
|
|
103519
|
+
path,
|
|
103520
|
+
roles: ["logo"],
|
|
103521
|
+
disallowedRoles: ["favicon", "video-thumbnail"],
|
|
103522
|
+
minPixelClass: "small",
|
|
103523
|
+
required,
|
|
103524
|
+
note: `${note} LOGO IMAGE ONLY. Do not use photos, favicons, or video assets.`
|
|
103525
|
+
});
|
|
103526
|
+
var aboutCapabilities = (...capabilities) => capabilities;
|
|
103527
|
+
var ABOUT_BLOCK_CONTRACTS = {
|
|
103528
|
+
"alternating-blocks": {
|
|
103529
|
+
exampleUsage: `
|
|
103530
|
+
<AlternatingBlocks
|
|
103531
|
+
title="How We Got Here"
|
|
103532
|
+
subtitle="A practical timeline of the decisions that shaped our company."
|
|
103533
|
+
sections={[
|
|
103534
|
+
{
|
|
103535
|
+
content: "We started by replacing disconnected tools with one focused workflow.",
|
|
103536
|
+
media: <img src="${ABOUT_EXAMPLE_IMAGE_URL}" alt="Team planning in a cafe workspace" />,
|
|
103537
|
+
mediaLeft: false,
|
|
103538
|
+
},
|
|
103539
|
+
{
|
|
103540
|
+
content: "Today our team helps operators launch better customer experiences faster.",
|
|
103541
|
+
media: <img src="${ABOUT_EXAMPLE_IMAGE_URL}" alt="Collaborative team workspace" />,
|
|
103542
|
+
mediaLeft: true,
|
|
103543
|
+
},
|
|
103544
|
+
]}
|
|
103545
|
+
/>
|
|
103546
|
+
`.trim(),
|
|
103547
|
+
importantUsageNotes: "Use for two or more narrative sections with alternating visual rhythm. The sections[].content and sections[].media props are ReactNode slots; authoring tools should render concrete text and image elements, not placeholder fragments. Keep each section focused on one milestone, value, or proof point.",
|
|
103548
|
+
usageRequirements: {
|
|
103549
|
+
requiredProps: ["sections"],
|
|
103550
|
+
propConstraints: {
|
|
103551
|
+
sections: { required: true, minItems: 2, maxItems: 5 },
|
|
103552
|
+
"sections[].content": {
|
|
103553
|
+
required: true,
|
|
103554
|
+
note: "ReactNode content slot. Use concise, source-backed story copy."
|
|
103555
|
+
},
|
|
103556
|
+
"sections[].media": {
|
|
103557
|
+
required: true,
|
|
103558
|
+
note: "ReactNode media slot. Provide an image element with an absolute src."
|
|
103559
|
+
}
|
|
103560
|
+
},
|
|
103561
|
+
mediaSlots: {
|
|
103562
|
+
"sections[].media": imageSlot(
|
|
103563
|
+
"sections[].media",
|
|
103564
|
+
"Alternating section visual.",
|
|
103565
|
+
["feature", "hero"]
|
|
103566
|
+
)
|
|
103567
|
+
},
|
|
103568
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103569
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103570
|
+
},
|
|
103571
|
+
exampleProps: {
|
|
103572
|
+
title: "How We Got Here",
|
|
103573
|
+
subtitle: "A practical timeline of the decisions that shaped our company.",
|
|
103574
|
+
sections: [
|
|
103575
|
+
{
|
|
103576
|
+
content: "We started by replacing disconnected tools with one focused workflow.",
|
|
103577
|
+
media: ABOUT_EXAMPLE_IMAGE_URL,
|
|
103578
|
+
mediaLeft: false
|
|
103579
|
+
},
|
|
103580
|
+
{
|
|
103581
|
+
content: "Today our team helps operators launch better customer experiences faster.",
|
|
103582
|
+
media: ABOUT_EXAMPLE_IMAGE_URL,
|
|
103583
|
+
mediaLeft: true
|
|
103584
|
+
}
|
|
103585
|
+
]
|
|
103586
|
+
}
|
|
103587
|
+
},
|
|
103588
|
+
"about-mission-features": {
|
|
103589
|
+
exampleUsage: `
|
|
103590
|
+
<AboutMissionFeatures
|
|
103591
|
+
title="About OpenSite"
|
|
103592
|
+
description="We help service teams turn daily operations into polished digital experiences."
|
|
103593
|
+
missionLabel="Our Mission"
|
|
103594
|
+
missionText="Make professional site building faster, clearer, and easier to maintain."
|
|
103595
|
+
mainImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team working together in a cafe" }}
|
|
103596
|
+
missionBackgroundImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Workspace background for mission statement" }}
|
|
103597
|
+
features={[
|
|
103598
|
+
{ icon: "lucide/files", title: "Reusable systems", description: "Blocks stay consistent across every page." },
|
|
103599
|
+
{ icon: "lucide/settings", title: "Operational clarity", description: "Teams can update content without redesigning layouts." },
|
|
103600
|
+
{ icon: "lucide/shield", title: "Reliable delivery", description: "Contracts protect AI-generated pages from unsafe content." },
|
|
103601
|
+
]}
|
|
103602
|
+
/>
|
|
103603
|
+
`.trim(),
|
|
103604
|
+
importantUsageNotes: "Use when a page needs a mission statement plus feature proof points. Supply both image objects when visual impact matters, and keep feature cards limited to short, concrete benefits. Do not use logos, favicons, or video URLs in image props.",
|
|
103605
|
+
usageRequirements: {
|
|
103606
|
+
requiredProps: ["title", "missionText", "features"],
|
|
103607
|
+
propConstraints: {
|
|
103608
|
+
title: { required: true, maxLength: 70 },
|
|
103609
|
+
description: { maxLength: 180 },
|
|
103610
|
+
missionLabel: { maxLength: 35 },
|
|
103611
|
+
missionText: { required: true, maxLength: 180 },
|
|
103612
|
+
features: { required: true, minItems: 3, maxItems: 3 },
|
|
103613
|
+
mainImage: { required: true },
|
|
103614
|
+
missionBackgroundImage: { required: true }
|
|
103615
|
+
},
|
|
103616
|
+
mediaSlots: {
|
|
103617
|
+
mainImage: imageSlot(
|
|
103618
|
+
"mainImage",
|
|
103619
|
+
"Primary about image beside the mission card.",
|
|
103620
|
+
["feature", "hero"]
|
|
103621
|
+
),
|
|
103622
|
+
missionBackgroundImage: imageSlot(
|
|
103623
|
+
"missionBackgroundImage",
|
|
103624
|
+
"Background photo behind the mission statement.",
|
|
103625
|
+
["background", "feature"]
|
|
103626
|
+
)
|
|
103627
|
+
},
|
|
103628
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103629
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103630
|
+
},
|
|
103631
|
+
exampleProps: {
|
|
103632
|
+
title: "About OpenSite",
|
|
103633
|
+
description: "We help service teams turn daily operations into polished digital experiences.",
|
|
103634
|
+
missionLabel: "Our Mission",
|
|
103635
|
+
missionText: "Make professional site building faster, clearer, and easier to maintain.",
|
|
103636
|
+
mainImage: aboutImage("Team working together in a cafe"),
|
|
103637
|
+
missionBackgroundImage: aboutImage(
|
|
103638
|
+
"Workspace background for mission statement"
|
|
103639
|
+
),
|
|
103640
|
+
features: [
|
|
103641
|
+
{
|
|
103642
|
+
icon: "lucide/files",
|
|
103643
|
+
title: "Reusable systems",
|
|
103644
|
+
description: "Blocks stay consistent across every page."
|
|
103645
|
+
},
|
|
103646
|
+
{
|
|
103647
|
+
icon: "lucide/settings",
|
|
103648
|
+
title: "Operational clarity",
|
|
103649
|
+
description: "Teams can update content without redesigning layouts."
|
|
103650
|
+
},
|
|
103651
|
+
{
|
|
103652
|
+
icon: "lucide/shield",
|
|
103653
|
+
title: "Reliable delivery",
|
|
103654
|
+
description: "Contracts protect AI-generated pages from unsafe content."
|
|
103655
|
+
}
|
|
103656
|
+
]
|
|
103657
|
+
}
|
|
103658
|
+
},
|
|
103659
|
+
"about-stats-showcase": {
|
|
103660
|
+
exampleUsage: `
|
|
103661
|
+
<AboutStatsShowcase
|
|
103662
|
+
title="Our Background"
|
|
103663
|
+
description="We help teams launch reliable digital experiences at scale."
|
|
103664
|
+
images={[
|
|
103665
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team workspace" },
|
|
103666
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Planning session" },
|
|
103667
|
+
]}
|
|
103668
|
+
stats={[
|
|
103669
|
+
{ value: "21M", label: "Audience reach" },
|
|
103670
|
+
{ value: "12+", label: "Years of expertise" },
|
|
103671
|
+
]}
|
|
103672
|
+
benefits={[
|
|
103673
|
+
{
|
|
103674
|
+
image: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Customer operations team" },
|
|
103675
|
+
stat: { value: "98%", label: "Retention", description: "Measured across supported accounts" },
|
|
103676
|
+
},
|
|
103677
|
+
]}
|
|
103678
|
+
/>
|
|
103679
|
+
`.trim(),
|
|
103680
|
+
importantUsageNotes: "Only use when metrics, social proof, and any testimonial-style content are sourced. Do not fabricate stats, company logos, testimonial quotes, authors, or roles. Image props must use absolute image URLs and must not receive video assets.",
|
|
103681
|
+
usageRequirements: {
|
|
103682
|
+
requiredProps: ["title", "stats"],
|
|
103683
|
+
propConstraints: {
|
|
103684
|
+
title: { required: true, maxLength: 70 },
|
|
103685
|
+
description: { maxLength: 180 },
|
|
103686
|
+
images: { minItems: 2, maxItems: 4 },
|
|
103687
|
+
stats: {
|
|
103688
|
+
required: true,
|
|
103689
|
+
minItems: 2,
|
|
103690
|
+
maxItems: 4,
|
|
103691
|
+
note: "Metrics must be sourced from the site or client data."
|
|
103692
|
+
},
|
|
103693
|
+
logos: {
|
|
103694
|
+
maxItems: 8,
|
|
103695
|
+
note: "Only include real customer or partner logos."
|
|
103696
|
+
},
|
|
103697
|
+
benefits: { maxItems: 3 },
|
|
103698
|
+
"benefits[].testimonial": {
|
|
103699
|
+
note: "Must be a real testimonial. Do not fabricate."
|
|
103700
|
+
}
|
|
103701
|
+
},
|
|
103702
|
+
mediaSlots: {
|
|
103703
|
+
"images[]": imageSlot(
|
|
103704
|
+
"images[]",
|
|
103705
|
+
"Hero showcase images.",
|
|
103706
|
+
["feature", "gallery"]
|
|
103707
|
+
),
|
|
103708
|
+
"logos[]": logoSlot("logos[]", "Trusted company logo."),
|
|
103709
|
+
"benefits[].image": imageSlot(
|
|
103710
|
+
"benefits[].image",
|
|
103711
|
+
"Benefit card image.",
|
|
103712
|
+
["feature", "thumbnail"],
|
|
103713
|
+
"medium",
|
|
103714
|
+
false
|
|
103715
|
+
),
|
|
103716
|
+
"benefits[].testimonial.logo": logoSlot(
|
|
103717
|
+
"benefits[].testimonial.logo",
|
|
103718
|
+
"Logo shown inside testimonial card."
|
|
103719
|
+
)
|
|
103720
|
+
},
|
|
103721
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
103722
|
+
"metrics_or_stats",
|
|
103723
|
+
"reviews_or_testimonials",
|
|
103724
|
+
"media_library"
|
|
103725
|
+
),
|
|
103726
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103727
|
+
},
|
|
103728
|
+
exampleProps: {
|
|
103729
|
+
title: "Our Background",
|
|
103730
|
+
description: "We help teams launch reliable digital experiences at scale.",
|
|
103731
|
+
images: [
|
|
103732
|
+
aboutImage("Team workspace"),
|
|
103733
|
+
aboutImage("Planning session")
|
|
103734
|
+
],
|
|
103735
|
+
stats: [
|
|
103736
|
+
{ value: "21M", label: "Audience reach" },
|
|
103737
|
+
{ value: "12+", label: "Years of expertise" }
|
|
103738
|
+
],
|
|
103739
|
+
benefits: [
|
|
103740
|
+
{
|
|
103741
|
+
image: aboutImage("Customer operations team"),
|
|
103742
|
+
stat: {
|
|
103743
|
+
value: "98%",
|
|
103744
|
+
label: "Retention",
|
|
103745
|
+
description: "Measured across supported accounts"
|
|
103746
|
+
}
|
|
103747
|
+
}
|
|
103748
|
+
]
|
|
103749
|
+
}
|
|
103750
|
+
},
|
|
103751
|
+
"about-company-profile": {
|
|
103752
|
+
exampleUsage: `
|
|
103753
|
+
<AboutCompanyProfile
|
|
103754
|
+
title="A Team Built for Operational Clarity"
|
|
103755
|
+
description="We combine product craft and service operations experience to help brands move faster."
|
|
103756
|
+
mainImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team strategy session" }}
|
|
103757
|
+
secondaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Workspace detail" }}
|
|
103758
|
+
breakout={{
|
|
103759
|
+
title: "Built for growing operators",
|
|
103760
|
+
description: "Reusable systems keep every location and campaign aligned.",
|
|
103761
|
+
action: { label: "Discover more", href: "/about", variant: "default" },
|
|
103762
|
+
}}
|
|
103763
|
+
achievements={[
|
|
103764
|
+
{ label: "Customer sites launched", value: "300+" },
|
|
103765
|
+
{ label: "Average satisfaction", value: "99%" },
|
|
103766
|
+
]}
|
|
103767
|
+
/>
|
|
103768
|
+
`.trim(),
|
|
103769
|
+
importantUsageNotes: "Use for credibility-oriented company profiles with sourced metrics and optional brand logos. Breakout actions must use the ActionConfig shape with label and href, not buttonText or buttonUrl. Image props must be image assets only.",
|
|
103770
|
+
usageRequirements: {
|
|
103771
|
+
requiredProps: ["title", "description", "mainImage"],
|
|
103772
|
+
propConstraints: {
|
|
103773
|
+
title: { required: true, maxLength: 80 },
|
|
103774
|
+
description: { required: true, maxLength: 220 },
|
|
103775
|
+
mainImage: { required: true },
|
|
103776
|
+
achievements: {
|
|
103777
|
+
minItems: 2,
|
|
103778
|
+
maxItems: 4,
|
|
103779
|
+
note: "Achievement metrics must be sourced."
|
|
103780
|
+
},
|
|
103781
|
+
companies: {
|
|
103782
|
+
maxItems: 8,
|
|
103783
|
+
note: "Only include real customer or partner logos."
|
|
103784
|
+
}
|
|
103785
|
+
},
|
|
103786
|
+
mediaSlots: {
|
|
103787
|
+
mainImage: imageSlot(
|
|
103788
|
+
"mainImage",
|
|
103789
|
+
"Primary company profile image.",
|
|
103790
|
+
["feature", "hero"]
|
|
103791
|
+
),
|
|
103792
|
+
secondaryImage: imageSlot(
|
|
103793
|
+
"secondaryImage",
|
|
103794
|
+
"Secondary supporting image.",
|
|
103795
|
+
["feature", "thumbnail"],
|
|
103796
|
+
"medium",
|
|
103797
|
+
false
|
|
103798
|
+
),
|
|
103799
|
+
"breakout.logo": logoSlot("breakout.logo", "Breakout card logo."),
|
|
103800
|
+
"companies[]": logoSlot("companies[]", "Customer or partner logo.")
|
|
103801
|
+
},
|
|
103802
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
103803
|
+
"metrics_or_stats",
|
|
103804
|
+
"media_library"
|
|
103805
|
+
),
|
|
103806
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103807
|
+
},
|
|
103808
|
+
exampleProps: {
|
|
103809
|
+
title: "A Team Built for Operational Clarity",
|
|
103810
|
+
description: "We combine product craft and service operations experience to help brands move faster.",
|
|
103811
|
+
mainImage: aboutImage("Team strategy session"),
|
|
103812
|
+
secondaryImage: aboutImage("Workspace detail"),
|
|
103813
|
+
breakout: {
|
|
103814
|
+
title: "Built for growing operators",
|
|
103815
|
+
description: "Reusable systems keep every location and campaign aligned.",
|
|
103816
|
+
action: { label: "Discover more", href: "/about", variant: "default" }
|
|
103817
|
+
},
|
|
103818
|
+
achievements: [
|
|
103819
|
+
{ label: "Customer sites launched", value: "300+" },
|
|
103820
|
+
{ label: "Average satisfaction", value: "99%" }
|
|
103821
|
+
]
|
|
103822
|
+
}
|
|
103823
|
+
},
|
|
103824
|
+
"about-vision-gallery": {
|
|
103825
|
+
exampleUsage: `
|
|
103826
|
+
<AboutVisionGallery
|
|
103827
|
+
title="The Vision Behind Our Work"
|
|
103828
|
+
subtitle="We believe great digital systems should feel simple to run."
|
|
103829
|
+
images={[
|
|
103830
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Collaborative product session" },
|
|
103831
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team reviewing site designs" },
|
|
103832
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Customer experience planning" },
|
|
103833
|
+
]}
|
|
103834
|
+
primarySectionTitle="Our Vision"
|
|
103835
|
+
primarySectionContent="Give every operator the ability to publish excellent customer experiences without technical bottlenecks."
|
|
103836
|
+
secondarySectionTitle="How We Build"
|
|
103837
|
+
secondarySectionContent="We turn reusable components, semantic contracts, and real content into maintainable sites."
|
|
103838
|
+
ctaTitle="Part of Our Global Team"
|
|
103839
|
+
ctaAction={{ label: "Get to know the team", href: "/team", variant: "default" }}
|
|
103840
|
+
/>
|
|
103841
|
+
`.trim(),
|
|
103842
|
+
importantUsageNotes: "Use when a brand has a clear vision story and enough supporting imagery for a gallery. Keep gallery images cohesive and source-backed. Do not use logo, favicon, or video assets in the gallery image props.",
|
|
103843
|
+
usageRequirements: {
|
|
103844
|
+
requiredProps: ["title", "images"],
|
|
103845
|
+
propConstraints: {
|
|
103846
|
+
title: { required: true, maxLength: 80 },
|
|
103847
|
+
subtitle: { maxLength: 160 },
|
|
103848
|
+
images: { required: true, minItems: 3, maxItems: 5 },
|
|
103849
|
+
primarySectionContent: { maxLength: 260 },
|
|
103850
|
+
secondarySectionContent: { maxLength: 260 }
|
|
103851
|
+
},
|
|
103852
|
+
mediaSlots: {
|
|
103853
|
+
"images[]": imageSlot(
|
|
103854
|
+
"images[]",
|
|
103855
|
+
"Vision gallery image.",
|
|
103856
|
+
["gallery", "feature"]
|
|
103857
|
+
)
|
|
103858
|
+
},
|
|
103859
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103860
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103861
|
+
},
|
|
103862
|
+
exampleProps: {
|
|
103863
|
+
title: "The Vision Behind Our Work",
|
|
103864
|
+
subtitle: "We believe great digital systems should feel simple to run.",
|
|
103865
|
+
images: [
|
|
103866
|
+
aboutImage("Collaborative product session"),
|
|
103867
|
+
aboutImage("Team reviewing site designs"),
|
|
103868
|
+
aboutImage("Customer experience planning")
|
|
103869
|
+
],
|
|
103870
|
+
primarySectionTitle: "Our Vision",
|
|
103871
|
+
primarySectionContent: "Give every operator the ability to publish excellent customer experiences without technical bottlenecks.",
|
|
103872
|
+
secondarySectionTitle: "How We Build",
|
|
103873
|
+
secondarySectionContent: "We turn reusable components, semantic contracts, and real content into maintainable sites.",
|
|
103874
|
+
ctaTitle: "Part of Our Global Team",
|
|
103875
|
+
ctaAction: {
|
|
103876
|
+
label: "Get to know the team",
|
|
103877
|
+
href: "/team",
|
|
103878
|
+
variant: "default"
|
|
103879
|
+
}
|
|
103880
|
+
}
|
|
103881
|
+
},
|
|
103882
|
+
"about-developer-story": {
|
|
103883
|
+
exampleUsage: `
|
|
103884
|
+
<AboutDeveloperStory
|
|
103885
|
+
title="Developer-Focused Solutions for Modern Teams"
|
|
103886
|
+
description="We build tools that developers and operators can both trust."
|
|
103887
|
+
actions={[
|
|
103888
|
+
{ label: "Get Started", href: "/contact", variant: "default" },
|
|
103889
|
+
{ label: "View Docs", href: "/docs", variant: "outline" },
|
|
103890
|
+
]}
|
|
103891
|
+
stats={[
|
|
103892
|
+
{ value: "200+", label: "Projects completed" },
|
|
103893
|
+
{ value: "50+", label: "Integrated workflows" },
|
|
103894
|
+
]}
|
|
103895
|
+
storyTitle="Built from the work itself"
|
|
103896
|
+
storyContent="Our platform grew from years of solving the same operational problems for real teams."
|
|
103897
|
+
storyImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Developer workspace" }}
|
|
103898
|
+
/>
|
|
103899
|
+
`.trim(),
|
|
103900
|
+
importantUsageNotes: "Use for technical about pages with real metrics and a credible product story. Actions must use ActionConfig objects. Any stats or logos must come from sourced site data, and storyImage must be an image asset only.",
|
|
103901
|
+
usageRequirements: {
|
|
103902
|
+
requiredProps: ["title", "description", "storyImage"],
|
|
103903
|
+
propConstraints: {
|
|
103904
|
+
title: { required: true, maxLength: 80 },
|
|
103905
|
+
description: { required: true, maxLength: 190 },
|
|
103906
|
+
actions: { maxItems: 2 },
|
|
103907
|
+
stats: {
|
|
103908
|
+
minItems: 2,
|
|
103909
|
+
maxItems: 4,
|
|
103910
|
+
note: "Stats must be sourced."
|
|
103911
|
+
},
|
|
103912
|
+
logos: {
|
|
103913
|
+
maxItems: 8,
|
|
103914
|
+
note: "Only include real customer or partner logos."
|
|
103915
|
+
},
|
|
103916
|
+
storyImage: { required: true }
|
|
103917
|
+
},
|
|
103918
|
+
mediaSlots: {
|
|
103919
|
+
storyImage: imageSlot(
|
|
103920
|
+
"storyImage",
|
|
103921
|
+
"Story section image.",
|
|
103922
|
+
["feature", "hero"]
|
|
103923
|
+
),
|
|
103924
|
+
"logos[]": logoSlot("logos[]", "Customer or partner logo.")
|
|
103925
|
+
},
|
|
103926
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
103927
|
+
"metrics_or_stats",
|
|
103928
|
+
"media_library"
|
|
103929
|
+
),
|
|
103930
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103931
|
+
},
|
|
103932
|
+
exampleProps: {
|
|
103933
|
+
title: "Developer-Focused Solutions for Modern Teams",
|
|
103934
|
+
description: "We build tools that developers and operators can both trust.",
|
|
103935
|
+
actions: [
|
|
103936
|
+
{ label: "Get Started", href: "/contact", variant: "default" },
|
|
103937
|
+
{ label: "View Docs", href: "/docs", variant: "outline" }
|
|
103938
|
+
],
|
|
103939
|
+
stats: [
|
|
103940
|
+
{ value: "200+", label: "Projects completed" },
|
|
103941
|
+
{ value: "50+", label: "Integrated workflows" }
|
|
103942
|
+
],
|
|
103943
|
+
storyTitle: "Built from the work itself",
|
|
103944
|
+
storyContent: "Our platform grew from years of solving the same operational problems for real teams.",
|
|
103945
|
+
storyImage: aboutImage("Developer workspace")
|
|
103946
|
+
}
|
|
103947
|
+
},
|
|
103948
|
+
"about-story-gallery": {
|
|
103949
|
+
exampleUsage: `
|
|
103950
|
+
<AboutStoryGallery
|
|
103951
|
+
title="Our Story"
|
|
103952
|
+
description="We started with a simple idea: make high-quality site operations easier for every team."
|
|
103953
|
+
images={[
|
|
103954
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Early team workspace" },
|
|
103955
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team collaborating on product direction" },
|
|
103956
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Operations planning board" },
|
|
103957
|
+
]}
|
|
103958
|
+
/>
|
|
103959
|
+
`.trim(),
|
|
103960
|
+
importantUsageNotes: "Use for concise origin stories with a small image gallery. Provide real, relevant gallery images with descriptive alt text. Do not use logos, favicons, or video URLs in images[].",
|
|
103961
|
+
usageRequirements: {
|
|
103962
|
+
requiredProps: ["title", "description", "images"],
|
|
103963
|
+
propConstraints: {
|
|
103964
|
+
title: { required: true, maxLength: 70 },
|
|
103965
|
+
description: { required: true, maxLength: 220 },
|
|
103966
|
+
images: { required: true, minItems: 3, maxItems: 5 }
|
|
103967
|
+
},
|
|
103968
|
+
mediaSlots: {
|
|
103969
|
+
"images[]": imageSlot(
|
|
103970
|
+
"images[]",
|
|
103971
|
+
"Story gallery image.",
|
|
103972
|
+
["gallery", "feature"]
|
|
103973
|
+
)
|
|
103974
|
+
},
|
|
103975
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103976
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103977
|
+
},
|
|
103978
|
+
exampleProps: {
|
|
103979
|
+
title: "Our Story",
|
|
103980
|
+
description: "We started with a simple idea: make high-quality site operations easier for every team.",
|
|
103981
|
+
images: [
|
|
103982
|
+
aboutImage("Early team workspace"),
|
|
103983
|
+
aboutImage("Team collaborating on product direction"),
|
|
103984
|
+
aboutImage("Operations planning board")
|
|
103985
|
+
]
|
|
103986
|
+
}
|
|
103987
|
+
},
|
|
103988
|
+
"about-streamline-team": {
|
|
103989
|
+
exampleUsage: `
|
|
103990
|
+
<AboutStreamlineTeam
|
|
103991
|
+
title="Streamline Your Workflow"
|
|
103992
|
+
description="Our platform helps teams work smarter without losing creative control."
|
|
103993
|
+
primaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team workflow planning" }}
|
|
103994
|
+
secondaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Detailed product planning session" }}
|
|
103995
|
+
teamTitle="Join the team building simpler operations"
|
|
103996
|
+
teamDescription="We look for pragmatic builders who care about durable systems."
|
|
103997
|
+
actions={[{ label: "View Open Roles", href: "/careers", variant: "default" }]}
|
|
103998
|
+
features={[
|
|
103999
|
+
{ icon: "lucide/zap", title: "Faster launches", description: "Ship polished pages in less time." },
|
|
104000
|
+
{ icon: "lucide/shield", title: "Reliable systems", description: "Keep content aligned as sites grow." },
|
|
104001
|
+
]}
|
|
104002
|
+
/>
|
|
104003
|
+
`.trim(),
|
|
104004
|
+
importantUsageNotes: "Use for workflow-focused about or recruiting sections with two supporting images and a concise team CTA. The team CTA should not imply open roles unless the site has that content. Image props must be image assets only.",
|
|
104005
|
+
usageRequirements: {
|
|
104006
|
+
requiredProps: ["title", "description", "primaryImage"],
|
|
104007
|
+
propConstraints: {
|
|
104008
|
+
title: { required: true, maxLength: 70 },
|
|
104009
|
+
description: { required: true, maxLength: 180 },
|
|
104010
|
+
primaryImage: { required: true },
|
|
104011
|
+
features: { minItems: 2, maxItems: 4 },
|
|
104012
|
+
actions: { maxItems: 2 }
|
|
104013
|
+
},
|
|
104014
|
+
mediaSlots: {
|
|
104015
|
+
primaryImage: imageSlot(
|
|
104016
|
+
"primaryImage",
|
|
104017
|
+
"Primary overlapping team/workflow image.",
|
|
104018
|
+
["feature", "hero"]
|
|
104019
|
+
),
|
|
104020
|
+
secondaryImage: imageSlot(
|
|
104021
|
+
"secondaryImage",
|
|
104022
|
+
"Secondary overlapping team/workflow image.",
|
|
104023
|
+
["feature", "thumbnail"],
|
|
104024
|
+
"medium",
|
|
104025
|
+
false
|
|
104026
|
+
)
|
|
104027
|
+
},
|
|
104028
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104029
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104030
|
+
},
|
|
104031
|
+
exampleProps: {
|
|
104032
|
+
title: "Streamline Your Workflow",
|
|
104033
|
+
description: "Our platform helps teams work smarter without losing creative control.",
|
|
104034
|
+
primaryImage: aboutImage("Team workflow planning"),
|
|
104035
|
+
secondaryImage: aboutImage("Detailed product planning session"),
|
|
104036
|
+
teamTitle: "Join the team building simpler operations",
|
|
104037
|
+
teamDescription: "We look for pragmatic builders who care about durable systems.",
|
|
104038
|
+
actions: [
|
|
104039
|
+
{ label: "View Open Roles", href: "/careers", variant: "default" }
|
|
104040
|
+
],
|
|
104041
|
+
features: [
|
|
104042
|
+
{
|
|
104043
|
+
icon: "lucide/zap",
|
|
104044
|
+
title: "Faster launches",
|
|
104045
|
+
description: "Ship polished pages in less time."
|
|
104046
|
+
},
|
|
104047
|
+
{
|
|
104048
|
+
icon: "lucide/shield",
|
|
104049
|
+
title: "Reliable systems",
|
|
104050
|
+
description: "Keep content aligned as sites grow."
|
|
104051
|
+
}
|
|
104052
|
+
]
|
|
104053
|
+
}
|
|
104054
|
+
},
|
|
104055
|
+
"about-developer-profile": {
|
|
104056
|
+
exampleUsage: `
|
|
104057
|
+
<AboutDeveloperProfile
|
|
104058
|
+
name="Alex Johnson"
|
|
104059
|
+
role="Full-Stack Developer"
|
|
104060
|
+
bio="Alex builds maintainable product systems for growing service teams."
|
|
104061
|
+
avatar={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Alex Johnson profile portrait" }}
|
|
104062
|
+
skills={["React", "TypeScript", "Rails", "PostgreSQL"]}
|
|
104063
|
+
skillsTitle="Core Skills"
|
|
104064
|
+
socialLinks={[{ href: "https://github.com/opensite-ai", label: "GitHub" }]}
|
|
104065
|
+
actions={[{ label: "Contact Alex", href: "/contact", variant: "default" }]}
|
|
104066
|
+
/>
|
|
104067
|
+
`.trim(),
|
|
104068
|
+
importantUsageNotes: "Use only when the site has a real person, founder, or team member profile. Do not invent a person's name, role, bio, skills, or social links. Avatar must be a profile image, not a logo, favicon, or video URL.",
|
|
104069
|
+
usageRequirements: {
|
|
104070
|
+
requiredProps: ["name", "role", "bio", "avatar"],
|
|
104071
|
+
propConstraints: {
|
|
104072
|
+
name: { required: true, maxLength: 60 },
|
|
104073
|
+
role: { required: true, maxLength: 80 },
|
|
104074
|
+
bio: { required: true, maxLength: 260 },
|
|
104075
|
+
avatar: { required: true },
|
|
104076
|
+
skills: { minItems: 3, maxItems: 8 },
|
|
104077
|
+
socialLinks: { maxItems: 4 },
|
|
104078
|
+
actions: { maxItems: 2 }
|
|
104079
|
+
},
|
|
104080
|
+
mediaSlots: {
|
|
104081
|
+
avatar: imageSlot(
|
|
104082
|
+
"avatar",
|
|
104083
|
+
"Profile portrait for the person.",
|
|
104084
|
+
["profile", "avatar"],
|
|
104085
|
+
"medium",
|
|
104086
|
+
true,
|
|
104087
|
+
"1:1"
|
|
104088
|
+
)
|
|
104089
|
+
},
|
|
104090
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104091
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104092
|
+
},
|
|
104093
|
+
exampleProps: {
|
|
104094
|
+
name: "Alex Johnson",
|
|
104095
|
+
role: "Full-Stack Developer",
|
|
104096
|
+
bio: "Alex builds maintainable product systems for growing service teams.",
|
|
104097
|
+
avatar: aboutImage("Alex Johnson profile portrait"),
|
|
104098
|
+
skills: ["React", "TypeScript", "Rails", "PostgreSQL"],
|
|
104099
|
+
skillsTitle: "Core Skills",
|
|
104100
|
+
socialLinks: [
|
|
104101
|
+
{ href: "https://github.com/opensite-ai", label: "GitHub" }
|
|
104102
|
+
],
|
|
104103
|
+
actions: [
|
|
104104
|
+
{ label: "Contact Alex", href: "/contact", variant: "default" }
|
|
104105
|
+
]
|
|
104106
|
+
}
|
|
104107
|
+
},
|
|
104108
|
+
"about-startup-team": {
|
|
104109
|
+
exampleUsage: `
|
|
104110
|
+
<AboutStartupTeam
|
|
104111
|
+
title="Building the Future of Site Operations"
|
|
104112
|
+
description="We are a team of product builders, operators, and customer experience specialists."
|
|
104113
|
+
sidebarLinks={[
|
|
104114
|
+
{ label: "Leadership", value: "leadership" },
|
|
104115
|
+
{ label: "Product", value: "product" },
|
|
104116
|
+
]}
|
|
104117
|
+
teamTitle="Meet the Team"
|
|
104118
|
+
teamMembers={[
|
|
104119
|
+
{
|
|
104120
|
+
name: "Sarah Chen",
|
|
104121
|
+
role: "CEO and Co-Founder",
|
|
104122
|
+
avatar: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Sarah Chen portrait" },
|
|
104123
|
+
tab: "leadership",
|
|
104124
|
+
},
|
|
104125
|
+
{
|
|
104126
|
+
name: "Marcus Johnson",
|
|
104127
|
+
role: "Product Lead",
|
|
104128
|
+
avatar: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Marcus Johnson portrait" },
|
|
104129
|
+
tab: "product",
|
|
104130
|
+
},
|
|
104131
|
+
]}
|
|
104132
|
+
/>
|
|
104133
|
+
`.trim(),
|
|
104134
|
+
importantUsageNotes: "Use only when real team member data is available. Do not fabricate names, roles, avatars, or social links. Sidebar link values must match teamMembers[].tab values. Avatars must be profile images only.",
|
|
104135
|
+
usageRequirements: {
|
|
104136
|
+
requiredProps: ["title", "teamMembers"],
|
|
104137
|
+
propConstraints: {
|
|
104138
|
+
title: { required: true, maxLength: 80 },
|
|
104139
|
+
description: { maxLength: 220 },
|
|
104140
|
+
sidebarLinks: { minItems: 1, maxItems: 6 },
|
|
104141
|
+
teamMembers: {
|
|
104142
|
+
required: true,
|
|
104143
|
+
minItems: 2,
|
|
104144
|
+
maxItems: 12,
|
|
104145
|
+
note: "Must come from real team member data."
|
|
104146
|
+
},
|
|
104147
|
+
"teamMembers[].tab": {
|
|
104148
|
+
note: "When present, must match a sidebarLinks[].value."
|
|
104149
|
+
}
|
|
104150
|
+
},
|
|
104151
|
+
mediaSlots: {
|
|
104152
|
+
"teamMembers[].avatar": imageSlot(
|
|
104153
|
+
"teamMembers[].avatar",
|
|
104154
|
+
"Team member portrait.",
|
|
104155
|
+
["profile", "avatar"],
|
|
104156
|
+
"medium",
|
|
104157
|
+
true,
|
|
104158
|
+
"1:1"
|
|
104159
|
+
)
|
|
104160
|
+
},
|
|
104161
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104162
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104163
|
+
},
|
|
104164
|
+
exampleProps: {
|
|
104165
|
+
title: "Building the Future of Site Operations",
|
|
104166
|
+
description: "We are a team of product builders, operators, and customer experience specialists.",
|
|
104167
|
+
sidebarLinks: [
|
|
104168
|
+
{ label: "Leadership", value: "leadership" },
|
|
104169
|
+
{ label: "Product", value: "product" }
|
|
104170
|
+
],
|
|
104171
|
+
teamTitle: "Meet the Team",
|
|
104172
|
+
teamMembers: [
|
|
104173
|
+
{
|
|
104174
|
+
name: "Sarah Chen",
|
|
104175
|
+
role: "CEO and Co-Founder",
|
|
104176
|
+
avatar: aboutImage("Sarah Chen portrait"),
|
|
104177
|
+
tab: "leadership"
|
|
104178
|
+
},
|
|
104179
|
+
{
|
|
104180
|
+
name: "Marcus Johnson",
|
|
104181
|
+
role: "Product Lead",
|
|
104182
|
+
avatar: aboutImage("Marcus Johnson portrait"),
|
|
104183
|
+
tab: "product"
|
|
104184
|
+
}
|
|
104185
|
+
]
|
|
104186
|
+
}
|
|
104187
|
+
},
|
|
104188
|
+
"about-minimal-story": {
|
|
104189
|
+
exampleUsage: `
|
|
104190
|
+
<AboutMinimalStory
|
|
104191
|
+
title="Our Story"
|
|
104192
|
+
content="Every durable product starts with a clear operational problem and a team willing to solve it carefully."
|
|
104193
|
+
author={{
|
|
104194
|
+
name: "Jordan Mitchell",
|
|
104195
|
+
role: "Founder and CEO",
|
|
104196
|
+
avatar: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Jordan Mitchell portrait" },
|
|
104197
|
+
}}
|
|
104198
|
+
featuredImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Founder working with the team" }}
|
|
104199
|
+
/>
|
|
104200
|
+
`.trim(),
|
|
104201
|
+
importantUsageNotes: "Use for sourced founder, author, or origin stories. Do not invent author identity or biographical details. Author avatars and featured images must use absolute image URLs and must not be logos, favicons, or video assets.",
|
|
104202
|
+
usageRequirements: {
|
|
104203
|
+
requiredProps: ["title", "content", "author"],
|
|
104204
|
+
propConstraints: {
|
|
104205
|
+
title: { required: true, maxLength: 80 },
|
|
104206
|
+
content: { required: true, maxLength: 360 },
|
|
104207
|
+
author: {
|
|
104208
|
+
required: true,
|
|
104209
|
+
note: "Author identity must be source-backed."
|
|
104210
|
+
}
|
|
104211
|
+
},
|
|
104212
|
+
mediaSlots: {
|
|
104213
|
+
"author.avatar": imageSlot(
|
|
104214
|
+
"author.avatar",
|
|
104215
|
+
"Author or founder profile image.",
|
|
104216
|
+
["profile", "avatar"],
|
|
104217
|
+
"small",
|
|
104218
|
+
false,
|
|
104219
|
+
"1:1"
|
|
104220
|
+
),
|
|
104221
|
+
featuredImage: imageSlot(
|
|
104222
|
+
"featuredImage",
|
|
104223
|
+
"Optional featured story image.",
|
|
104224
|
+
["feature", "hero"],
|
|
104225
|
+
"large",
|
|
104226
|
+
false
|
|
104227
|
+
)
|
|
104228
|
+
},
|
|
104229
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104230
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104231
|
+
},
|
|
104232
|
+
exampleProps: {
|
|
104233
|
+
title: "Our Story",
|
|
104234
|
+
content: "Every durable product starts with a clear operational problem and a team willing to solve it carefully.",
|
|
104235
|
+
author: {
|
|
104236
|
+
name: "Jordan Mitchell",
|
|
104237
|
+
role: "Founder and CEO",
|
|
104238
|
+
avatar: aboutImage("Jordan Mitchell portrait")
|
|
104239
|
+
},
|
|
104240
|
+
featuredImage: aboutImage("Founder working with the team")
|
|
104241
|
+
}
|
|
104242
|
+
},
|
|
104243
|
+
"about-story-hero": {
|
|
104244
|
+
exampleUsage: `
|
|
104245
|
+
<AboutStoryHero
|
|
104246
|
+
title="Our Story"
|
|
104247
|
+
subtitle="Building the future, one practical system at a time"
|
|
104248
|
+
content="We started with a bold idea: customer-facing sites should be easier to operate after launch."
|
|
104249
|
+
heroImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team collaborating in a workspace" }}
|
|
104250
|
+
teamInfo={{
|
|
104251
|
+
title: "50+ Team Members",
|
|
104252
|
+
description: "Working across product, support, and customer operations",
|
|
104253
|
+
}}
|
|
104254
|
+
/>
|
|
104255
|
+
`.trim(),
|
|
104256
|
+
importantUsageNotes: "Use for about-page hero storytelling with a real image and source-backed team information. Do not fabricate team size or geographic claims. heroImage must be an image asset only.",
|
|
104257
|
+
usageRequirements: {
|
|
104258
|
+
requiredProps: ["title", "content", "heroImage"],
|
|
104259
|
+
propConstraints: {
|
|
104260
|
+
title: { required: true, maxLength: 80 },
|
|
104261
|
+
subtitle: { maxLength: 120 },
|
|
104262
|
+
content: { required: true, maxLength: 320 },
|
|
104263
|
+
heroImage: { required: true },
|
|
104264
|
+
teamInfo: {
|
|
104265
|
+
note: "Team facts must be source-backed if provided."
|
|
104266
|
+
}
|
|
104267
|
+
},
|
|
104268
|
+
mediaSlots: {
|
|
104269
|
+
heroImage: imageSlot(
|
|
104270
|
+
"heroImage",
|
|
104271
|
+
"Large story hero image.",
|
|
104272
|
+
["hero", "feature"]
|
|
104273
|
+
)
|
|
104274
|
+
},
|
|
104275
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104276
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104277
|
+
},
|
|
104278
|
+
exampleProps: {
|
|
104279
|
+
title: "Our Story",
|
|
104280
|
+
subtitle: "Building the future, one practical system at a time",
|
|
104281
|
+
content: "We started with a bold idea: customer-facing sites should be easier to operate after launch.",
|
|
104282
|
+
heroImage: aboutImage("Team collaborating in a workspace"),
|
|
104283
|
+
teamInfo: {
|
|
104284
|
+
title: "50+ Team Members",
|
|
104285
|
+
description: "Working across product, support, and customer operations"
|
|
104286
|
+
}
|
|
104287
|
+
}
|
|
104288
|
+
},
|
|
104289
|
+
"about-stats-sidebar": {
|
|
104290
|
+
exampleUsage: `
|
|
104291
|
+
<AboutStatsSidebar
|
|
104292
|
+
title="Why Choose Us"
|
|
104293
|
+
description="We have built a platform that scales with your operational needs."
|
|
104294
|
+
stats={[
|
|
104295
|
+
{ icon: "lucide/users", value: "10M+", label: "Visitors supported" },
|
|
104296
|
+
{ icon: "lucide/globe", value: "150+", label: "Markets served" },
|
|
104297
|
+
]}
|
|
104298
|
+
features={[
|
|
104299
|
+
{ icon: "lucide/zap", title: "Fast launch cycles", description: "Teams publish updates without waiting on engineering." },
|
|
104300
|
+
{ icon: "lucide/lock", title: "Managed consistency", description: "Shared blocks keep every page aligned." },
|
|
104301
|
+
]}
|
|
104302
|
+
/>
|
|
104303
|
+
`.trim(),
|
|
104304
|
+
importantUsageNotes: "Use only when stats are real and source-backed. Do not invent large numbers, geographic reach, or performance claims. Feature cards should explain the metrics rather than introduce unrelated benefits.",
|
|
104305
|
+
usageRequirements: {
|
|
104306
|
+
requiredProps: ["title", "stats"],
|
|
104307
|
+
propConstraints: {
|
|
104308
|
+
title: { required: true, maxLength: 70 },
|
|
104309
|
+
description: { maxLength: 180 },
|
|
104310
|
+
stats: {
|
|
104311
|
+
required: true,
|
|
104312
|
+
minItems: 2,
|
|
104313
|
+
maxItems: 6,
|
|
104314
|
+
note: "Stats must be sourced."
|
|
104315
|
+
},
|
|
104316
|
+
features: { minItems: 2, maxItems: 4 }
|
|
104317
|
+
},
|
|
104318
|
+
mediaSlots: {},
|
|
104319
|
+
requiresSiteCapabilities: aboutCapabilities("metrics_or_stats"),
|
|
104320
|
+
notes: ["Do not fabricate metrics or quantified claims."]
|
|
104321
|
+
},
|
|
104322
|
+
exampleProps: {
|
|
104323
|
+
title: "Why Choose Us",
|
|
104324
|
+
description: "We have built a platform that scales with your operational needs.",
|
|
104325
|
+
stats: [
|
|
104326
|
+
{ icon: "lucide/users", value: "10M+", label: "Visitors supported" },
|
|
104327
|
+
{ icon: "lucide/globe", value: "150+", label: "Markets served" }
|
|
104328
|
+
],
|
|
104329
|
+
features: [
|
|
104330
|
+
{
|
|
104331
|
+
icon: "lucide/zap",
|
|
104332
|
+
title: "Fast launch cycles",
|
|
104333
|
+
description: "Teams publish updates without waiting on engineering."
|
|
104334
|
+
},
|
|
104335
|
+
{
|
|
104336
|
+
icon: "lucide/lock",
|
|
104337
|
+
title: "Managed consistency",
|
|
104338
|
+
description: "Shared blocks keep every page aligned."
|
|
104339
|
+
}
|
|
104340
|
+
]
|
|
104341
|
+
}
|
|
104342
|
+
},
|
|
104343
|
+
"about-interactive-tabs": {
|
|
104344
|
+
exampleUsage: `
|
|
104345
|
+
<AboutInteractiveTabs
|
|
104346
|
+
title="Discover Our Story"
|
|
104347
|
+
subtitle="Learn more about how we work and what we value."
|
|
104348
|
+
tabs={[
|
|
104349
|
+
{
|
|
104350
|
+
id: "work",
|
|
104351
|
+
label: "Our Work",
|
|
104352
|
+
content: {
|
|
104353
|
+
title: "Crafting Digital Experiences",
|
|
104354
|
+
description: "We create maintainable, high-performing customer experiences.",
|
|
104355
|
+
image: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team reviewing digital experience work" },
|
|
104356
|
+
},
|
|
104357
|
+
},
|
|
104358
|
+
{
|
|
104359
|
+
id: "process",
|
|
104360
|
+
label: "Our Process",
|
|
104361
|
+
content: {
|
|
104362
|
+
title: "Built Around Real Operations",
|
|
104363
|
+
description: "Every workflow starts from the way teams already work.",
|
|
104364
|
+
image: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team process planning session" },
|
|
104365
|
+
},
|
|
104366
|
+
},
|
|
104367
|
+
]}
|
|
104368
|
+
/>
|
|
104369
|
+
`.trim(),
|
|
104370
|
+
importantUsageNotes: "Use for two to five distinct company aspects such as work, process, values, or culture. Each tab id must be unique and stable. Tab images must be image assets only and should match the tab content.",
|
|
104371
|
+
usageRequirements: {
|
|
104372
|
+
requiredProps: ["title", "tabs"],
|
|
104373
|
+
propConstraints: {
|
|
104374
|
+
title: { required: true, maxLength: 70 },
|
|
104375
|
+
subtitle: { maxLength: 150 },
|
|
104376
|
+
tabs: { required: true, minItems: 2, maxItems: 5 },
|
|
104377
|
+
"tabs[].id": {
|
|
104378
|
+
required: true,
|
|
104379
|
+
note: "Must be unique within the tabs array."
|
|
104380
|
+
},
|
|
104381
|
+
"tabs[].content.title": { required: true, maxLength: 80 },
|
|
104382
|
+
"tabs[].content.description": { required: true, maxLength: 220 }
|
|
104383
|
+
},
|
|
104384
|
+
mediaSlots: {
|
|
104385
|
+
"tabs[].content.image": imageSlot(
|
|
104386
|
+
"tabs[].content.image",
|
|
104387
|
+
"Tab content image.",
|
|
104388
|
+
["feature", "gallery"],
|
|
104389
|
+
"medium",
|
|
104390
|
+
false
|
|
104391
|
+
)
|
|
104392
|
+
},
|
|
104393
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104394
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104395
|
+
},
|
|
104396
|
+
exampleProps: {
|
|
104397
|
+
title: "Discover Our Story",
|
|
104398
|
+
subtitle: "Learn more about how we work and what we value.",
|
|
104399
|
+
tabs: [
|
|
104400
|
+
{
|
|
104401
|
+
id: "work",
|
|
104402
|
+
label: "Our Work",
|
|
104403
|
+
content: {
|
|
104404
|
+
title: "Crafting Digital Experiences",
|
|
104405
|
+
description: "We create maintainable, high-performing customer experiences.",
|
|
104406
|
+
image: aboutImage("Team reviewing digital experience work")
|
|
104407
|
+
}
|
|
104408
|
+
},
|
|
104409
|
+
{
|
|
104410
|
+
id: "process",
|
|
104411
|
+
label: "Our Process",
|
|
104412
|
+
content: {
|
|
104413
|
+
title: "Built Around Real Operations",
|
|
104414
|
+
description: "Every workflow starts from the way teams already work.",
|
|
104415
|
+
image: aboutImage("Team process planning session")
|
|
104416
|
+
}
|
|
104417
|
+
}
|
|
104418
|
+
]
|
|
104419
|
+
}
|
|
104420
|
+
},
|
|
104421
|
+
"about-mission-dual-image": {
|
|
104422
|
+
exampleUsage: `
|
|
104423
|
+
<AboutMissionDualImage
|
|
104424
|
+
missionTitle="Our Mission"
|
|
104425
|
+
missionContent="To make professional digital operations easier for every growing team."
|
|
104426
|
+
visionTitle="Our Vision"
|
|
104427
|
+
visionContent="A world where every business can keep its customer experience current."
|
|
104428
|
+
primaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team mission planning" }}
|
|
104429
|
+
secondaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Product workshop" }}
|
|
104430
|
+
actions={[{ label: "Join Our Journey", href: "/careers", variant: "default" }]}
|
|
104431
|
+
/>
|
|
104432
|
+
`.trim(),
|
|
104433
|
+
importantUsageNotes: "Use when both mission and vision copy are available. Avoid vague mission statements; keep each content block specific. primaryImage and secondaryImage must be image assets only.",
|
|
104434
|
+
usageRequirements: {
|
|
104435
|
+
requiredProps: ["missionTitle", "missionContent", "visionTitle", "visionContent"],
|
|
104436
|
+
propConstraints: {
|
|
104437
|
+
missionTitle: { required: true, maxLength: 70 },
|
|
104438
|
+
missionContent: { required: true, maxLength: 240 },
|
|
104439
|
+
visionTitle: { required: true, maxLength: 70 },
|
|
104440
|
+
visionContent: { required: true, maxLength: 240 },
|
|
104441
|
+
actions: { maxItems: 2 }
|
|
104442
|
+
},
|
|
104443
|
+
mediaSlots: {
|
|
104444
|
+
primaryImage: imageSlot(
|
|
104445
|
+
"primaryImage",
|
|
104446
|
+
"Primary mission/vision image.",
|
|
104447
|
+
["feature", "hero"],
|
|
104448
|
+
"large",
|
|
104449
|
+
false
|
|
104450
|
+
),
|
|
104451
|
+
secondaryImage: imageSlot(
|
|
104452
|
+
"secondaryImage",
|
|
104453
|
+
"Secondary mission/vision image.",
|
|
104454
|
+
["feature", "thumbnail"],
|
|
104455
|
+
"medium",
|
|
104456
|
+
false
|
|
104457
|
+
)
|
|
104458
|
+
},
|
|
104459
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104460
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104461
|
+
},
|
|
104462
|
+
exampleProps: {
|
|
104463
|
+
missionTitle: "Our Mission",
|
|
104464
|
+
missionContent: "To make professional digital operations easier for every growing team.",
|
|
104465
|
+
visionTitle: "Our Vision",
|
|
104466
|
+
visionContent: "A world where every business can keep its customer experience current.",
|
|
104467
|
+
primaryImage: aboutImage("Team mission planning"),
|
|
104468
|
+
secondaryImage: aboutImage("Product workshop"),
|
|
104469
|
+
actions: [
|
|
104470
|
+
{ label: "Join Our Journey", href: "/careers", variant: "default" }
|
|
104471
|
+
]
|
|
104472
|
+
}
|
|
104473
|
+
},
|
|
104474
|
+
"about-story-expertise": {
|
|
104475
|
+
exampleUsage: `
|
|
104476
|
+
<AboutStoryExpertise
|
|
104477
|
+
eyebrow="About Our Practice"
|
|
104478
|
+
heading="We turn operating complexity into clear digital systems."
|
|
104479
|
+
storyParagraphs={[
|
|
104480
|
+
"Our team works where brand, operations, and customer experience meet.",
|
|
104481
|
+
"Every engagement starts with the source material that makes a business distinct.",
|
|
104482
|
+
]}
|
|
104483
|
+
actions={[
|
|
104484
|
+
{ label: "Start a Project", href: "/contact", variant: "default" },
|
|
104485
|
+
{ label: "See Our Work", href: "/work", variant: "outline" },
|
|
104486
|
+
]}
|
|
104487
|
+
image={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team reviewing customer experience systems" }}
|
|
104488
|
+
highlight={{ label: "Trusted process", title: "Built around source-backed content", description: "Contracts keep generated pages accurate." }}
|
|
104489
|
+
expertiseAreas={[
|
|
104490
|
+
{ title: "Content systems", description: "Reusable structures for every page." },
|
|
104491
|
+
{ title: "AI workflows", description: "Guided generation with clear guardrails." },
|
|
104492
|
+
]}
|
|
104493
|
+
/>
|
|
104494
|
+
`.trim(),
|
|
104495
|
+
importantUsageNotes: "Use for trust-building story sections that combine narrative, a single supporting image, and capability tiles. Do not fabricate capabilities the business does not offer. The image prop must be an image asset only.",
|
|
104496
|
+
usageRequirements: {
|
|
104497
|
+
requiredProps: ["heading", "storyParagraphs", "image"],
|
|
104498
|
+
propConstraints: {
|
|
104499
|
+
eyebrow: { maxLength: 40 },
|
|
104500
|
+
heading: { required: true, maxLength: 90 },
|
|
104501
|
+
storyParagraphs: { required: true, minItems: 2, maxItems: 3 },
|
|
104502
|
+
actions: { maxItems: 2 },
|
|
104503
|
+
image: { required: true },
|
|
104504
|
+
expertiseAreas: { minItems: 2, maxItems: 4 }
|
|
104505
|
+
},
|
|
104506
|
+
mediaSlots: {
|
|
104507
|
+
image: imageSlot(
|
|
104508
|
+
"image",
|
|
104509
|
+
"Story and expertise image card.",
|
|
104510
|
+
["feature", "hero"]
|
|
104511
|
+
)
|
|
104512
|
+
},
|
|
104513
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104514
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104515
|
+
},
|
|
104516
|
+
exampleProps: {
|
|
104517
|
+
eyebrow: "About Our Practice",
|
|
104518
|
+
heading: "We turn operating complexity into clear digital systems.",
|
|
104519
|
+
storyParagraphs: [
|
|
104520
|
+
"Our team works where brand, operations, and customer experience meet.",
|
|
104521
|
+
"Every engagement starts with the source material that makes a business distinct."
|
|
104522
|
+
],
|
|
104523
|
+
actions: [
|
|
104524
|
+
{ label: "Start a Project", href: "/contact", variant: "default" },
|
|
104525
|
+
{ label: "See Our Work", href: "/work", variant: "outline" }
|
|
104526
|
+
],
|
|
104527
|
+
image: aboutImage("Team reviewing customer experience systems"),
|
|
104528
|
+
highlight: {
|
|
104529
|
+
label: "Trusted process",
|
|
104530
|
+
title: "Built around source-backed content",
|
|
104531
|
+
description: "Contracts keep generated pages accurate."
|
|
104532
|
+
},
|
|
104533
|
+
expertiseAreas: [
|
|
104534
|
+
{
|
|
104535
|
+
title: "Content systems",
|
|
104536
|
+
description: "Reusable structures for every page."
|
|
104537
|
+
},
|
|
104538
|
+
{
|
|
104539
|
+
title: "AI workflows",
|
|
104540
|
+
description: "Guided generation with clear guardrails."
|
|
104541
|
+
}
|
|
104542
|
+
]
|
|
104543
|
+
}
|
|
104544
|
+
},
|
|
104545
|
+
"about-network-spotlight": {
|
|
104546
|
+
exampleUsage: `
|
|
104547
|
+
<AboutNetworkSpotlight
|
|
104548
|
+
eyebrow="Partner Network"
|
|
104549
|
+
heading="A practical network for teams building better customer experiences."
|
|
104550
|
+
description="We work with operators, designers, and implementation partners who care about durable systems."
|
|
104551
|
+
highlights={[
|
|
104552
|
+
"Shared delivery standards across every project",
|
|
104553
|
+
"Practical support for ongoing site operations",
|
|
104554
|
+
"Source-backed content and measurable outcomes",
|
|
104555
|
+
]}
|
|
104556
|
+
actions={[
|
|
104557
|
+
{ label: "Become a Partner", href: "/partners", variant: "default" },
|
|
104558
|
+
{ label: "Explore the Network", href: "/network", variant: "outline" },
|
|
104559
|
+
]}
|
|
104560
|
+
image={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Partner team workshop" }}
|
|
104561
|
+
spotlightCard={{ icon: "lucide/network", label: "Partner reach", title: "Built for collaboration", description: "A shared system keeps every project aligned." }}
|
|
104562
|
+
/>
|
|
104563
|
+
`.trim(),
|
|
104564
|
+
importantUsageNotes: "Use for partner, alliance, or community program spotlights with clear source-backed claims. Avoid implying a partner network exists unless the business has one. The image prop must be an image asset only.",
|
|
104565
|
+
usageRequirements: {
|
|
104566
|
+
requiredProps: ["heading", "description", "image"],
|
|
104567
|
+
propConstraints: {
|
|
104568
|
+
eyebrow: { maxLength: 40 },
|
|
104569
|
+
heading: { required: true, maxLength: 90 },
|
|
104570
|
+
description: { required: true, maxLength: 220 },
|
|
104571
|
+
highlights: { minItems: 2, maxItems: 4 },
|
|
104572
|
+
actions: { maxItems: 2 },
|
|
104573
|
+
image: { required: true }
|
|
104574
|
+
},
|
|
104575
|
+
mediaSlots: {
|
|
104576
|
+
image: imageSlot(
|
|
104577
|
+
"image",
|
|
104578
|
+
"Network spotlight image.",
|
|
104579
|
+
["feature", "hero"]
|
|
104580
|
+
)
|
|
104581
|
+
},
|
|
104582
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104583
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104584
|
+
},
|
|
104585
|
+
exampleProps: {
|
|
104586
|
+
eyebrow: "Partner Network",
|
|
104587
|
+
heading: "A practical network for teams building better customer experiences.",
|
|
104588
|
+
description: "We work with operators, designers, and implementation partners who care about durable systems.",
|
|
104589
|
+
highlights: [
|
|
104590
|
+
"Shared delivery standards across every project",
|
|
104591
|
+
"Practical support for ongoing site operations",
|
|
104592
|
+
"Source-backed content and measurable outcomes"
|
|
104593
|
+
],
|
|
104594
|
+
actions: [
|
|
104595
|
+
{ label: "Become a Partner", href: "/partners", variant: "default" },
|
|
104596
|
+
{ label: "Explore the Network", href: "/network", variant: "outline" }
|
|
104597
|
+
],
|
|
104598
|
+
image: aboutImage("Partner team workshop"),
|
|
104599
|
+
spotlightCard: {
|
|
104600
|
+
icon: "lucide/network",
|
|
104601
|
+
label: "Partner reach",
|
|
104602
|
+
title: "Built for collaboration",
|
|
104603
|
+
description: "A shared system keeps every project aligned."
|
|
104604
|
+
}
|
|
104605
|
+
}
|
|
104606
|
+
},
|
|
104607
|
+
"about-location-info-hero": {
|
|
104608
|
+
exampleUsage: `
|
|
104609
|
+
<AboutLocationInfoHero
|
|
104610
|
+
headline="Visit Our Flagship Workspace"
|
|
104611
|
+
address="123 Market Street, Phoenix, AZ"
|
|
104612
|
+
addressHref="https://maps.google.com/?q=123+Market+Street+Phoenix+AZ"
|
|
104613
|
+
phone="(555) 014-8821"
|
|
104614
|
+
phoneHref="tel:+15550148821"
|
|
104615
|
+
actions={[{ label: "Get Directions", href: "/locations", variant: "default" }]}
|
|
104616
|
+
hoursSections={[
|
|
104617
|
+
{ label: "Weekdays", hours: [{ day: "Mon-Fri", time: "9:00 AM - 6:00 PM" }] },
|
|
104618
|
+
{ label: "Weekend", hours: [{ day: "Sat", time: "10:00 AM - 2:00 PM" }] },
|
|
104619
|
+
]}
|
|
104620
|
+
images={[
|
|
104621
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Flagship workspace interior" },
|
|
104622
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team meeting area" },
|
|
104623
|
+
]}
|
|
104624
|
+
/>
|
|
104625
|
+
`.trim(),
|
|
104626
|
+
importantUsageNotes: "Use only when contact details, hours, and location facts are source-backed. Do not fabricate addresses, phone numbers, or business hours. images[] must contain image assets only, never logos, favicons, or videos.",
|
|
104627
|
+
usageRequirements: {
|
|
104628
|
+
requiredProps: ["headline", "address", "phone", "hoursSections", "images"],
|
|
104629
|
+
propConstraints: {
|
|
104630
|
+
headline: { required: true, maxLength: 80 },
|
|
104631
|
+
address: {
|
|
104632
|
+
required: true,
|
|
104633
|
+
note: "Must be source-backed contact information."
|
|
104634
|
+
},
|
|
104635
|
+
phone: {
|
|
104636
|
+
required: true,
|
|
104637
|
+
note: "Must be source-backed contact information."
|
|
104638
|
+
},
|
|
104639
|
+
hoursSections: { required: true, minItems: 1, maxItems: 4 },
|
|
104640
|
+
images: { required: true, minItems: 1, maxItems: 2 },
|
|
104641
|
+
actions: { maxItems: 2 }
|
|
104642
|
+
},
|
|
104643
|
+
mediaSlots: {
|
|
104644
|
+
"images[]": imageSlot(
|
|
104645
|
+
"images[]",
|
|
104646
|
+
"Location showcase image.",
|
|
104647
|
+
["feature", "hero"]
|
|
104648
|
+
)
|
|
104649
|
+
},
|
|
104650
|
+
requiresSiteCapabilities: aboutCapabilities("contact_info", "media_library"),
|
|
104651
|
+
notes: [ABOUT_MEDIA_NOTE, "Location and hours data must be sourced."]
|
|
104652
|
+
},
|
|
104653
|
+
exampleProps: {
|
|
104654
|
+
headline: "Visit Our Flagship Workspace",
|
|
104655
|
+
address: "123 Market Street, Phoenix, AZ",
|
|
104656
|
+
addressHref: "https://maps.google.com/?q=123+Market+Street+Phoenix+AZ",
|
|
104657
|
+
phone: "(555) 014-8821",
|
|
104658
|
+
phoneHref: "tel:+15550148821",
|
|
104659
|
+
actions: [
|
|
104660
|
+
{ label: "Get Directions", href: "/locations", variant: "default" }
|
|
104661
|
+
],
|
|
104662
|
+
hoursSections: [
|
|
104663
|
+
{
|
|
104664
|
+
label: "Weekdays",
|
|
104665
|
+
hours: [{ day: "Mon-Fri", time: "9:00 AM - 6:00 PM" }]
|
|
104666
|
+
},
|
|
104667
|
+
{
|
|
104668
|
+
label: "Weekend",
|
|
104669
|
+
hours: [{ day: "Sat", time: "10:00 AM - 2:00 PM" }]
|
|
104670
|
+
}
|
|
104671
|
+
],
|
|
104672
|
+
images: [
|
|
104673
|
+
aboutImage("Flagship workspace interior"),
|
|
104674
|
+
aboutImage("Team meeting area")
|
|
104675
|
+
]
|
|
104676
|
+
}
|
|
104677
|
+
},
|
|
104678
|
+
"about-split-hero": {
|
|
104679
|
+
exampleUsage: `
|
|
104680
|
+
<AboutSplitHero
|
|
104681
|
+
brandText="Business"
|
|
104682
|
+
brandHighlight="PRO"
|
|
104683
|
+
heading="Achieve More with Elite Access"
|
|
104684
|
+
description="Give your team a polished about experience with clear positioning and a strong visual."
|
|
104685
|
+
ctaAction={{ label: "Upgrade to premium", href: "/upgrade", variant: "default" }}
|
|
104686
|
+
imageSrc="${ABOUT_EXAMPLE_IMAGE_URL}"
|
|
104687
|
+
imageAlt="Premium team workspace"
|
|
104688
|
+
/>
|
|
104689
|
+
`.trim(),
|
|
104690
|
+
importantUsageNotes: "Use for premium, launch, or upgrade-oriented about hero sections. Use ctaAction, not ctaText or ctaUrl. imageSrc must be an absolute image URL and must not be a logo, favicon, or video asset.",
|
|
104691
|
+
usageRequirements: {
|
|
104692
|
+
requiredProps: ["heading", "description", "imageSrc"],
|
|
104693
|
+
propConstraints: {
|
|
104694
|
+
brandText: { maxLength: 30 },
|
|
104695
|
+
brandHighlight: { maxLength: 20 },
|
|
104696
|
+
heading: { required: true, maxLength: 70 },
|
|
104697
|
+
description: { required: true, maxLength: 180 },
|
|
104698
|
+
ctaAction: {
|
|
104699
|
+
note: "Use ActionConfig with label and href."
|
|
104700
|
+
},
|
|
104701
|
+
imageSrc: { required: true },
|
|
104702
|
+
imageAlt: { required: true, maxLength: 120 }
|
|
104703
|
+
},
|
|
104704
|
+
mediaSlots: {
|
|
104705
|
+
imageSrc: imageSlot(
|
|
104706
|
+
"imageSrc",
|
|
104707
|
+
"Split hero image.",
|
|
104708
|
+
["hero", "feature"]
|
|
104709
|
+
)
|
|
104710
|
+
},
|
|
104711
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104712
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104713
|
+
},
|
|
104714
|
+
exampleProps: {
|
|
104715
|
+
brandText: "Business",
|
|
104716
|
+
brandHighlight: "PRO",
|
|
104717
|
+
heading: "Achieve More with Elite Access",
|
|
104718
|
+
description: "Give your team a polished about experience with clear positioning and a strong visual.",
|
|
104719
|
+
ctaAction: {
|
|
104720
|
+
label: "Upgrade to premium",
|
|
104721
|
+
href: "/upgrade",
|
|
104722
|
+
variant: "default"
|
|
104723
|
+
},
|
|
104724
|
+
imageSrc: ABOUT_EXAMPLE_IMAGE_URL,
|
|
104725
|
+
imageAlt: "Premium team workspace"
|
|
104726
|
+
}
|
|
104727
|
+
},
|
|
104728
|
+
"about-mission-principles": {
|
|
104729
|
+
exampleUsage: `
|
|
104730
|
+
<AboutMissionPrinciples
|
|
104731
|
+
badgeText="Our Mission"
|
|
104732
|
+
missionHeading="To empower teams through practical technology"
|
|
104733
|
+
missionDescription="We believe digital systems should make daily operations clearer, not more complicated."
|
|
104734
|
+
missionAction={{ label: "Learn More", href: "/about", variant: "default" }}
|
|
104735
|
+
principles={[
|
|
104736
|
+
{ number: "01", title: "Customer-Centric", description: "Start from the real work customers need to complete." },
|
|
104737
|
+
{ number: "02", title: "Durable Systems", description: "Build patterns that stay maintainable as teams grow." },
|
|
104738
|
+
]}
|
|
104739
|
+
visionHeading="Our Vision"
|
|
104740
|
+
visionDescription="A world where every team can keep its digital presence current."
|
|
104741
|
+
visionAction={{ label: "Join Us", href: "/careers", variant: "outline" }}
|
|
104742
|
+
/>
|
|
104743
|
+
`.trim(),
|
|
104744
|
+
importantUsageNotes: "Use for mission, values, and vision content that the business can support with real messaging. Do not invent principles that contradict the brand. Keep principle cards concise and numbered.",
|
|
104745
|
+
usageRequirements: {
|
|
104746
|
+
requiredProps: ["missionHeading", "missionDescription", "principles"],
|
|
104747
|
+
propConstraints: {
|
|
104748
|
+
badgeText: { maxLength: 35 },
|
|
104749
|
+
missionHeading: { required: true, maxLength: 80 },
|
|
104750
|
+
missionDescription: { required: true, maxLength: 240 },
|
|
104751
|
+
principles: { required: true, minItems: 2, maxItems: 4 },
|
|
104752
|
+
visionHeading: { maxLength: 80 },
|
|
104753
|
+
visionDescription: { maxLength: 220 }
|
|
104754
|
+
},
|
|
104755
|
+
mediaSlots: {},
|
|
104756
|
+
requiresSiteCapabilities: aboutCapabilities(),
|
|
104757
|
+
notes: ["Mission and principle copy should come from brand source material."]
|
|
104758
|
+
},
|
|
104759
|
+
exampleProps: {
|
|
104760
|
+
badgeText: "Our Mission",
|
|
104761
|
+
missionHeading: "To empower teams through practical technology",
|
|
104762
|
+
missionDescription: "We believe digital systems should make daily operations clearer, not more complicated.",
|
|
104763
|
+
missionAction: { label: "Learn More", href: "/about", variant: "default" },
|
|
104764
|
+
principles: [
|
|
104765
|
+
{
|
|
104766
|
+
number: "01",
|
|
104767
|
+
title: "Customer-Centric",
|
|
104768
|
+
description: "Start from the real work customers need to complete."
|
|
104769
|
+
},
|
|
104770
|
+
{
|
|
104771
|
+
number: "02",
|
|
104772
|
+
title: "Durable Systems",
|
|
104773
|
+
description: "Build patterns that stay maintainable as teams grow."
|
|
104774
|
+
}
|
|
104775
|
+
],
|
|
104776
|
+
visionHeading: "Our Vision",
|
|
104777
|
+
visionDescription: "A world where every team can keep its digital presence current.",
|
|
104778
|
+
visionAction: { label: "Join Us", href: "/careers", variant: "outline" }
|
|
104779
|
+
}
|
|
104780
|
+
},
|
|
104781
|
+
"about-expandable-values": {
|
|
104782
|
+
exampleUsage: `
|
|
104783
|
+
<AboutExpandableValues
|
|
104784
|
+
badgeText="Our Core Values"
|
|
104785
|
+
heading="The Principles That Guide Us"
|
|
104786
|
+
description="These values shape how we build, support, and improve every customer experience."
|
|
104787
|
+
values={[
|
|
104788
|
+
{
|
|
104789
|
+
id: "integrity",
|
|
104790
|
+
icon: "lucide/shield",
|
|
104791
|
+
title: "Integrity",
|
|
104792
|
+
shortDescription: "Do the right work the right way.",
|
|
104793
|
+
longDescription: "We make decisions that stay clear when the site grows and the team changes.",
|
|
104794
|
+
examples: ["Transparent tradeoffs", "Source-backed claims"],
|
|
104795
|
+
},
|
|
104796
|
+
{
|
|
104797
|
+
id: "momentum",
|
|
104798
|
+
icon: "lucide/zap",
|
|
104799
|
+
title: "Momentum",
|
|
104800
|
+
shortDescription: "Move quickly without losing quality.",
|
|
104801
|
+
longDescription: "We prefer reusable systems that make every future update easier.",
|
|
104802
|
+
examples: ["Reusable blocks", "Fast publishing workflows"],
|
|
104803
|
+
},
|
|
104804
|
+
]}
|
|
104805
|
+
ctaHeading="Build With These Values"
|
|
104806
|
+
ctaDescription="Turn brand principles into a maintainable digital experience."
|
|
104807
|
+
actions={[{ label: "Start a Project", href: "/contact", variant: "default" }]}
|
|
104808
|
+
/>
|
|
104809
|
+
`.trim(),
|
|
104810
|
+
importantUsageNotes: "Use for source-backed company values with enough detail for expandable cards. Do not invent values or examples. Each value id must be unique and stable.",
|
|
104811
|
+
usageRequirements: {
|
|
104812
|
+
requiredProps: ["heading", "values"],
|
|
104813
|
+
propConstraints: {
|
|
104814
|
+
badgeText: { maxLength: 35 },
|
|
104815
|
+
heading: { required: true, maxLength: 80 },
|
|
104816
|
+
description: { maxLength: 200 },
|
|
104817
|
+
values: { required: true, minItems: 2, maxItems: 6 },
|
|
104818
|
+
"values[].id": {
|
|
104819
|
+
required: true,
|
|
104820
|
+
note: "Must be unique within the values array."
|
|
104821
|
+
},
|
|
104822
|
+
"values[].shortDescription": { maxLength: 90 },
|
|
104823
|
+
"values[].longDescription": { maxLength: 260 },
|
|
104824
|
+
"values[].examples": { maxItems: 4 },
|
|
104825
|
+
actions: { maxItems: 2 }
|
|
104826
|
+
},
|
|
104827
|
+
mediaSlots: {},
|
|
104828
|
+
requiresSiteCapabilities: aboutCapabilities(),
|
|
104829
|
+
notes: ["Values and examples should come from brand source material."]
|
|
104830
|
+
},
|
|
104831
|
+
exampleProps: {
|
|
104832
|
+
badgeText: "Our Core Values",
|
|
104833
|
+
heading: "The Principles That Guide Us",
|
|
104834
|
+
description: "These values shape how we build, support, and improve every customer experience.",
|
|
104835
|
+
values: [
|
|
104836
|
+
{
|
|
104837
|
+
id: "integrity",
|
|
104838
|
+
icon: "lucide/shield",
|
|
104839
|
+
title: "Integrity",
|
|
104840
|
+
shortDescription: "Do the right work the right way.",
|
|
104841
|
+
longDescription: "We make decisions that stay clear when the site grows and the team changes.",
|
|
104842
|
+
examples: ["Transparent tradeoffs", "Source-backed claims"]
|
|
104843
|
+
},
|
|
104844
|
+
{
|
|
104845
|
+
id: "momentum",
|
|
104846
|
+
icon: "lucide/zap",
|
|
104847
|
+
title: "Momentum",
|
|
104848
|
+
shortDescription: "Move quickly without losing quality.",
|
|
104849
|
+
longDescription: "We prefer reusable systems that make every future update easier.",
|
|
104850
|
+
examples: ["Reusable blocks", "Fast publishing workflows"]
|
|
104851
|
+
}
|
|
104852
|
+
],
|
|
104853
|
+
ctaHeading: "Build With These Values",
|
|
104854
|
+
ctaDescription: "Turn brand principles into a maintainable digital experience.",
|
|
104855
|
+
actions: [
|
|
104856
|
+
{ label: "Start a Project", href: "/contact", variant: "default" }
|
|
104857
|
+
]
|
|
104858
|
+
}
|
|
104859
|
+
},
|
|
104860
|
+
"community-initiatives": {
|
|
104861
|
+
exampleUsage: `
|
|
104862
|
+
<CommunityInitiatives
|
|
104863
|
+
badgeText="Community Impact"
|
|
104864
|
+
heading="Supporting the Communities We Serve"
|
|
104865
|
+
description="Our programs connect practical service with measurable local outcomes."
|
|
104866
|
+
categories={[
|
|
104867
|
+
{
|
|
104868
|
+
id: "food-drive",
|
|
104869
|
+
title: "Food Drive",
|
|
104870
|
+
description: "Supporting local families through coordinated food donations.",
|
|
104871
|
+
initiatives: [
|
|
104872
|
+
{
|
|
104873
|
+
id: "monthly-pantry",
|
|
104874
|
+
title: "Monthly Pantry Support",
|
|
104875
|
+
description: "A recurring program with neighborhood partners.",
|
|
104876
|
+
icon: "lucide/heart-handshake",
|
|
104877
|
+
metrics: [{ value: "2,400", label: "Meals donated" }],
|
|
104878
|
+
image: "${ABOUT_EXAMPLE_IMAGE_URL}",
|
|
104879
|
+
},
|
|
104880
|
+
],
|
|
104881
|
+
},
|
|
104882
|
+
]}
|
|
104883
|
+
ctaHeading="Partner With Us"
|
|
104884
|
+
ctaDescription="Help expand practical community programs in your area."
|
|
104885
|
+
actions={[{ label: "Get Involved", href: "/community", variant: "default" }]}
|
|
104886
|
+
/>
|
|
104887
|
+
`.trim(),
|
|
104888
|
+
importantUsageNotes: "Use only when community program details and impact metrics are sourced. Do not fabricate initiatives, donation totals, partner names, or impact claims. Initiative images must be image assets only.",
|
|
104889
|
+
usageRequirements: {
|
|
104890
|
+
requiredProps: ["heading", "categories"],
|
|
104891
|
+
propConstraints: {
|
|
104892
|
+
badgeText: { maxLength: 35 },
|
|
104893
|
+
heading: { required: true, maxLength: 90 },
|
|
104894
|
+
description: { maxLength: 220 },
|
|
104895
|
+
categories: { required: true, minItems: 1, maxItems: 5 },
|
|
104896
|
+
"categories[].initiatives": { required: true, minItems: 1, maxItems: 6 },
|
|
104897
|
+
"categories[].initiatives[].metrics": {
|
|
104898
|
+
note: "Metrics must be sourced."
|
|
104899
|
+
},
|
|
104900
|
+
actions: { maxItems: 2 }
|
|
104901
|
+
},
|
|
104902
|
+
mediaSlots: {
|
|
104903
|
+
"categories[].initiatives[].image": imageSlot(
|
|
104904
|
+
"categories[].initiatives[].image",
|
|
104905
|
+
"Community initiative image.",
|
|
104906
|
+
["feature", "thumbnail"],
|
|
104907
|
+
"medium",
|
|
104908
|
+
false
|
|
104909
|
+
)
|
|
104910
|
+
},
|
|
104911
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
104912
|
+
"metrics_or_stats",
|
|
104913
|
+
"media_library"
|
|
104914
|
+
),
|
|
104915
|
+
notes: [ABOUT_MEDIA_NOTE, "Community impact claims must be sourced."]
|
|
104916
|
+
},
|
|
104917
|
+
exampleProps: {
|
|
104918
|
+
badgeText: "Community Impact",
|
|
104919
|
+
heading: "Supporting the Communities We Serve",
|
|
104920
|
+
description: "Our programs connect practical service with measurable local outcomes.",
|
|
104921
|
+
categories: [
|
|
104922
|
+
{
|
|
104923
|
+
id: "food-drive",
|
|
104924
|
+
title: "Food Drive",
|
|
104925
|
+
description: "Supporting local families through coordinated food donations.",
|
|
104926
|
+
initiatives: [
|
|
104927
|
+
{
|
|
104928
|
+
id: "monthly-pantry",
|
|
104929
|
+
title: "Monthly Pantry Support",
|
|
104930
|
+
description: "A recurring program with neighborhood partners.",
|
|
104931
|
+
icon: "lucide/heart-handshake",
|
|
104932
|
+
metrics: [{ value: "2,400", label: "Meals donated" }],
|
|
104933
|
+
image: ABOUT_EXAMPLE_IMAGE_URL
|
|
104934
|
+
}
|
|
104935
|
+
]
|
|
104936
|
+
}
|
|
104937
|
+
],
|
|
104938
|
+
ctaHeading: "Partner With Us",
|
|
104939
|
+
ctaDescription: "Help expand practical community programs in your area.",
|
|
104940
|
+
actions: [
|
|
104941
|
+
{ label: "Get Involved", href: "/community", variant: "default" }
|
|
104942
|
+
]
|
|
104943
|
+
}
|
|
104944
|
+
},
|
|
104945
|
+
"about-culture-tabs": {
|
|
104946
|
+
exampleUsage: `
|
|
104947
|
+
<AboutCultureTabs
|
|
104948
|
+
badgeText="Our Culture"
|
|
104949
|
+
heading="What Makes Us Different"
|
|
104950
|
+
description="We have built a workplace where practical innovation and clear communication matter."
|
|
104951
|
+
aspects={[
|
|
104952
|
+
{
|
|
104953
|
+
id: "innovation",
|
|
104954
|
+
title: "Innovation First",
|
|
104955
|
+
description: "Teams have room to test better ways to serve customers.",
|
|
104956
|
+
images: ["${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}"],
|
|
104957
|
+
testimonial: {
|
|
104958
|
+
quote: "The freedom to improve the work is matched by real support from the team.",
|
|
104959
|
+
author: "Sarah Chen",
|
|
104960
|
+
role: "Senior Product Designer",
|
|
104961
|
+
avatar: "${ABOUT_EXAMPLE_IMAGE_URL}",
|
|
104962
|
+
},
|
|
104963
|
+
},
|
|
104964
|
+
{
|
|
104965
|
+
id: "collaboration",
|
|
104966
|
+
title: "Collaborative Spirit",
|
|
104967
|
+
description: "Cross-functional teams share context early and often.",
|
|
104968
|
+
images: ["${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}"],
|
|
104969
|
+
testimonial: {
|
|
104970
|
+
quote: "People here are genuinely invested in helping each other succeed.",
|
|
104971
|
+
author: "Marcus Johnson",
|
|
104972
|
+
role: "Engineering Lead",
|
|
104973
|
+
avatar: "${ABOUT_EXAMPLE_IMAGE_URL}",
|
|
104974
|
+
},
|
|
104975
|
+
},
|
|
104976
|
+
]}
|
|
104977
|
+
ctaHeading="Ready to Join Our Team?"
|
|
104978
|
+
ctaDescription="We are looking for people who share these values."
|
|
104979
|
+
actions={[{ label: "View Open Positions", href: "/careers", variant: "default" }]}
|
|
104980
|
+
ctaImages={["${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}"]}
|
|
104981
|
+
/>
|
|
104982
|
+
`.trim(),
|
|
104983
|
+
importantUsageNotes: "Use only when real culture aspects, employee testimonials, and team imagery are available. Do not fabricate quotes, authors, roles, or workplace claims. aspects[].images, testimonial.avatar, and ctaImages must be image media only.",
|
|
104984
|
+
usageRequirements: {
|
|
104985
|
+
requiredProps: ["heading", "aspects"],
|
|
104986
|
+
propConstraints: {
|
|
104987
|
+
badgeText: { maxLength: 35 },
|
|
104988
|
+
heading: { required: true, maxLength: 90 },
|
|
104989
|
+
description: { maxLength: 220 },
|
|
104990
|
+
aspects: { required: true, minItems: 2, maxItems: 5 },
|
|
104991
|
+
"aspects[].id": {
|
|
104992
|
+
required: true,
|
|
104993
|
+
note: "Must be unique within the aspects array."
|
|
104994
|
+
},
|
|
104995
|
+
"aspects[].images": { required: true, minItems: 2, maxItems: 4 },
|
|
104996
|
+
"aspects[].testimonial": {
|
|
104997
|
+
required: true,
|
|
104998
|
+
note: "Must be a real sourced employee or team testimonial."
|
|
104999
|
+
},
|
|
105000
|
+
ctaImages: { minItems: 3, maxItems: 6 },
|
|
105001
|
+
actions: { maxItems: 2 }
|
|
105002
|
+
},
|
|
105003
|
+
mediaSlots: {
|
|
105004
|
+
"aspects[].images[]": imageSlot(
|
|
105005
|
+
"aspects[].images[]",
|
|
105006
|
+
"Culture aspect gallery image.",
|
|
105007
|
+
["gallery", "feature"]
|
|
105008
|
+
),
|
|
105009
|
+
"aspects[].testimonial.avatar": imageSlot(
|
|
105010
|
+
"aspects[].testimonial.avatar",
|
|
105011
|
+
"Culture testimonial author avatar.",
|
|
105012
|
+
["profile", "avatar"],
|
|
105013
|
+
"small",
|
|
105014
|
+
true,
|
|
105015
|
+
"1:1"
|
|
105016
|
+
),
|
|
105017
|
+
"ctaImages[]": imageSlot(
|
|
105018
|
+
"ctaImages[]",
|
|
105019
|
+
"Careers CTA supporting image.",
|
|
105020
|
+
["thumbnail", "gallery"],
|
|
105021
|
+
"small",
|
|
105022
|
+
false
|
|
105023
|
+
)
|
|
105024
|
+
},
|
|
105025
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
105026
|
+
"reviews_or_testimonials",
|
|
105027
|
+
"team_members",
|
|
105028
|
+
"media_library"
|
|
105029
|
+
),
|
|
105030
|
+
notes: [ABOUT_MEDIA_NOTE, "Culture testimonials and team claims must be sourced."]
|
|
105031
|
+
},
|
|
105032
|
+
exampleProps: {
|
|
105033
|
+
badgeText: "Our Culture",
|
|
105034
|
+
heading: "What Makes Us Different",
|
|
105035
|
+
description: "We have built a workplace where practical innovation and clear communication matter.",
|
|
105036
|
+
aspects: [
|
|
105037
|
+
{
|
|
105038
|
+
id: "innovation",
|
|
105039
|
+
title: "Innovation First",
|
|
105040
|
+
description: "Teams have room to test better ways to serve customers.",
|
|
105041
|
+
images: [
|
|
105042
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105043
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105044
|
+
ABOUT_EXAMPLE_IMAGE_URL
|
|
105045
|
+
],
|
|
105046
|
+
testimonial: {
|
|
105047
|
+
quote: "The freedom to improve the work is matched by real support from the team.",
|
|
105048
|
+
author: "Sarah Chen",
|
|
105049
|
+
role: "Senior Product Designer",
|
|
105050
|
+
avatar: ABOUT_EXAMPLE_IMAGE_URL
|
|
105051
|
+
}
|
|
105052
|
+
},
|
|
105053
|
+
{
|
|
105054
|
+
id: "collaboration",
|
|
105055
|
+
title: "Collaborative Spirit",
|
|
105056
|
+
description: "Cross-functional teams share context early and often.",
|
|
105057
|
+
images: [
|
|
105058
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105059
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105060
|
+
ABOUT_EXAMPLE_IMAGE_URL
|
|
105061
|
+
],
|
|
105062
|
+
testimonial: {
|
|
105063
|
+
quote: "People here are genuinely invested in helping each other succeed.",
|
|
105064
|
+
author: "Marcus Johnson",
|
|
105065
|
+
role: "Engineering Lead",
|
|
105066
|
+
avatar: ABOUT_EXAMPLE_IMAGE_URL
|
|
105067
|
+
}
|
|
105068
|
+
}
|
|
105069
|
+
],
|
|
105070
|
+
ctaHeading: "Ready to Join Our Team?",
|
|
105071
|
+
ctaDescription: "We are looking for people who share these values.",
|
|
105072
|
+
actions: [
|
|
105073
|
+
{ label: "View Open Positions", href: "/careers", variant: "default" }
|
|
105074
|
+
],
|
|
105075
|
+
ctaImages: [
|
|
105076
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105077
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105078
|
+
ABOUT_EXAMPLE_IMAGE_URL
|
|
105079
|
+
]
|
|
105080
|
+
}
|
|
105081
|
+
}
|
|
105082
|
+
};
|
|
103503
105083
|
var BLOCK_REGISTRY = {
|
|
103504
105084
|
"alternating-blocks": {
|
|
103505
105085
|
id: "alternating-blocks",
|
|
@@ -103519,38 +105099,7 @@ var BLOCK_REGISTRY = {
|
|
|
103519
105099
|
category: "about",
|
|
103520
105100
|
component: AlternatingBlocks,
|
|
103521
105101
|
props: "AlternatingBlocksProps",
|
|
103522
|
-
|
|
103523
|
-
<AlternatingBlocks
|
|
103524
|
-
sections={[
|
|
103525
|
-
{
|
|
103526
|
-
content: (
|
|
103527
|
-
<div>
|
|
103528
|
-
<div className="flex items-center gap-2 mb-3">
|
|
103529
|
-
<Lightbulb className="h-4 w-4 text-primary" />
|
|
103530
|
-
<span className="text-sm font-medium text-muted-foreground">
|
|
103531
|
-
The Origin
|
|
103532
|
-
</span>
|
|
103533
|
-
</div>
|
|
103534
|
-
<h3 className="mb-3 text-2xl font-semibold tracking-tight">
|
|
103535
|
-
It started with frustration
|
|
103536
|
-
</h3>
|
|
103537
|
-
<p className="text-muted-foreground leading-relaxed">
|
|
103538
|
-
We spent years watching teams drown in tools that promised to help
|
|
103539
|
-
but only added complexity. In 2018, we decided to build something better.
|
|
103540
|
-
</p>
|
|
103541
|
-
</div>
|
|
103542
|
-
),
|
|
103543
|
-
media: <img src="..." alt="..." />,
|
|
103544
|
-
mediaLeft: false
|
|
103545
|
-
},
|
|
103546
|
-
{
|
|
103547
|
-
content: <div>...</div>,
|
|
103548
|
-
media: <img src="..." alt="..." />,
|
|
103549
|
-
mediaLeft: true
|
|
103550
|
-
}
|
|
103551
|
-
]}
|
|
103552
|
-
/>
|
|
103553
|
-
`.trim()
|
|
105102
|
+
...ABOUT_BLOCK_CONTRACTS["alternating-blocks"]
|
|
103554
105103
|
},
|
|
103555
105104
|
"about-mission-features": {
|
|
103556
105105
|
id: "about-mission-features",
|
|
@@ -103570,19 +105119,7 @@ var BLOCK_REGISTRY = {
|
|
|
103570
105119
|
category: "about",
|
|
103571
105120
|
component: AboutMissionFeatures,
|
|
103572
105121
|
props: "AboutMissionFeaturesProps",
|
|
103573
|
-
|
|
103574
|
-
<AboutMissionFeatures
|
|
103575
|
-
title="About Us"
|
|
103576
|
-
description="We make it easy to build customer portals and internal tools."
|
|
103577
|
-
missionLabel="OUR MISSION"
|
|
103578
|
-
missionText="We believe building software should be insanely easy."
|
|
103579
|
-
mainImage={{ src: "/images/team.jpg", alt: "Our team" }}
|
|
103580
|
-
features={[
|
|
103581
|
-
{ icon: "lucide/files", title: "Being radically open", description: "..." },
|
|
103582
|
-
{ icon: "lucide/settings", title: "Optimizing for empowerment", description: "..." }
|
|
103583
|
-
]}
|
|
103584
|
-
/>
|
|
103585
|
-
`.trim()
|
|
105122
|
+
...ABOUT_BLOCK_CONTRACTS["about-mission-features"]
|
|
103586
105123
|
},
|
|
103587
105124
|
"about-stats-showcase": {
|
|
103588
105125
|
id: "about-stats-showcase",
|
|
@@ -103602,17 +105139,7 @@ var BLOCK_REGISTRY = {
|
|
|
103602
105139
|
category: "about",
|
|
103603
105140
|
component: AboutStatsShowcase,
|
|
103604
105141
|
props: "AboutStatsShowcaseProps",
|
|
103605
|
-
|
|
103606
|
-
<AboutStatsShowcase
|
|
103607
|
-
title="Our Background"
|
|
103608
|
-
description="Discover how our solution simplifies complex processes."
|
|
103609
|
-
stats={[
|
|
103610
|
-
{ value: "21M", label: "Global Reach of Users" },
|
|
103611
|
-
{ value: "12+", label: "Years of Expertise" }
|
|
103612
|
-
]}
|
|
103613
|
-
logosTitle="Trusted by leading product teams worldwide."
|
|
103614
|
-
/>
|
|
103615
|
-
`.trim()
|
|
105142
|
+
...ABOUT_BLOCK_CONTRACTS["about-stats-showcase"]
|
|
103616
105143
|
},
|
|
103617
105144
|
"about-company-profile": {
|
|
103618
105145
|
id: "about-company-profile",
|
|
@@ -103632,22 +105159,7 @@ var BLOCK_REGISTRY = {
|
|
|
103632
105159
|
category: "about",
|
|
103633
105160
|
component: AboutCompanyProfile,
|
|
103634
105161
|
props: "AboutCompanyProfileProps",
|
|
103635
|
-
|
|
103636
|
-
<AboutCompanyProfile
|
|
103637
|
-
title="About Us"
|
|
103638
|
-
description="A passionate team dedicated to creating innovative solutions."
|
|
103639
|
-
breakout={{
|
|
103640
|
-
title: "Hundreds of blocks at Opensite AI",
|
|
103641
|
-
description: "Providing businesses with effective tools.",
|
|
103642
|
-
buttonText: "Discover more",
|
|
103643
|
-
buttonUrl: "#"
|
|
103644
|
-
}}
|
|
103645
|
-
achievements={[
|
|
103646
|
-
{ label: "Companies", value: "300+" },
|
|
103647
|
-
{ label: "Happy Customers", value: "99%" }
|
|
103648
|
-
]}
|
|
103649
|
-
/>
|
|
103650
|
-
`.trim()
|
|
105162
|
+
...ABOUT_BLOCK_CONTRACTS["about-company-profile"]
|
|
103651
105163
|
},
|
|
103652
105164
|
"about-vision-gallery": {
|
|
103653
105165
|
id: "about-vision-gallery",
|
|
@@ -103667,16 +105179,7 @@ var BLOCK_REGISTRY = {
|
|
|
103667
105179
|
category: "about",
|
|
103668
105180
|
component: AboutVisionGallery,
|
|
103669
105181
|
props: "AboutVisionGalleryProps",
|
|
103670
|
-
|
|
103671
|
-
<AboutVisionGallery
|
|
103672
|
-
title="About Us"
|
|
103673
|
-
subtitle="Meet our team and discover our values."
|
|
103674
|
-
visionTitle="Our Vision"
|
|
103675
|
-
visionContent="What if you could create custom software without code?"
|
|
103676
|
-
ctaTitle="Part of Our Global Team"
|
|
103677
|
-
ctaButtonText="Get to know the team"
|
|
103678
|
-
/>
|
|
103679
|
-
`.trim()
|
|
105182
|
+
...ABOUT_BLOCK_CONTRACTS["about-vision-gallery"]
|
|
103680
105183
|
},
|
|
103681
105184
|
"about-developer-story": {
|
|
103682
105185
|
id: "about-developer-story",
|
|
@@ -103696,17 +105199,7 @@ var BLOCK_REGISTRY = {
|
|
|
103696
105199
|
category: "about",
|
|
103697
105200
|
component: AboutDeveloperStory,
|
|
103698
105201
|
props: "AboutDeveloperStoryProps",
|
|
103699
|
-
|
|
103700
|
-
<AboutDeveloperStory
|
|
103701
|
-
title="Developer-Focused Solutions for Modern Teams"
|
|
103702
|
-
description="We build tools that developers love."
|
|
103703
|
-
primaryCta={{ text: "Get Started", url: "#" }}
|
|
103704
|
-
stats={[
|
|
103705
|
-
{ value: "200+", label: "Projects Completed" },
|
|
103706
|
-
{ value: "50+", label: "Happy Clients" }
|
|
103707
|
-
]}
|
|
103708
|
-
/>
|
|
103709
|
-
`.trim()
|
|
105202
|
+
...ABOUT_BLOCK_CONTRACTS["about-developer-story"]
|
|
103710
105203
|
},
|
|
103711
105204
|
"about-story-gallery": {
|
|
103712
105205
|
id: "about-story-gallery",
|
|
@@ -103725,16 +105218,7 @@ var BLOCK_REGISTRY = {
|
|
|
103725
105218
|
category: "about",
|
|
103726
105219
|
component: AboutStoryGallery,
|
|
103727
105220
|
props: "AboutStoryGalleryProps",
|
|
103728
|
-
|
|
103729
|
-
<AboutStoryGallery
|
|
103730
|
-
title="Our Story"
|
|
103731
|
-
description="We started with a vision to transform how businesses build software."
|
|
103732
|
-
images={[
|
|
103733
|
-
{ src: "/images/story1.jpg", alt: "Our beginning" },
|
|
103734
|
-
{ src: "/images/story2.jpg", alt: "Growth phase" }
|
|
103735
|
-
]}
|
|
103736
|
-
/>
|
|
103737
|
-
`.trim()
|
|
105221
|
+
...ABOUT_BLOCK_CONTRACTS["about-story-gallery"]
|
|
103738
105222
|
},
|
|
103739
105223
|
"about-streamline-team": {
|
|
103740
105224
|
id: "about-streamline-team",
|
|
@@ -103754,17 +105238,7 @@ var BLOCK_REGISTRY = {
|
|
|
103754
105238
|
category: "about",
|
|
103755
105239
|
component: AboutStreamlineTeam,
|
|
103756
105240
|
props: "AboutStreamlineTeamProps",
|
|
103757
|
-
|
|
103758
|
-
<AboutStreamlineTeam
|
|
103759
|
-
title="Streamline Your Workflow"
|
|
103760
|
-
description="Our platform helps teams work smarter, not harder."
|
|
103761
|
-
features={[
|
|
103762
|
-
{ icon: "lucide/zap", title: "Lightning Fast", description: "Build in minutes." },
|
|
103763
|
-
{ icon: "lucide/shield", title: "Enterprise Security", description: "Bank-grade security." }
|
|
103764
|
-
]}
|
|
103765
|
-
teamCta={{ text: "Join Our Team", url: "#" }}
|
|
103766
|
-
/>
|
|
103767
|
-
`.trim()
|
|
105241
|
+
...ABOUT_BLOCK_CONTRACTS["about-streamline-team"]
|
|
103768
105242
|
},
|
|
103769
105243
|
"about-developer-profile": {
|
|
103770
105244
|
id: "about-developer-profile",
|
|
@@ -103784,17 +105258,7 @@ var BLOCK_REGISTRY = {
|
|
|
103784
105258
|
category: "about",
|
|
103785
105259
|
component: AboutDeveloperProfile,
|
|
103786
105260
|
props: "AboutDeveloperProfileProps",
|
|
103787
|
-
|
|
103788
|
-
<AboutDeveloperProfile
|
|
103789
|
-
name="Alex Johnson"
|
|
103790
|
-
role="Full-Stack Developer"
|
|
103791
|
-
bio="I'm a passionate developer with 8+ years of experience."
|
|
103792
|
-
skills={["React", "TypeScript", "Node.js", "Python"]}
|
|
103793
|
-
socialLinks={[
|
|
103794
|
-
{ icon: "lucide/github", url: "#", label: "GitHub" }
|
|
103795
|
-
]}
|
|
103796
|
-
/>
|
|
103797
|
-
`.trim()
|
|
105261
|
+
...ABOUT_BLOCK_CONTRACTS["about-developer-profile"]
|
|
103798
105262
|
},
|
|
103799
105263
|
"about-startup-team": {
|
|
103800
105264
|
id: "about-startup-team",
|
|
@@ -103814,19 +105278,7 @@ var BLOCK_REGISTRY = {
|
|
|
103814
105278
|
category: "about",
|
|
103815
105279
|
component: AboutStartupTeam,
|
|
103816
105280
|
props: "AboutStartupTeamProps",
|
|
103817
|
-
|
|
103818
|
-
<AboutStartupTeam
|
|
103819
|
-
title="Building the Future of Software Development"
|
|
103820
|
-
description="We're a team of passionate builders."
|
|
103821
|
-
sidebarLinks={[
|
|
103822
|
-
{ label: "About Us", href: "#about", isActive: true },
|
|
103823
|
-
{ label: "Our Team", href: "#team" }
|
|
103824
|
-
]}
|
|
103825
|
-
teamMembers={[
|
|
103826
|
-
{ name: "Sarah Chen", role: "CEO & Co-Founder" }
|
|
103827
|
-
]}
|
|
103828
|
-
/>
|
|
103829
|
-
`.trim()
|
|
105281
|
+
...ABOUT_BLOCK_CONTRACTS["about-startup-team"]
|
|
103830
105282
|
},
|
|
103831
105283
|
"about-minimal-story": {
|
|
103832
105284
|
id: "about-minimal-story",
|
|
@@ -103845,16 +105297,7 @@ var BLOCK_REGISTRY = {
|
|
|
103845
105297
|
category: "about",
|
|
103846
105298
|
component: AboutMinimalStory,
|
|
103847
105299
|
props: "AboutMinimalStoryProps",
|
|
103848
|
-
|
|
103849
|
-
<AboutMinimalStory
|
|
103850
|
-
title="Our Story"
|
|
103851
|
-
content="Every great company starts with a simple idea."
|
|
103852
|
-
author={{
|
|
103853
|
-
name: "Jordan Mitchell",
|
|
103854
|
-
role: "Founder & CEO"
|
|
103855
|
-
}}
|
|
103856
|
-
/>
|
|
103857
|
-
`.trim()
|
|
105300
|
+
...ABOUT_BLOCK_CONTRACTS["about-minimal-story"]
|
|
103858
105301
|
},
|
|
103859
105302
|
"about-story-hero": {
|
|
103860
105303
|
id: "about-story-hero",
|
|
@@ -103873,17 +105316,7 @@ var BLOCK_REGISTRY = {
|
|
|
103873
105316
|
category: "about",
|
|
103874
105317
|
component: AboutStoryHero,
|
|
103875
105318
|
props: "AboutStoryHeroProps",
|
|
103876
|
-
|
|
103877
|
-
<AboutStoryHero
|
|
103878
|
-
title="Our Story"
|
|
103879
|
-
subtitle="Building the future, one line of code at a time"
|
|
103880
|
-
content="We started with a bold idea..."
|
|
103881
|
-
teamInfo={{
|
|
103882
|
-
title: "50+ Team Members",
|
|
103883
|
-
description: "Working across 12 countries"
|
|
103884
|
-
}}
|
|
103885
|
-
/>
|
|
103886
|
-
`.trim()
|
|
105319
|
+
...ABOUT_BLOCK_CONTRACTS["about-story-hero"]
|
|
103887
105320
|
},
|
|
103888
105321
|
"about-stats-sidebar": {
|
|
103889
105322
|
id: "about-stats-sidebar",
|
|
@@ -103902,16 +105335,7 @@ var BLOCK_REGISTRY = {
|
|
|
103902
105335
|
category: "about",
|
|
103903
105336
|
component: AboutStatsSidebar,
|
|
103904
105337
|
props: "AboutStatsSidebarProps",
|
|
103905
|
-
|
|
103906
|
-
<AboutStatsSidebar
|
|
103907
|
-
title="Why Choose Us"
|
|
103908
|
-
description="We've built a platform that scales with your needs."
|
|
103909
|
-
stats={[
|
|
103910
|
-
{ icon: "lucide/users", value: "10M+", label: "Active Users" },
|
|
103911
|
-
{ icon: "lucide/globe", value: "150+", label: "Countries" }
|
|
103912
|
-
]}
|
|
103913
|
-
/>
|
|
103914
|
-
`.trim()
|
|
105338
|
+
...ABOUT_BLOCK_CONTRACTS["about-stats-sidebar"]
|
|
103915
105339
|
},
|
|
103916
105340
|
"about-interactive-tabs": {
|
|
103917
105341
|
id: "about-interactive-tabs",
|
|
@@ -103930,22 +105354,7 @@ var BLOCK_REGISTRY = {
|
|
|
103930
105354
|
category: "about",
|
|
103931
105355
|
component: AboutInteractiveTabs,
|
|
103932
105356
|
props: "AboutInteractiveTabsProps",
|
|
103933
|
-
|
|
103934
|
-
<AboutInteractiveTabs
|
|
103935
|
-
title="Discover Our Story"
|
|
103936
|
-
subtitle="Learn more about who we are"
|
|
103937
|
-
tabs={[
|
|
103938
|
-
{
|
|
103939
|
-
id: "work",
|
|
103940
|
-
label: "Our Work",
|
|
103941
|
-
content: {
|
|
103942
|
-
title: "Crafting Digital Experiences",
|
|
103943
|
-
description: "We create beautiful, functional products."
|
|
103944
|
-
}
|
|
103945
|
-
}
|
|
103946
|
-
]}
|
|
103947
|
-
/>
|
|
103948
|
-
`.trim()
|
|
105357
|
+
...ABOUT_BLOCK_CONTRACTS["about-interactive-tabs"]
|
|
103949
105358
|
},
|
|
103950
105359
|
"about-mission-dual-image": {
|
|
103951
105360
|
id: "about-mission-dual-image",
|
|
@@ -103964,15 +105373,7 @@ var BLOCK_REGISTRY = {
|
|
|
103964
105373
|
category: "about",
|
|
103965
105374
|
component: AboutMissionDualImage,
|
|
103966
105375
|
props: "AboutMissionDualImageProps",
|
|
103967
|
-
|
|
103968
|
-
<AboutMissionDualImage
|
|
103969
|
-
missionTitle="Our Mission"
|
|
103970
|
-
missionContent="To democratize software development."
|
|
103971
|
-
visionTitle="Our Vision"
|
|
103972
|
-
visionContent="A world where every idea can become reality."
|
|
103973
|
-
cta={{ text: "Join Our Journey", url: "#" }}
|
|
103974
|
-
/>
|
|
103975
|
-
`.trim()
|
|
105376
|
+
...ABOUT_BLOCK_CONTRACTS["about-mission-dual-image"]
|
|
103976
105377
|
},
|
|
103977
105378
|
"about-story-expertise": {
|
|
103978
105379
|
id: "about-story-expertise",
|
|
@@ -103993,7 +105394,7 @@ var BLOCK_REGISTRY = {
|
|
|
103993
105394
|
category: "about",
|
|
103994
105395
|
component: AboutStoryExpertise,
|
|
103995
105396
|
props: "AboutStoryExpertiseProps",
|
|
103996
|
-
|
|
105397
|
+
...ABOUT_BLOCK_CONTRACTS["about-story-expertise"]
|
|
103997
105398
|
},
|
|
103998
105399
|
"about-network-spotlight": {
|
|
103999
105400
|
id: "about-network-spotlight",
|
|
@@ -104014,7 +105415,7 @@ var BLOCK_REGISTRY = {
|
|
|
104014
105415
|
category: "about",
|
|
104015
105416
|
component: AboutNetworkSpotlight,
|
|
104016
105417
|
props: "AboutNetworkSpotlightProps",
|
|
104017
|
-
|
|
105418
|
+
...ABOUT_BLOCK_CONTRACTS["about-network-spotlight"]
|
|
104018
105419
|
},
|
|
104019
105420
|
"about-location-info-hero": {
|
|
104020
105421
|
id: "about-location-info-hero",
|
|
@@ -104035,7 +105436,7 @@ var BLOCK_REGISTRY = {
|
|
|
104035
105436
|
category: "about",
|
|
104036
105437
|
component: AboutLocationInfoHero,
|
|
104037
105438
|
props: "AboutLocationInfoHeroProps",
|
|
104038
|
-
|
|
105439
|
+
...ABOUT_BLOCK_CONTRACTS["about-location-info-hero"]
|
|
104039
105440
|
},
|
|
104040
105441
|
"media-hover-ctas": {
|
|
104041
105442
|
id: "media-hover-ctas",
|
|
@@ -120139,15 +121540,7 @@ var BLOCK_REGISTRY = {
|
|
|
120139
121540
|
category: "about",
|
|
120140
121541
|
component: AboutSplitHero,
|
|
120141
121542
|
props: "AboutSplitHeroProps",
|
|
120142
|
-
|
|
120143
|
-
<AboutSplitHero
|
|
120144
|
-
brandText="Business"
|
|
120145
|
-
brandHighlight="PRO"
|
|
120146
|
-
heading="Achieve More with Elite Access Pro"
|
|
120147
|
-
description="Enhance your career hunt with increased visibility."
|
|
120148
|
-
ctaText="Upgrade to premium"
|
|
120149
|
-
ctaUrl="/upgrade"
|
|
120150
|
-
/>`.trim()
|
|
121543
|
+
...ABOUT_BLOCK_CONTRACTS["about-split-hero"]
|
|
120151
121544
|
},
|
|
120152
121545
|
"about-mission-principles": {
|
|
120153
121546
|
id: "about-mission-principles",
|
|
@@ -120167,15 +121560,7 @@ var BLOCK_REGISTRY = {
|
|
|
120167
121560
|
category: "about",
|
|
120168
121561
|
component: AboutMissionPrinciples,
|
|
120169
121562
|
props: "AboutMissionPrinciplesProps",
|
|
120170
|
-
|
|
120171
|
-
<AboutMissionPrinciples
|
|
120172
|
-
badgeText="Our Mission"
|
|
120173
|
-
missionHeading="To empower people through technology"
|
|
120174
|
-
missionDescription="We believe technology should serve humanity."
|
|
120175
|
-
principles={[
|
|
120176
|
-
{ number: "01", title: "Customer-Centric", description: "..." },
|
|
120177
|
-
]}
|
|
120178
|
-
/>`.trim()
|
|
121563
|
+
...ABOUT_BLOCK_CONTRACTS["about-mission-principles"]
|
|
120179
121564
|
},
|
|
120180
121565
|
"about-expandable-values": {
|
|
120181
121566
|
id: "about-expandable-values",
|
|
@@ -120195,21 +121580,7 @@ var BLOCK_REGISTRY = {
|
|
|
120195
121580
|
category: "about",
|
|
120196
121581
|
component: AboutExpandableValues,
|
|
120197
121582
|
props: "AboutExpandableValuesProps",
|
|
120198
|
-
|
|
120199
|
-
<AboutExpandableValues
|
|
120200
|
-
badgeText="Our Core Values"
|
|
120201
|
-
heading="The Principles That Guide Us"
|
|
120202
|
-
values={[
|
|
120203
|
-
{
|
|
120204
|
-
id: "integrity",
|
|
120205
|
-
icon: "lucide/shield",
|
|
120206
|
-
title: "Integrity",
|
|
120207
|
-
shortDescription: "Doing what's right.",
|
|
120208
|
-
longDescription: "We believe in honesty...",
|
|
120209
|
-
examples: ["Transparent pricing", "Honest communication"],
|
|
120210
|
-
},
|
|
120211
|
-
]}
|
|
120212
|
-
/>`.trim()
|
|
121583
|
+
...ABOUT_BLOCK_CONTRACTS["about-expandable-values"]
|
|
120213
121584
|
},
|
|
120214
121585
|
"community-initiatives": {
|
|
120215
121586
|
id: "community-initiatives",
|
|
@@ -120228,19 +121599,7 @@ var BLOCK_REGISTRY = {
|
|
|
120228
121599
|
category: "about",
|
|
120229
121600
|
component: CommunityInitiatives,
|
|
120230
121601
|
props: "CommunityInitiativesProps",
|
|
120231
|
-
|
|
120232
|
-
<CommunityInitiatives
|
|
120233
|
-
badgeText="Food Drive"
|
|
120234
|
-
heading="Supporting Our Community"
|
|
120235
|
-
categories={[
|
|
120236
|
-
{
|
|
120237
|
-
id: "food-drive",
|
|
120238
|
-
title: "Food Drive",
|
|
120239
|
-
description: "Supporting our community through food donations.",
|
|
120240
|
-
initiatives: [...]
|
|
120241
|
-
},
|
|
120242
|
-
]}
|
|
120243
|
-
/>`.trim()
|
|
121602
|
+
...ABOUT_BLOCK_CONTRACTS["community-initiatives"]
|
|
120244
121603
|
},
|
|
120245
121604
|
"about-culture-tabs": {
|
|
120246
121605
|
id: "about-culture-tabs",
|
|
@@ -120260,20 +121619,7 @@ var BLOCK_REGISTRY = {
|
|
|
120260
121619
|
category: "about",
|
|
120261
121620
|
component: AboutCultureTabs,
|
|
120262
121621
|
props: "AboutCultureTabsProps",
|
|
120263
|
-
|
|
120264
|
-
<AboutCultureTabs
|
|
120265
|
-
badgeText="Our Culture"
|
|
120266
|
-
heading="What Makes Us Different"
|
|
120267
|
-
aspects={[
|
|
120268
|
-
{
|
|
120269
|
-
id: "innovation",
|
|
120270
|
-
title: "Innovation First",
|
|
120271
|
-
description: "We believe in challenging the status quo.",
|
|
120272
|
-
images: [...],
|
|
120273
|
-
testimonial: { quote: "...", author: "...", role: "...", avatar: "..." },
|
|
120274
|
-
},
|
|
120275
|
-
]}
|
|
120276
|
-
/>`.trim()
|
|
121622
|
+
...ABOUT_BLOCK_CONTRACTS["about-culture-tabs"]
|
|
120277
121623
|
},
|
|
120278
121624
|
// New Feature components
|
|
120279
121625
|
"feature-animated-carousel": {
|