@opensite/ui 3.5.8 → 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 +1762 -406
- package/dist/registry.js +1762 -406
- package/dist/social-link-icon.d.cts +1 -1
- package/dist/social-link-icon.d.ts +1 -1
- package/package.json +1 -1
package/dist/registry.js
CHANGED
|
@@ -3570,13 +3570,13 @@ function isThemedLogo(logo) {
|
|
|
3570
3570
|
}
|
|
3571
3571
|
var FooterLogo = ({
|
|
3572
3572
|
logo,
|
|
3573
|
-
logoSlot,
|
|
3573
|
+
logoSlot: logoSlot2,
|
|
3574
3574
|
logoClassName,
|
|
3575
3575
|
logoImageClassName,
|
|
3576
3576
|
logoTitleClassName,
|
|
3577
3577
|
optixFlowConfig
|
|
3578
3578
|
}) => {
|
|
3579
|
-
if (
|
|
3579
|
+
if (logoSlot2) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot2 });
|
|
3580
3580
|
if (!logo) return null;
|
|
3581
3581
|
const hasThemedSources = isThemedLogo(logo) && (logo.light || logo.dark);
|
|
3582
3582
|
const hasStandardSource = !isThemedLogo(logo) && logo.src;
|
|
@@ -22422,7 +22422,7 @@ function FeatureSplitImage({
|
|
|
22422
22422
|
description,
|
|
22423
22423
|
imageSrc,
|
|
22424
22424
|
imageAlt,
|
|
22425
|
-
imageSlot,
|
|
22425
|
+
imageSlot: imageSlot2,
|
|
22426
22426
|
actions,
|
|
22427
22427
|
actionsSlot,
|
|
22428
22428
|
className,
|
|
@@ -22469,7 +22469,7 @@ function FeatureSplitImage({
|
|
|
22469
22469
|
});
|
|
22470
22470
|
}, [actionsSlot, actions]);
|
|
22471
22471
|
const imageContent = useMemo(() => {
|
|
22472
|
-
if (
|
|
22472
|
+
if (imageSlot2) return imageSlot2;
|
|
22473
22473
|
if (!imageSrc) return null;
|
|
22474
22474
|
return /* @__PURE__ */ jsx(
|
|
22475
22475
|
Img,
|
|
@@ -22484,7 +22484,7 @@ function FeatureSplitImage({
|
|
|
22484
22484
|
optixFlowConfig
|
|
22485
22485
|
}
|
|
22486
22486
|
);
|
|
22487
|
-
}, [
|
|
22487
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
22488
22488
|
return /* @__PURE__ */ jsx(
|
|
22489
22489
|
Section,
|
|
22490
22490
|
{
|
|
@@ -22573,7 +22573,7 @@ function FeatureSplitImageReverse({
|
|
|
22573
22573
|
description,
|
|
22574
22574
|
imageSrc,
|
|
22575
22575
|
imageAlt,
|
|
22576
|
-
imageSlot,
|
|
22576
|
+
imageSlot: imageSlot2,
|
|
22577
22577
|
actions,
|
|
22578
22578
|
actionsSlot,
|
|
22579
22579
|
className,
|
|
@@ -22620,7 +22620,7 @@ function FeatureSplitImageReverse({
|
|
|
22620
22620
|
});
|
|
22621
22621
|
}, [actionsSlot, actions]);
|
|
22622
22622
|
const imageContent = useMemo(() => {
|
|
22623
|
-
if (
|
|
22623
|
+
if (imageSlot2) return imageSlot2;
|
|
22624
22624
|
if (!imageSrc) return null;
|
|
22625
22625
|
return /* @__PURE__ */ jsx(
|
|
22626
22626
|
Img,
|
|
@@ -22635,7 +22635,7 @@ function FeatureSplitImageReverse({
|
|
|
22635
22635
|
optixFlowConfig
|
|
22636
22636
|
}
|
|
22637
22637
|
);
|
|
22638
|
-
}, [
|
|
22638
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
22639
22639
|
return /* @__PURE__ */ jsx(
|
|
22640
22640
|
Section,
|
|
22641
22641
|
{
|
|
@@ -22870,7 +22870,7 @@ function FeatureChecklistImage({
|
|
|
22870
22870
|
descriptionClassName,
|
|
22871
22871
|
imageSrc,
|
|
22872
22872
|
imageAlt,
|
|
22873
|
-
imageSlot,
|
|
22873
|
+
imageSlot: imageSlot2,
|
|
22874
22874
|
actions,
|
|
22875
22875
|
actionsSlot,
|
|
22876
22876
|
checklistItems,
|
|
@@ -22931,7 +22931,7 @@ function FeatureChecklistImage({
|
|
|
22931
22931
|
});
|
|
22932
22932
|
}, [actionsSlot, actions]);
|
|
22933
22933
|
const imageContent = useMemo(() => {
|
|
22934
|
-
if (
|
|
22934
|
+
if (imageSlot2) return imageSlot2;
|
|
22935
22935
|
if (!imageSrc) return null;
|
|
22936
22936
|
return /* @__PURE__ */ jsx(
|
|
22937
22937
|
"div",
|
|
@@ -22955,7 +22955,7 @@ function FeatureChecklistImage({
|
|
|
22955
22955
|
)
|
|
22956
22956
|
}
|
|
22957
22957
|
);
|
|
22958
|
-
}, [
|
|
22958
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
22959
22959
|
const checklistContent = useMemo(() => {
|
|
22960
22960
|
if (checklistSlot) return checklistSlot;
|
|
22961
22961
|
const items = checklistItems ?? benefits;
|
|
@@ -25928,7 +25928,7 @@ function FeatureImageOverlayBadge({
|
|
|
25928
25928
|
actionsSlot,
|
|
25929
25929
|
imageSrc,
|
|
25930
25930
|
imageAlt,
|
|
25931
|
-
imageSlot,
|
|
25931
|
+
imageSlot: imageSlot2,
|
|
25932
25932
|
avatarSrc,
|
|
25933
25933
|
avatarBadgeText,
|
|
25934
25934
|
overlayTitle,
|
|
@@ -25996,7 +25996,7 @@ function FeatureImageOverlayBadge({
|
|
|
25996
25996
|
});
|
|
25997
25997
|
}, [actionsSlot, actions]);
|
|
25998
25998
|
const imageContent = useMemo(() => {
|
|
25999
|
-
if (
|
|
25999
|
+
if (imageSlot2) return imageSlot2;
|
|
26000
26000
|
if (imageSrc) {
|
|
26001
26001
|
return /* @__PURE__ */ jsx(
|
|
26002
26002
|
Img,
|
|
@@ -26013,7 +26013,7 @@ function FeatureImageOverlayBadge({
|
|
|
26013
26013
|
);
|
|
26014
26014
|
}
|
|
26015
26015
|
return null;
|
|
26016
|
-
}, [
|
|
26016
|
+
}, [imageSlot2, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
|
|
26017
26017
|
return /* @__PURE__ */ jsx(
|
|
26018
26018
|
Section,
|
|
26019
26019
|
{
|
|
@@ -50869,13 +50869,13 @@ function HeroPatternBadgeLogos({
|
|
|
50869
50869
|
function HeroLogoCenteredScreenshot({
|
|
50870
50870
|
sectionId = "hero-logo-centered-screenshot",
|
|
50871
50871
|
logo,
|
|
50872
|
-
logoSlot,
|
|
50872
|
+
logoSlot: logoSlot2,
|
|
50873
50873
|
heading,
|
|
50874
50874
|
description,
|
|
50875
50875
|
action,
|
|
50876
50876
|
actionSlot,
|
|
50877
50877
|
image,
|
|
50878
|
-
imageSlot,
|
|
50878
|
+
imageSlot: imageSlot2,
|
|
50879
50879
|
background,
|
|
50880
50880
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
50881
50881
|
spacing = "pt-32 pb-8 md:pt-32 md:pb-32",
|
|
@@ -50889,7 +50889,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50889
50889
|
optixFlowConfig
|
|
50890
50890
|
}) {
|
|
50891
50891
|
const renderLogo = useMemo(() => {
|
|
50892
|
-
if (
|
|
50892
|
+
if (logoSlot2) return logoSlot2;
|
|
50893
50893
|
if (!logo) return null;
|
|
50894
50894
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
50895
50895
|
return /* @__PURE__ */ jsx(
|
|
@@ -50901,7 +50901,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50901
50901
|
optixFlowConfig
|
|
50902
50902
|
}
|
|
50903
50903
|
);
|
|
50904
|
-
}, [
|
|
50904
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
50905
50905
|
const renderAction = useMemo(() => {
|
|
50906
50906
|
if (actionSlot) return actionSlot;
|
|
50907
50907
|
if (!action) return null;
|
|
@@ -50920,7 +50920,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50920
50920
|
] }) });
|
|
50921
50921
|
}, [actionSlot, action]);
|
|
50922
50922
|
const renderImage = useMemo(() => {
|
|
50923
|
-
if (
|
|
50923
|
+
if (imageSlot2) return imageSlot2;
|
|
50924
50924
|
if (!image) return null;
|
|
50925
50925
|
return /* @__PURE__ */ jsx(
|
|
50926
50926
|
Img,
|
|
@@ -50935,7 +50935,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50935
50935
|
optixFlowConfig
|
|
50936
50936
|
}
|
|
50937
50937
|
);
|
|
50938
|
-
}, [
|
|
50938
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
50939
50939
|
return /* @__PURE__ */ jsx(
|
|
50940
50940
|
Section,
|
|
50941
50941
|
{
|
|
@@ -50998,7 +50998,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
50998
50998
|
function HeroPatternLogoTechStack({
|
|
50999
50999
|
sectionId = "hero-pattern-logo-tech-stack",
|
|
51000
51000
|
logo,
|
|
51001
|
-
logoSlot,
|
|
51001
|
+
logoSlot: logoSlot2,
|
|
51002
51002
|
heading,
|
|
51003
51003
|
highlightedWord,
|
|
51004
51004
|
description,
|
|
@@ -51021,7 +51021,7 @@ function HeroPatternLogoTechStack({
|
|
|
51021
51021
|
optixFlowConfig
|
|
51022
51022
|
}) {
|
|
51023
51023
|
const renderLogo = useMemo(() => {
|
|
51024
|
-
if (
|
|
51024
|
+
if (logoSlot2) return logoSlot2;
|
|
51025
51025
|
if (!logo) return null;
|
|
51026
51026
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
51027
51027
|
return /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
|
|
@@ -51033,7 +51033,7 @@ function HeroPatternLogoTechStack({
|
|
|
51033
51033
|
optixFlowConfig
|
|
51034
51034
|
}
|
|
51035
51035
|
) });
|
|
51036
|
-
}, [
|
|
51036
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
51037
51037
|
const renderActions = useMemo(() => {
|
|
51038
51038
|
if (actionsSlot) return actionsSlot;
|
|
51039
51039
|
if (!actions || actions.length === 0) return null;
|
|
@@ -51268,7 +51268,7 @@ function HeroPanel({
|
|
|
51268
51268
|
}) {
|
|
51269
51269
|
const {
|
|
51270
51270
|
logo,
|
|
51271
|
-
logoSlot,
|
|
51271
|
+
logoSlot: logoSlot2,
|
|
51272
51272
|
title,
|
|
51273
51273
|
content,
|
|
51274
51274
|
actions,
|
|
@@ -51349,7 +51349,7 @@ function HeroPanel({
|
|
|
51349
51349
|
]);
|
|
51350
51350
|
const hasBackground = !!backgroundMedia && backgroundMedia.length > 0;
|
|
51351
51351
|
const renderLogo = useMemo(() => {
|
|
51352
|
-
if (
|
|
51352
|
+
if (logoSlot2) return logoSlot2;
|
|
51353
51353
|
if (!logo) return null;
|
|
51354
51354
|
const src = resolveLogoSrc(logo);
|
|
51355
51355
|
if (!src) return null;
|
|
@@ -51366,7 +51366,7 @@ function HeroPanel({
|
|
|
51366
51366
|
optixFlowConfig: resolvedOptixFlow
|
|
51367
51367
|
}
|
|
51368
51368
|
);
|
|
51369
|
-
}, [
|
|
51369
|
+
}, [logoSlot2, logo, logoClassName, resolvedOptixFlow]);
|
|
51370
51370
|
const renderTitle = useMemo(() => {
|
|
51371
51371
|
if (title === void 0 || title === null || title === "") return null;
|
|
51372
51372
|
if (typeof title === "string") {
|
|
@@ -51640,7 +51640,7 @@ function HeroSimpleCenteredImage({
|
|
|
51640
51640
|
function HeroPlatformFeaturesGrid({
|
|
51641
51641
|
sectionId = "hero-platform-features-grid",
|
|
51642
51642
|
logo,
|
|
51643
|
-
logoSlot,
|
|
51643
|
+
logoSlot: logoSlot2,
|
|
51644
51644
|
subtitle,
|
|
51645
51645
|
description,
|
|
51646
51646
|
heading,
|
|
@@ -51660,7 +51660,7 @@ function HeroPlatformFeaturesGrid({
|
|
|
51660
51660
|
optixFlowConfig
|
|
51661
51661
|
}) {
|
|
51662
51662
|
const renderLogo = useMemo(() => {
|
|
51663
|
-
if (
|
|
51663
|
+
if (logoSlot2) return logoSlot2;
|
|
51664
51664
|
if (!logo) return null;
|
|
51665
51665
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
51666
51666
|
return /* @__PURE__ */ jsx(
|
|
@@ -51675,7 +51675,7 @@ function HeroPlatformFeaturesGrid({
|
|
|
51675
51675
|
optixFlowConfig
|
|
51676
51676
|
}
|
|
51677
51677
|
);
|
|
51678
|
-
}, [
|
|
51678
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
51679
51679
|
const renderAction = useMemo(() => {
|
|
51680
51680
|
if (actionSlot) return actionSlot;
|
|
51681
51681
|
if (!action) return null;
|
|
@@ -53138,7 +53138,7 @@ function HeroDashedBorderFeatures({
|
|
|
53138
53138
|
function HeroDesignCarouselPortfolio({
|
|
53139
53139
|
sectionId = "hero-design-carousel-portfolio",
|
|
53140
53140
|
logo,
|
|
53141
|
-
logoSlot,
|
|
53141
|
+
logoSlot: logoSlot2,
|
|
53142
53142
|
features,
|
|
53143
53143
|
featuresSlot,
|
|
53144
53144
|
heading,
|
|
@@ -53162,7 +53162,7 @@ function HeroDesignCarouselPortfolio({
|
|
|
53162
53162
|
optixFlowConfig
|
|
53163
53163
|
}) {
|
|
53164
53164
|
const renderLogo = useMemo(() => {
|
|
53165
|
-
if (
|
|
53165
|
+
if (logoSlot2) return logoSlot2;
|
|
53166
53166
|
if (!logo) return null;
|
|
53167
53167
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
53168
53168
|
return /* @__PURE__ */ jsx(
|
|
@@ -53174,7 +53174,7 @@ function HeroDesignCarouselPortfolio({
|
|
|
53174
53174
|
optixFlowConfig
|
|
53175
53175
|
}
|
|
53176
53176
|
);
|
|
53177
|
-
}, [
|
|
53177
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
53178
53178
|
const renderFeatures = useMemo(() => {
|
|
53179
53179
|
if (featuresSlot) return featuresSlot;
|
|
53180
53180
|
if (!features || features.length === 0) return null;
|
|
@@ -53298,7 +53298,7 @@ function HeroGradientClientFocused({
|
|
|
53298
53298
|
actions,
|
|
53299
53299
|
actionsSlot,
|
|
53300
53300
|
image,
|
|
53301
|
-
imageSlot,
|
|
53301
|
+
imageSlot: imageSlot2,
|
|
53302
53302
|
background,
|
|
53303
53303
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
53304
53304
|
spacing = "xl",
|
|
@@ -53312,7 +53312,7 @@ function HeroGradientClientFocused({
|
|
|
53312
53312
|
optixFlowConfig
|
|
53313
53313
|
}) {
|
|
53314
53314
|
const renderImage = useMemo(() => {
|
|
53315
|
-
if (
|
|
53315
|
+
if (imageSlot2) return imageSlot2;
|
|
53316
53316
|
if (!image) return null;
|
|
53317
53317
|
return /* @__PURE__ */ jsx(
|
|
53318
53318
|
Img,
|
|
@@ -53327,7 +53327,7 @@ function HeroGradientClientFocused({
|
|
|
53327
53327
|
optixFlowConfig
|
|
53328
53328
|
}
|
|
53329
53329
|
);
|
|
53330
|
-
}, [
|
|
53330
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
53331
53331
|
return /* @__PURE__ */ jsx(
|
|
53332
53332
|
Section,
|
|
53333
53333
|
{
|
|
@@ -53394,7 +53394,7 @@ function HeroPremiumSplitAvatars({
|
|
|
53394
53394
|
avatarsSlot,
|
|
53395
53395
|
socialProofText,
|
|
53396
53396
|
image,
|
|
53397
|
-
imageSlot,
|
|
53397
|
+
imageSlot: imageSlot2,
|
|
53398
53398
|
className,
|
|
53399
53399
|
spacing = "hero",
|
|
53400
53400
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
@@ -53458,7 +53458,7 @@ function HeroPremiumSplitAvatars({
|
|
|
53458
53458
|
] });
|
|
53459
53459
|
}, [avatarsSlot, avatars, socialProofText]);
|
|
53460
53460
|
const renderImage = useMemo(() => {
|
|
53461
|
-
if (
|
|
53461
|
+
if (imageSlot2) return imageSlot2;
|
|
53462
53462
|
if (!image) return null;
|
|
53463
53463
|
return /* @__PURE__ */ jsx(
|
|
53464
53464
|
MediaAspectRatio,
|
|
@@ -53480,7 +53480,7 @@ function HeroPremiumSplitAvatars({
|
|
|
53480
53480
|
}
|
|
53481
53481
|
);
|
|
53482
53482
|
}, [
|
|
53483
|
-
|
|
53483
|
+
imageSlot2,
|
|
53484
53484
|
image,
|
|
53485
53485
|
imageClassName,
|
|
53486
53486
|
optixFlowConfig,
|
|
@@ -53532,14 +53532,14 @@ function HeroPremiumSplitAvatars({
|
|
|
53532
53532
|
function HeroUiLibraryShowcase({
|
|
53533
53533
|
sectionId = "hero-ui-library-showcase",
|
|
53534
53534
|
logo,
|
|
53535
|
-
logoSlot,
|
|
53535
|
+
logoSlot: logoSlot2,
|
|
53536
53536
|
heading,
|
|
53537
53537
|
description,
|
|
53538
53538
|
actions,
|
|
53539
53539
|
actionsSlot,
|
|
53540
53540
|
actionsClassName,
|
|
53541
53541
|
image,
|
|
53542
|
-
imageSlot,
|
|
53542
|
+
imageSlot: imageSlot2,
|
|
53543
53543
|
background,
|
|
53544
53544
|
pattern,
|
|
53545
53545
|
patternOpacity,
|
|
@@ -53553,7 +53553,7 @@ function HeroUiLibraryShowcase({
|
|
|
53553
53553
|
optixFlowConfig
|
|
53554
53554
|
}) {
|
|
53555
53555
|
const renderLogo = useMemo(() => {
|
|
53556
|
-
if (
|
|
53556
|
+
if (logoSlot2) return logoSlot2;
|
|
53557
53557
|
if (!logo) return null;
|
|
53558
53558
|
return /* @__PURE__ */ jsx(
|
|
53559
53559
|
Img,
|
|
@@ -53564,9 +53564,9 @@ function HeroUiLibraryShowcase({
|
|
|
53564
53564
|
optixFlowConfig
|
|
53565
53565
|
}
|
|
53566
53566
|
);
|
|
53567
|
-
}, [
|
|
53567
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
53568
53568
|
const renderImage = useMemo(() => {
|
|
53569
|
-
if (
|
|
53569
|
+
if (imageSlot2) return imageSlot2;
|
|
53570
53570
|
if (!image) return null;
|
|
53571
53571
|
return /* @__PURE__ */ jsx("div", { className: "w-full overflow-hidden rounded-2xl shadow-xl mt-12 md:mt-20", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.916786227 / 1, children: /* @__PURE__ */ jsx(
|
|
53572
53572
|
Img,
|
|
@@ -53581,7 +53581,7 @@ function HeroUiLibraryShowcase({
|
|
|
53581
53581
|
optixFlowConfig
|
|
53582
53582
|
}
|
|
53583
53583
|
) }) });
|
|
53584
|
-
}, [
|
|
53584
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
53585
53585
|
return /* @__PURE__ */ jsxs(
|
|
53586
53586
|
Section,
|
|
53587
53587
|
{
|
|
@@ -53746,7 +53746,7 @@ function HeroFullscreenBackgroundImage({
|
|
|
53746
53746
|
function HeroFullscreenLogoCta({
|
|
53747
53747
|
sectionId = "hero-fullscreen-logo-cta",
|
|
53748
53748
|
logo,
|
|
53749
|
-
logoSlot,
|
|
53749
|
+
logoSlot: logoSlot2,
|
|
53750
53750
|
heading,
|
|
53751
53751
|
description,
|
|
53752
53752
|
action,
|
|
@@ -53780,7 +53780,7 @@ function HeroFullscreenLogoCta({
|
|
|
53780
53780
|
] });
|
|
53781
53781
|
}, [backgroundImage, optixFlowConfig]);
|
|
53782
53782
|
const renderLogo = useMemo(() => {
|
|
53783
|
-
if (
|
|
53783
|
+
if (logoSlot2) return logoSlot2;
|
|
53784
53784
|
if (!logo) return null;
|
|
53785
53785
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
53786
53786
|
return /* @__PURE__ */ jsx(
|
|
@@ -53792,7 +53792,7 @@ function HeroFullscreenLogoCta({
|
|
|
53792
53792
|
optixFlowConfig
|
|
53793
53793
|
}
|
|
53794
53794
|
);
|
|
53795
|
-
}, [
|
|
53795
|
+
}, [logoSlot2, logo, optixFlowConfig]);
|
|
53796
53796
|
const renderAction = useMemo(() => {
|
|
53797
53797
|
if (actionSlot) return actionSlot;
|
|
53798
53798
|
if (!action) return null;
|
|
@@ -54898,7 +54898,7 @@ function HeroCrmStreamlined({
|
|
|
54898
54898
|
actionsSlot,
|
|
54899
54899
|
actionsClassName,
|
|
54900
54900
|
image,
|
|
54901
|
-
imageSlot,
|
|
54901
|
+
imageSlot: imageSlot2,
|
|
54902
54902
|
background,
|
|
54903
54903
|
pattern,
|
|
54904
54904
|
patternOpacity,
|
|
@@ -54964,7 +54964,7 @@ function HeroCrmStreamlined({
|
|
|
54964
54964
|
"div",
|
|
54965
54965
|
{
|
|
54966
54966
|
className: cn("relative basis-[42%] py-9 md:py-16", imageClassName),
|
|
54967
|
-
children:
|
|
54967
|
+
children: imageSlot2 ? imageSlot2 : image ? /* @__PURE__ */ jsxs("div", { className: "aspect-square w-full overflow-hidden rounded-xl shadow-xl", children: [
|
|
54968
54968
|
/* @__PURE__ */ jsx(
|
|
54969
54969
|
Img,
|
|
54970
54970
|
{
|
|
@@ -55482,7 +55482,7 @@ function HeroConversionVideoPlay({
|
|
|
55482
55482
|
videoDialogTitle,
|
|
55483
55483
|
actionsSlot,
|
|
55484
55484
|
image,
|
|
55485
|
-
imageSlot,
|
|
55485
|
+
imageSlot: imageSlot2,
|
|
55486
55486
|
logosTagline,
|
|
55487
55487
|
logos,
|
|
55488
55488
|
logosSlot,
|
|
@@ -55613,7 +55613,7 @@ function HeroConversionVideoPlay({
|
|
|
55613
55613
|
]
|
|
55614
55614
|
}
|
|
55615
55615
|
),
|
|
55616
|
-
/* @__PURE__ */ jsx("div", { className: "w-full", children:
|
|
55616
|
+
/* @__PURE__ */ jsx("div", { className: "w-full", children: imageSlot2 ? imageSlot2 : image ? /* @__PURE__ */ jsx("div", { className: cn("relative h-fit w-full", imageClassName), children: /* @__PURE__ */ jsx("div", { className: "relative z-20 w-full max-w-330 overflow-hidden rounded-t-xl md:rounded-t-3xl", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 2.095238095 / 1, children: /* @__PURE__ */ jsx(
|
|
55617
55617
|
Img,
|
|
55618
55618
|
{
|
|
55619
55619
|
src: image.src,
|
|
@@ -56189,7 +56189,7 @@ function HeroSplitImageNewsletter({
|
|
|
56189
56189
|
helperText,
|
|
56190
56190
|
formSlot,
|
|
56191
56191
|
image,
|
|
56192
|
-
imageSlot,
|
|
56192
|
+
imageSlot: imageSlot2,
|
|
56193
56193
|
background,
|
|
56194
56194
|
spacing = "xl",
|
|
56195
56195
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
@@ -56301,7 +56301,7 @@ function HeroSplitImageNewsletter({
|
|
|
56301
56301
|
resetSubmissionState
|
|
56302
56302
|
]);
|
|
56303
56303
|
const renderImage = React30.useMemo(() => {
|
|
56304
|
-
if (
|
|
56304
|
+
if (imageSlot2) return imageSlot2;
|
|
56305
56305
|
if (!image) return null;
|
|
56306
56306
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
56307
56307
|
Img,
|
|
@@ -56316,7 +56316,7 @@ function HeroSplitImageNewsletter({
|
|
|
56316
56316
|
optixFlowConfig
|
|
56317
56317
|
}
|
|
56318
56318
|
) });
|
|
56319
|
-
}, [
|
|
56319
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
56320
56320
|
return /* @__PURE__ */ jsx(
|
|
56321
56321
|
Section,
|
|
56322
56322
|
{
|
|
@@ -57299,7 +57299,7 @@ function HeroVideoDialogGradient({
|
|
|
57299
57299
|
actions,
|
|
57300
57300
|
videoAction,
|
|
57301
57301
|
image,
|
|
57302
|
-
imageSlot,
|
|
57302
|
+
imageSlot: imageSlot2,
|
|
57303
57303
|
modalVideo,
|
|
57304
57304
|
videoDialogTitle,
|
|
57305
57305
|
videoDialog,
|
|
@@ -57342,7 +57342,7 @@ function HeroVideoDialogGradient({
|
|
|
57342
57342
|
}
|
|
57343
57343
|
};
|
|
57344
57344
|
const renderImage = useMemo(() => {
|
|
57345
|
-
if (
|
|
57345
|
+
if (imageSlot2) return imageSlot2;
|
|
57346
57346
|
if (!image) return null;
|
|
57347
57347
|
return /* @__PURE__ */ 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__ */ jsx(AspectRatio, { ratio: 1.406469761 / 1, children: /* @__PURE__ */ jsx(
|
|
57348
57348
|
Img,
|
|
@@ -57357,7 +57357,7 @@ function HeroVideoDialogGradient({
|
|
|
57357
57357
|
optixFlowConfig
|
|
57358
57358
|
}
|
|
57359
57359
|
) }) });
|
|
57360
|
-
}, [
|
|
57360
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
57361
57361
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
57362
57362
|
/* @__PURE__ */ jsx(
|
|
57363
57363
|
Section,
|
|
@@ -58306,7 +58306,7 @@ function HeroMentorshipVideoSplit({
|
|
|
58306
58306
|
videoTitle,
|
|
58307
58307
|
videoSlot,
|
|
58308
58308
|
image,
|
|
58309
|
-
imageSlot,
|
|
58309
|
+
imageSlot: imageSlot2,
|
|
58310
58310
|
background,
|
|
58311
58311
|
spacing = "py-32 md:py-32",
|
|
58312
58312
|
pattern,
|
|
@@ -58406,7 +58406,7 @@ function HeroMentorshipVideoSplit({
|
|
|
58406
58406
|
setIsVideoOpen
|
|
58407
58407
|
]);
|
|
58408
58408
|
const renderImage = useMemo(() => {
|
|
58409
|
-
if (
|
|
58409
|
+
if (imageSlot2) return imageSlot2;
|
|
58410
58410
|
if (!image) return null;
|
|
58411
58411
|
return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
58412
58412
|
Img,
|
|
@@ -58421,7 +58421,7 @@ function HeroMentorshipVideoSplit({
|
|
|
58421
58421
|
optixFlowConfig
|
|
58422
58422
|
}
|
|
58423
58423
|
) });
|
|
58424
|
-
}, [
|
|
58424
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
58425
58425
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
58426
58426
|
/* @__PURE__ */ jsx(
|
|
58427
58427
|
Section,
|
|
@@ -59812,7 +59812,7 @@ function HeroConversationIntelligence({
|
|
|
59812
59812
|
actions,
|
|
59813
59813
|
actionsSlot,
|
|
59814
59814
|
image,
|
|
59815
|
-
imageSlot,
|
|
59815
|
+
imageSlot: imageSlot2,
|
|
59816
59816
|
background,
|
|
59817
59817
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
59818
59818
|
spacing = "hero",
|
|
@@ -59828,7 +59828,7 @@ function HeroConversationIntelligence({
|
|
|
59828
59828
|
optixFlowConfig
|
|
59829
59829
|
}) {
|
|
59830
59830
|
const renderImage = useMemo(() => {
|
|
59831
|
-
if (
|
|
59831
|
+
if (imageSlot2) return imageSlot2;
|
|
59832
59832
|
if (!image) return null;
|
|
59833
59833
|
return /* @__PURE__ */ jsx(
|
|
59834
59834
|
"div",
|
|
@@ -59851,7 +59851,7 @@ function HeroConversationIntelligence({
|
|
|
59851
59851
|
)
|
|
59852
59852
|
}
|
|
59853
59853
|
);
|
|
59854
|
-
}, [
|
|
59854
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig]);
|
|
59855
59855
|
return /* @__PURE__ */ jsx(
|
|
59856
59856
|
Section,
|
|
59857
59857
|
{
|
|
@@ -60365,7 +60365,7 @@ function HeroMobileAppDownload({
|
|
|
60365
60365
|
starCount,
|
|
60366
60366
|
ratingSlot,
|
|
60367
60367
|
image,
|
|
60368
|
-
imageSlot,
|
|
60368
|
+
imageSlot: imageSlot2,
|
|
60369
60369
|
notification,
|
|
60370
60370
|
notificationSlot,
|
|
60371
60371
|
background,
|
|
@@ -60473,7 +60473,7 @@ function HeroMobileAppDownload({
|
|
|
60473
60473
|
);
|
|
60474
60474
|
}, [notificationSlot, notification]);
|
|
60475
60475
|
const renderImage = useMemo(() => {
|
|
60476
|
-
if (
|
|
60476
|
+
if (imageSlot2) return imageSlot2;
|
|
60477
60477
|
if (!image) return null;
|
|
60478
60478
|
return /* @__PURE__ */ jsx(
|
|
60479
60479
|
"div",
|
|
@@ -60499,7 +60499,7 @@ function HeroMobileAppDownload({
|
|
|
60499
60499
|
] })
|
|
60500
60500
|
}
|
|
60501
60501
|
);
|
|
60502
|
-
}, [
|
|
60502
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig, renderNotification]);
|
|
60503
60503
|
return /* @__PURE__ */ jsx(
|
|
60504
60504
|
Section,
|
|
60505
60505
|
{
|
|
@@ -61077,7 +61077,7 @@ function HeroEventRegistration({
|
|
|
61077
61077
|
stats,
|
|
61078
61078
|
statsSlot,
|
|
61079
61079
|
image,
|
|
61080
|
-
imageSlot,
|
|
61080
|
+
imageSlot: imageSlot2,
|
|
61081
61081
|
locationLabel,
|
|
61082
61082
|
locationSublabel,
|
|
61083
61083
|
locationSlot,
|
|
@@ -61196,7 +61196,7 @@ function HeroEventRegistration({
|
|
|
61196
61196
|
);
|
|
61197
61197
|
}, [locationSlot, locationLabel, locationSublabel]);
|
|
61198
61198
|
const renderImage = useMemo(() => {
|
|
61199
|
-
if (
|
|
61199
|
+
if (imageSlot2) return imageSlot2;
|
|
61200
61200
|
if (!image) return null;
|
|
61201
61201
|
return /* @__PURE__ */ jsxs("div", { className: "relative w-full md:w-[50%]", children: [
|
|
61202
61202
|
/* @__PURE__ */ jsx(
|
|
@@ -61219,7 +61219,7 @@ function HeroEventRegistration({
|
|
|
61219
61219
|
),
|
|
61220
61220
|
renderLocation
|
|
61221
61221
|
] });
|
|
61222
|
-
}, [
|
|
61222
|
+
}, [imageSlot2, image, imageClassName, optixFlowConfig, renderLocation]);
|
|
61223
61223
|
const desktopOrder = directionConfig.desktop === "mediaRight" ? "md:flex-row" : "md:flex-row-reverse";
|
|
61224
61224
|
const mobileOrder = directionConfig.mobile === "mediaTop" ? "flex-col-reverse" : "flex-col";
|
|
61225
61225
|
return /* @__PURE__ */ jsx(
|
|
@@ -63111,11 +63111,11 @@ var NavbarMobileMenu = ({
|
|
|
63111
63111
|
};
|
|
63112
63112
|
var NavbarLogo = ({
|
|
63113
63113
|
logo,
|
|
63114
|
-
logoSlot,
|
|
63114
|
+
logoSlot: logoSlot2,
|
|
63115
63115
|
logoClassName,
|
|
63116
63116
|
optixFlowConfig
|
|
63117
63117
|
}) => {
|
|
63118
|
-
if (
|
|
63118
|
+
if (logoSlot2) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot2 });
|
|
63119
63119
|
if (!logo) return null;
|
|
63120
63120
|
return /* @__PURE__ */ jsx(
|
|
63121
63121
|
Pressable,
|
|
@@ -63232,7 +63232,7 @@ var renderMobileMenuItem = (item, optixFlowConfig) => {
|
|
|
63232
63232
|
var NavbarDropdownMenu = ({
|
|
63233
63233
|
sectionId = "navbar-dropdown-menu",
|
|
63234
63234
|
logo,
|
|
63235
|
-
logoSlot,
|
|
63235
|
+
logoSlot: logoSlot2,
|
|
63236
63236
|
logoClassName,
|
|
63237
63237
|
menu,
|
|
63238
63238
|
menuSlot,
|
|
@@ -63324,7 +63324,7 @@ var NavbarDropdownMenu = ({
|
|
|
63324
63324
|
NavbarLogo,
|
|
63325
63325
|
{
|
|
63326
63326
|
logo,
|
|
63327
|
-
logoSlot,
|
|
63327
|
+
logoSlot: logoSlot2,
|
|
63328
63328
|
logoClassName,
|
|
63329
63329
|
optixFlowConfig
|
|
63330
63330
|
}
|
|
@@ -63340,7 +63340,7 @@ var NavbarDropdownMenu = ({
|
|
|
63340
63340
|
NavbarLogo,
|
|
63341
63341
|
{
|
|
63342
63342
|
logo,
|
|
63343
|
-
logoSlot,
|
|
63343
|
+
logoSlot: logoSlot2,
|
|
63344
63344
|
logoClassName,
|
|
63345
63345
|
optixFlowConfig
|
|
63346
63346
|
}
|
|
@@ -63460,7 +63460,7 @@ var renderMobileMenuItem2 = (item) => {
|
|
|
63460
63460
|
var NavbarCenteredMenu = ({
|
|
63461
63461
|
sectionId = "navbar-centered-menu",
|
|
63462
63462
|
logo,
|
|
63463
|
-
logoSlot,
|
|
63463
|
+
logoSlot: logoSlot2,
|
|
63464
63464
|
logoClassName,
|
|
63465
63465
|
menu,
|
|
63466
63466
|
menuSlot,
|
|
@@ -63551,7 +63551,7 @@ var NavbarCenteredMenu = ({
|
|
|
63551
63551
|
NavbarLogo,
|
|
63552
63552
|
{
|
|
63553
63553
|
logo,
|
|
63554
|
-
logoSlot,
|
|
63554
|
+
logoSlot: logoSlot2,
|
|
63555
63555
|
logoClassName,
|
|
63556
63556
|
optixFlowConfig
|
|
63557
63557
|
}
|
|
@@ -63572,7 +63572,7 @@ var NavbarCenteredMenu = ({
|
|
|
63572
63572
|
NavbarLogo,
|
|
63573
63573
|
{
|
|
63574
63574
|
logo,
|
|
63575
|
-
logoSlot,
|
|
63575
|
+
logoSlot: logoSlot2,
|
|
63576
63576
|
logoClassName,
|
|
63577
63577
|
optixFlowConfig
|
|
63578
63578
|
}
|
|
@@ -63850,7 +63850,7 @@ var NavbarMegaMenu = ({
|
|
|
63850
63850
|
logoClassName,
|
|
63851
63851
|
mobileMenuClassName,
|
|
63852
63852
|
logo,
|
|
63853
|
-
logoSlot,
|
|
63853
|
+
logoSlot: logoSlot2,
|
|
63854
63854
|
menuLinks,
|
|
63855
63855
|
actions,
|
|
63856
63856
|
layoutVariant = "fullScreenContainerizedLinks",
|
|
@@ -63928,7 +63928,7 @@ var NavbarMegaMenu = ({
|
|
|
63928
63928
|
NavbarLogo,
|
|
63929
63929
|
{
|
|
63930
63930
|
logo,
|
|
63931
|
-
logoSlot,
|
|
63931
|
+
logoSlot: logoSlot2,
|
|
63932
63932
|
logoClassName,
|
|
63933
63933
|
optixFlowConfig
|
|
63934
63934
|
}
|
|
@@ -64579,7 +64579,7 @@ var NavbarEnterpriseMega = ({
|
|
|
64579
64579
|
actionsClassName,
|
|
64580
64580
|
logoClassName,
|
|
64581
64581
|
logo,
|
|
64582
|
-
logoSlot,
|
|
64582
|
+
logoSlot: logoSlot2,
|
|
64583
64583
|
menuLinks,
|
|
64584
64584
|
actions,
|
|
64585
64585
|
actionsSlot,
|
|
@@ -64662,7 +64662,7 @@ var NavbarEnterpriseMega = ({
|
|
|
64662
64662
|
NavbarLogo,
|
|
64663
64663
|
{
|
|
64664
64664
|
logo,
|
|
64665
|
-
logoSlot,
|
|
64665
|
+
logoSlot: logoSlot2,
|
|
64666
64666
|
logoClassName,
|
|
64667
64667
|
optixFlowConfig
|
|
64668
64668
|
}
|
|
@@ -64962,7 +64962,7 @@ var NavbarFeatureGrid = ({
|
|
|
64962
64962
|
actionsClassName,
|
|
64963
64963
|
logoClassName,
|
|
64964
64964
|
logo,
|
|
64965
|
-
logoSlot,
|
|
64965
|
+
logoSlot: logoSlot2,
|
|
64966
64966
|
features,
|
|
64967
64967
|
menu,
|
|
64968
64968
|
authActions,
|
|
@@ -65023,7 +65023,7 @@ var NavbarFeatureGrid = ({
|
|
|
65023
65023
|
NavbarLogo,
|
|
65024
65024
|
{
|
|
65025
65025
|
logo,
|
|
65026
|
-
logoSlot,
|
|
65026
|
+
logoSlot: logoSlot2,
|
|
65027
65027
|
logoClassName,
|
|
65028
65028
|
optixFlowConfig
|
|
65029
65029
|
}
|
|
@@ -65132,7 +65132,7 @@ var NavbarFeatureGrid = ({
|
|
|
65132
65132
|
var NavbarFloatingPill = ({
|
|
65133
65133
|
sectionId = "navbar-floating-pill",
|
|
65134
65134
|
logo,
|
|
65135
|
-
logoSlot,
|
|
65135
|
+
logoSlot: logoSlot2,
|
|
65136
65136
|
logoClassName,
|
|
65137
65137
|
items,
|
|
65138
65138
|
menuSlot,
|
|
@@ -65225,7 +65225,7 @@ var NavbarFloatingPill = ({
|
|
|
65225
65225
|
NavbarLogo,
|
|
65226
65226
|
{
|
|
65227
65227
|
logo,
|
|
65228
|
-
logoSlot,
|
|
65228
|
+
logoSlot: logoSlot2,
|
|
65229
65229
|
logoClassName,
|
|
65230
65230
|
optixFlowConfig
|
|
65231
65231
|
}
|
|
@@ -65401,7 +65401,7 @@ var NavbarPlatformResources = ({
|
|
|
65401
65401
|
logoClassName,
|
|
65402
65402
|
mobileMenuClassName,
|
|
65403
65403
|
logo,
|
|
65404
|
-
logoSlot,
|
|
65404
|
+
logoSlot: logoSlot2,
|
|
65405
65405
|
menuLinks,
|
|
65406
65406
|
actions,
|
|
65407
65407
|
layoutVariant = "fullScreenContainerizedLinks",
|
|
@@ -65759,7 +65759,7 @@ var NavbarPlatformResources = ({
|
|
|
65759
65759
|
NavbarLogo,
|
|
65760
65760
|
{
|
|
65761
65761
|
logo,
|
|
65762
|
-
logoSlot,
|
|
65762
|
+
logoSlot: logoSlot2,
|
|
65763
65763
|
logoClassName,
|
|
65764
65764
|
optixFlowConfig
|
|
65765
65765
|
}
|
|
@@ -65903,7 +65903,7 @@ var NavbarImagePreview = ({
|
|
|
65903
65903
|
navigationMenuClassName,
|
|
65904
65904
|
actionsClassName,
|
|
65905
65905
|
logo,
|
|
65906
|
-
logoSlot,
|
|
65906
|
+
logoSlot: logoSlot2,
|
|
65907
65907
|
logoClassName,
|
|
65908
65908
|
navigation,
|
|
65909
65909
|
navigationSlot,
|
|
@@ -66029,7 +66029,7 @@ var NavbarImagePreview = ({
|
|
|
66029
66029
|
NavbarLogo,
|
|
66030
66030
|
{
|
|
66031
66031
|
logo,
|
|
66032
|
-
logoSlot,
|
|
66032
|
+
logoSlot: logoSlot2,
|
|
66033
66033
|
logoClassName,
|
|
66034
66034
|
optixFlowConfig
|
|
66035
66035
|
}
|
|
@@ -66297,7 +66297,7 @@ var NavbarDarkIcons = ({
|
|
|
66297
66297
|
navigationMenuClassName,
|
|
66298
66298
|
actionsClassName,
|
|
66299
66299
|
logo,
|
|
66300
|
-
logoSlot,
|
|
66300
|
+
logoSlot: logoSlot2,
|
|
66301
66301
|
logoClassName,
|
|
66302
66302
|
navigation,
|
|
66303
66303
|
navigationSlot,
|
|
@@ -66412,7 +66412,7 @@ var NavbarDarkIcons = ({
|
|
|
66412
66412
|
NavbarLogo,
|
|
66413
66413
|
{
|
|
66414
66414
|
logo,
|
|
66415
|
-
logoSlot,
|
|
66415
|
+
logoSlot: logoSlot2,
|
|
66416
66416
|
logoClassName,
|
|
66417
66417
|
optixFlowConfig
|
|
66418
66418
|
}
|
|
@@ -66641,7 +66641,7 @@ var NavbarAnimatedPreview = ({
|
|
|
66641
66641
|
navigationMenuClassName,
|
|
66642
66642
|
actionsClassName,
|
|
66643
66643
|
logo,
|
|
66644
|
-
logoSlot,
|
|
66644
|
+
logoSlot: logoSlot2,
|
|
66645
66645
|
logoClassName,
|
|
66646
66646
|
menuLinks,
|
|
66647
66647
|
navigationSlot,
|
|
@@ -66763,7 +66763,7 @@ var NavbarAnimatedPreview = ({
|
|
|
66763
66763
|
NavbarLogo,
|
|
66764
66764
|
{
|
|
66765
66765
|
logo,
|
|
66766
|
-
logoSlot,
|
|
66766
|
+
logoSlot: logoSlot2,
|
|
66767
66767
|
logoClassName,
|
|
66768
66768
|
optixFlowConfig
|
|
66769
66769
|
}
|
|
@@ -67033,35 +67033,35 @@ var FeaturedImageLink = ({
|
|
|
67033
67033
|
) }) });
|
|
67034
67034
|
};
|
|
67035
67035
|
var FeaturedLink = ({ link, optixFlowConfig }) => {
|
|
67036
|
+
const hasBgImg = !!link.background;
|
|
67036
67037
|
return /* @__PURE__ */ jsxs(
|
|
67037
67038
|
Pressable,
|
|
67038
67039
|
{
|
|
67039
67040
|
href: getLinkUrl(link),
|
|
67040
|
-
className:
|
|
67041
|
+
className: `group relative flex w-full overflow-hidden rounded-xl px-4 pt-24 pb-4 ${hasBgImg ? "" : "bg-primary"}`,
|
|
67041
67042
|
children: [
|
|
67042
67043
|
/* @__PURE__ */ jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
|
|
67043
|
-
/* @__PURE__ */ jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-
|
|
67044
|
-
|
|
67044
|
+
/* @__PURE__ */ jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-card text-card-foreground shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon || link.iconName, size: 20 }) }),
|
|
67045
|
+
/* @__PURE__ */ jsxs(
|
|
67046
|
+
"div",
|
|
67045
67047
|
{
|
|
67046
|
-
|
|
67047
|
-
|
|
67048
|
-
|
|
67048
|
+
className: `flex flex-col ${hasBgImg ? "text-white text-shadow-lg" : "text-primary-foreground"}`,
|
|
67049
|
+
children: [
|
|
67050
|
+
/* @__PURE__ */ jsx("div", { className: "text-lg font-semibold", children: link.label }),
|
|
67051
|
+
/* @__PURE__ */ jsx("div", { className: "font-medium", children: link.description })
|
|
67052
|
+
]
|
|
67049
67053
|
}
|
|
67050
|
-
)
|
|
67051
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col text-white text-shadow-lg", children: [
|
|
67052
|
-
/* @__PURE__ */ jsx("div", { className: "text-lg font-semibold", children: link.label }),
|
|
67053
|
-
/* @__PURE__ */ jsx("div", { className: "font-medium", children: link.description })
|
|
67054
|
-
] })
|
|
67054
|
+
)
|
|
67055
67055
|
] }),
|
|
67056
|
-
/* @__PURE__ */ jsx(
|
|
67056
|
+
link.background && link.background?.length > 0 ? /* @__PURE__ */ jsx(
|
|
67057
67057
|
Img,
|
|
67058
67058
|
{
|
|
67059
67059
|
src: link.background,
|
|
67060
|
-
alt: typeof link.label === "string" ? link.label : "",
|
|
67060
|
+
alt: link.label && typeof link.label === "string" ? link.label : "Featured link background image",
|
|
67061
67061
|
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",
|
|
67062
67062
|
optixFlowConfig
|
|
67063
67063
|
}
|
|
67064
|
-
)
|
|
67064
|
+
) : null
|
|
67065
67065
|
]
|
|
67066
67066
|
}
|
|
67067
67067
|
);
|
|
@@ -67077,17 +67077,17 @@ var NavLink = forwardRef(
|
|
|
67077
67077
|
onMouseEnter,
|
|
67078
67078
|
onMouseLeave,
|
|
67079
67079
|
children: [
|
|
67080
|
-
|
|
67080
|
+
link.icon || link.iconName ? /* @__PURE__ */ jsx("div", { className: "flex size-6 shrink-0 rounded-md border shadow", children: /* @__PURE__ */ jsx(
|
|
67081
67081
|
DynamicIcon,
|
|
67082
67082
|
{
|
|
67083
67083
|
name: link.icon || link.iconName,
|
|
67084
67084
|
size: 14,
|
|
67085
67085
|
className: "m-auto"
|
|
67086
67086
|
}
|
|
67087
|
-
) }),
|
|
67088
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-
|
|
67087
|
+
) }) : null,
|
|
67088
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-1", children: [
|
|
67089
67089
|
link.label && /* @__PURE__ */ jsx("div", { className: "text-sm leading-normal", children: link.label }),
|
|
67090
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs leading-normal
|
|
67090
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs leading-normal opacity-70", children: link.description })
|
|
67091
67091
|
] })
|
|
67092
67092
|
]
|
|
67093
67093
|
}
|
|
@@ -67183,7 +67183,7 @@ var NavbarMultiColumnGroups = ({
|
|
|
67183
67183
|
navigationMenuClassName,
|
|
67184
67184
|
actionsClassName,
|
|
67185
67185
|
logo,
|
|
67186
|
-
logoSlot,
|
|
67186
|
+
logoSlot: logoSlot2,
|
|
67187
67187
|
logoClassName,
|
|
67188
67188
|
navigation,
|
|
67189
67189
|
navigationSlot,
|
|
@@ -67294,7 +67294,7 @@ var NavbarMultiColumnGroups = ({
|
|
|
67294
67294
|
NavbarLogo,
|
|
67295
67295
|
{
|
|
67296
67296
|
logo,
|
|
67297
|
-
logoSlot,
|
|
67297
|
+
logoSlot: logoSlot2,
|
|
67298
67298
|
logoClassName,
|
|
67299
67299
|
optixFlowConfig
|
|
67300
67300
|
}
|
|
@@ -67498,7 +67498,7 @@ var MobileNavigationMenu5 = ({
|
|
|
67498
67498
|
};
|
|
67499
67499
|
var NavbarSidebarMobile = ({
|
|
67500
67500
|
logo,
|
|
67501
|
-
logoSlot,
|
|
67501
|
+
logoSlot: logoSlot2,
|
|
67502
67502
|
logoClassName,
|
|
67503
67503
|
menu,
|
|
67504
67504
|
menuSlot,
|
|
@@ -67608,7 +67608,7 @@ var NavbarSidebarMobile = ({
|
|
|
67608
67608
|
NavbarLogo,
|
|
67609
67609
|
{
|
|
67610
67610
|
logo,
|
|
67611
|
-
logoSlot,
|
|
67611
|
+
logoSlot: logoSlot2,
|
|
67612
67612
|
logoClassName,
|
|
67613
67613
|
optixFlowConfig
|
|
67614
67614
|
}
|
|
@@ -67814,7 +67814,7 @@ var NavbarTransparentOverlay = ({
|
|
|
67814
67814
|
mobileMenuClassName,
|
|
67815
67815
|
socialLinksClassName,
|
|
67816
67816
|
logo,
|
|
67817
|
-
logoSlot,
|
|
67817
|
+
logoSlot: logoSlot2,
|
|
67818
67818
|
logoClassName,
|
|
67819
67819
|
navItems,
|
|
67820
67820
|
navigationSlot,
|
|
@@ -67932,7 +67932,7 @@ var NavbarTransparentOverlay = ({
|
|
|
67932
67932
|
NavbarLogo,
|
|
67933
67933
|
{
|
|
67934
67934
|
logo,
|
|
67935
|
-
logoSlot,
|
|
67935
|
+
logoSlot: logoSlot2,
|
|
67936
67936
|
logoClassName: cn(
|
|
67937
67937
|
"z-50",
|
|
67938
67938
|
!isScrolled && !isOpen && "[&_img]:brightness-0 [&_img]:invert [&_span]:text-background",
|
|
@@ -68099,7 +68099,7 @@ var NavbarEducationPlatform = ({
|
|
|
68099
68099
|
logoClassName,
|
|
68100
68100
|
mobileMenuClassName,
|
|
68101
68101
|
logo,
|
|
68102
|
-
logoSlot,
|
|
68102
|
+
logoSlot: logoSlot2,
|
|
68103
68103
|
menu,
|
|
68104
68104
|
menuSlot,
|
|
68105
68105
|
authActions,
|
|
@@ -68194,7 +68194,7 @@ var NavbarEducationPlatform = ({
|
|
|
68194
68194
|
NavbarLogo,
|
|
68195
68195
|
{
|
|
68196
68196
|
logo,
|
|
68197
|
-
logoSlot,
|
|
68197
|
+
logoSlot: logoSlot2,
|
|
68198
68198
|
logoClassName,
|
|
68199
68199
|
optixFlowConfig
|
|
68200
68200
|
}
|
|
@@ -68428,7 +68428,7 @@ var MobileNavigationMenu8 = ({
|
|
|
68428
68428
|
};
|
|
68429
68429
|
var NavbarStickyCompact = ({
|
|
68430
68430
|
logo,
|
|
68431
|
-
logoSlot,
|
|
68431
|
+
logoSlot: logoSlot2,
|
|
68432
68432
|
logoClassName,
|
|
68433
68433
|
menu,
|
|
68434
68434
|
menuSlot,
|
|
@@ -68563,7 +68563,7 @@ var NavbarStickyCompact = ({
|
|
|
68563
68563
|
NavbarLogo,
|
|
68564
68564
|
{
|
|
68565
68565
|
logo,
|
|
68566
|
-
logoSlot,
|
|
68566
|
+
logoSlot: logoSlot2,
|
|
68567
68567
|
logoClassName,
|
|
68568
68568
|
optixFlowConfig
|
|
68569
68569
|
}
|
|
@@ -68708,7 +68708,7 @@ var NavbarSearchFocused = ({
|
|
|
68708
68708
|
navigationMenuClassName,
|
|
68709
68709
|
actionsClassName,
|
|
68710
68710
|
logo,
|
|
68711
|
-
logoSlot,
|
|
68711
|
+
logoSlot: logoSlot2,
|
|
68712
68712
|
logoClassName,
|
|
68713
68713
|
navItems,
|
|
68714
68714
|
navigationSlot,
|
|
@@ -68830,7 +68830,7 @@ var NavbarSearchFocused = ({
|
|
|
68830
68830
|
NavbarLogo,
|
|
68831
68831
|
{
|
|
68832
68832
|
logo,
|
|
68833
|
-
logoSlot,
|
|
68833
|
+
logoSlot: logoSlot2,
|
|
68834
68834
|
logoClassName,
|
|
68835
68835
|
optixFlowConfig
|
|
68836
68836
|
}
|
|
@@ -68969,7 +68969,7 @@ var NavbarSimpleLinks = ({
|
|
|
68969
68969
|
actionsClassName,
|
|
68970
68970
|
mobileMenuClassName,
|
|
68971
68971
|
logo,
|
|
68972
|
-
logoSlot,
|
|
68972
|
+
logoSlot: logoSlot2,
|
|
68973
68973
|
logoClassName,
|
|
68974
68974
|
navItems,
|
|
68975
68975
|
navItemsSlot,
|
|
@@ -69095,7 +69095,7 @@ var NavbarSimpleLinks = ({
|
|
|
69095
69095
|
NavbarLogo,
|
|
69096
69096
|
{
|
|
69097
69097
|
logo,
|
|
69098
|
-
logoSlot,
|
|
69098
|
+
logoSlot: logoSlot2,
|
|
69099
69099
|
logoClassName,
|
|
69100
69100
|
optixFlowConfig
|
|
69101
69101
|
}
|
|
@@ -69236,7 +69236,7 @@ var MobileNavigationMenu11 = ({
|
|
|
69236
69236
|
var NavbarSplitCta = ({
|
|
69237
69237
|
sectionId = "navbar-split-cta",
|
|
69238
69238
|
logo,
|
|
69239
|
-
logoSlot,
|
|
69239
|
+
logoSlot: logoSlot2,
|
|
69240
69240
|
logoClassName,
|
|
69241
69241
|
menu,
|
|
69242
69242
|
menuSlot,
|
|
@@ -69321,7 +69321,7 @@ var NavbarSplitCta = ({
|
|
|
69321
69321
|
NavbarLogo,
|
|
69322
69322
|
{
|
|
69323
69323
|
logo,
|
|
69324
|
-
logoSlot,
|
|
69324
|
+
logoSlot: logoSlot2,
|
|
69325
69325
|
logoClassName,
|
|
69326
69326
|
optixFlowConfig
|
|
69327
69327
|
}
|
|
@@ -69441,7 +69441,7 @@ var NavbarSplitCta = ({
|
|
|
69441
69441
|
var NavbarIconLinks = ({
|
|
69442
69442
|
sectionId = "navbar-icon-links",
|
|
69443
69443
|
logo,
|
|
69444
|
-
logoSlot,
|
|
69444
|
+
logoSlot: logoSlot2,
|
|
69445
69445
|
logoClassName,
|
|
69446
69446
|
navItems,
|
|
69447
69447
|
navItemsSlot,
|
|
@@ -69541,7 +69541,7 @@ var NavbarIconLinks = ({
|
|
|
69541
69541
|
NavbarLogo,
|
|
69542
69542
|
{
|
|
69543
69543
|
logo,
|
|
69544
|
-
logoSlot,
|
|
69544
|
+
logoSlot: logoSlot2,
|
|
69545
69545
|
logoClassName,
|
|
69546
69546
|
optixFlowConfig
|
|
69547
69547
|
}
|
|
@@ -69580,7 +69580,7 @@ var NavbarIconLinks = ({
|
|
|
69580
69580
|
NavbarLogo,
|
|
69581
69581
|
{
|
|
69582
69582
|
logo,
|
|
69583
|
-
logoSlot,
|
|
69583
|
+
logoSlot: logoSlot2,
|
|
69584
69584
|
logoClassName,
|
|
69585
69585
|
optixFlowConfig
|
|
69586
69586
|
}
|
|
@@ -69652,7 +69652,7 @@ var NavbarIconLinks = ({
|
|
|
69652
69652
|
var NavbarTabbedSections = ({
|
|
69653
69653
|
sectionId = "navbar-tabbed-sections",
|
|
69654
69654
|
logo,
|
|
69655
|
-
logoSlot,
|
|
69655
|
+
logoSlot: logoSlot2,
|
|
69656
69656
|
logoClassName,
|
|
69657
69657
|
menu,
|
|
69658
69658
|
menuSlot,
|
|
@@ -69863,7 +69863,7 @@ var NavbarTabbedSections = ({
|
|
|
69863
69863
|
NavbarLogo,
|
|
69864
69864
|
{
|
|
69865
69865
|
logo,
|
|
69866
|
-
logoSlot,
|
|
69866
|
+
logoSlot: logoSlot2,
|
|
69867
69867
|
logoClassName,
|
|
69868
69868
|
optixFlowConfig
|
|
69869
69869
|
}
|
|
@@ -69922,7 +69922,7 @@ var NavbarTabbedSections = ({
|
|
|
69922
69922
|
};
|
|
69923
69923
|
var NavbarFullscreenMenu = ({
|
|
69924
69924
|
logo,
|
|
69925
|
-
logoSlot,
|
|
69925
|
+
logoSlot: logoSlot2,
|
|
69926
69926
|
logoClassName,
|
|
69927
69927
|
menuItems,
|
|
69928
69928
|
menuSlot,
|
|
@@ -70010,7 +70010,7 @@ var NavbarFullscreenMenu = ({
|
|
|
70010
70010
|
NavbarLogo,
|
|
70011
70011
|
{
|
|
70012
70012
|
logo,
|
|
70013
|
-
logoSlot,
|
|
70013
|
+
logoSlot: logoSlot2,
|
|
70014
70014
|
logoClassName,
|
|
70015
70015
|
optixFlowConfig
|
|
70016
70016
|
}
|
|
@@ -70042,7 +70042,7 @@ var NavbarFullscreenMenu = ({
|
|
|
70042
70042
|
NavbarLogo,
|
|
70043
70043
|
{
|
|
70044
70044
|
logo,
|
|
70045
|
-
logoSlot,
|
|
70045
|
+
logoSlot: logoSlot2,
|
|
70046
70046
|
logoClassName,
|
|
70047
70047
|
optixFlowConfig
|
|
70048
70048
|
}
|
|
@@ -85272,7 +85272,7 @@ function OfferModalMembershipImage({
|
|
|
85272
85272
|
title,
|
|
85273
85273
|
description,
|
|
85274
85274
|
image,
|
|
85275
|
-
imageSlot,
|
|
85275
|
+
imageSlot: imageSlot2,
|
|
85276
85276
|
closeButtonSlot,
|
|
85277
85277
|
formSlot,
|
|
85278
85278
|
footerSlot,
|
|
@@ -85296,7 +85296,7 @@ function OfferModalMembershipImage({
|
|
|
85296
85296
|
}) {
|
|
85297
85297
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85298
85298
|
const renderImage = React30.useMemo(() => {
|
|
85299
|
-
if (
|
|
85299
|
+
if (imageSlot2) return imageSlot2;
|
|
85300
85300
|
if (!image) return null;
|
|
85301
85301
|
return /* @__PURE__ */ jsx(
|
|
85302
85302
|
"div",
|
|
@@ -85320,7 +85320,7 @@ function OfferModalMembershipImage({
|
|
|
85320
85320
|
}
|
|
85321
85321
|
);
|
|
85322
85322
|
}, [
|
|
85323
|
-
|
|
85323
|
+
imageSlot2,
|
|
85324
85324
|
image,
|
|
85325
85325
|
imageWrapperClassName,
|
|
85326
85326
|
imageClassName,
|
|
@@ -85549,11 +85549,11 @@ var DEFAULT_FORM_FIELDS55 = [
|
|
|
85549
85549
|
];
|
|
85550
85550
|
function OfferModalSheetNewsletter({
|
|
85551
85551
|
logo,
|
|
85552
|
-
logoSlot,
|
|
85552
|
+
logoSlot: logoSlot2,
|
|
85553
85553
|
title,
|
|
85554
85554
|
description,
|
|
85555
85555
|
image,
|
|
85556
|
-
imageSlot,
|
|
85556
|
+
imageSlot: imageSlot2,
|
|
85557
85557
|
termsUrl,
|
|
85558
85558
|
termsText,
|
|
85559
85559
|
privacyUrl,
|
|
@@ -85582,7 +85582,7 @@ function OfferModalSheetNewsletter({
|
|
|
85582
85582
|
}) {
|
|
85583
85583
|
const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85584
85584
|
const renderLogo = React30.useMemo(() => {
|
|
85585
|
-
if (
|
|
85585
|
+
if (logoSlot2) return logoSlot2;
|
|
85586
85586
|
if (!logo) return null;
|
|
85587
85587
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
85588
85588
|
return /* @__PURE__ */ jsx(
|
|
@@ -85594,7 +85594,7 @@ function OfferModalSheetNewsletter({
|
|
|
85594
85594
|
optixFlowConfig
|
|
85595
85595
|
}
|
|
85596
85596
|
);
|
|
85597
|
-
}, [
|
|
85597
|
+
}, [logoSlot2, logo, logoClassName, optixFlowConfig]);
|
|
85598
85598
|
const renderHeader = React30.useMemo(() => {
|
|
85599
85599
|
if (headerSlot) return headerSlot;
|
|
85600
85600
|
return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
|
|
@@ -85676,7 +85676,7 @@ function OfferModalSheetNewsletter({
|
|
|
85676
85676
|
] });
|
|
85677
85677
|
}, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
|
|
85678
85678
|
const renderImage = React30.useMemo(() => {
|
|
85679
|
-
if (
|
|
85679
|
+
if (imageSlot2) return imageSlot2;
|
|
85680
85680
|
if (!image) return null;
|
|
85681
85681
|
return /* @__PURE__ */ jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
85682
85682
|
Img,
|
|
@@ -85691,7 +85691,7 @@ function OfferModalSheetNewsletter({
|
|
|
85691
85691
|
}
|
|
85692
85692
|
) }) });
|
|
85693
85693
|
}, [
|
|
85694
|
-
|
|
85694
|
+
imageSlot2,
|
|
85695
85695
|
image,
|
|
85696
85696
|
imageWrapperClassName,
|
|
85697
85697
|
imageClassName,
|
|
@@ -103460,6 +103460,1586 @@ function LinkPageBentoLayout({
|
|
|
103460
103460
|
}
|
|
103461
103461
|
|
|
103462
103462
|
// src/registry/blocks.ts
|
|
103463
|
+
var ABOUT_EXAMPLE_IMAGE_URL = "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp";
|
|
103464
|
+
var ABOUT_MEDIA_NOTE = "All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.";
|
|
103465
|
+
var aboutImage = (alt) => ({
|
|
103466
|
+
src: ABOUT_EXAMPLE_IMAGE_URL,
|
|
103467
|
+
alt
|
|
103468
|
+
});
|
|
103469
|
+
var imageSlot = (path, note, roles = ["feature"], minPixelClass = "large", required = true, preferredAspect) => ({
|
|
103470
|
+
path,
|
|
103471
|
+
roles,
|
|
103472
|
+
disallowedRoles: ["logo", "favicon", "video-thumbnail"],
|
|
103473
|
+
minPixelClass,
|
|
103474
|
+
required,
|
|
103475
|
+
...preferredAspect ? { preferredAspect } : {},
|
|
103476
|
+
note: `${note} IMAGE MEDIA ONLY. Do not use logos, favicons, or video assets.`
|
|
103477
|
+
});
|
|
103478
|
+
var logoSlot = (path, note, required = false) => ({
|
|
103479
|
+
path,
|
|
103480
|
+
roles: ["logo"],
|
|
103481
|
+
disallowedRoles: ["favicon", "video-thumbnail"],
|
|
103482
|
+
minPixelClass: "small",
|
|
103483
|
+
required,
|
|
103484
|
+
note: `${note} LOGO IMAGE ONLY. Do not use photos, favicons, or video assets.`
|
|
103485
|
+
});
|
|
103486
|
+
var aboutCapabilities = (...capabilities) => capabilities;
|
|
103487
|
+
var ABOUT_BLOCK_CONTRACTS = {
|
|
103488
|
+
"alternating-blocks": {
|
|
103489
|
+
exampleUsage: `
|
|
103490
|
+
<AlternatingBlocks
|
|
103491
|
+
title="How We Got Here"
|
|
103492
|
+
subtitle="A practical timeline of the decisions that shaped our company."
|
|
103493
|
+
sections={[
|
|
103494
|
+
{
|
|
103495
|
+
content: "We started by replacing disconnected tools with one focused workflow.",
|
|
103496
|
+
media: <img src="${ABOUT_EXAMPLE_IMAGE_URL}" alt="Team planning in a cafe workspace" />,
|
|
103497
|
+
mediaLeft: false,
|
|
103498
|
+
},
|
|
103499
|
+
{
|
|
103500
|
+
content: "Today our team helps operators launch better customer experiences faster.",
|
|
103501
|
+
media: <img src="${ABOUT_EXAMPLE_IMAGE_URL}" alt="Collaborative team workspace" />,
|
|
103502
|
+
mediaLeft: true,
|
|
103503
|
+
},
|
|
103504
|
+
]}
|
|
103505
|
+
/>
|
|
103506
|
+
`.trim(),
|
|
103507
|
+
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.",
|
|
103508
|
+
usageRequirements: {
|
|
103509
|
+
requiredProps: ["sections"],
|
|
103510
|
+
propConstraints: {
|
|
103511
|
+
sections: { required: true, minItems: 2, maxItems: 5 },
|
|
103512
|
+
"sections[].content": {
|
|
103513
|
+
required: true,
|
|
103514
|
+
note: "ReactNode content slot. Use concise, source-backed story copy."
|
|
103515
|
+
},
|
|
103516
|
+
"sections[].media": {
|
|
103517
|
+
required: true,
|
|
103518
|
+
note: "ReactNode media slot. Provide an image element with an absolute src."
|
|
103519
|
+
}
|
|
103520
|
+
},
|
|
103521
|
+
mediaSlots: {
|
|
103522
|
+
"sections[].media": imageSlot(
|
|
103523
|
+
"sections[].media",
|
|
103524
|
+
"Alternating section visual.",
|
|
103525
|
+
["feature", "hero"]
|
|
103526
|
+
)
|
|
103527
|
+
},
|
|
103528
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103529
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103530
|
+
},
|
|
103531
|
+
exampleProps: {
|
|
103532
|
+
title: "How We Got Here",
|
|
103533
|
+
subtitle: "A practical timeline of the decisions that shaped our company.",
|
|
103534
|
+
sections: [
|
|
103535
|
+
{
|
|
103536
|
+
content: "We started by replacing disconnected tools with one focused workflow.",
|
|
103537
|
+
media: ABOUT_EXAMPLE_IMAGE_URL,
|
|
103538
|
+
mediaLeft: false
|
|
103539
|
+
},
|
|
103540
|
+
{
|
|
103541
|
+
content: "Today our team helps operators launch better customer experiences faster.",
|
|
103542
|
+
media: ABOUT_EXAMPLE_IMAGE_URL,
|
|
103543
|
+
mediaLeft: true
|
|
103544
|
+
}
|
|
103545
|
+
]
|
|
103546
|
+
}
|
|
103547
|
+
},
|
|
103548
|
+
"about-mission-features": {
|
|
103549
|
+
exampleUsage: `
|
|
103550
|
+
<AboutMissionFeatures
|
|
103551
|
+
title="About OpenSite"
|
|
103552
|
+
description="We help service teams turn daily operations into polished digital experiences."
|
|
103553
|
+
missionLabel="Our Mission"
|
|
103554
|
+
missionText="Make professional site building faster, clearer, and easier to maintain."
|
|
103555
|
+
mainImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team working together in a cafe" }}
|
|
103556
|
+
missionBackgroundImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Workspace background for mission statement" }}
|
|
103557
|
+
features={[
|
|
103558
|
+
{ icon: "lucide/files", title: "Reusable systems", description: "Blocks stay consistent across every page." },
|
|
103559
|
+
{ icon: "lucide/settings", title: "Operational clarity", description: "Teams can update content without redesigning layouts." },
|
|
103560
|
+
{ icon: "lucide/shield", title: "Reliable delivery", description: "Contracts protect AI-generated pages from unsafe content." },
|
|
103561
|
+
]}
|
|
103562
|
+
/>
|
|
103563
|
+
`.trim(),
|
|
103564
|
+
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.",
|
|
103565
|
+
usageRequirements: {
|
|
103566
|
+
requiredProps: ["title", "missionText", "features"],
|
|
103567
|
+
propConstraints: {
|
|
103568
|
+
title: { required: true, maxLength: 70 },
|
|
103569
|
+
description: { maxLength: 180 },
|
|
103570
|
+
missionLabel: { maxLength: 35 },
|
|
103571
|
+
missionText: { required: true, maxLength: 180 },
|
|
103572
|
+
features: { required: true, minItems: 3, maxItems: 3 },
|
|
103573
|
+
mainImage: { required: true },
|
|
103574
|
+
missionBackgroundImage: { required: true }
|
|
103575
|
+
},
|
|
103576
|
+
mediaSlots: {
|
|
103577
|
+
mainImage: imageSlot(
|
|
103578
|
+
"mainImage",
|
|
103579
|
+
"Primary about image beside the mission card.",
|
|
103580
|
+
["feature", "hero"]
|
|
103581
|
+
),
|
|
103582
|
+
missionBackgroundImage: imageSlot(
|
|
103583
|
+
"missionBackgroundImage",
|
|
103584
|
+
"Background photo behind the mission statement.",
|
|
103585
|
+
["background", "feature"]
|
|
103586
|
+
)
|
|
103587
|
+
},
|
|
103588
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103589
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103590
|
+
},
|
|
103591
|
+
exampleProps: {
|
|
103592
|
+
title: "About OpenSite",
|
|
103593
|
+
description: "We help service teams turn daily operations into polished digital experiences.",
|
|
103594
|
+
missionLabel: "Our Mission",
|
|
103595
|
+
missionText: "Make professional site building faster, clearer, and easier to maintain.",
|
|
103596
|
+
mainImage: aboutImage("Team working together in a cafe"),
|
|
103597
|
+
missionBackgroundImage: aboutImage(
|
|
103598
|
+
"Workspace background for mission statement"
|
|
103599
|
+
),
|
|
103600
|
+
features: [
|
|
103601
|
+
{
|
|
103602
|
+
icon: "lucide/files",
|
|
103603
|
+
title: "Reusable systems",
|
|
103604
|
+
description: "Blocks stay consistent across every page."
|
|
103605
|
+
},
|
|
103606
|
+
{
|
|
103607
|
+
icon: "lucide/settings",
|
|
103608
|
+
title: "Operational clarity",
|
|
103609
|
+
description: "Teams can update content without redesigning layouts."
|
|
103610
|
+
},
|
|
103611
|
+
{
|
|
103612
|
+
icon: "lucide/shield",
|
|
103613
|
+
title: "Reliable delivery",
|
|
103614
|
+
description: "Contracts protect AI-generated pages from unsafe content."
|
|
103615
|
+
}
|
|
103616
|
+
]
|
|
103617
|
+
}
|
|
103618
|
+
},
|
|
103619
|
+
"about-stats-showcase": {
|
|
103620
|
+
exampleUsage: `
|
|
103621
|
+
<AboutStatsShowcase
|
|
103622
|
+
title="Our Background"
|
|
103623
|
+
description="We help teams launch reliable digital experiences at scale."
|
|
103624
|
+
images={[
|
|
103625
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team workspace" },
|
|
103626
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Planning session" },
|
|
103627
|
+
]}
|
|
103628
|
+
stats={[
|
|
103629
|
+
{ value: "21M", label: "Audience reach" },
|
|
103630
|
+
{ value: "12+", label: "Years of expertise" },
|
|
103631
|
+
]}
|
|
103632
|
+
benefits={[
|
|
103633
|
+
{
|
|
103634
|
+
image: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Customer operations team" },
|
|
103635
|
+
stat: { value: "98%", label: "Retention", description: "Measured across supported accounts" },
|
|
103636
|
+
},
|
|
103637
|
+
]}
|
|
103638
|
+
/>
|
|
103639
|
+
`.trim(),
|
|
103640
|
+
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.",
|
|
103641
|
+
usageRequirements: {
|
|
103642
|
+
requiredProps: ["title", "stats"],
|
|
103643
|
+
propConstraints: {
|
|
103644
|
+
title: { required: true, maxLength: 70 },
|
|
103645
|
+
description: { maxLength: 180 },
|
|
103646
|
+
images: { minItems: 2, maxItems: 4 },
|
|
103647
|
+
stats: {
|
|
103648
|
+
required: true,
|
|
103649
|
+
minItems: 2,
|
|
103650
|
+
maxItems: 4,
|
|
103651
|
+
note: "Metrics must be sourced from the site or client data."
|
|
103652
|
+
},
|
|
103653
|
+
logos: {
|
|
103654
|
+
maxItems: 8,
|
|
103655
|
+
note: "Only include real customer or partner logos."
|
|
103656
|
+
},
|
|
103657
|
+
benefits: { maxItems: 3 },
|
|
103658
|
+
"benefits[].testimonial": {
|
|
103659
|
+
note: "Must be a real testimonial. Do not fabricate."
|
|
103660
|
+
}
|
|
103661
|
+
},
|
|
103662
|
+
mediaSlots: {
|
|
103663
|
+
"images[]": imageSlot(
|
|
103664
|
+
"images[]",
|
|
103665
|
+
"Hero showcase images.",
|
|
103666
|
+
["feature", "gallery"]
|
|
103667
|
+
),
|
|
103668
|
+
"logos[]": logoSlot("logos[]", "Trusted company logo."),
|
|
103669
|
+
"benefits[].image": imageSlot(
|
|
103670
|
+
"benefits[].image",
|
|
103671
|
+
"Benefit card image.",
|
|
103672
|
+
["feature", "thumbnail"],
|
|
103673
|
+
"medium",
|
|
103674
|
+
false
|
|
103675
|
+
),
|
|
103676
|
+
"benefits[].testimonial.logo": logoSlot(
|
|
103677
|
+
"benefits[].testimonial.logo",
|
|
103678
|
+
"Logo shown inside testimonial card."
|
|
103679
|
+
)
|
|
103680
|
+
},
|
|
103681
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
103682
|
+
"metrics_or_stats",
|
|
103683
|
+
"reviews_or_testimonials",
|
|
103684
|
+
"media_library"
|
|
103685
|
+
),
|
|
103686
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103687
|
+
},
|
|
103688
|
+
exampleProps: {
|
|
103689
|
+
title: "Our Background",
|
|
103690
|
+
description: "We help teams launch reliable digital experiences at scale.",
|
|
103691
|
+
images: [
|
|
103692
|
+
aboutImage("Team workspace"),
|
|
103693
|
+
aboutImage("Planning session")
|
|
103694
|
+
],
|
|
103695
|
+
stats: [
|
|
103696
|
+
{ value: "21M", label: "Audience reach" },
|
|
103697
|
+
{ value: "12+", label: "Years of expertise" }
|
|
103698
|
+
],
|
|
103699
|
+
benefits: [
|
|
103700
|
+
{
|
|
103701
|
+
image: aboutImage("Customer operations team"),
|
|
103702
|
+
stat: {
|
|
103703
|
+
value: "98%",
|
|
103704
|
+
label: "Retention",
|
|
103705
|
+
description: "Measured across supported accounts"
|
|
103706
|
+
}
|
|
103707
|
+
}
|
|
103708
|
+
]
|
|
103709
|
+
}
|
|
103710
|
+
},
|
|
103711
|
+
"about-company-profile": {
|
|
103712
|
+
exampleUsage: `
|
|
103713
|
+
<AboutCompanyProfile
|
|
103714
|
+
title="A Team Built for Operational Clarity"
|
|
103715
|
+
description="We combine product craft and service operations experience to help brands move faster."
|
|
103716
|
+
mainImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team strategy session" }}
|
|
103717
|
+
secondaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Workspace detail" }}
|
|
103718
|
+
breakout={{
|
|
103719
|
+
title: "Built for growing operators",
|
|
103720
|
+
description: "Reusable systems keep every location and campaign aligned.",
|
|
103721
|
+
action: { label: "Discover more", href: "/about", variant: "default" },
|
|
103722
|
+
}}
|
|
103723
|
+
achievements={[
|
|
103724
|
+
{ label: "Customer sites launched", value: "300+" },
|
|
103725
|
+
{ label: "Average satisfaction", value: "99%" },
|
|
103726
|
+
]}
|
|
103727
|
+
/>
|
|
103728
|
+
`.trim(),
|
|
103729
|
+
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.",
|
|
103730
|
+
usageRequirements: {
|
|
103731
|
+
requiredProps: ["title", "description", "mainImage"],
|
|
103732
|
+
propConstraints: {
|
|
103733
|
+
title: { required: true, maxLength: 80 },
|
|
103734
|
+
description: { required: true, maxLength: 220 },
|
|
103735
|
+
mainImage: { required: true },
|
|
103736
|
+
achievements: {
|
|
103737
|
+
minItems: 2,
|
|
103738
|
+
maxItems: 4,
|
|
103739
|
+
note: "Achievement metrics must be sourced."
|
|
103740
|
+
},
|
|
103741
|
+
companies: {
|
|
103742
|
+
maxItems: 8,
|
|
103743
|
+
note: "Only include real customer or partner logos."
|
|
103744
|
+
}
|
|
103745
|
+
},
|
|
103746
|
+
mediaSlots: {
|
|
103747
|
+
mainImage: imageSlot(
|
|
103748
|
+
"mainImage",
|
|
103749
|
+
"Primary company profile image.",
|
|
103750
|
+
["feature", "hero"]
|
|
103751
|
+
),
|
|
103752
|
+
secondaryImage: imageSlot(
|
|
103753
|
+
"secondaryImage",
|
|
103754
|
+
"Secondary supporting image.",
|
|
103755
|
+
["feature", "thumbnail"],
|
|
103756
|
+
"medium",
|
|
103757
|
+
false
|
|
103758
|
+
),
|
|
103759
|
+
"breakout.logo": logoSlot("breakout.logo", "Breakout card logo."),
|
|
103760
|
+
"companies[]": logoSlot("companies[]", "Customer or partner logo.")
|
|
103761
|
+
},
|
|
103762
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
103763
|
+
"metrics_or_stats",
|
|
103764
|
+
"media_library"
|
|
103765
|
+
),
|
|
103766
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103767
|
+
},
|
|
103768
|
+
exampleProps: {
|
|
103769
|
+
title: "A Team Built for Operational Clarity",
|
|
103770
|
+
description: "We combine product craft and service operations experience to help brands move faster.",
|
|
103771
|
+
mainImage: aboutImage("Team strategy session"),
|
|
103772
|
+
secondaryImage: aboutImage("Workspace detail"),
|
|
103773
|
+
breakout: {
|
|
103774
|
+
title: "Built for growing operators",
|
|
103775
|
+
description: "Reusable systems keep every location and campaign aligned.",
|
|
103776
|
+
action: { label: "Discover more", href: "/about", variant: "default" }
|
|
103777
|
+
},
|
|
103778
|
+
achievements: [
|
|
103779
|
+
{ label: "Customer sites launched", value: "300+" },
|
|
103780
|
+
{ label: "Average satisfaction", value: "99%" }
|
|
103781
|
+
]
|
|
103782
|
+
}
|
|
103783
|
+
},
|
|
103784
|
+
"about-vision-gallery": {
|
|
103785
|
+
exampleUsage: `
|
|
103786
|
+
<AboutVisionGallery
|
|
103787
|
+
title="The Vision Behind Our Work"
|
|
103788
|
+
subtitle="We believe great digital systems should feel simple to run."
|
|
103789
|
+
images={[
|
|
103790
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Collaborative product session" },
|
|
103791
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team reviewing site designs" },
|
|
103792
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Customer experience planning" },
|
|
103793
|
+
]}
|
|
103794
|
+
primarySectionTitle="Our Vision"
|
|
103795
|
+
primarySectionContent="Give every operator the ability to publish excellent customer experiences without technical bottlenecks."
|
|
103796
|
+
secondarySectionTitle="How We Build"
|
|
103797
|
+
secondarySectionContent="We turn reusable components, semantic contracts, and real content into maintainable sites."
|
|
103798
|
+
ctaTitle="Part of Our Global Team"
|
|
103799
|
+
ctaAction={{ label: "Get to know the team", href: "/team", variant: "default" }}
|
|
103800
|
+
/>
|
|
103801
|
+
`.trim(),
|
|
103802
|
+
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.",
|
|
103803
|
+
usageRequirements: {
|
|
103804
|
+
requiredProps: ["title", "images"],
|
|
103805
|
+
propConstraints: {
|
|
103806
|
+
title: { required: true, maxLength: 80 },
|
|
103807
|
+
subtitle: { maxLength: 160 },
|
|
103808
|
+
images: { required: true, minItems: 3, maxItems: 5 },
|
|
103809
|
+
primarySectionContent: { maxLength: 260 },
|
|
103810
|
+
secondarySectionContent: { maxLength: 260 }
|
|
103811
|
+
},
|
|
103812
|
+
mediaSlots: {
|
|
103813
|
+
"images[]": imageSlot(
|
|
103814
|
+
"images[]",
|
|
103815
|
+
"Vision gallery image.",
|
|
103816
|
+
["gallery", "feature"]
|
|
103817
|
+
)
|
|
103818
|
+
},
|
|
103819
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103820
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103821
|
+
},
|
|
103822
|
+
exampleProps: {
|
|
103823
|
+
title: "The Vision Behind Our Work",
|
|
103824
|
+
subtitle: "We believe great digital systems should feel simple to run.",
|
|
103825
|
+
images: [
|
|
103826
|
+
aboutImage("Collaborative product session"),
|
|
103827
|
+
aboutImage("Team reviewing site designs"),
|
|
103828
|
+
aboutImage("Customer experience planning")
|
|
103829
|
+
],
|
|
103830
|
+
primarySectionTitle: "Our Vision",
|
|
103831
|
+
primarySectionContent: "Give every operator the ability to publish excellent customer experiences without technical bottlenecks.",
|
|
103832
|
+
secondarySectionTitle: "How We Build",
|
|
103833
|
+
secondarySectionContent: "We turn reusable components, semantic contracts, and real content into maintainable sites.",
|
|
103834
|
+
ctaTitle: "Part of Our Global Team",
|
|
103835
|
+
ctaAction: {
|
|
103836
|
+
label: "Get to know the team",
|
|
103837
|
+
href: "/team",
|
|
103838
|
+
variant: "default"
|
|
103839
|
+
}
|
|
103840
|
+
}
|
|
103841
|
+
},
|
|
103842
|
+
"about-developer-story": {
|
|
103843
|
+
exampleUsage: `
|
|
103844
|
+
<AboutDeveloperStory
|
|
103845
|
+
title="Developer-Focused Solutions for Modern Teams"
|
|
103846
|
+
description="We build tools that developers and operators can both trust."
|
|
103847
|
+
actions={[
|
|
103848
|
+
{ label: "Get Started", href: "/contact", variant: "default" },
|
|
103849
|
+
{ label: "View Docs", href: "/docs", variant: "outline" },
|
|
103850
|
+
]}
|
|
103851
|
+
stats={[
|
|
103852
|
+
{ value: "200+", label: "Projects completed" },
|
|
103853
|
+
{ value: "50+", label: "Integrated workflows" },
|
|
103854
|
+
]}
|
|
103855
|
+
storyTitle="Built from the work itself"
|
|
103856
|
+
storyContent="Our platform grew from years of solving the same operational problems for real teams."
|
|
103857
|
+
storyImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Developer workspace" }}
|
|
103858
|
+
/>
|
|
103859
|
+
`.trim(),
|
|
103860
|
+
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.",
|
|
103861
|
+
usageRequirements: {
|
|
103862
|
+
requiredProps: ["title", "description", "storyImage"],
|
|
103863
|
+
propConstraints: {
|
|
103864
|
+
title: { required: true, maxLength: 80 },
|
|
103865
|
+
description: { required: true, maxLength: 190 },
|
|
103866
|
+
actions: { maxItems: 2 },
|
|
103867
|
+
stats: {
|
|
103868
|
+
minItems: 2,
|
|
103869
|
+
maxItems: 4,
|
|
103870
|
+
note: "Stats must be sourced."
|
|
103871
|
+
},
|
|
103872
|
+
logos: {
|
|
103873
|
+
maxItems: 8,
|
|
103874
|
+
note: "Only include real customer or partner logos."
|
|
103875
|
+
},
|
|
103876
|
+
storyImage: { required: true }
|
|
103877
|
+
},
|
|
103878
|
+
mediaSlots: {
|
|
103879
|
+
storyImage: imageSlot(
|
|
103880
|
+
"storyImage",
|
|
103881
|
+
"Story section image.",
|
|
103882
|
+
["feature", "hero"]
|
|
103883
|
+
),
|
|
103884
|
+
"logos[]": logoSlot("logos[]", "Customer or partner logo.")
|
|
103885
|
+
},
|
|
103886
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
103887
|
+
"metrics_or_stats",
|
|
103888
|
+
"media_library"
|
|
103889
|
+
),
|
|
103890
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103891
|
+
},
|
|
103892
|
+
exampleProps: {
|
|
103893
|
+
title: "Developer-Focused Solutions for Modern Teams",
|
|
103894
|
+
description: "We build tools that developers and operators can both trust.",
|
|
103895
|
+
actions: [
|
|
103896
|
+
{ label: "Get Started", href: "/contact", variant: "default" },
|
|
103897
|
+
{ label: "View Docs", href: "/docs", variant: "outline" }
|
|
103898
|
+
],
|
|
103899
|
+
stats: [
|
|
103900
|
+
{ value: "200+", label: "Projects completed" },
|
|
103901
|
+
{ value: "50+", label: "Integrated workflows" }
|
|
103902
|
+
],
|
|
103903
|
+
storyTitle: "Built from the work itself",
|
|
103904
|
+
storyContent: "Our platform grew from years of solving the same operational problems for real teams.",
|
|
103905
|
+
storyImage: aboutImage("Developer workspace")
|
|
103906
|
+
}
|
|
103907
|
+
},
|
|
103908
|
+
"about-story-gallery": {
|
|
103909
|
+
exampleUsage: `
|
|
103910
|
+
<AboutStoryGallery
|
|
103911
|
+
title="Our Story"
|
|
103912
|
+
description="We started with a simple idea: make high-quality site operations easier for every team."
|
|
103913
|
+
images={[
|
|
103914
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Early team workspace" },
|
|
103915
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team collaborating on product direction" },
|
|
103916
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Operations planning board" },
|
|
103917
|
+
]}
|
|
103918
|
+
/>
|
|
103919
|
+
`.trim(),
|
|
103920
|
+
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[].",
|
|
103921
|
+
usageRequirements: {
|
|
103922
|
+
requiredProps: ["title", "description", "images"],
|
|
103923
|
+
propConstraints: {
|
|
103924
|
+
title: { required: true, maxLength: 70 },
|
|
103925
|
+
description: { required: true, maxLength: 220 },
|
|
103926
|
+
images: { required: true, minItems: 3, maxItems: 5 }
|
|
103927
|
+
},
|
|
103928
|
+
mediaSlots: {
|
|
103929
|
+
"images[]": imageSlot(
|
|
103930
|
+
"images[]",
|
|
103931
|
+
"Story gallery image.",
|
|
103932
|
+
["gallery", "feature"]
|
|
103933
|
+
)
|
|
103934
|
+
},
|
|
103935
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103936
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103937
|
+
},
|
|
103938
|
+
exampleProps: {
|
|
103939
|
+
title: "Our Story",
|
|
103940
|
+
description: "We started with a simple idea: make high-quality site operations easier for every team.",
|
|
103941
|
+
images: [
|
|
103942
|
+
aboutImage("Early team workspace"),
|
|
103943
|
+
aboutImage("Team collaborating on product direction"),
|
|
103944
|
+
aboutImage("Operations planning board")
|
|
103945
|
+
]
|
|
103946
|
+
}
|
|
103947
|
+
},
|
|
103948
|
+
"about-streamline-team": {
|
|
103949
|
+
exampleUsage: `
|
|
103950
|
+
<AboutStreamlineTeam
|
|
103951
|
+
title="Streamline Your Workflow"
|
|
103952
|
+
description="Our platform helps teams work smarter without losing creative control."
|
|
103953
|
+
primaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team workflow planning" }}
|
|
103954
|
+
secondaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Detailed product planning session" }}
|
|
103955
|
+
teamTitle="Join the team building simpler operations"
|
|
103956
|
+
teamDescription="We look for pragmatic builders who care about durable systems."
|
|
103957
|
+
actions={[{ label: "View Open Roles", href: "/careers", variant: "default" }]}
|
|
103958
|
+
features={[
|
|
103959
|
+
{ icon: "lucide/zap", title: "Faster launches", description: "Ship polished pages in less time." },
|
|
103960
|
+
{ icon: "lucide/shield", title: "Reliable systems", description: "Keep content aligned as sites grow." },
|
|
103961
|
+
]}
|
|
103962
|
+
/>
|
|
103963
|
+
`.trim(),
|
|
103964
|
+
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.",
|
|
103965
|
+
usageRequirements: {
|
|
103966
|
+
requiredProps: ["title", "description", "primaryImage"],
|
|
103967
|
+
propConstraints: {
|
|
103968
|
+
title: { required: true, maxLength: 70 },
|
|
103969
|
+
description: { required: true, maxLength: 180 },
|
|
103970
|
+
primaryImage: { required: true },
|
|
103971
|
+
features: { minItems: 2, maxItems: 4 },
|
|
103972
|
+
actions: { maxItems: 2 }
|
|
103973
|
+
},
|
|
103974
|
+
mediaSlots: {
|
|
103975
|
+
primaryImage: imageSlot(
|
|
103976
|
+
"primaryImage",
|
|
103977
|
+
"Primary overlapping team/workflow image.",
|
|
103978
|
+
["feature", "hero"]
|
|
103979
|
+
),
|
|
103980
|
+
secondaryImage: imageSlot(
|
|
103981
|
+
"secondaryImage",
|
|
103982
|
+
"Secondary overlapping team/workflow image.",
|
|
103983
|
+
["feature", "thumbnail"],
|
|
103984
|
+
"medium",
|
|
103985
|
+
false
|
|
103986
|
+
)
|
|
103987
|
+
},
|
|
103988
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
103989
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
103990
|
+
},
|
|
103991
|
+
exampleProps: {
|
|
103992
|
+
title: "Streamline Your Workflow",
|
|
103993
|
+
description: "Our platform helps teams work smarter without losing creative control.",
|
|
103994
|
+
primaryImage: aboutImage("Team workflow planning"),
|
|
103995
|
+
secondaryImage: aboutImage("Detailed product planning session"),
|
|
103996
|
+
teamTitle: "Join the team building simpler operations",
|
|
103997
|
+
teamDescription: "We look for pragmatic builders who care about durable systems.",
|
|
103998
|
+
actions: [
|
|
103999
|
+
{ label: "View Open Roles", href: "/careers", variant: "default" }
|
|
104000
|
+
],
|
|
104001
|
+
features: [
|
|
104002
|
+
{
|
|
104003
|
+
icon: "lucide/zap",
|
|
104004
|
+
title: "Faster launches",
|
|
104005
|
+
description: "Ship polished pages in less time."
|
|
104006
|
+
},
|
|
104007
|
+
{
|
|
104008
|
+
icon: "lucide/shield",
|
|
104009
|
+
title: "Reliable systems",
|
|
104010
|
+
description: "Keep content aligned as sites grow."
|
|
104011
|
+
}
|
|
104012
|
+
]
|
|
104013
|
+
}
|
|
104014
|
+
},
|
|
104015
|
+
"about-developer-profile": {
|
|
104016
|
+
exampleUsage: `
|
|
104017
|
+
<AboutDeveloperProfile
|
|
104018
|
+
name="Alex Johnson"
|
|
104019
|
+
role="Full-Stack Developer"
|
|
104020
|
+
bio="Alex builds maintainable product systems for growing service teams."
|
|
104021
|
+
avatar={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Alex Johnson profile portrait" }}
|
|
104022
|
+
skills={["React", "TypeScript", "Rails", "PostgreSQL"]}
|
|
104023
|
+
skillsTitle="Core Skills"
|
|
104024
|
+
socialLinks={[{ href: "https://github.com/opensite-ai", label: "GitHub" }]}
|
|
104025
|
+
actions={[{ label: "Contact Alex", href: "/contact", variant: "default" }]}
|
|
104026
|
+
/>
|
|
104027
|
+
`.trim(),
|
|
104028
|
+
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.",
|
|
104029
|
+
usageRequirements: {
|
|
104030
|
+
requiredProps: ["name", "role", "bio", "avatar"],
|
|
104031
|
+
propConstraints: {
|
|
104032
|
+
name: { required: true, maxLength: 60 },
|
|
104033
|
+
role: { required: true, maxLength: 80 },
|
|
104034
|
+
bio: { required: true, maxLength: 260 },
|
|
104035
|
+
avatar: { required: true },
|
|
104036
|
+
skills: { minItems: 3, maxItems: 8 },
|
|
104037
|
+
socialLinks: { maxItems: 4 },
|
|
104038
|
+
actions: { maxItems: 2 }
|
|
104039
|
+
},
|
|
104040
|
+
mediaSlots: {
|
|
104041
|
+
avatar: imageSlot(
|
|
104042
|
+
"avatar",
|
|
104043
|
+
"Profile portrait for the person.",
|
|
104044
|
+
["profile", "avatar"],
|
|
104045
|
+
"medium",
|
|
104046
|
+
true,
|
|
104047
|
+
"1:1"
|
|
104048
|
+
)
|
|
104049
|
+
},
|
|
104050
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104051
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104052
|
+
},
|
|
104053
|
+
exampleProps: {
|
|
104054
|
+
name: "Alex Johnson",
|
|
104055
|
+
role: "Full-Stack Developer",
|
|
104056
|
+
bio: "Alex builds maintainable product systems for growing service teams.",
|
|
104057
|
+
avatar: aboutImage("Alex Johnson profile portrait"),
|
|
104058
|
+
skills: ["React", "TypeScript", "Rails", "PostgreSQL"],
|
|
104059
|
+
skillsTitle: "Core Skills",
|
|
104060
|
+
socialLinks: [
|
|
104061
|
+
{ href: "https://github.com/opensite-ai", label: "GitHub" }
|
|
104062
|
+
],
|
|
104063
|
+
actions: [
|
|
104064
|
+
{ label: "Contact Alex", href: "/contact", variant: "default" }
|
|
104065
|
+
]
|
|
104066
|
+
}
|
|
104067
|
+
},
|
|
104068
|
+
"about-startup-team": {
|
|
104069
|
+
exampleUsage: `
|
|
104070
|
+
<AboutStartupTeam
|
|
104071
|
+
title="Building the Future of Site Operations"
|
|
104072
|
+
description="We are a team of product builders, operators, and customer experience specialists."
|
|
104073
|
+
sidebarLinks={[
|
|
104074
|
+
{ label: "Leadership", value: "leadership" },
|
|
104075
|
+
{ label: "Product", value: "product" },
|
|
104076
|
+
]}
|
|
104077
|
+
teamTitle="Meet the Team"
|
|
104078
|
+
teamMembers={[
|
|
104079
|
+
{
|
|
104080
|
+
name: "Sarah Chen",
|
|
104081
|
+
role: "CEO and Co-Founder",
|
|
104082
|
+
avatar: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Sarah Chen portrait" },
|
|
104083
|
+
tab: "leadership",
|
|
104084
|
+
},
|
|
104085
|
+
{
|
|
104086
|
+
name: "Marcus Johnson",
|
|
104087
|
+
role: "Product Lead",
|
|
104088
|
+
avatar: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Marcus Johnson portrait" },
|
|
104089
|
+
tab: "product",
|
|
104090
|
+
},
|
|
104091
|
+
]}
|
|
104092
|
+
/>
|
|
104093
|
+
`.trim(),
|
|
104094
|
+
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.",
|
|
104095
|
+
usageRequirements: {
|
|
104096
|
+
requiredProps: ["title", "teamMembers"],
|
|
104097
|
+
propConstraints: {
|
|
104098
|
+
title: { required: true, maxLength: 80 },
|
|
104099
|
+
description: { maxLength: 220 },
|
|
104100
|
+
sidebarLinks: { minItems: 1, maxItems: 6 },
|
|
104101
|
+
teamMembers: {
|
|
104102
|
+
required: true,
|
|
104103
|
+
minItems: 2,
|
|
104104
|
+
maxItems: 12,
|
|
104105
|
+
note: "Must come from real team member data."
|
|
104106
|
+
},
|
|
104107
|
+
"teamMembers[].tab": {
|
|
104108
|
+
note: "When present, must match a sidebarLinks[].value."
|
|
104109
|
+
}
|
|
104110
|
+
},
|
|
104111
|
+
mediaSlots: {
|
|
104112
|
+
"teamMembers[].avatar": imageSlot(
|
|
104113
|
+
"teamMembers[].avatar",
|
|
104114
|
+
"Team member portrait.",
|
|
104115
|
+
["profile", "avatar"],
|
|
104116
|
+
"medium",
|
|
104117
|
+
true,
|
|
104118
|
+
"1:1"
|
|
104119
|
+
)
|
|
104120
|
+
},
|
|
104121
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104122
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104123
|
+
},
|
|
104124
|
+
exampleProps: {
|
|
104125
|
+
title: "Building the Future of Site Operations",
|
|
104126
|
+
description: "We are a team of product builders, operators, and customer experience specialists.",
|
|
104127
|
+
sidebarLinks: [
|
|
104128
|
+
{ label: "Leadership", value: "leadership" },
|
|
104129
|
+
{ label: "Product", value: "product" }
|
|
104130
|
+
],
|
|
104131
|
+
teamTitle: "Meet the Team",
|
|
104132
|
+
teamMembers: [
|
|
104133
|
+
{
|
|
104134
|
+
name: "Sarah Chen",
|
|
104135
|
+
role: "CEO and Co-Founder",
|
|
104136
|
+
avatar: aboutImage("Sarah Chen portrait"),
|
|
104137
|
+
tab: "leadership"
|
|
104138
|
+
},
|
|
104139
|
+
{
|
|
104140
|
+
name: "Marcus Johnson",
|
|
104141
|
+
role: "Product Lead",
|
|
104142
|
+
avatar: aboutImage("Marcus Johnson portrait"),
|
|
104143
|
+
tab: "product"
|
|
104144
|
+
}
|
|
104145
|
+
]
|
|
104146
|
+
}
|
|
104147
|
+
},
|
|
104148
|
+
"about-minimal-story": {
|
|
104149
|
+
exampleUsage: `
|
|
104150
|
+
<AboutMinimalStory
|
|
104151
|
+
title="Our Story"
|
|
104152
|
+
content="Every durable product starts with a clear operational problem and a team willing to solve it carefully."
|
|
104153
|
+
author={{
|
|
104154
|
+
name: "Jordan Mitchell",
|
|
104155
|
+
role: "Founder and CEO",
|
|
104156
|
+
avatar: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Jordan Mitchell portrait" },
|
|
104157
|
+
}}
|
|
104158
|
+
featuredImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Founder working with the team" }}
|
|
104159
|
+
/>
|
|
104160
|
+
`.trim(),
|
|
104161
|
+
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.",
|
|
104162
|
+
usageRequirements: {
|
|
104163
|
+
requiredProps: ["title", "content", "author"],
|
|
104164
|
+
propConstraints: {
|
|
104165
|
+
title: { required: true, maxLength: 80 },
|
|
104166
|
+
content: { required: true, maxLength: 360 },
|
|
104167
|
+
author: {
|
|
104168
|
+
required: true,
|
|
104169
|
+
note: "Author identity must be source-backed."
|
|
104170
|
+
}
|
|
104171
|
+
},
|
|
104172
|
+
mediaSlots: {
|
|
104173
|
+
"author.avatar": imageSlot(
|
|
104174
|
+
"author.avatar",
|
|
104175
|
+
"Author or founder profile image.",
|
|
104176
|
+
["profile", "avatar"],
|
|
104177
|
+
"small",
|
|
104178
|
+
false,
|
|
104179
|
+
"1:1"
|
|
104180
|
+
),
|
|
104181
|
+
featuredImage: imageSlot(
|
|
104182
|
+
"featuredImage",
|
|
104183
|
+
"Optional featured story image.",
|
|
104184
|
+
["feature", "hero"],
|
|
104185
|
+
"large",
|
|
104186
|
+
false
|
|
104187
|
+
)
|
|
104188
|
+
},
|
|
104189
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104190
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104191
|
+
},
|
|
104192
|
+
exampleProps: {
|
|
104193
|
+
title: "Our Story",
|
|
104194
|
+
content: "Every durable product starts with a clear operational problem and a team willing to solve it carefully.",
|
|
104195
|
+
author: {
|
|
104196
|
+
name: "Jordan Mitchell",
|
|
104197
|
+
role: "Founder and CEO",
|
|
104198
|
+
avatar: aboutImage("Jordan Mitchell portrait")
|
|
104199
|
+
},
|
|
104200
|
+
featuredImage: aboutImage("Founder working with the team")
|
|
104201
|
+
}
|
|
104202
|
+
},
|
|
104203
|
+
"about-story-hero": {
|
|
104204
|
+
exampleUsage: `
|
|
104205
|
+
<AboutStoryHero
|
|
104206
|
+
title="Our Story"
|
|
104207
|
+
subtitle="Building the future, one practical system at a time"
|
|
104208
|
+
content="We started with a bold idea: customer-facing sites should be easier to operate after launch."
|
|
104209
|
+
heroImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team collaborating in a workspace" }}
|
|
104210
|
+
teamInfo={{
|
|
104211
|
+
title: "50+ Team Members",
|
|
104212
|
+
description: "Working across product, support, and customer operations",
|
|
104213
|
+
}}
|
|
104214
|
+
/>
|
|
104215
|
+
`.trim(),
|
|
104216
|
+
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.",
|
|
104217
|
+
usageRequirements: {
|
|
104218
|
+
requiredProps: ["title", "content", "heroImage"],
|
|
104219
|
+
propConstraints: {
|
|
104220
|
+
title: { required: true, maxLength: 80 },
|
|
104221
|
+
subtitle: { maxLength: 120 },
|
|
104222
|
+
content: { required: true, maxLength: 320 },
|
|
104223
|
+
heroImage: { required: true },
|
|
104224
|
+
teamInfo: {
|
|
104225
|
+
note: "Team facts must be source-backed if provided."
|
|
104226
|
+
}
|
|
104227
|
+
},
|
|
104228
|
+
mediaSlots: {
|
|
104229
|
+
heroImage: imageSlot(
|
|
104230
|
+
"heroImage",
|
|
104231
|
+
"Large story hero image.",
|
|
104232
|
+
["hero", "feature"]
|
|
104233
|
+
)
|
|
104234
|
+
},
|
|
104235
|
+
requiresSiteCapabilities: aboutCapabilities("team_members", "media_library"),
|
|
104236
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104237
|
+
},
|
|
104238
|
+
exampleProps: {
|
|
104239
|
+
title: "Our Story",
|
|
104240
|
+
subtitle: "Building the future, one practical system at a time",
|
|
104241
|
+
content: "We started with a bold idea: customer-facing sites should be easier to operate after launch.",
|
|
104242
|
+
heroImage: aboutImage("Team collaborating in a workspace"),
|
|
104243
|
+
teamInfo: {
|
|
104244
|
+
title: "50+ Team Members",
|
|
104245
|
+
description: "Working across product, support, and customer operations"
|
|
104246
|
+
}
|
|
104247
|
+
}
|
|
104248
|
+
},
|
|
104249
|
+
"about-stats-sidebar": {
|
|
104250
|
+
exampleUsage: `
|
|
104251
|
+
<AboutStatsSidebar
|
|
104252
|
+
title="Why Choose Us"
|
|
104253
|
+
description="We have built a platform that scales with your operational needs."
|
|
104254
|
+
stats={[
|
|
104255
|
+
{ icon: "lucide/users", value: "10M+", label: "Visitors supported" },
|
|
104256
|
+
{ icon: "lucide/globe", value: "150+", label: "Markets served" },
|
|
104257
|
+
]}
|
|
104258
|
+
features={[
|
|
104259
|
+
{ icon: "lucide/zap", title: "Fast launch cycles", description: "Teams publish updates without waiting on engineering." },
|
|
104260
|
+
{ icon: "lucide/lock", title: "Managed consistency", description: "Shared blocks keep every page aligned." },
|
|
104261
|
+
]}
|
|
104262
|
+
/>
|
|
104263
|
+
`.trim(),
|
|
104264
|
+
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.",
|
|
104265
|
+
usageRequirements: {
|
|
104266
|
+
requiredProps: ["title", "stats"],
|
|
104267
|
+
propConstraints: {
|
|
104268
|
+
title: { required: true, maxLength: 70 },
|
|
104269
|
+
description: { maxLength: 180 },
|
|
104270
|
+
stats: {
|
|
104271
|
+
required: true,
|
|
104272
|
+
minItems: 2,
|
|
104273
|
+
maxItems: 6,
|
|
104274
|
+
note: "Stats must be sourced."
|
|
104275
|
+
},
|
|
104276
|
+
features: { minItems: 2, maxItems: 4 }
|
|
104277
|
+
},
|
|
104278
|
+
mediaSlots: {},
|
|
104279
|
+
requiresSiteCapabilities: aboutCapabilities("metrics_or_stats"),
|
|
104280
|
+
notes: ["Do not fabricate metrics or quantified claims."]
|
|
104281
|
+
},
|
|
104282
|
+
exampleProps: {
|
|
104283
|
+
title: "Why Choose Us",
|
|
104284
|
+
description: "We have built a platform that scales with your operational needs.",
|
|
104285
|
+
stats: [
|
|
104286
|
+
{ icon: "lucide/users", value: "10M+", label: "Visitors supported" },
|
|
104287
|
+
{ icon: "lucide/globe", value: "150+", label: "Markets served" }
|
|
104288
|
+
],
|
|
104289
|
+
features: [
|
|
104290
|
+
{
|
|
104291
|
+
icon: "lucide/zap",
|
|
104292
|
+
title: "Fast launch cycles",
|
|
104293
|
+
description: "Teams publish updates without waiting on engineering."
|
|
104294
|
+
},
|
|
104295
|
+
{
|
|
104296
|
+
icon: "lucide/lock",
|
|
104297
|
+
title: "Managed consistency",
|
|
104298
|
+
description: "Shared blocks keep every page aligned."
|
|
104299
|
+
}
|
|
104300
|
+
]
|
|
104301
|
+
}
|
|
104302
|
+
},
|
|
104303
|
+
"about-interactive-tabs": {
|
|
104304
|
+
exampleUsage: `
|
|
104305
|
+
<AboutInteractiveTabs
|
|
104306
|
+
title="Discover Our Story"
|
|
104307
|
+
subtitle="Learn more about how we work and what we value."
|
|
104308
|
+
tabs={[
|
|
104309
|
+
{
|
|
104310
|
+
id: "work",
|
|
104311
|
+
label: "Our Work",
|
|
104312
|
+
content: {
|
|
104313
|
+
title: "Crafting Digital Experiences",
|
|
104314
|
+
description: "We create maintainable, high-performing customer experiences.",
|
|
104315
|
+
image: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team reviewing digital experience work" },
|
|
104316
|
+
},
|
|
104317
|
+
},
|
|
104318
|
+
{
|
|
104319
|
+
id: "process",
|
|
104320
|
+
label: "Our Process",
|
|
104321
|
+
content: {
|
|
104322
|
+
title: "Built Around Real Operations",
|
|
104323
|
+
description: "Every workflow starts from the way teams already work.",
|
|
104324
|
+
image: { src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team process planning session" },
|
|
104325
|
+
},
|
|
104326
|
+
},
|
|
104327
|
+
]}
|
|
104328
|
+
/>
|
|
104329
|
+
`.trim(),
|
|
104330
|
+
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.",
|
|
104331
|
+
usageRequirements: {
|
|
104332
|
+
requiredProps: ["title", "tabs"],
|
|
104333
|
+
propConstraints: {
|
|
104334
|
+
title: { required: true, maxLength: 70 },
|
|
104335
|
+
subtitle: { maxLength: 150 },
|
|
104336
|
+
tabs: { required: true, minItems: 2, maxItems: 5 },
|
|
104337
|
+
"tabs[].id": {
|
|
104338
|
+
required: true,
|
|
104339
|
+
note: "Must be unique within the tabs array."
|
|
104340
|
+
},
|
|
104341
|
+
"tabs[].content.title": { required: true, maxLength: 80 },
|
|
104342
|
+
"tabs[].content.description": { required: true, maxLength: 220 }
|
|
104343
|
+
},
|
|
104344
|
+
mediaSlots: {
|
|
104345
|
+
"tabs[].content.image": imageSlot(
|
|
104346
|
+
"tabs[].content.image",
|
|
104347
|
+
"Tab content image.",
|
|
104348
|
+
["feature", "gallery"],
|
|
104349
|
+
"medium",
|
|
104350
|
+
false
|
|
104351
|
+
)
|
|
104352
|
+
},
|
|
104353
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104354
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104355
|
+
},
|
|
104356
|
+
exampleProps: {
|
|
104357
|
+
title: "Discover Our Story",
|
|
104358
|
+
subtitle: "Learn more about how we work and what we value.",
|
|
104359
|
+
tabs: [
|
|
104360
|
+
{
|
|
104361
|
+
id: "work",
|
|
104362
|
+
label: "Our Work",
|
|
104363
|
+
content: {
|
|
104364
|
+
title: "Crafting Digital Experiences",
|
|
104365
|
+
description: "We create maintainable, high-performing customer experiences.",
|
|
104366
|
+
image: aboutImage("Team reviewing digital experience work")
|
|
104367
|
+
}
|
|
104368
|
+
},
|
|
104369
|
+
{
|
|
104370
|
+
id: "process",
|
|
104371
|
+
label: "Our Process",
|
|
104372
|
+
content: {
|
|
104373
|
+
title: "Built Around Real Operations",
|
|
104374
|
+
description: "Every workflow starts from the way teams already work.",
|
|
104375
|
+
image: aboutImage("Team process planning session")
|
|
104376
|
+
}
|
|
104377
|
+
}
|
|
104378
|
+
]
|
|
104379
|
+
}
|
|
104380
|
+
},
|
|
104381
|
+
"about-mission-dual-image": {
|
|
104382
|
+
exampleUsage: `
|
|
104383
|
+
<AboutMissionDualImage
|
|
104384
|
+
missionTitle="Our Mission"
|
|
104385
|
+
missionContent="To make professional digital operations easier for every growing team."
|
|
104386
|
+
visionTitle="Our Vision"
|
|
104387
|
+
visionContent="A world where every business can keep its customer experience current."
|
|
104388
|
+
primaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team mission planning" }}
|
|
104389
|
+
secondaryImage={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Product workshop" }}
|
|
104390
|
+
actions={[{ label: "Join Our Journey", href: "/careers", variant: "default" }]}
|
|
104391
|
+
/>
|
|
104392
|
+
`.trim(),
|
|
104393
|
+
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.",
|
|
104394
|
+
usageRequirements: {
|
|
104395
|
+
requiredProps: ["missionTitle", "missionContent", "visionTitle", "visionContent"],
|
|
104396
|
+
propConstraints: {
|
|
104397
|
+
missionTitle: { required: true, maxLength: 70 },
|
|
104398
|
+
missionContent: { required: true, maxLength: 240 },
|
|
104399
|
+
visionTitle: { required: true, maxLength: 70 },
|
|
104400
|
+
visionContent: { required: true, maxLength: 240 },
|
|
104401
|
+
actions: { maxItems: 2 }
|
|
104402
|
+
},
|
|
104403
|
+
mediaSlots: {
|
|
104404
|
+
primaryImage: imageSlot(
|
|
104405
|
+
"primaryImage",
|
|
104406
|
+
"Primary mission/vision image.",
|
|
104407
|
+
["feature", "hero"],
|
|
104408
|
+
"large",
|
|
104409
|
+
false
|
|
104410
|
+
),
|
|
104411
|
+
secondaryImage: imageSlot(
|
|
104412
|
+
"secondaryImage",
|
|
104413
|
+
"Secondary mission/vision image.",
|
|
104414
|
+
["feature", "thumbnail"],
|
|
104415
|
+
"medium",
|
|
104416
|
+
false
|
|
104417
|
+
)
|
|
104418
|
+
},
|
|
104419
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104420
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104421
|
+
},
|
|
104422
|
+
exampleProps: {
|
|
104423
|
+
missionTitle: "Our Mission",
|
|
104424
|
+
missionContent: "To make professional digital operations easier for every growing team.",
|
|
104425
|
+
visionTitle: "Our Vision",
|
|
104426
|
+
visionContent: "A world where every business can keep its customer experience current.",
|
|
104427
|
+
primaryImage: aboutImage("Team mission planning"),
|
|
104428
|
+
secondaryImage: aboutImage("Product workshop"),
|
|
104429
|
+
actions: [
|
|
104430
|
+
{ label: "Join Our Journey", href: "/careers", variant: "default" }
|
|
104431
|
+
]
|
|
104432
|
+
}
|
|
104433
|
+
},
|
|
104434
|
+
"about-story-expertise": {
|
|
104435
|
+
exampleUsage: `
|
|
104436
|
+
<AboutStoryExpertise
|
|
104437
|
+
eyebrow="About Our Practice"
|
|
104438
|
+
heading="We turn operating complexity into clear digital systems."
|
|
104439
|
+
storyParagraphs={[
|
|
104440
|
+
"Our team works where brand, operations, and customer experience meet.",
|
|
104441
|
+
"Every engagement starts with the source material that makes a business distinct.",
|
|
104442
|
+
]}
|
|
104443
|
+
actions={[
|
|
104444
|
+
{ label: "Start a Project", href: "/contact", variant: "default" },
|
|
104445
|
+
{ label: "See Our Work", href: "/work", variant: "outline" },
|
|
104446
|
+
]}
|
|
104447
|
+
image={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team reviewing customer experience systems" }}
|
|
104448
|
+
highlight={{ label: "Trusted process", title: "Built around source-backed content", description: "Contracts keep generated pages accurate." }}
|
|
104449
|
+
expertiseAreas={[
|
|
104450
|
+
{ title: "Content systems", description: "Reusable structures for every page." },
|
|
104451
|
+
{ title: "AI workflows", description: "Guided generation with clear guardrails." },
|
|
104452
|
+
]}
|
|
104453
|
+
/>
|
|
104454
|
+
`.trim(),
|
|
104455
|
+
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.",
|
|
104456
|
+
usageRequirements: {
|
|
104457
|
+
requiredProps: ["heading", "storyParagraphs", "image"],
|
|
104458
|
+
propConstraints: {
|
|
104459
|
+
eyebrow: { maxLength: 40 },
|
|
104460
|
+
heading: { required: true, maxLength: 90 },
|
|
104461
|
+
storyParagraphs: { required: true, minItems: 2, maxItems: 3 },
|
|
104462
|
+
actions: { maxItems: 2 },
|
|
104463
|
+
image: { required: true },
|
|
104464
|
+
expertiseAreas: { minItems: 2, maxItems: 4 }
|
|
104465
|
+
},
|
|
104466
|
+
mediaSlots: {
|
|
104467
|
+
image: imageSlot(
|
|
104468
|
+
"image",
|
|
104469
|
+
"Story and expertise image card.",
|
|
104470
|
+
["feature", "hero"]
|
|
104471
|
+
)
|
|
104472
|
+
},
|
|
104473
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104474
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104475
|
+
},
|
|
104476
|
+
exampleProps: {
|
|
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: aboutImage("Team reviewing customer experience systems"),
|
|
104488
|
+
highlight: {
|
|
104489
|
+
label: "Trusted process",
|
|
104490
|
+
title: "Built around source-backed content",
|
|
104491
|
+
description: "Contracts keep generated pages accurate."
|
|
104492
|
+
},
|
|
104493
|
+
expertiseAreas: [
|
|
104494
|
+
{
|
|
104495
|
+
title: "Content systems",
|
|
104496
|
+
description: "Reusable structures for every page."
|
|
104497
|
+
},
|
|
104498
|
+
{
|
|
104499
|
+
title: "AI workflows",
|
|
104500
|
+
description: "Guided generation with clear guardrails."
|
|
104501
|
+
}
|
|
104502
|
+
]
|
|
104503
|
+
}
|
|
104504
|
+
},
|
|
104505
|
+
"about-network-spotlight": {
|
|
104506
|
+
exampleUsage: `
|
|
104507
|
+
<AboutNetworkSpotlight
|
|
104508
|
+
eyebrow="Partner Network"
|
|
104509
|
+
heading="A practical network for teams building better customer experiences."
|
|
104510
|
+
description="We work with operators, designers, and implementation partners who care about durable systems."
|
|
104511
|
+
highlights={[
|
|
104512
|
+
"Shared delivery standards across every project",
|
|
104513
|
+
"Practical support for ongoing site operations",
|
|
104514
|
+
"Source-backed content and measurable outcomes",
|
|
104515
|
+
]}
|
|
104516
|
+
actions={[
|
|
104517
|
+
{ label: "Become a Partner", href: "/partners", variant: "default" },
|
|
104518
|
+
{ label: "Explore the Network", href: "/network", variant: "outline" },
|
|
104519
|
+
]}
|
|
104520
|
+
image={{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Partner team workshop" }}
|
|
104521
|
+
spotlightCard={{ icon: "lucide/network", label: "Partner reach", title: "Built for collaboration", description: "A shared system keeps every project aligned." }}
|
|
104522
|
+
/>
|
|
104523
|
+
`.trim(),
|
|
104524
|
+
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.",
|
|
104525
|
+
usageRequirements: {
|
|
104526
|
+
requiredProps: ["heading", "description", "image"],
|
|
104527
|
+
propConstraints: {
|
|
104528
|
+
eyebrow: { maxLength: 40 },
|
|
104529
|
+
heading: { required: true, maxLength: 90 },
|
|
104530
|
+
description: { required: true, maxLength: 220 },
|
|
104531
|
+
highlights: { minItems: 2, maxItems: 4 },
|
|
104532
|
+
actions: { maxItems: 2 },
|
|
104533
|
+
image: { required: true }
|
|
104534
|
+
},
|
|
104535
|
+
mediaSlots: {
|
|
104536
|
+
image: imageSlot(
|
|
104537
|
+
"image",
|
|
104538
|
+
"Network spotlight image.",
|
|
104539
|
+
["feature", "hero"]
|
|
104540
|
+
)
|
|
104541
|
+
},
|
|
104542
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104543
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104544
|
+
},
|
|
104545
|
+
exampleProps: {
|
|
104546
|
+
eyebrow: "Partner Network",
|
|
104547
|
+
heading: "A practical network for teams building better customer experiences.",
|
|
104548
|
+
description: "We work with operators, designers, and implementation partners who care about durable systems.",
|
|
104549
|
+
highlights: [
|
|
104550
|
+
"Shared delivery standards across every project",
|
|
104551
|
+
"Practical support for ongoing site operations",
|
|
104552
|
+
"Source-backed content and measurable outcomes"
|
|
104553
|
+
],
|
|
104554
|
+
actions: [
|
|
104555
|
+
{ label: "Become a Partner", href: "/partners", variant: "default" },
|
|
104556
|
+
{ label: "Explore the Network", href: "/network", variant: "outline" }
|
|
104557
|
+
],
|
|
104558
|
+
image: aboutImage("Partner team workshop"),
|
|
104559
|
+
spotlightCard: {
|
|
104560
|
+
icon: "lucide/network",
|
|
104561
|
+
label: "Partner reach",
|
|
104562
|
+
title: "Built for collaboration",
|
|
104563
|
+
description: "A shared system keeps every project aligned."
|
|
104564
|
+
}
|
|
104565
|
+
}
|
|
104566
|
+
},
|
|
104567
|
+
"about-location-info-hero": {
|
|
104568
|
+
exampleUsage: `
|
|
104569
|
+
<AboutLocationInfoHero
|
|
104570
|
+
headline="Visit Our Flagship Workspace"
|
|
104571
|
+
address="123 Market Street, Phoenix, AZ"
|
|
104572
|
+
addressHref="https://maps.google.com/?q=123+Market+Street+Phoenix+AZ"
|
|
104573
|
+
phone="(555) 014-8821"
|
|
104574
|
+
phoneHref="tel:+15550148821"
|
|
104575
|
+
actions={[{ label: "Get Directions", href: "/locations", variant: "default" }]}
|
|
104576
|
+
hoursSections={[
|
|
104577
|
+
{ label: "Weekdays", hours: [{ day: "Mon-Fri", time: "9:00 AM - 6:00 PM" }] },
|
|
104578
|
+
{ label: "Weekend", hours: [{ day: "Sat", time: "10:00 AM - 2:00 PM" }] },
|
|
104579
|
+
]}
|
|
104580
|
+
images={[
|
|
104581
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Flagship workspace interior" },
|
|
104582
|
+
{ src: "${ABOUT_EXAMPLE_IMAGE_URL}", alt: "Team meeting area" },
|
|
104583
|
+
]}
|
|
104584
|
+
/>
|
|
104585
|
+
`.trim(),
|
|
104586
|
+
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.",
|
|
104587
|
+
usageRequirements: {
|
|
104588
|
+
requiredProps: ["headline", "address", "phone", "hoursSections", "images"],
|
|
104589
|
+
propConstraints: {
|
|
104590
|
+
headline: { required: true, maxLength: 80 },
|
|
104591
|
+
address: {
|
|
104592
|
+
required: true,
|
|
104593
|
+
note: "Must be source-backed contact information."
|
|
104594
|
+
},
|
|
104595
|
+
phone: {
|
|
104596
|
+
required: true,
|
|
104597
|
+
note: "Must be source-backed contact information."
|
|
104598
|
+
},
|
|
104599
|
+
hoursSections: { required: true, minItems: 1, maxItems: 4 },
|
|
104600
|
+
images: { required: true, minItems: 1, maxItems: 2 },
|
|
104601
|
+
actions: { maxItems: 2 }
|
|
104602
|
+
},
|
|
104603
|
+
mediaSlots: {
|
|
104604
|
+
"images[]": imageSlot(
|
|
104605
|
+
"images[]",
|
|
104606
|
+
"Location showcase image.",
|
|
104607
|
+
["feature", "hero"]
|
|
104608
|
+
)
|
|
104609
|
+
},
|
|
104610
|
+
requiresSiteCapabilities: aboutCapabilities("contact_info", "media_library"),
|
|
104611
|
+
notes: [ABOUT_MEDIA_NOTE, "Location and hours data must be sourced."]
|
|
104612
|
+
},
|
|
104613
|
+
exampleProps: {
|
|
104614
|
+
headline: "Visit Our Flagship Workspace",
|
|
104615
|
+
address: "123 Market Street, Phoenix, AZ",
|
|
104616
|
+
addressHref: "https://maps.google.com/?q=123+Market+Street+Phoenix+AZ",
|
|
104617
|
+
phone: "(555) 014-8821",
|
|
104618
|
+
phoneHref: "tel:+15550148821",
|
|
104619
|
+
actions: [
|
|
104620
|
+
{ label: "Get Directions", href: "/locations", variant: "default" }
|
|
104621
|
+
],
|
|
104622
|
+
hoursSections: [
|
|
104623
|
+
{
|
|
104624
|
+
label: "Weekdays",
|
|
104625
|
+
hours: [{ day: "Mon-Fri", time: "9:00 AM - 6:00 PM" }]
|
|
104626
|
+
},
|
|
104627
|
+
{
|
|
104628
|
+
label: "Weekend",
|
|
104629
|
+
hours: [{ day: "Sat", time: "10:00 AM - 2:00 PM" }]
|
|
104630
|
+
}
|
|
104631
|
+
],
|
|
104632
|
+
images: [
|
|
104633
|
+
aboutImage("Flagship workspace interior"),
|
|
104634
|
+
aboutImage("Team meeting area")
|
|
104635
|
+
]
|
|
104636
|
+
}
|
|
104637
|
+
},
|
|
104638
|
+
"about-split-hero": {
|
|
104639
|
+
exampleUsage: `
|
|
104640
|
+
<AboutSplitHero
|
|
104641
|
+
brandText="Business"
|
|
104642
|
+
brandHighlight="PRO"
|
|
104643
|
+
heading="Achieve More with Elite Access"
|
|
104644
|
+
description="Give your team a polished about experience with clear positioning and a strong visual."
|
|
104645
|
+
ctaAction={{ label: "Upgrade to premium", href: "/upgrade", variant: "default" }}
|
|
104646
|
+
imageSrc="${ABOUT_EXAMPLE_IMAGE_URL}"
|
|
104647
|
+
imageAlt="Premium team workspace"
|
|
104648
|
+
/>
|
|
104649
|
+
`.trim(),
|
|
104650
|
+
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.",
|
|
104651
|
+
usageRequirements: {
|
|
104652
|
+
requiredProps: ["heading", "description", "imageSrc"],
|
|
104653
|
+
propConstraints: {
|
|
104654
|
+
brandText: { maxLength: 30 },
|
|
104655
|
+
brandHighlight: { maxLength: 20 },
|
|
104656
|
+
heading: { required: true, maxLength: 70 },
|
|
104657
|
+
description: { required: true, maxLength: 180 },
|
|
104658
|
+
ctaAction: {
|
|
104659
|
+
note: "Use ActionConfig with label and href."
|
|
104660
|
+
},
|
|
104661
|
+
imageSrc: { required: true },
|
|
104662
|
+
imageAlt: { required: true, maxLength: 120 }
|
|
104663
|
+
},
|
|
104664
|
+
mediaSlots: {
|
|
104665
|
+
imageSrc: imageSlot(
|
|
104666
|
+
"imageSrc",
|
|
104667
|
+
"Split hero image.",
|
|
104668
|
+
["hero", "feature"]
|
|
104669
|
+
)
|
|
104670
|
+
},
|
|
104671
|
+
requiresSiteCapabilities: aboutCapabilities("media_library"),
|
|
104672
|
+
notes: [ABOUT_MEDIA_NOTE]
|
|
104673
|
+
},
|
|
104674
|
+
exampleProps: {
|
|
104675
|
+
brandText: "Business",
|
|
104676
|
+
brandHighlight: "PRO",
|
|
104677
|
+
heading: "Achieve More with Elite Access",
|
|
104678
|
+
description: "Give your team a polished about experience with clear positioning and a strong visual.",
|
|
104679
|
+
ctaAction: {
|
|
104680
|
+
label: "Upgrade to premium",
|
|
104681
|
+
href: "/upgrade",
|
|
104682
|
+
variant: "default"
|
|
104683
|
+
},
|
|
104684
|
+
imageSrc: ABOUT_EXAMPLE_IMAGE_URL,
|
|
104685
|
+
imageAlt: "Premium team workspace"
|
|
104686
|
+
}
|
|
104687
|
+
},
|
|
104688
|
+
"about-mission-principles": {
|
|
104689
|
+
exampleUsage: `
|
|
104690
|
+
<AboutMissionPrinciples
|
|
104691
|
+
badgeText="Our Mission"
|
|
104692
|
+
missionHeading="To empower teams through practical technology"
|
|
104693
|
+
missionDescription="We believe digital systems should make daily operations clearer, not more complicated."
|
|
104694
|
+
missionAction={{ label: "Learn More", href: "/about", variant: "default" }}
|
|
104695
|
+
principles={[
|
|
104696
|
+
{ number: "01", title: "Customer-Centric", description: "Start from the real work customers need to complete." },
|
|
104697
|
+
{ number: "02", title: "Durable Systems", description: "Build patterns that stay maintainable as teams grow." },
|
|
104698
|
+
]}
|
|
104699
|
+
visionHeading="Our Vision"
|
|
104700
|
+
visionDescription="A world where every team can keep its digital presence current."
|
|
104701
|
+
visionAction={{ label: "Join Us", href: "/careers", variant: "outline" }}
|
|
104702
|
+
/>
|
|
104703
|
+
`.trim(),
|
|
104704
|
+
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.",
|
|
104705
|
+
usageRequirements: {
|
|
104706
|
+
requiredProps: ["missionHeading", "missionDescription", "principles"],
|
|
104707
|
+
propConstraints: {
|
|
104708
|
+
badgeText: { maxLength: 35 },
|
|
104709
|
+
missionHeading: { required: true, maxLength: 80 },
|
|
104710
|
+
missionDescription: { required: true, maxLength: 240 },
|
|
104711
|
+
principles: { required: true, minItems: 2, maxItems: 4 },
|
|
104712
|
+
visionHeading: { maxLength: 80 },
|
|
104713
|
+
visionDescription: { maxLength: 220 }
|
|
104714
|
+
},
|
|
104715
|
+
mediaSlots: {},
|
|
104716
|
+
requiresSiteCapabilities: aboutCapabilities(),
|
|
104717
|
+
notes: ["Mission and principle copy should come from brand source material."]
|
|
104718
|
+
},
|
|
104719
|
+
exampleProps: {
|
|
104720
|
+
badgeText: "Our Mission",
|
|
104721
|
+
missionHeading: "To empower teams through practical technology",
|
|
104722
|
+
missionDescription: "We believe digital systems should make daily operations clearer, not more complicated.",
|
|
104723
|
+
missionAction: { label: "Learn More", href: "/about", variant: "default" },
|
|
104724
|
+
principles: [
|
|
104725
|
+
{
|
|
104726
|
+
number: "01",
|
|
104727
|
+
title: "Customer-Centric",
|
|
104728
|
+
description: "Start from the real work customers need to complete."
|
|
104729
|
+
},
|
|
104730
|
+
{
|
|
104731
|
+
number: "02",
|
|
104732
|
+
title: "Durable Systems",
|
|
104733
|
+
description: "Build patterns that stay maintainable as teams grow."
|
|
104734
|
+
}
|
|
104735
|
+
],
|
|
104736
|
+
visionHeading: "Our Vision",
|
|
104737
|
+
visionDescription: "A world where every team can keep its digital presence current.",
|
|
104738
|
+
visionAction: { label: "Join Us", href: "/careers", variant: "outline" }
|
|
104739
|
+
}
|
|
104740
|
+
},
|
|
104741
|
+
"about-expandable-values": {
|
|
104742
|
+
exampleUsage: `
|
|
104743
|
+
<AboutExpandableValues
|
|
104744
|
+
badgeText="Our Core Values"
|
|
104745
|
+
heading="The Principles That Guide Us"
|
|
104746
|
+
description="These values shape how we build, support, and improve every customer experience."
|
|
104747
|
+
values={[
|
|
104748
|
+
{
|
|
104749
|
+
id: "integrity",
|
|
104750
|
+
icon: "lucide/shield",
|
|
104751
|
+
title: "Integrity",
|
|
104752
|
+
shortDescription: "Do the right work the right way.",
|
|
104753
|
+
longDescription: "We make decisions that stay clear when the site grows and the team changes.",
|
|
104754
|
+
examples: ["Transparent tradeoffs", "Source-backed claims"],
|
|
104755
|
+
},
|
|
104756
|
+
{
|
|
104757
|
+
id: "momentum",
|
|
104758
|
+
icon: "lucide/zap",
|
|
104759
|
+
title: "Momentum",
|
|
104760
|
+
shortDescription: "Move quickly without losing quality.",
|
|
104761
|
+
longDescription: "We prefer reusable systems that make every future update easier.",
|
|
104762
|
+
examples: ["Reusable blocks", "Fast publishing workflows"],
|
|
104763
|
+
},
|
|
104764
|
+
]}
|
|
104765
|
+
ctaHeading="Build With These Values"
|
|
104766
|
+
ctaDescription="Turn brand principles into a maintainable digital experience."
|
|
104767
|
+
actions={[{ label: "Start a Project", href: "/contact", variant: "default" }]}
|
|
104768
|
+
/>
|
|
104769
|
+
`.trim(),
|
|
104770
|
+
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.",
|
|
104771
|
+
usageRequirements: {
|
|
104772
|
+
requiredProps: ["heading", "values"],
|
|
104773
|
+
propConstraints: {
|
|
104774
|
+
badgeText: { maxLength: 35 },
|
|
104775
|
+
heading: { required: true, maxLength: 80 },
|
|
104776
|
+
description: { maxLength: 200 },
|
|
104777
|
+
values: { required: true, minItems: 2, maxItems: 6 },
|
|
104778
|
+
"values[].id": {
|
|
104779
|
+
required: true,
|
|
104780
|
+
note: "Must be unique within the values array."
|
|
104781
|
+
},
|
|
104782
|
+
"values[].shortDescription": { maxLength: 90 },
|
|
104783
|
+
"values[].longDescription": { maxLength: 260 },
|
|
104784
|
+
"values[].examples": { maxItems: 4 },
|
|
104785
|
+
actions: { maxItems: 2 }
|
|
104786
|
+
},
|
|
104787
|
+
mediaSlots: {},
|
|
104788
|
+
requiresSiteCapabilities: aboutCapabilities(),
|
|
104789
|
+
notes: ["Values and examples should come from brand source material."]
|
|
104790
|
+
},
|
|
104791
|
+
exampleProps: {
|
|
104792
|
+
badgeText: "Our Core Values",
|
|
104793
|
+
heading: "The Principles That Guide Us",
|
|
104794
|
+
description: "These values shape how we build, support, and improve every customer experience.",
|
|
104795
|
+
values: [
|
|
104796
|
+
{
|
|
104797
|
+
id: "integrity",
|
|
104798
|
+
icon: "lucide/shield",
|
|
104799
|
+
title: "Integrity",
|
|
104800
|
+
shortDescription: "Do the right work the right way.",
|
|
104801
|
+
longDescription: "We make decisions that stay clear when the site grows and the team changes.",
|
|
104802
|
+
examples: ["Transparent tradeoffs", "Source-backed claims"]
|
|
104803
|
+
},
|
|
104804
|
+
{
|
|
104805
|
+
id: "momentum",
|
|
104806
|
+
icon: "lucide/zap",
|
|
104807
|
+
title: "Momentum",
|
|
104808
|
+
shortDescription: "Move quickly without losing quality.",
|
|
104809
|
+
longDescription: "We prefer reusable systems that make every future update easier.",
|
|
104810
|
+
examples: ["Reusable blocks", "Fast publishing workflows"]
|
|
104811
|
+
}
|
|
104812
|
+
],
|
|
104813
|
+
ctaHeading: "Build With These Values",
|
|
104814
|
+
ctaDescription: "Turn brand principles into a maintainable digital experience.",
|
|
104815
|
+
actions: [
|
|
104816
|
+
{ label: "Start a Project", href: "/contact", variant: "default" }
|
|
104817
|
+
]
|
|
104818
|
+
}
|
|
104819
|
+
},
|
|
104820
|
+
"community-initiatives": {
|
|
104821
|
+
exampleUsage: `
|
|
104822
|
+
<CommunityInitiatives
|
|
104823
|
+
badgeText="Community Impact"
|
|
104824
|
+
heading="Supporting the Communities We Serve"
|
|
104825
|
+
description="Our programs connect practical service with measurable local outcomes."
|
|
104826
|
+
categories={[
|
|
104827
|
+
{
|
|
104828
|
+
id: "food-drive",
|
|
104829
|
+
title: "Food Drive",
|
|
104830
|
+
description: "Supporting local families through coordinated food donations.",
|
|
104831
|
+
initiatives: [
|
|
104832
|
+
{
|
|
104833
|
+
id: "monthly-pantry",
|
|
104834
|
+
title: "Monthly Pantry Support",
|
|
104835
|
+
description: "A recurring program with neighborhood partners.",
|
|
104836
|
+
icon: "lucide/heart-handshake",
|
|
104837
|
+
metrics: [{ value: "2,400", label: "Meals donated" }],
|
|
104838
|
+
image: "${ABOUT_EXAMPLE_IMAGE_URL}",
|
|
104839
|
+
},
|
|
104840
|
+
],
|
|
104841
|
+
},
|
|
104842
|
+
]}
|
|
104843
|
+
ctaHeading="Partner With Us"
|
|
104844
|
+
ctaDescription="Help expand practical community programs in your area."
|
|
104845
|
+
actions={[{ label: "Get Involved", href: "/community", variant: "default" }]}
|
|
104846
|
+
/>
|
|
104847
|
+
`.trim(),
|
|
104848
|
+
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.",
|
|
104849
|
+
usageRequirements: {
|
|
104850
|
+
requiredProps: ["heading", "categories"],
|
|
104851
|
+
propConstraints: {
|
|
104852
|
+
badgeText: { maxLength: 35 },
|
|
104853
|
+
heading: { required: true, maxLength: 90 },
|
|
104854
|
+
description: { maxLength: 220 },
|
|
104855
|
+
categories: { required: true, minItems: 1, maxItems: 5 },
|
|
104856
|
+
"categories[].initiatives": { required: true, minItems: 1, maxItems: 6 },
|
|
104857
|
+
"categories[].initiatives[].metrics": {
|
|
104858
|
+
note: "Metrics must be sourced."
|
|
104859
|
+
},
|
|
104860
|
+
actions: { maxItems: 2 }
|
|
104861
|
+
},
|
|
104862
|
+
mediaSlots: {
|
|
104863
|
+
"categories[].initiatives[].image": imageSlot(
|
|
104864
|
+
"categories[].initiatives[].image",
|
|
104865
|
+
"Community initiative image.",
|
|
104866
|
+
["feature", "thumbnail"],
|
|
104867
|
+
"medium",
|
|
104868
|
+
false
|
|
104869
|
+
)
|
|
104870
|
+
},
|
|
104871
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
104872
|
+
"metrics_or_stats",
|
|
104873
|
+
"media_library"
|
|
104874
|
+
),
|
|
104875
|
+
notes: [ABOUT_MEDIA_NOTE, "Community impact claims must be sourced."]
|
|
104876
|
+
},
|
|
104877
|
+
exampleProps: {
|
|
104878
|
+
badgeText: "Community Impact",
|
|
104879
|
+
heading: "Supporting the Communities We Serve",
|
|
104880
|
+
description: "Our programs connect practical service with measurable local outcomes.",
|
|
104881
|
+
categories: [
|
|
104882
|
+
{
|
|
104883
|
+
id: "food-drive",
|
|
104884
|
+
title: "Food Drive",
|
|
104885
|
+
description: "Supporting local families through coordinated food donations.",
|
|
104886
|
+
initiatives: [
|
|
104887
|
+
{
|
|
104888
|
+
id: "monthly-pantry",
|
|
104889
|
+
title: "Monthly Pantry Support",
|
|
104890
|
+
description: "A recurring program with neighborhood partners.",
|
|
104891
|
+
icon: "lucide/heart-handshake",
|
|
104892
|
+
metrics: [{ value: "2,400", label: "Meals donated" }],
|
|
104893
|
+
image: ABOUT_EXAMPLE_IMAGE_URL
|
|
104894
|
+
}
|
|
104895
|
+
]
|
|
104896
|
+
}
|
|
104897
|
+
],
|
|
104898
|
+
ctaHeading: "Partner With Us",
|
|
104899
|
+
ctaDescription: "Help expand practical community programs in your area.",
|
|
104900
|
+
actions: [
|
|
104901
|
+
{ label: "Get Involved", href: "/community", variant: "default" }
|
|
104902
|
+
]
|
|
104903
|
+
}
|
|
104904
|
+
},
|
|
104905
|
+
"about-culture-tabs": {
|
|
104906
|
+
exampleUsage: `
|
|
104907
|
+
<AboutCultureTabs
|
|
104908
|
+
badgeText="Our Culture"
|
|
104909
|
+
heading="What Makes Us Different"
|
|
104910
|
+
description="We have built a workplace where practical innovation and clear communication matter."
|
|
104911
|
+
aspects={[
|
|
104912
|
+
{
|
|
104913
|
+
id: "innovation",
|
|
104914
|
+
title: "Innovation First",
|
|
104915
|
+
description: "Teams have room to test better ways to serve customers.",
|
|
104916
|
+
images: ["${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}"],
|
|
104917
|
+
testimonial: {
|
|
104918
|
+
quote: "The freedom to improve the work is matched by real support from the team.",
|
|
104919
|
+
author: "Sarah Chen",
|
|
104920
|
+
role: "Senior Product Designer",
|
|
104921
|
+
avatar: "${ABOUT_EXAMPLE_IMAGE_URL}",
|
|
104922
|
+
},
|
|
104923
|
+
},
|
|
104924
|
+
{
|
|
104925
|
+
id: "collaboration",
|
|
104926
|
+
title: "Collaborative Spirit",
|
|
104927
|
+
description: "Cross-functional teams share context early and often.",
|
|
104928
|
+
images: ["${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}"],
|
|
104929
|
+
testimonial: {
|
|
104930
|
+
quote: "People here are genuinely invested in helping each other succeed.",
|
|
104931
|
+
author: "Marcus Johnson",
|
|
104932
|
+
role: "Engineering Lead",
|
|
104933
|
+
avatar: "${ABOUT_EXAMPLE_IMAGE_URL}",
|
|
104934
|
+
},
|
|
104935
|
+
},
|
|
104936
|
+
]}
|
|
104937
|
+
ctaHeading="Ready to Join Our Team?"
|
|
104938
|
+
ctaDescription="We are looking for people who share these values."
|
|
104939
|
+
actions={[{ label: "View Open Positions", href: "/careers", variant: "default" }]}
|
|
104940
|
+
ctaImages={["${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}", "${ABOUT_EXAMPLE_IMAGE_URL}"]}
|
|
104941
|
+
/>
|
|
104942
|
+
`.trim(),
|
|
104943
|
+
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.",
|
|
104944
|
+
usageRequirements: {
|
|
104945
|
+
requiredProps: ["heading", "aspects"],
|
|
104946
|
+
propConstraints: {
|
|
104947
|
+
badgeText: { maxLength: 35 },
|
|
104948
|
+
heading: { required: true, maxLength: 90 },
|
|
104949
|
+
description: { maxLength: 220 },
|
|
104950
|
+
aspects: { required: true, minItems: 2, maxItems: 5 },
|
|
104951
|
+
"aspects[].id": {
|
|
104952
|
+
required: true,
|
|
104953
|
+
note: "Must be unique within the aspects array."
|
|
104954
|
+
},
|
|
104955
|
+
"aspects[].images": { required: true, minItems: 2, maxItems: 4 },
|
|
104956
|
+
"aspects[].testimonial": {
|
|
104957
|
+
required: true,
|
|
104958
|
+
note: "Must be a real sourced employee or team testimonial."
|
|
104959
|
+
},
|
|
104960
|
+
ctaImages: { minItems: 3, maxItems: 6 },
|
|
104961
|
+
actions: { maxItems: 2 }
|
|
104962
|
+
},
|
|
104963
|
+
mediaSlots: {
|
|
104964
|
+
"aspects[].images[]": imageSlot(
|
|
104965
|
+
"aspects[].images[]",
|
|
104966
|
+
"Culture aspect gallery image.",
|
|
104967
|
+
["gallery", "feature"]
|
|
104968
|
+
),
|
|
104969
|
+
"aspects[].testimonial.avatar": imageSlot(
|
|
104970
|
+
"aspects[].testimonial.avatar",
|
|
104971
|
+
"Culture testimonial author avatar.",
|
|
104972
|
+
["profile", "avatar"],
|
|
104973
|
+
"small",
|
|
104974
|
+
true,
|
|
104975
|
+
"1:1"
|
|
104976
|
+
),
|
|
104977
|
+
"ctaImages[]": imageSlot(
|
|
104978
|
+
"ctaImages[]",
|
|
104979
|
+
"Careers CTA supporting image.",
|
|
104980
|
+
["thumbnail", "gallery"],
|
|
104981
|
+
"small",
|
|
104982
|
+
false
|
|
104983
|
+
)
|
|
104984
|
+
},
|
|
104985
|
+
requiresSiteCapabilities: aboutCapabilities(
|
|
104986
|
+
"reviews_or_testimonials",
|
|
104987
|
+
"team_members",
|
|
104988
|
+
"media_library"
|
|
104989
|
+
),
|
|
104990
|
+
notes: [ABOUT_MEDIA_NOTE, "Culture testimonials and team claims must be sourced."]
|
|
104991
|
+
},
|
|
104992
|
+
exampleProps: {
|
|
104993
|
+
badgeText: "Our Culture",
|
|
104994
|
+
heading: "What Makes Us Different",
|
|
104995
|
+
description: "We have built a workplace where practical innovation and clear communication matter.",
|
|
104996
|
+
aspects: [
|
|
104997
|
+
{
|
|
104998
|
+
id: "innovation",
|
|
104999
|
+
title: "Innovation First",
|
|
105000
|
+
description: "Teams have room to test better ways to serve customers.",
|
|
105001
|
+
images: [
|
|
105002
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105003
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105004
|
+
ABOUT_EXAMPLE_IMAGE_URL
|
|
105005
|
+
],
|
|
105006
|
+
testimonial: {
|
|
105007
|
+
quote: "The freedom to improve the work is matched by real support from the team.",
|
|
105008
|
+
author: "Sarah Chen",
|
|
105009
|
+
role: "Senior Product Designer",
|
|
105010
|
+
avatar: ABOUT_EXAMPLE_IMAGE_URL
|
|
105011
|
+
}
|
|
105012
|
+
},
|
|
105013
|
+
{
|
|
105014
|
+
id: "collaboration",
|
|
105015
|
+
title: "Collaborative Spirit",
|
|
105016
|
+
description: "Cross-functional teams share context early and often.",
|
|
105017
|
+
images: [
|
|
105018
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105019
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105020
|
+
ABOUT_EXAMPLE_IMAGE_URL
|
|
105021
|
+
],
|
|
105022
|
+
testimonial: {
|
|
105023
|
+
quote: "People here are genuinely invested in helping each other succeed.",
|
|
105024
|
+
author: "Marcus Johnson",
|
|
105025
|
+
role: "Engineering Lead",
|
|
105026
|
+
avatar: ABOUT_EXAMPLE_IMAGE_URL
|
|
105027
|
+
}
|
|
105028
|
+
}
|
|
105029
|
+
],
|
|
105030
|
+
ctaHeading: "Ready to Join Our Team?",
|
|
105031
|
+
ctaDescription: "We are looking for people who share these values.",
|
|
105032
|
+
actions: [
|
|
105033
|
+
{ label: "View Open Positions", href: "/careers", variant: "default" }
|
|
105034
|
+
],
|
|
105035
|
+
ctaImages: [
|
|
105036
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105037
|
+
ABOUT_EXAMPLE_IMAGE_URL,
|
|
105038
|
+
ABOUT_EXAMPLE_IMAGE_URL
|
|
105039
|
+
]
|
|
105040
|
+
}
|
|
105041
|
+
}
|
|
105042
|
+
};
|
|
103463
105043
|
var BLOCK_REGISTRY = {
|
|
103464
105044
|
"alternating-blocks": {
|
|
103465
105045
|
id: "alternating-blocks",
|
|
@@ -103479,38 +105059,7 @@ var BLOCK_REGISTRY = {
|
|
|
103479
105059
|
category: "about",
|
|
103480
105060
|
component: AlternatingBlocks,
|
|
103481
105061
|
props: "AlternatingBlocksProps",
|
|
103482
|
-
|
|
103483
|
-
<AlternatingBlocks
|
|
103484
|
-
sections={[
|
|
103485
|
-
{
|
|
103486
|
-
content: (
|
|
103487
|
-
<div>
|
|
103488
|
-
<div className="flex items-center gap-2 mb-3">
|
|
103489
|
-
<Lightbulb className="h-4 w-4 text-primary" />
|
|
103490
|
-
<span className="text-sm font-medium text-muted-foreground">
|
|
103491
|
-
The Origin
|
|
103492
|
-
</span>
|
|
103493
|
-
</div>
|
|
103494
|
-
<h3 className="mb-3 text-2xl font-semibold tracking-tight">
|
|
103495
|
-
It started with frustration
|
|
103496
|
-
</h3>
|
|
103497
|
-
<p className="text-muted-foreground leading-relaxed">
|
|
103498
|
-
We spent years watching teams drown in tools that promised to help
|
|
103499
|
-
but only added complexity. In 2018, we decided to build something better.
|
|
103500
|
-
</p>
|
|
103501
|
-
</div>
|
|
103502
|
-
),
|
|
103503
|
-
media: <img src="..." alt="..." />,
|
|
103504
|
-
mediaLeft: false
|
|
103505
|
-
},
|
|
103506
|
-
{
|
|
103507
|
-
content: <div>...</div>,
|
|
103508
|
-
media: <img src="..." alt="..." />,
|
|
103509
|
-
mediaLeft: true
|
|
103510
|
-
}
|
|
103511
|
-
]}
|
|
103512
|
-
/>
|
|
103513
|
-
`.trim()
|
|
105062
|
+
...ABOUT_BLOCK_CONTRACTS["alternating-blocks"]
|
|
103514
105063
|
},
|
|
103515
105064
|
"about-mission-features": {
|
|
103516
105065
|
id: "about-mission-features",
|
|
@@ -103530,19 +105079,7 @@ var BLOCK_REGISTRY = {
|
|
|
103530
105079
|
category: "about",
|
|
103531
105080
|
component: AboutMissionFeatures,
|
|
103532
105081
|
props: "AboutMissionFeaturesProps",
|
|
103533
|
-
|
|
103534
|
-
<AboutMissionFeatures
|
|
103535
|
-
title="About Us"
|
|
103536
|
-
description="We make it easy to build customer portals and internal tools."
|
|
103537
|
-
missionLabel="OUR MISSION"
|
|
103538
|
-
missionText="We believe building software should be insanely easy."
|
|
103539
|
-
mainImage={{ src: "/images/team.jpg", alt: "Our team" }}
|
|
103540
|
-
features={[
|
|
103541
|
-
{ icon: "lucide/files", title: "Being radically open", description: "..." },
|
|
103542
|
-
{ icon: "lucide/settings", title: "Optimizing for empowerment", description: "..." }
|
|
103543
|
-
]}
|
|
103544
|
-
/>
|
|
103545
|
-
`.trim()
|
|
105082
|
+
...ABOUT_BLOCK_CONTRACTS["about-mission-features"]
|
|
103546
105083
|
},
|
|
103547
105084
|
"about-stats-showcase": {
|
|
103548
105085
|
id: "about-stats-showcase",
|
|
@@ -103562,17 +105099,7 @@ var BLOCK_REGISTRY = {
|
|
|
103562
105099
|
category: "about",
|
|
103563
105100
|
component: AboutStatsShowcase,
|
|
103564
105101
|
props: "AboutStatsShowcaseProps",
|
|
103565
|
-
|
|
103566
|
-
<AboutStatsShowcase
|
|
103567
|
-
title="Our Background"
|
|
103568
|
-
description="Discover how our solution simplifies complex processes."
|
|
103569
|
-
stats={[
|
|
103570
|
-
{ value: "21M", label: "Global Reach of Users" },
|
|
103571
|
-
{ value: "12+", label: "Years of Expertise" }
|
|
103572
|
-
]}
|
|
103573
|
-
logosTitle="Trusted by leading product teams worldwide."
|
|
103574
|
-
/>
|
|
103575
|
-
`.trim()
|
|
105102
|
+
...ABOUT_BLOCK_CONTRACTS["about-stats-showcase"]
|
|
103576
105103
|
},
|
|
103577
105104
|
"about-company-profile": {
|
|
103578
105105
|
id: "about-company-profile",
|
|
@@ -103592,22 +105119,7 @@ var BLOCK_REGISTRY = {
|
|
|
103592
105119
|
category: "about",
|
|
103593
105120
|
component: AboutCompanyProfile,
|
|
103594
105121
|
props: "AboutCompanyProfileProps",
|
|
103595
|
-
|
|
103596
|
-
<AboutCompanyProfile
|
|
103597
|
-
title="About Us"
|
|
103598
|
-
description="A passionate team dedicated to creating innovative solutions."
|
|
103599
|
-
breakout={{
|
|
103600
|
-
title: "Hundreds of blocks at Opensite AI",
|
|
103601
|
-
description: "Providing businesses with effective tools.",
|
|
103602
|
-
buttonText: "Discover more",
|
|
103603
|
-
buttonUrl: "#"
|
|
103604
|
-
}}
|
|
103605
|
-
achievements={[
|
|
103606
|
-
{ label: "Companies", value: "300+" },
|
|
103607
|
-
{ label: "Happy Customers", value: "99%" }
|
|
103608
|
-
]}
|
|
103609
|
-
/>
|
|
103610
|
-
`.trim()
|
|
105122
|
+
...ABOUT_BLOCK_CONTRACTS["about-company-profile"]
|
|
103611
105123
|
},
|
|
103612
105124
|
"about-vision-gallery": {
|
|
103613
105125
|
id: "about-vision-gallery",
|
|
@@ -103627,16 +105139,7 @@ var BLOCK_REGISTRY = {
|
|
|
103627
105139
|
category: "about",
|
|
103628
105140
|
component: AboutVisionGallery,
|
|
103629
105141
|
props: "AboutVisionGalleryProps",
|
|
103630
|
-
|
|
103631
|
-
<AboutVisionGallery
|
|
103632
|
-
title="About Us"
|
|
103633
|
-
subtitle="Meet our team and discover our values."
|
|
103634
|
-
visionTitle="Our Vision"
|
|
103635
|
-
visionContent="What if you could create custom software without code?"
|
|
103636
|
-
ctaTitle="Part of Our Global Team"
|
|
103637
|
-
ctaButtonText="Get to know the team"
|
|
103638
|
-
/>
|
|
103639
|
-
`.trim()
|
|
105142
|
+
...ABOUT_BLOCK_CONTRACTS["about-vision-gallery"]
|
|
103640
105143
|
},
|
|
103641
105144
|
"about-developer-story": {
|
|
103642
105145
|
id: "about-developer-story",
|
|
@@ -103656,17 +105159,7 @@ var BLOCK_REGISTRY = {
|
|
|
103656
105159
|
category: "about",
|
|
103657
105160
|
component: AboutDeveloperStory,
|
|
103658
105161
|
props: "AboutDeveloperStoryProps",
|
|
103659
|
-
|
|
103660
|
-
<AboutDeveloperStory
|
|
103661
|
-
title="Developer-Focused Solutions for Modern Teams"
|
|
103662
|
-
description="We build tools that developers love."
|
|
103663
|
-
primaryCta={{ text: "Get Started", url: "#" }}
|
|
103664
|
-
stats={[
|
|
103665
|
-
{ value: "200+", label: "Projects Completed" },
|
|
103666
|
-
{ value: "50+", label: "Happy Clients" }
|
|
103667
|
-
]}
|
|
103668
|
-
/>
|
|
103669
|
-
`.trim()
|
|
105162
|
+
...ABOUT_BLOCK_CONTRACTS["about-developer-story"]
|
|
103670
105163
|
},
|
|
103671
105164
|
"about-story-gallery": {
|
|
103672
105165
|
id: "about-story-gallery",
|
|
@@ -103685,16 +105178,7 @@ var BLOCK_REGISTRY = {
|
|
|
103685
105178
|
category: "about",
|
|
103686
105179
|
component: AboutStoryGallery,
|
|
103687
105180
|
props: "AboutStoryGalleryProps",
|
|
103688
|
-
|
|
103689
|
-
<AboutStoryGallery
|
|
103690
|
-
title="Our Story"
|
|
103691
|
-
description="We started with a vision to transform how businesses build software."
|
|
103692
|
-
images={[
|
|
103693
|
-
{ src: "/images/story1.jpg", alt: "Our beginning" },
|
|
103694
|
-
{ src: "/images/story2.jpg", alt: "Growth phase" }
|
|
103695
|
-
]}
|
|
103696
|
-
/>
|
|
103697
|
-
`.trim()
|
|
105181
|
+
...ABOUT_BLOCK_CONTRACTS["about-story-gallery"]
|
|
103698
105182
|
},
|
|
103699
105183
|
"about-streamline-team": {
|
|
103700
105184
|
id: "about-streamline-team",
|
|
@@ -103714,17 +105198,7 @@ var BLOCK_REGISTRY = {
|
|
|
103714
105198
|
category: "about",
|
|
103715
105199
|
component: AboutStreamlineTeam,
|
|
103716
105200
|
props: "AboutStreamlineTeamProps",
|
|
103717
|
-
|
|
103718
|
-
<AboutStreamlineTeam
|
|
103719
|
-
title="Streamline Your Workflow"
|
|
103720
|
-
description="Our platform helps teams work smarter, not harder."
|
|
103721
|
-
features={[
|
|
103722
|
-
{ icon: "lucide/zap", title: "Lightning Fast", description: "Build in minutes." },
|
|
103723
|
-
{ icon: "lucide/shield", title: "Enterprise Security", description: "Bank-grade security." }
|
|
103724
|
-
]}
|
|
103725
|
-
teamCta={{ text: "Join Our Team", url: "#" }}
|
|
103726
|
-
/>
|
|
103727
|
-
`.trim()
|
|
105201
|
+
...ABOUT_BLOCK_CONTRACTS["about-streamline-team"]
|
|
103728
105202
|
},
|
|
103729
105203
|
"about-developer-profile": {
|
|
103730
105204
|
id: "about-developer-profile",
|
|
@@ -103744,17 +105218,7 @@ var BLOCK_REGISTRY = {
|
|
|
103744
105218
|
category: "about",
|
|
103745
105219
|
component: AboutDeveloperProfile,
|
|
103746
105220
|
props: "AboutDeveloperProfileProps",
|
|
103747
|
-
|
|
103748
|
-
<AboutDeveloperProfile
|
|
103749
|
-
name="Alex Johnson"
|
|
103750
|
-
role="Full-Stack Developer"
|
|
103751
|
-
bio="I'm a passionate developer with 8+ years of experience."
|
|
103752
|
-
skills={["React", "TypeScript", "Node.js", "Python"]}
|
|
103753
|
-
socialLinks={[
|
|
103754
|
-
{ icon: "lucide/github", url: "#", label: "GitHub" }
|
|
103755
|
-
]}
|
|
103756
|
-
/>
|
|
103757
|
-
`.trim()
|
|
105221
|
+
...ABOUT_BLOCK_CONTRACTS["about-developer-profile"]
|
|
103758
105222
|
},
|
|
103759
105223
|
"about-startup-team": {
|
|
103760
105224
|
id: "about-startup-team",
|
|
@@ -103774,19 +105238,7 @@ var BLOCK_REGISTRY = {
|
|
|
103774
105238
|
category: "about",
|
|
103775
105239
|
component: AboutStartupTeam,
|
|
103776
105240
|
props: "AboutStartupTeamProps",
|
|
103777
|
-
|
|
103778
|
-
<AboutStartupTeam
|
|
103779
|
-
title="Building the Future of Software Development"
|
|
103780
|
-
description="We're a team of passionate builders."
|
|
103781
|
-
sidebarLinks={[
|
|
103782
|
-
{ label: "About Us", href: "#about", isActive: true },
|
|
103783
|
-
{ label: "Our Team", href: "#team" }
|
|
103784
|
-
]}
|
|
103785
|
-
teamMembers={[
|
|
103786
|
-
{ name: "Sarah Chen", role: "CEO & Co-Founder" }
|
|
103787
|
-
]}
|
|
103788
|
-
/>
|
|
103789
|
-
`.trim()
|
|
105241
|
+
...ABOUT_BLOCK_CONTRACTS["about-startup-team"]
|
|
103790
105242
|
},
|
|
103791
105243
|
"about-minimal-story": {
|
|
103792
105244
|
id: "about-minimal-story",
|
|
@@ -103805,16 +105257,7 @@ var BLOCK_REGISTRY = {
|
|
|
103805
105257
|
category: "about",
|
|
103806
105258
|
component: AboutMinimalStory,
|
|
103807
105259
|
props: "AboutMinimalStoryProps",
|
|
103808
|
-
|
|
103809
|
-
<AboutMinimalStory
|
|
103810
|
-
title="Our Story"
|
|
103811
|
-
content="Every great company starts with a simple idea."
|
|
103812
|
-
author={{
|
|
103813
|
-
name: "Jordan Mitchell",
|
|
103814
|
-
role: "Founder & CEO"
|
|
103815
|
-
}}
|
|
103816
|
-
/>
|
|
103817
|
-
`.trim()
|
|
105260
|
+
...ABOUT_BLOCK_CONTRACTS["about-minimal-story"]
|
|
103818
105261
|
},
|
|
103819
105262
|
"about-story-hero": {
|
|
103820
105263
|
id: "about-story-hero",
|
|
@@ -103833,17 +105276,7 @@ var BLOCK_REGISTRY = {
|
|
|
103833
105276
|
category: "about",
|
|
103834
105277
|
component: AboutStoryHero,
|
|
103835
105278
|
props: "AboutStoryHeroProps",
|
|
103836
|
-
|
|
103837
|
-
<AboutStoryHero
|
|
103838
|
-
title="Our Story"
|
|
103839
|
-
subtitle="Building the future, one line of code at a time"
|
|
103840
|
-
content="We started with a bold idea..."
|
|
103841
|
-
teamInfo={{
|
|
103842
|
-
title: "50+ Team Members",
|
|
103843
|
-
description: "Working across 12 countries"
|
|
103844
|
-
}}
|
|
103845
|
-
/>
|
|
103846
|
-
`.trim()
|
|
105279
|
+
...ABOUT_BLOCK_CONTRACTS["about-story-hero"]
|
|
103847
105280
|
},
|
|
103848
105281
|
"about-stats-sidebar": {
|
|
103849
105282
|
id: "about-stats-sidebar",
|
|
@@ -103862,16 +105295,7 @@ var BLOCK_REGISTRY = {
|
|
|
103862
105295
|
category: "about",
|
|
103863
105296
|
component: AboutStatsSidebar,
|
|
103864
105297
|
props: "AboutStatsSidebarProps",
|
|
103865
|
-
|
|
103866
|
-
<AboutStatsSidebar
|
|
103867
|
-
title="Why Choose Us"
|
|
103868
|
-
description="We've built a platform that scales with your needs."
|
|
103869
|
-
stats={[
|
|
103870
|
-
{ icon: "lucide/users", value: "10M+", label: "Active Users" },
|
|
103871
|
-
{ icon: "lucide/globe", value: "150+", label: "Countries" }
|
|
103872
|
-
]}
|
|
103873
|
-
/>
|
|
103874
|
-
`.trim()
|
|
105298
|
+
...ABOUT_BLOCK_CONTRACTS["about-stats-sidebar"]
|
|
103875
105299
|
},
|
|
103876
105300
|
"about-interactive-tabs": {
|
|
103877
105301
|
id: "about-interactive-tabs",
|
|
@@ -103890,22 +105314,7 @@ var BLOCK_REGISTRY = {
|
|
|
103890
105314
|
category: "about",
|
|
103891
105315
|
component: AboutInteractiveTabs,
|
|
103892
105316
|
props: "AboutInteractiveTabsProps",
|
|
103893
|
-
|
|
103894
|
-
<AboutInteractiveTabs
|
|
103895
|
-
title="Discover Our Story"
|
|
103896
|
-
subtitle="Learn more about who we are"
|
|
103897
|
-
tabs={[
|
|
103898
|
-
{
|
|
103899
|
-
id: "work",
|
|
103900
|
-
label: "Our Work",
|
|
103901
|
-
content: {
|
|
103902
|
-
title: "Crafting Digital Experiences",
|
|
103903
|
-
description: "We create beautiful, functional products."
|
|
103904
|
-
}
|
|
103905
|
-
}
|
|
103906
|
-
]}
|
|
103907
|
-
/>
|
|
103908
|
-
`.trim()
|
|
105317
|
+
...ABOUT_BLOCK_CONTRACTS["about-interactive-tabs"]
|
|
103909
105318
|
},
|
|
103910
105319
|
"about-mission-dual-image": {
|
|
103911
105320
|
id: "about-mission-dual-image",
|
|
@@ -103924,15 +105333,7 @@ var BLOCK_REGISTRY = {
|
|
|
103924
105333
|
category: "about",
|
|
103925
105334
|
component: AboutMissionDualImage,
|
|
103926
105335
|
props: "AboutMissionDualImageProps",
|
|
103927
|
-
|
|
103928
|
-
<AboutMissionDualImage
|
|
103929
|
-
missionTitle="Our Mission"
|
|
103930
|
-
missionContent="To democratize software development."
|
|
103931
|
-
visionTitle="Our Vision"
|
|
103932
|
-
visionContent="A world where every idea can become reality."
|
|
103933
|
-
cta={{ text: "Join Our Journey", url: "#" }}
|
|
103934
|
-
/>
|
|
103935
|
-
`.trim()
|
|
105336
|
+
...ABOUT_BLOCK_CONTRACTS["about-mission-dual-image"]
|
|
103936
105337
|
},
|
|
103937
105338
|
"about-story-expertise": {
|
|
103938
105339
|
id: "about-story-expertise",
|
|
@@ -103953,7 +105354,7 @@ var BLOCK_REGISTRY = {
|
|
|
103953
105354
|
category: "about",
|
|
103954
105355
|
component: AboutStoryExpertise,
|
|
103955
105356
|
props: "AboutStoryExpertiseProps",
|
|
103956
|
-
|
|
105357
|
+
...ABOUT_BLOCK_CONTRACTS["about-story-expertise"]
|
|
103957
105358
|
},
|
|
103958
105359
|
"about-network-spotlight": {
|
|
103959
105360
|
id: "about-network-spotlight",
|
|
@@ -103974,7 +105375,7 @@ var BLOCK_REGISTRY = {
|
|
|
103974
105375
|
category: "about",
|
|
103975
105376
|
component: AboutNetworkSpotlight,
|
|
103976
105377
|
props: "AboutNetworkSpotlightProps",
|
|
103977
|
-
|
|
105378
|
+
...ABOUT_BLOCK_CONTRACTS["about-network-spotlight"]
|
|
103978
105379
|
},
|
|
103979
105380
|
"about-location-info-hero": {
|
|
103980
105381
|
id: "about-location-info-hero",
|
|
@@ -103995,7 +105396,7 @@ var BLOCK_REGISTRY = {
|
|
|
103995
105396
|
category: "about",
|
|
103996
105397
|
component: AboutLocationInfoHero,
|
|
103997
105398
|
props: "AboutLocationInfoHeroProps",
|
|
103998
|
-
|
|
105399
|
+
...ABOUT_BLOCK_CONTRACTS["about-location-info-hero"]
|
|
103999
105400
|
},
|
|
104000
105401
|
"media-hover-ctas": {
|
|
104001
105402
|
id: "media-hover-ctas",
|
|
@@ -112031,17 +113432,27 @@ var BLOCK_REGISTRY = {
|
|
|
112031
113432
|
heading="Compassionate care for your mental wellbeing"
|
|
112032
113433
|
description="Our team of experienced mental health professionals is dedicated to providing compassionate care and support to individuals in need."
|
|
112033
113434
|
smallImages={[
|
|
112034
|
-
{
|
|
112035
|
-
|
|
113435
|
+
{
|
|
113436
|
+
src: "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp",
|
|
113437
|
+
alt: "Dr. Smith",
|
|
113438
|
+
},
|
|
113439
|
+
{
|
|
113440
|
+
src: "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp",
|
|
113441
|
+
alt: "Dr. Johnson",
|
|
113442
|
+
},
|
|
112036
113443
|
]}
|
|
112037
113444
|
testimonial={{
|
|
112038
113445
|
quote:
|
|
112039
113446
|
"The support I received changed my life. I'm so grateful for the compassionate care.",
|
|
112040
113447
|
author: "Sarah M.",
|
|
112041
113448
|
role: "Client",
|
|
112042
|
-
avatarSrc:
|
|
113449
|
+
avatarSrc:
|
|
113450
|
+
"https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp",
|
|
113451
|
+
}}
|
|
113452
|
+
featureImage={{
|
|
113453
|
+
src: "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp",
|
|
113454
|
+
alt: "Mental health support",
|
|
112043
113455
|
}}
|
|
112044
|
-
featureImage={{ src: "/images/feature.jpg", alt: "Mental health support" }}
|
|
112045
113456
|
actions={[
|
|
112046
113457
|
{ label: "Get Started", href: "#", variant: "default" },
|
|
112047
113458
|
{ label: "Talk to Sales", href: "#", variant: "outline" },
|
|
@@ -112049,7 +113460,7 @@ var BLOCK_REGISTRY = {
|
|
|
112049
113460
|
background="gray"
|
|
112050
113461
|
/>
|
|
112051
113462
|
`.trim(),
|
|
112052
|
-
importantUsageNotes: "Only use if you have a valid testimonial - DO NOT MAKE UP A TESTIMONIAL/REVIEW. Supply exactly 2 images to the 'smallImages' prop and ensure you supply a 'featureImage' prop object. Do not exceed 40 characters for the 'heading' prop. Do not exceed 130 characters for the 'description' prop. If you supply multiple 'actions', ensure to use a variant of 'default' for the first action, and 'outline' for the second action to ensure proper visual distinction between the two CTAs. Follow the example props closely for this block.",
|
|
113463
|
+
importantUsageNotes: "Only use if you have a valid testimonial - DO NOT MAKE UP A TESTIMONIAL/REVIEW. Supply exactly 2 images to the 'smallImages' prop and ensure you supply a 'featureImage' prop object. Do not exceed 40 characters for the 'heading' prop. Do not exceed 130 characters for the 'description' prop. If you supply multiple 'actions', ensure to use a variant of 'default' for the first action, and 'outline' for the second action to ensure proper visual distinction between the two CTAs. All media src values must be absolute URLs to real CDN assets \u2014 never relative paths (e.g. '/images/...') or placeholder strings. Follow the example props closely for this block.",
|
|
112053
113464
|
usageRequirements: {
|
|
112054
113465
|
requiredProps: ["heading", "smallImages", "featureImage", "testimonial"],
|
|
112055
113466
|
propConstraints: {
|
|
@@ -120089,15 +121500,7 @@ var BLOCK_REGISTRY = {
|
|
|
120089
121500
|
category: "about",
|
|
120090
121501
|
component: AboutSplitHero,
|
|
120091
121502
|
props: "AboutSplitHeroProps",
|
|
120092
|
-
|
|
120093
|
-
<AboutSplitHero
|
|
120094
|
-
brandText="Business"
|
|
120095
|
-
brandHighlight="PRO"
|
|
120096
|
-
heading="Achieve More with Elite Access Pro"
|
|
120097
|
-
description="Enhance your career hunt with increased visibility."
|
|
120098
|
-
ctaText="Upgrade to premium"
|
|
120099
|
-
ctaUrl="/upgrade"
|
|
120100
|
-
/>`.trim()
|
|
121503
|
+
...ABOUT_BLOCK_CONTRACTS["about-split-hero"]
|
|
120101
121504
|
},
|
|
120102
121505
|
"about-mission-principles": {
|
|
120103
121506
|
id: "about-mission-principles",
|
|
@@ -120117,15 +121520,7 @@ var BLOCK_REGISTRY = {
|
|
|
120117
121520
|
category: "about",
|
|
120118
121521
|
component: AboutMissionPrinciples,
|
|
120119
121522
|
props: "AboutMissionPrinciplesProps",
|
|
120120
|
-
|
|
120121
|
-
<AboutMissionPrinciples
|
|
120122
|
-
badgeText="Our Mission"
|
|
120123
|
-
missionHeading="To empower people through technology"
|
|
120124
|
-
missionDescription="We believe technology should serve humanity."
|
|
120125
|
-
principles={[
|
|
120126
|
-
{ number: "01", title: "Customer-Centric", description: "..." },
|
|
120127
|
-
]}
|
|
120128
|
-
/>`.trim()
|
|
121523
|
+
...ABOUT_BLOCK_CONTRACTS["about-mission-principles"]
|
|
120129
121524
|
},
|
|
120130
121525
|
"about-expandable-values": {
|
|
120131
121526
|
id: "about-expandable-values",
|
|
@@ -120145,21 +121540,7 @@ var BLOCK_REGISTRY = {
|
|
|
120145
121540
|
category: "about",
|
|
120146
121541
|
component: AboutExpandableValues,
|
|
120147
121542
|
props: "AboutExpandableValuesProps",
|
|
120148
|
-
|
|
120149
|
-
<AboutExpandableValues
|
|
120150
|
-
badgeText="Our Core Values"
|
|
120151
|
-
heading="The Principles That Guide Us"
|
|
120152
|
-
values={[
|
|
120153
|
-
{
|
|
120154
|
-
id: "integrity",
|
|
120155
|
-
icon: "lucide/shield",
|
|
120156
|
-
title: "Integrity",
|
|
120157
|
-
shortDescription: "Doing what's right.",
|
|
120158
|
-
longDescription: "We believe in honesty...",
|
|
120159
|
-
examples: ["Transparent pricing", "Honest communication"],
|
|
120160
|
-
},
|
|
120161
|
-
]}
|
|
120162
|
-
/>`.trim()
|
|
121543
|
+
...ABOUT_BLOCK_CONTRACTS["about-expandable-values"]
|
|
120163
121544
|
},
|
|
120164
121545
|
"community-initiatives": {
|
|
120165
121546
|
id: "community-initiatives",
|
|
@@ -120178,19 +121559,7 @@ var BLOCK_REGISTRY = {
|
|
|
120178
121559
|
category: "about",
|
|
120179
121560
|
component: CommunityInitiatives,
|
|
120180
121561
|
props: "CommunityInitiativesProps",
|
|
120181
|
-
|
|
120182
|
-
<CommunityInitiatives
|
|
120183
|
-
badgeText="Food Drive"
|
|
120184
|
-
heading="Supporting Our Community"
|
|
120185
|
-
categories={[
|
|
120186
|
-
{
|
|
120187
|
-
id: "food-drive",
|
|
120188
|
-
title: "Food Drive",
|
|
120189
|
-
description: "Supporting our community through food donations.",
|
|
120190
|
-
initiatives: [...]
|
|
120191
|
-
},
|
|
120192
|
-
]}
|
|
120193
|
-
/>`.trim()
|
|
121562
|
+
...ABOUT_BLOCK_CONTRACTS["community-initiatives"]
|
|
120194
121563
|
},
|
|
120195
121564
|
"about-culture-tabs": {
|
|
120196
121565
|
id: "about-culture-tabs",
|
|
@@ -120210,20 +121579,7 @@ var BLOCK_REGISTRY = {
|
|
|
120210
121579
|
category: "about",
|
|
120211
121580
|
component: AboutCultureTabs,
|
|
120212
121581
|
props: "AboutCultureTabsProps",
|
|
120213
|
-
|
|
120214
|
-
<AboutCultureTabs
|
|
120215
|
-
badgeText="Our Culture"
|
|
120216
|
-
heading="What Makes Us Different"
|
|
120217
|
-
aspects={[
|
|
120218
|
-
{
|
|
120219
|
-
id: "innovation",
|
|
120220
|
-
title: "Innovation First",
|
|
120221
|
-
description: "We believe in challenging the status quo.",
|
|
120222
|
-
images: [...],
|
|
120223
|
-
testimonial: { quote: "...", author: "...", role: "...", avatar: "..." },
|
|
120224
|
-
},
|
|
120225
|
-
]}
|
|
120226
|
-
/>`.trim()
|
|
121582
|
+
...ABOUT_BLOCK_CONTRACTS["about-culture-tabs"]
|
|
120227
121583
|
},
|
|
120228
121584
|
// New Feature components
|
|
120229
121585
|
"feature-animated-carousel": {
|