+
-
- {title}
-
-
+ className='absolute inset-0 flex flex-col items-center justify-center space-y-10 xl:justify-start xl:top-72'>
+
+
+ {title}
+
+
+
+
+
)
diff --git a/src/components/ui/organisms/lists/illustration/index.tsx b/src/components/ui/organisms/lists/illustration/index.tsx
index 4e688fcc..8ca23cab 100644
--- a/src/components/ui/organisms/lists/illustration/index.tsx
+++ b/src/components/ui/organisms/lists/illustration/index.tsx
@@ -16,14 +16,18 @@ export default function IllustrationCardList({theme='dark', title, illustrationC
- {illustrationCards.map((card) =>
-
- )}
+ theme={theme}
+ classNameText={cn(theme === 'dark' ? 'text-white' : 'text-blue-dark')}
+ />
+
+ {illustrationCards.map((card) =>
+
+ )}
+
)
}
diff --git a/src/components/ui/organisms/lists/masonry/index.tsx b/src/components/ui/organisms/lists/masonry/index.tsx
index e7fe2b9a..3c47b342 100644
--- a/src/components/ui/organisms/lists/masonry/index.tsx
+++ b/src/components/ui/organisms/lists/masonry/index.tsx
@@ -3,14 +3,16 @@ import Masonry, {ResponsiveMasonry} from 'react-responsive-masonry'
export default function MasonryLayout({children}: {children: ReactNode}) {
return (
-
-
-
- {children}
-
-
+
)
}
diff --git a/src/components/ui/organisms/lists/related/base.tsx b/src/components/ui/organisms/lists/related/base.tsx
index 81872939..9054e2f8 100644
--- a/src/components/ui/organisms/lists/related/base.tsx
+++ b/src/components/ui/organisms/lists/related/base.tsx
@@ -7,11 +7,13 @@ export type RelatedListProps = {
}
export default function RelatedList({title, subtitle, children}: RelatedListProps) {
- return (
-
- {title}
-
- {subtitle &&
{subtitle}
}
+ return (
+
+
+ {title}
+
+ {subtitle &&
{subtitle}
}
+
{children}
)
}
diff --git a/src/components/ui/organisms/lists/related/services.tsx b/src/components/ui/organisms/lists/related/services.tsx
index e5b05fb4..746cfea2 100644
--- a/src/components/ui/organisms/lists/related/services.tsx
+++ b/src/components/ui/organisms/lists/related/services.tsx
@@ -1,18 +1,14 @@
import {Service} from '@/models/service.model'
-import RelatedList from './base'
import ServiceList from '../service'
-import useTranslation from 'next-translate/useTranslation'
export type RelatedServicesProps = {
services: Array
}
export default function RelatedServices({services}: RelatedServicesProps) {
- const {t} = useTranslation('common')
- return (
-
- )
+ return (
+
+ )
}
diff --git a/src/components/ui/organisms/lists/related/solutions.tsx b/src/components/ui/organisms/lists/related/solutions.tsx
index ae69b4e0..76211f31 100644
--- a/src/components/ui/organisms/lists/related/solutions.tsx
+++ b/src/components/ui/organisms/lists/related/solutions.tsx
@@ -1,18 +1,14 @@
import {Solution} from '@/models/solution.model'
-import RelatedList from './base'
import SolutionList from '../solution'
-import useTranslation from 'next-translate/useTranslation'
export type RelatedSolutionsProps = {
solutions: Array
}
export default function RelatedSolutions({solutions}: RelatedSolutionsProps) {
- const {t} = useTranslation('common')
- return (
-
- )
+ return (
+
+ )
}
diff --git a/src/components/ui/organisms/lists/service/index.tsx b/src/components/ui/organisms/lists/service/index.tsx
index fa5a4dd9..458c5d55 100644
--- a/src/components/ui/organisms/lists/service/index.tsx
+++ b/src/components/ui/organisms/lists/service/index.tsx
@@ -1,20 +1,24 @@
import {Service} from '@/models/service.model'
-import MasonryLayout from '../masonry'
-import ServiceCard from '@/components/ui/molecules/cards/service'
+import IllustrationCardList from '../illustration'
export type ServiceListProps = {
services: Array
+ title?: string
}
-export default function ServiceList({services}: ServiceListProps) {
+export default function ServiceList({services, title}: ServiceListProps) {
+ const cards = services.map((service, index) => ({
+ title: service.title,
+ description: service.description,
+ illustration: service.image,
+ number: index+1,
+ href: `/services/${service.slug}`
+ }))
+
return (
-
- {services.map((service, index) => (
-
- ))}
-
+
)
}
diff --git a/src/components/ui/organisms/lists/solution/index.tsx b/src/components/ui/organisms/lists/solution/index.tsx
index f5ee0da6..472f807b 100644
--- a/src/components/ui/organisms/lists/solution/index.tsx
+++ b/src/components/ui/organisms/lists/solution/index.tsx
@@ -1,20 +1,25 @@
import {Solution} from '@/models/solution.model'
-import MasonryLayout from '../masonry'
-import SolutionCard from '@/components/ui/molecules/cards/solution'
+import IllustrationCardList from '../illustration'
export type SolutionListProps = {
- solutions: Array
+ solutions: Array,
+ title?: string
}
-export default function SolutionList({solutions}: SolutionListProps) {
+export default function SolutionList({solutions, title}: SolutionListProps) {
+ const cards = solutions.map((solution, index) => ({
+ title: solution.title,
+ description: solution.description,
+ illustration: solution.image,
+ number: index+1,
+ href: `/solutions/${solution.slug}`
+ }))
+
return (
-
- {solutions.map((solution, index) => (
-
- ))}
-
+
)
}
diff --git a/src/components/ui/svgs/logos/56k.tsx b/src/components/ui/svgs/logos/56k.tsx
index 5824a0cf..302499db 100644
--- a/src/components/ui/svgs/logos/56k.tsx
+++ b/src/components/ui/svgs/logos/56k.tsx
@@ -9,7 +9,7 @@ export function Logo(props: IconProps) {
x='0px'
y='0px'
viewBox='0 0 194 40.6'
- fill='#002E6E'
+ fill='currentColor'
{...props}
>
diff --git a/src/models/link.model.ts b/src/models/link.model.ts
index 31778a7b..4532a00c 100644
--- a/src/models/link.model.ts
+++ b/src/models/link.model.ts
@@ -1,9 +1,6 @@
-import {ReactNode} from 'react'
-
export type LinkProps = {
href: string
- children: ReactNode
+ children: React.ReactNode
alt?: string
className?: string
- children?: React.ReactNode
}
diff --git a/src/pages/blog/index.tsx b/src/pages/blog/index.tsx
index 600d9405..5f31fd91 100644
--- a/src/pages/blog/index.tsx
+++ b/src/pages/blog/index.tsx
@@ -3,8 +3,8 @@ import {PageProps} from '@/models/page.mode'
import {getPageProps} from '@/utils/cms/endpoints'
import {pageRenderer} from '@/utils/cms/renderer/components'
-export default function BlogPage({components, openGraph}: PageProps) {
- return pageRenderer(components, openGraph, 'CenteredLayout')
+export default function BlogPage({layout, components, openGraph}: PageProps) {
+ return pageRenderer(components, openGraph, layout)
}
export async function getStaticProps(context: GetStaticPropsContext) {
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 791f1a60..9e419fdc 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -4,7 +4,7 @@ import {getPageProps} from '@/utils/cms/endpoints'
import {pageRenderer} from '@/utils/cms/renderer/components'
export default function HomePage({components, openGraph, layout}: PageProps) {
- return pageRenderer(components, openGraph, layout)
+ return pageRenderer(components, openGraph, layout, true)
}
export async function getStaticProps(context: GetStaticPropsContext) {
diff --git a/src/pages/services/[service].tsx b/src/pages/services/[service].tsx
index cdec92f0..2786e064 100644
--- a/src/pages/services/[service].tsx
+++ b/src/pages/services/[service].tsx
@@ -5,8 +5,8 @@ import {getPageProps} from '@/utils/cms/endpoints'
import {pageRenderer} from '@/utils/cms/renderer/components'
import {strapiFetcher} from '../../../config'
-export default function ServicePage({components, openGraph}: PageProps) {
- return pageRenderer(components, openGraph, 'CenteredLayout')
+export default function ServicePage({layout, components, openGraph}: PageProps) {
+ return pageRenderer(components, openGraph, layout, true)
}
export async function getStaticPaths() {
diff --git a/src/pages/services/index.tsx b/src/pages/services/index.tsx
index 3423163e..e5e2ecf9 100644
--- a/src/pages/services/index.tsx
+++ b/src/pages/services/index.tsx
@@ -3,8 +3,8 @@ import {PageProps} from '@/models/page.mode'
import {getPageProps} from '@/utils/cms/endpoints'
import {pageRenderer} from '@/utils/cms/renderer/components'
-export default function ServicesPage({components, openGraph}: PageProps) {
- return pageRenderer(components, openGraph, 'CenteredLayout')
+export default function ServicesPage({layout, components, openGraph}: PageProps) {
+ return pageRenderer(components, openGraph, layout)
}
export async function getStaticProps(context: GetStaticPropsContext) {
diff --git a/src/pages/solutions/[solution].tsx b/src/pages/solutions/[solution].tsx
index 2410d510..03be7015 100644
--- a/src/pages/solutions/[solution].tsx
+++ b/src/pages/solutions/[solution].tsx
@@ -5,8 +5,8 @@ import {getPageProps} from '@/utils/cms/endpoints'
import {pageRenderer} from '@/utils/cms/renderer/components'
import {strapiFetcher} from '../../../config'
-export default function SolutionPage({components, openGraph}: PageProps) {
- return pageRenderer(components, openGraph, 'CenteredLayout')
+export default function SolutionPage({layout, components, openGraph}: PageProps) {
+ return pageRenderer(components, openGraph, layout, true)
}
export async function getStaticPaths() {
diff --git a/src/pages/solutions/index.tsx b/src/pages/solutions/index.tsx
index ac33eae6..863b398b 100644
--- a/src/pages/solutions/index.tsx
+++ b/src/pages/solutions/index.tsx
@@ -3,8 +3,8 @@ import {PageProps} from '@/models/page.mode'
import {getPageProps} from '@/utils/cms/endpoints'
import {pageRenderer} from '@/utils/cms/renderer/components'
-export default function SolutionsPage({components, openGraph}: PageProps) {
- return pageRenderer(components, openGraph, 'CenteredLayout')
+export default function SolutionsPage({layout, components, openGraph}: PageProps) {
+ return pageRenderer(components, openGraph, layout, true)
}
export async function getStaticProps(context: GetStaticPropsContext) {
diff --git a/src/utils/cms/renderer/blueprints.ts b/src/utils/cms/renderer/blueprints.ts
index 410c314c..0e7cd4dd 100644
--- a/src/utils/cms/renderer/blueprints.ts
+++ b/src/utils/cms/renderer/blueprints.ts
@@ -1,9 +1,11 @@
+import {MarkdownViewer} from '@/components/ui/molecules/mardown'
import {z} from 'zod'
import ArticleContentSection from '@/components/ui/molecules/article/content-section'
import ArticleList from '@/components/ui/organisms/lists/article'
import BackgroundImage from '@/components/ui/atoms/background-image'
+import BasicHero from '@/components/ui/organisms/heros/basic'
import CompanyList from '@/components/ui/organisms/lists/company'
-import FeatureList from '@/components/ui/organisms/lists/feature'
+import FeaturesHero from '@/components/ui/organisms/heros/features'
import Footer from '@/components/ui/organisms/footer'
import Header from '@/components/ui/organisms/header'
import HeroWithImageTiles from '@/components/ui/organisms/heros/hero-with-image-tiles'
@@ -273,21 +275,6 @@ export const tagsFilterBlueprint: ComponentBlueprint = {
}
}
-export const featureListBlueprint: ComponentBlueprint = {
- component: FeatureList,
- props: {
- title: 'title',
- subtitle: 'subtitle',
- features: [
- {
- name: 'name',
- description: 'description',
- icon: iconBlueprint
- }
- ]
- }
-}
-
export const articleListBlueprint: ComponentBlueprint = {
component: ArticleList,
props: {
@@ -426,6 +413,31 @@ export const homeHeroBlueprint: ComponentBlueprint = {
}
}
+export const basicHeroBlueprint: ComponentBlueprint = {
+ component: BasicHero,
+ props: {
+ title: 'title',
+ subtitle: 'subtitle',
+ image: imageBlueprint
+ }
+}
+
+export const featuresHeroBlueprint: ComponentBlueprint = {
+ component: FeaturesHero,
+ props: {
+ title: 'title',
+ subtitle: 'subtitle',
+ image: imageBlueprint,
+ features: [
+ {
+ name: 'name',
+ description: 'description',
+ icon: iconBlueprint
+ }
+ ]
+ }
+}
+
export const heroWithImageTilesBlueprint: ComponentBlueprint = {
component: HeroWithImageTiles,
props: {
@@ -477,3 +489,10 @@ export const teamListBlueprint: ComponentBlueprint = {
joinTeamCTATitle: 'joinTeamCTATitle'
}
}
+
+export const markdownViewerBlueprint: ComponentBlueprint = {
+ component: MarkdownViewer,
+ props: {
+ content: 'content'
+ }
+}
diff --git a/src/utils/cms/renderer/components.tsx b/src/utils/cms/renderer/components.tsx
index f8461349..4a8cd9fb 100644
--- a/src/utils/cms/renderer/components.tsx
+++ b/src/utils/cms/renderer/components.tsx
@@ -3,14 +3,16 @@ import {
articleContentBlueprint,
articleListBlueprint,
backgroundImageBlueprint,
+ basicHeroBlueprint,
companyListBlueprint,
- featureListBlueprint,
+ featuresHeroBlueprint,
footerBlueprint,
headerBlueprint,
heroWithImageTilesBlueprint,
homeHeroBlueprint,
illustrationCardListBlueprint,
largeTitleSectionBlueprint,
+ markdownViewerBlueprint,
mediumTitleSectionBlueprint,
partnerListBlueprint,
rectangleCardListBlueprint,
@@ -49,7 +51,6 @@ export const componentBlueprints: ComponentBlueprints = {
'team-member-hero': teamMemberHeroBlueprint,
'team-member-card': teamMemberCardBlueprint,
'tags-filter': tagsFilterBlueprint,
- 'feature-list': featureListBlueprint,
'article-list': articleListBlueprint,
'solution-list': solutionListBlueprint,
'service-list': serviceListBlueprint,
@@ -60,7 +61,10 @@ export const componentBlueprints: ComponentBlueprints = {
'related-partners': relatedPartnersBlueprint,
'article-content': articleContentBlueprint,
'background-image': backgroundImageBlueprint,
+ 'markdown': markdownViewerBlueprint,
'home-hero': homeHeroBlueprint,
+ 'basic-hero': basicHeroBlueprint,
+ 'features-hero': featuresHeroBlueprint,
'hero-with-image-tiles': heroWithImageTilesBlueprint,
'rectangle-card-list': rectangleCardListBlueprint
}
@@ -86,11 +90,13 @@ export const layouts = {
export function pageRenderer(
components: Array,
openGraph: PageOpenGraph,
- layout: string|null
+ layout: string|null,
+ headerDark?: boolean
) {
const Layout = layouts[layout as keyof typeof layouts]?.component
if (components?.length > 0) {
components[0].props['isFloating'] = layout ? false : true
+ components[0].props['darkTheme'] = headerDark
}
const children = renderComponents(components)
return (<>