Merge pull request #457 from learnhouse/feat/landing-pages

Landing pages
This commit is contained in:
Badr B. 2025-03-06 10:10:22 +01:00 committed by GitHub
commit 6d770698d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 3008 additions and 396 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,91 @@
export interface LandingBackground {
type: 'solid' | 'gradient' | 'image';
color?: string;
colors?: Array<string>;
direction?: string;
image?: string;
}
export interface LandingTestimonialContent {
text: string;
author: string;
}
export interface LandingImage {
url: string;
alt: string;
}
export interface LandingHeading {
text: string;
color: string;
size: string;
}
export interface LandingButton {
text: string;
link: string;
color: string;
background: string;
}
export interface LandingLogos {
type: 'logos';
title: string;
logos: LandingImage[];
}
export interface LandingUsers {
user_uuid: string;
name: string;
description: string;
image_url: string;
}
export interface LandingPeople {
type: 'people';
title: string;
people: LandingUsers[];
}
export interface LandingTextAndImageSection {
type: 'text-and-image';
title: string;
text: string;
flow: 'left' | 'right';
image: LandingImage;
buttons: LandingButton[];
}
export interface LandingCourse {
course_uuid: string;
}
export interface LandingFeaturedCourses {
type: 'featured-courses';
courses: LandingCourse[];
title: string;
}
export interface LandingHeroSection {
type: 'hero';
title: string;
background: LandingBackground;
heading: LandingHeading;
subheading: LandingHeading;
buttons: LandingButton[];
illustration?: {
image: LandingImage;
position: 'left' | 'right';
verticalAlign: 'top' | 'center' | 'bottom';
size: 'small' | 'medium' | 'large';
};
contentAlign?: 'left' | 'center' | 'right';
}
export type LandingSection = LandingTextAndImageSection | LandingHeroSection | LandingLogos | LandingPeople | LandingFeaturedCourses;
export interface LandingObject {
sections: LandingSection[];
enabled?: boolean;
}