Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
92e4c5b
add slider, case studies, our client
mohamadkheiry Mar 12, 2025
cabb631
*
fatemqsm Mar 13, 2025
7a3aebe
*
fatemqsm Mar 13, 2025
0036bfc
*
fatemqsm Mar 13, 2025
3e4559f
*
fatemqsm Mar 13, 2025
48633d8
fix-1-4 bugs
fahimxo Mar 13, 2025
aa2e473
Merge branch 'main' of https://github.com/fatemqsm/react-components
fahimxo Mar 13, 2025
e17378f
add package lock
fahimxo Mar 13, 2025
91a4948
*
fatemqsm Mar 14, 2025
cdf1db0
*
fatemqsm Mar 14, 2025
76cb7a3
*
fatemqsm Mar 14, 2025
ab23601
*
mohamadkheiry Mar 15, 2025
d7d8ddc
*
mohamadkheiry Mar 15, 2025
029244b
*
mohamadkheiry Mar 15, 2025
d139a9a
remove unused image
mohamadkheiry Mar 15, 2025
c2e6e61
*
mohamadkheiry Mar 15, 2025
2cfe913
fix some problems
mohamadkheiry Mar 15, 2025
1d7b06f
fix: parallax scroll bug
fahimxo Mar 15, 2025
744055e
Merge branch 'main' of https://github.com/fatemqsm/react-components
fahimxo Mar 15, 2025
a170698
add some animations to case studies
fatemqsm Mar 16, 2025
7e72f4b
Fix ts issue in case study
fatemqsm Mar 16, 2025
d3b7bfa
Fix focus on slider dots
fatemqsm Mar 16, 2025
98affad
*
fatemqsm Mar 16, 2025
a14823c
*
fatemqsm Mar 16, 2025
541cdd6
Fix height in blogs
fatemqsm Mar 16, 2025
98862e7
*
fatemqsm Mar 16, 2025
417ed41
install @types/react-slick
fatemqsm Mar 16, 2025
304b9a9
Fix case studies to get transiton bg when slide changes
fatemqsm Mar 16, 2025
ac80d96
add whiteBackground
fahimxo Mar 16, 2025
a127ad5
Merge branch 'main' of https://github.com/fatemqsm/react-components
fahimxo Mar 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20,733 changes: 20,733 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"@types/react": "^19.0.2",
"@types/react-beautiful-dnd": "^13.1.8",
"@types/react-dom": "^19.0.2",
"@types/react-slick": "^0.23.13",
"@vitejs/plugin-react": "^4.3.4",
"@vitest/coverage-v8": "^2.1.8",
"aos": "^2.3.4",
Expand Down Expand Up @@ -123,6 +124,8 @@
"r18gs": "^3.0.1",
"react-day-picker": "^8.10.1",
"react-icons": "^5.4.0",
"react-slick": "^0.30.3",
"slick-carousel": "^1.8.1",
"tailwindcss-animate": "^1.0.7",
"tailwindcss-animated": "^2.0.0",
"tailwindcss-intersect": "^2.1.0",
Expand All @@ -141,4 +144,4 @@
"optional": true
}
}
}
}
57 changes: 32 additions & 25 deletions src/components/Cards/FeatureCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ interface FeatureCardProps extends Section {
link?: Section['link'] & {
label: string
}
imageClassName?: string
contentClassName?: string
}

