mirror of
https://github.com/documenso/documenso.git
synced 2025-11-16 01:32:06 +10:00
feat: updated rendeing of items using map
Signed-off-by: Adithya Krishna <adikrish@redhat.com>
This commit is contained in:
@ -16,6 +16,21 @@ export const FasterSmarterBeautifulBento = ({
|
|||||||
className,
|
className,
|
||||||
...props
|
...props
|
||||||
}: FasterSmarterBeautifulBentoProps) => {
|
}: FasterSmarterBeautifulBentoProps) => {
|
||||||
|
const featureCards = [
|
||||||
|
{
|
||||||
|
title: 'Beautiful.',
|
||||||
|
description:
|
||||||
|
'Because signing should be celebrated. That’s why we care about the smallest detail in our product.',
|
||||||
|
image: cardBeautifulFigure,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Smart.',
|
||||||
|
description:
|
||||||
|
'Our custom templates come with smart rules that can help you save time and energy.',
|
||||||
|
image: cardSmartFigure,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={cn('relative', className)} {...props}>
|
<div className={cn('relative', className)} {...props}>
|
||||||
<div className="absolute inset-0 -z-10 flex items-center justify-center">
|
<div className="absolute inset-0 -z-10 flex items-center justify-center">
|
||||||
@ -45,32 +60,19 @@ export const FasterSmarterBeautifulBento = ({
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
{featureCards.map((card, index) => (
|
||||||
|
<Card key={index} className="col-span-2 lg:col-span-1" spotlight>
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
<p className="leading-relaxed text-[#555E67]">
|
||||||
<strong className="block">Beautiful.</strong>
|
<strong className="block">{card.title}</strong>
|
||||||
Because signing should be celebrated. That’s why we care about the smallest detail in
|
{card.description}
|
||||||
our product.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
<div className="flex items-center justify-center p-8">
|
||||||
<Image src={cardBeautifulFigure} alt="its fast" className="w-full max-w-xs" />
|
<Image src={card.image} alt="Its fast" className="w-full max-w-[16rem]" />
|
||||||
</div>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
|
||||||
<strong className="block">Smart.</strong>
|
|
||||||
Our custom templates come with smart rules that can help you save time and energy.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
|
||||||
<Image src={cardSmartFigure} alt="its fast" className="w-full max-w-[16rem]" />
|
|
||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -13,6 +13,22 @@ import cardTemplateFigure from '~/assets/card-template-figure.png';
|
|||||||
export type OpenBuildTemplateBentoProps = HTMLAttributes<HTMLDivElement>;
|
export type OpenBuildTemplateBentoProps = HTMLAttributes<HTMLDivElement>;
|
||||||
|
|
||||||
export const OpenBuildTemplateBento = ({ className, ...props }: OpenBuildTemplateBentoProps) => {
|
export const OpenBuildTemplateBento = ({ className, ...props }: OpenBuildTemplateBentoProps) => {
|
||||||
|
const cardData = [
|
||||||
|
{
|
||||||
|
title: 'Build on top.',
|
||||||
|
description: 'Make it your own through advanced customization and adjustability.',
|
||||||
|
image: cardBuildFigure,
|
||||||
|
imageSize: 'max-w-xs',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Template Store (Soon).',
|
||||||
|
description:
|
||||||
|
'Choose a template from the community app store. Or submit your own template for others to use.',
|
||||||
|
image: cardTemplateFigure,
|
||||||
|
imageSize: 'max-w-sm',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={cn('relative', className)} {...props}>
|
<div className={cn('relative', className)} {...props}>
|
||||||
<div className="absolute inset-0 -z-10 flex items-center justify-center">
|
<div className="absolute inset-0 -z-10 flex items-center justify-center">
|
||||||
@ -42,32 +58,19 @@ export const OpenBuildTemplateBento = ({ className, ...props }: OpenBuildTemplat
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
{cardData.map((card, index) => (
|
||||||
|
<Card key={index} className="col-span-2 lg:col-span-1" spotlight>
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
<p className="leading-relaxed text-[#555E67]">
|
||||||
<strong className="block">Build on top.</strong>
|
<strong className="block">{card.title}</strong>
|
||||||
Make it your own through advanced customization and adjustability.
|
{card.description}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
<div className="flex items-center justify-center p-8">
|
||||||
<Image src={cardBuildFigure} alt="its fast" className="w-full max-w-xs" />
|
<Image src={card.image} alt="Its fast" className={`w-full ${card.imageSize}`} />
|
||||||
</div>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
|
||||||
<strong className="block">Template Store (Soon).</strong>
|
|
||||||
Choose a template from the community app store. Or submit your own template for others
|
|
||||||
to use.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
|
||||||
<Image src={cardTemplateFigure} alt="its fast" className="w-full max-w-sm" />
|
|
||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -17,6 +17,29 @@ export const ShareConnectPaidWidgetBento = ({
|
|||||||
className,
|
className,
|
||||||
...props
|
...props
|
||||||
}: ShareConnectPaidWidgetBentoProps) => {
|
}: ShareConnectPaidWidgetBentoProps) => {
|
||||||
|
const cardData = [
|
||||||
|
{
|
||||||
|
title: 'Connections (Soon).',
|
||||||
|
description:
|
||||||
|
'Create connections and automations with Zapier and more to integrate with your favorite tools.',
|
||||||
|
image: cardConnectionsFigure,
|
||||||
|
imageSize: 'max-w-sm',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Get paid (Soon).',
|
||||||
|
description: 'Integrated payments with stripe so you don’t have to worry about getting paid.',
|
||||||
|
image: cardPaidFigure,
|
||||||
|
imageSize: 'max-w-[14rem]',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'React Widget (Soon).',
|
||||||
|
description:
|
||||||
|
'Easily embed Documenso into your product. Simply copy and paste our react widget into your application.',
|
||||||
|
image: cardWidgetFigure,
|
||||||
|
imageSize: 'max-w-xs',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={cn('relative', className)} {...props}>
|
<div className={cn('relative', className)} {...props}>
|
||||||
<div className="absolute inset-0 -z-10 flex items-center justify-center">
|
<div className="absolute inset-0 -z-10 flex items-center justify-center">
|
||||||
@ -45,46 +68,19 @@ export const ShareConnectPaidWidgetBento = ({
|
|||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
{cardData.map((card, index) => (
|
||||||
|
<Card key={index} className="col-span-2 lg:col-span-1" gradient={index === 0} spotlight>
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
<p className="leading-relaxed text-[#555E67]">
|
||||||
<strong className="block">Connections (Soon).</strong>
|
<strong className="block">{card.title}</strong>
|
||||||
Create connections and automations with Zapier and more to integrate with your
|
{card.description}
|
||||||
favorite tools.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
<div className="flex items-center justify-center p-8">
|
||||||
<Image src={cardConnectionsFigure} alt="its fast" className="w-full max-w-sm" />
|
<Image src={card.image} alt="Its fast" className={`w-full ${card.imageSize}`} />
|
||||||
</div>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
|
||||||
<strong className="block">Get paid (Soon).</strong>
|
|
||||||
Integrated payments with stripe so you don’t have to worry about getting paid.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
|
||||||
<Image src={cardPaidFigure} alt="its fast" className="w-full max-w-[14rem]" />
|
|
||||||
</div>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
|
|
||||||
<Card className="col-span-2 lg:col-span-1" spotlight>
|
|
||||||
<CardContent className="grid grid-cols-1 gap-8 p-6">
|
|
||||||
<p className="leading-relaxed text-[#555E67]">
|
|
||||||
<strong className="block">React Widget (Soon).</strong>
|
|
||||||
Easily embed Documenso into your product. Simply copy and paste our react widget into
|
|
||||||
your application.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex items-center justify-center p-8">
|
|
||||||
<Image src={cardWidgetFigure} alt="its fast" className="w-full max-w-xs" />
|
|
||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user