// variant?: 'solid' | 'outline' | 'gradient' | 'radial' | 'light'
Expand Down Expand Up @@ -48,6 +50,8 @@ export function FeatureCard({
link,
// variant = 'outline',
className,
imageClassName = '',
contentClassName = '',
// icon,
// iconSize = 'large',
// width = 'auto',
Expand All @@ -74,14 +78,15 @@ export function FeatureCard({
auto: 'w-full',
}

console.log('image', image)
console.log('image', sizes)

return (
<div
className={cn(
'min-w-56 max-w-xl h-full flex flex-col group',
image ? 'p-0 md:p-0' : 'p-8 md:p-8',
settings && !image &&
settings &&
!image &&
variants[
settings?.card === 'default' ? 'solid' : (settings?.card as keyof typeof variants)
],
Expand All @@ -96,7 +101,7 @@ console.log('image', image)
>
{/* Image Section */}
{image && (
<div className="relative h-64 w-full mb-0">
<div className={`relative h-64 w-full mb-0 ${imageClassName}`}>
<Image
src={image.url || '/placeholder.svg'}
alt={image.alt || 'card header image'}
Expand All @@ -109,7 +114,13 @@ console.log('image', image)

{/* Body */}

<div className={cn(image ? 'p-4 pb-8 md:px-12' : 'p-0 md:p-0', 'flex flex-col flex-grow')}>
<div
className={cn(
image ? 'p-4 pb-8 md:px-12' : 'p-0 md:p-0',
'flex flex-col flex-grow',
contentClassName,
)}
>
{subtitle && <div className="mb-4 text-primary uppercase font-light">{subtitle}</div>}

{/* Header Section */}
Expand Down Expand Up @@ -143,32 +154,28 @@ console.log('image', image)

{/* Content Section */}
{content && typeof content === 'object' && (
<RichText
enableGutter={false}
content={content}
enableProse={false}
className={
cn(
'space-y-6',
settings?.card === 'outline' || settings?.card === 'light'
? 'prose prose-headings:text-foreground prose-p:text-foreground'
: 'prose prose-headings:text-white prose-p:text-gray-100',
image && 'prose prose-headings:text-background prose-p:text-background')

}
/>
<RichText
enableGutter={false}
content={content}
enableProse={false}
className={cn(
'space-y-6',
settings?.card === 'outline' || settings?.card === 'light'
? 'prose prose-headings:text-foreground prose-p:text-foreground'
: 'prose prose-headings:text-white prose-p:text-gray-100',
image && 'prose prose-headings:text-background prose-p:text-background',
)}
/>
)}
{content && typeof content === 'string' && (
<div
className={
cn(
className={cn(
'space-y-6',
settings?.card === 'outline' || settings?.card === 'light'
? 'prose prose-headings:text-foreground prose-p:text-foreground'
: 'prose prose-headings:text-white prose-p:text-gray-100',
image && 'prose prose-headings:text-background prose-p:text-background')

}
image && 'prose prose-headings:text-background prose-p:text-background',
)}
>
{content}
</div>
Expand Down Expand Up @@ -225,7 +232,7 @@ const IconLocation = ({
className={cn(
'font-semibold',
variant === 'outline' || variant === 'light' ? 'text-primary' : 'text-white',
iconSize === 'small' ? 'text-2xl' : 'text-3xl'
iconSize === 'small' ? 'text-2xl' : 'text-3xl',
)}
>
{heading}
Expand All @@ -235,7 +242,7 @@ const IconLocation = ({
className={cn(
'rounded-full p-0 transform group-hover:scale-110 transition-transform duration-400',
variant === 'outline' || variant === 'light' ? 'text-primary' : 'text-white',
iconSize === 'small' ? 'mt-2' : ''
iconSize === 'small' ? 'mt-2' : '',
)}
>
<DynamicIcon type={icon.type} iconName={icon.iconName} size="2x" />
Expand Down
69 changes: 31 additions & 38 deletions src/components/HeaderFooter/Footer.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import React from 'react'
import { Meta, StoryFn } from '@storybook/react'
import { Footer, type SectionProps } from './Footer'
import { FaInstagram, FaLinkedin } from 'react-icons/fa6'
import { FaInstagram, FaLinkedin, FaLinkedinIn } from 'react-icons/fa6'
import { GoMail } from 'react-icons/go'
import { SlLocationPin } from 'react-icons/sl'
import { CiMobile1 } from 'react-icons/ci'
import logoLight from '../../../.storybook/public/cortex-reply-light.png'
import logoDark from '../../../.storybook/public/cortex-reply-dark.png'

Expand All @@ -27,14 +30,15 @@ const Template: StoryFn<SectionProps> = (args) => <Footer {...args} />
export const Default = Template.bind({})
Default.args = {
className: '',
logoLight:logoLight,
logoDark:logoDark,
logoLight: logoLight,
logoDark: logoDark,
footerData: {
about: {
description: 'This is a sample description for the about section.',
description:
'we enable organisations to harnesses the power of generative AI and drive operational excellence.',
socialLinks: [
{
icon: <FaLinkedin />,
icon: <FaLinkedinIn />,
href: 'https://www.linkedin.com/company/cortex-reply/',
},
{
Expand All @@ -44,50 +48,40 @@ Default.args = {
],
},
columnOne: {
title: 'Column One',
links: [
{ href: '/link1', label: 'Link 1' },
{ href: '/link2', label: 'Link 2' },
],
title: 'Our Services',
links: [{ label: 'Ai Enablement' }, { label: 'FinOps' }, { label: 'Digital Colleagues' }],
},
columnTwo: {
title: 'Contact Us',
location: '1234 Street Name, City, Country',
mails: ['[email protected]', '[email protected]'],
},
columnThree: {
title: 'Recent Insights',
blogs: [
contactUs: [
{
image: {
src: '/assets/images/blog/blog-sm-1.jpg',
alt: 'We provide a range of IT solutions',
},
title: 'We provide a range of IT solutions',
date: '2025-01-02T00:00:00.000Z',
slug: './blog-details',
icon: <CiMobile1 />,
href: '+44 (0) 2077306000',
},
{
image: {
src: '/assets/images/blog/blog-sm-2.jpg',
alt: 'IT solutions enhance efficiency',
},
title: 'IT solutions enhance efficiency',
date: '2025-01-02T00:00:00.000Z',
slug: './blog-details',
icon: <GoMail />,
href: '[email protected]',
},
{
icon: <SlLocationPin />,
href: '38 Grosvenor Gardens, London, SW1W 0WB, England',
},
],
},
footerBottom: {
copyrightText: 'copyright',
copyrightText: '© Cortex Reply Ltd 2025 | All Rights Reserved',
links: [
{
label: 'Privacy Policy',
label: 'Privacy and Cookie Policy',
href: '/privacy-policy',
openNewTab: false,
},
{
label: 'Contact Us',
label: 'Legal & accessibility',
href: '/contact',
openNewTab: false,
},
{
label: 'Modern slavery act',
href: '/contact',
openNewTab: false,
},
Expand All @@ -96,12 +90,11 @@ Default.args = {
},
}


export const NoBlog = Template.bind({})
NoBlog.args = {
className: '',
logoLight:logoLight,
logoDark:logoDark,
logoLight: logoLight,
logoDark: logoDark,
footerData: {
about: {
description: 'This is a sample description for the about section.',
Expand All @@ -128,7 +121,7 @@ NoBlog.args = {
location: '1234 Street Name, City, Country',
mails: ['[email protected]', '[email protected]'],
},

footerBottom: {
copyrightText: 'copyright',
links: [
Expand Down
Loading