fix(nextjs): changes max(4) in schemas to max(3)
This commit is contained in:
parent
50fb7528e5
commit
24be8a8829
19 changed files with 19 additions and 158 deletions
|
|
@ -24,7 +24,7 @@ const bulletIconsOnlySlideSchema = z.object({
|
|||
description: "Optional short subtitle or brief explanation",
|
||||
}),
|
||||
icon: IconSchema,
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
title: 'Custom Software',
|
||||
subtitle: 'We create tailored software to optimize processes and boost efficiency.',
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ const numberedBulletsSlideSchema = z.object({
|
|||
description: z.string().min(10).max(150).meta({
|
||||
description: "Bullet point description",
|
||||
}),
|
||||
})).min(1).max(4).default([
|
||||
})).min(1).max(3).default([
|
||||
{
|
||||
title: 'Customer Insights',
|
||||
description: 'Surveys reveal that 78% of businesses are planning to invest in digital solutions, with 85% preferring customized approaches.'
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const metricsWithImageSlideSchema = z.object({
|
|||
value: z.string().min(1).max(20).meta({
|
||||
description: "Metric value (e.g., 200+, 95%, 50%)"
|
||||
}),
|
||||
})).min(1).max(4).default([
|
||||
})).min(1).max(3).default([
|
||||
{
|
||||
label: 'Satisfied Clients',
|
||||
value: '200+'
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ const type2NumberedSlideSchema = z.object({
|
|||
description: z.string().min(10).max(130).meta({
|
||||
description: "Item description",
|
||||
})
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
heading: 'First Point',
|
||||
description: 'Description for the first key point that explains important details'
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ const type2SlideSchema = z.object({
|
|||
description: z.string().min(10).max(130).meta({
|
||||
description: "Item description",
|
||||
})
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
heading: 'First Point',
|
||||
description: 'Description for the first key point that explains important details'
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ const type2TimelineSlideSchema = z.object({
|
|||
description: z.string().min(10).max(130).meta({
|
||||
description: "Item description",
|
||||
})
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
heading: 'First Point',
|
||||
description: 'Description for the first key point that explains important details'
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ const type3SlideSchema = z.object({
|
|||
image: ImageSchema.meta({
|
||||
description: "Item image",
|
||||
})
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
heading: 'First Feature',
|
||||
description: 'Description for the first featured item with detailed information',
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ const bulletIconsOnlySlideSchema = z.object({
|
|||
description: "Optional short subtitle or brief explanation",
|
||||
}),
|
||||
icon: IconSchema,
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
title: 'Custom Software',
|
||||
subtitle: 'We create tailored software to optimize processes and boost efficiency.',
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const metricsWithImageSlideSchema = z.object({
|
|||
value: z.string().min(1).max(20).meta({
|
||||
description: "Metric value (e.g., 200+, 95%, 50%)"
|
||||
}),
|
||||
})).min(1).max(4).default([
|
||||
})).min(1).max(3).default([
|
||||
{
|
||||
label: 'Satisfied Clients',
|
||||
value: '200+'
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ const numberedBulletsSlideSchema = z.object({
|
|||
description: z.string().min(10).max(150).meta({
|
||||
description: "Bullet point description",
|
||||
}),
|
||||
})).min(1).max(4).default([
|
||||
})).min(1).max(3).default([
|
||||
{
|
||||
title: 'Customer Insights',
|
||||
description: 'Surveys reveal that 78% of businesses are planning to invest in digital solutions, with 85% preferring customized approaches.'
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ const teamSlideSchema = z.object({
|
|||
companyDescription: z.string().min(10).max(150).default('Ginyard International Co. is a leading provider of innovative digital solutions tailored for businesses. Our mission is to empower organizations to achieve their goals through cutting-edge technology and strategic partnerships.').meta({
|
||||
description: "Company description or team introduction text",
|
||||
}),
|
||||
teamMembers: z.array(teamMemberSchema).min(2).max(4).default([
|
||||
teamMembers: z.array(teamMemberSchema).min(2).max(3).default([
|
||||
{
|
||||
name: 'Juliana Silva',
|
||||
position: 'CEO',
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ const problemStatementSlideSchema = z.object({
|
|||
}),
|
||||
)
|
||||
.min(2)
|
||||
.max(4)
|
||||
.max(3)
|
||||
.default([
|
||||
{
|
||||
title: "Inefficiency",
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ const solutionSlideSchema = z.object({
|
|||
.min(20)
|
||||
.max(300)
|
||||
.default(
|
||||
"Show that we offer a solution that solves the problems previously described and identified. Make sure that the solutions we offer uphold the values of effectiveness, efficiency, and are highly relevant to the market situation and societyshiva raj badu is here and what is hsd sdksdf klfdslkf lkflkfsldkf.",
|
||||
"Show that we offer a solution that solves the problems previously described and identified. Make sure that the solutions we offer uphold the values of effectiveness, efficiency, and are highly relevant to the market situation and society is here and what is hsd sdksdf klfdslkf lkflkfsldkf.",
|
||||
)
|
||||
.meta({
|
||||
description: "Main content text describing the solution",
|
||||
|
|
@ -42,7 +42,7 @@ const solutionSlideSchema = z.object({
|
|||
}),
|
||||
)
|
||||
.min(2)
|
||||
.max(4)
|
||||
.max(3)
|
||||
.default([
|
||||
{
|
||||
title: "Market",
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ const modernTeamSlideSchema = z.object({
|
|||
teamMembers: z
|
||||
.array(teamMemberSchema)
|
||||
.min(2)
|
||||
.max(4)
|
||||
.max(3)
|
||||
.default([
|
||||
{
|
||||
name: "Sarah Johnson",
|
||||
|
|
|
|||
|
|
@ -1,139 +0,0 @@
|
|||
import * as z from "zod";
|
||||
|
||||
import { ImageSchema, IconSchema } from "../defaultSchemes";
|
||||
|
||||
// Schema definition
|
||||
export const Schema = z.object({
|
||||
|
||||
sectionTitle: z.string()
|
||||
.min(3)
|
||||
.max(30)
|
||||
.default("WELCOME!")
|
||||
.meta({
|
||||
description: "Main greeting or welcome message - can be 'Hello!', 'Welcome!', 'Greetings!', or similar",
|
||||
}),
|
||||
|
||||
sectionSubtitle: z.string()
|
||||
.min(10)
|
||||
.max(60)
|
||||
.default("WE'RE EXCITED TO SHARE OUR STORY")
|
||||
.meta({
|
||||
description: "Supporting message that sets the tone and builds connection with the audience",
|
||||
}),
|
||||
|
||||
welcomeMessage: z.string()
|
||||
.min(30)
|
||||
.max(200)
|
||||
.default("Thank you for joining us today. We're thrilled to have this opportunity to connect with you and share our journey, insights, and vision for the future.")
|
||||
.meta({
|
||||
description: "Main welcome or introductory message that engages the audience personally",
|
||||
}),
|
||||
|
||||
callToActionText: z.string()
|
||||
.min(5)
|
||||
.max(25)
|
||||
.default("Let's Get Started")
|
||||
.meta({
|
||||
description: "Action button text that encourages audience engagement or progression",
|
||||
}),
|
||||
|
||||
speakerImage: ImageSchema.default({
|
||||
__image_url__: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",
|
||||
__image_prompt__: "Professional presenter or team representative in business setting"
|
||||
}).meta({
|
||||
description: "Image of the presenter, team representative, or welcoming figure",
|
||||
}),
|
||||
|
||||
showDecorations: z.boolean()
|
||||
.default(true)
|
||||
.meta({
|
||||
description: "Whether to display decorative visual elements like underlines and accents",
|
||||
}),
|
||||
|
||||
showCallToAction: z.boolean()
|
||||
.default(true)
|
||||
.meta({
|
||||
description: "Whether to show the call-to-action button",
|
||||
}),
|
||||
})
|
||||
|
||||
// Type inference
|
||||
type SchemaType = z.infer<typeof Schema>;
|
||||
|
||||
// Component definition
|
||||
const HelloFriendsSlide = ({ data }: { data: Partial<SchemaType> }) => {
|
||||
|
||||
const { sectionTitle, sectionSubtitle, welcomeMessage, callToActionText, speakerImage, showDecorations, showCallToAction } = data;
|
||||
|
||||
return (
|
||||
<div className="aspect-video max-w-[1280px] w-full bg-white relative overflow-hidden">
|
||||
{/* Main Content Area */}
|
||||
<div className="h-full flex">
|
||||
{/* Left Side - Teal Background */}
|
||||
<div className="w-1/3 relative bg-teal-600">
|
||||
{/* Speech Bubble */}
|
||||
{/* Decorative Circle */}
|
||||
</div>
|
||||
|
||||
{/* Right Side - White Background */}
|
||||
<div className="w-2/3 relative bg-white">
|
||||
{/* Content */}
|
||||
<div className="pl-32 pr-16 py-12 h-full flex flex-col justify-center">
|
||||
{/* Title Section */}
|
||||
<div className="mb-8">
|
||||
{sectionTitle && (
|
||||
<h1 className="text-4xl lg:text-5xl font-black text-teal-700 leading-tight mb-4">
|
||||
{sectionTitle}
|
||||
</h1>
|
||||
)}
|
||||
|
||||
{sectionSubtitle && (
|
||||
<p className="text-base font-semibold text-gray-800 tracking-wide mb-6">
|
||||
{sectionSubtitle}
|
||||
</p>
|
||||
)}
|
||||
|
||||
{/* Decorative underline */}
|
||||
{showDecorations && (
|
||||
<div className="w-32 h-1 bg-yellow-300 mb-8"></div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Welcome Text */}
|
||||
{welcomeMessage && (
|
||||
<div className="mb-8">
|
||||
<p className="text-base leading-relaxed text-gray-700">
|
||||
{welcomeMessage}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Thank You Button */}
|
||||
{showCallToAction && (
|
||||
<div>
|
||||
<button className="bg-teal-600 hover:bg-teal-700 text-white font-semibold px-8 py-3 rounded-full transition-colors duration-200">
|
||||
{callToActionText}
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Overlapping Circular Office Image */}
|
||||
{speakerImage?.__image_url__ && (
|
||||
<div className="absolute top-1/2 left-72 transform -translate-x-1/2 -translate-y-1/2 ">
|
||||
<div className="w-96 h-96 rounded-full overflow-hidden bg-white p-2 shadow-2xl">
|
||||
<img
|
||||
src={speakerImage.__image_url__}
|
||||
alt={speakerImage.__image_prompt__}
|
||||
className="w-full h-full object-cover rounded-full"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default HelloFriendsSlide;
|
||||
|
|
@ -25,7 +25,7 @@ export const Schema = z.object({
|
|||
marketType: z.string().min(3).max(30),
|
||||
marketDescription: z.string().min(20).max(150),
|
||||
marketValue: z.string().min(3).max(25).optional()
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
marketType: "Total Addressable Market (TAM)",
|
||||
marketDescription: "The overall revenue opportunity available if we achieved 100% market share across all segments and geographies.",
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export const Schema = z.object({
|
|||
itemNumber: z.string().min(1).max(3),
|
||||
challengeTitle: z.string().min(5).max(40),
|
||||
challengeDescription: z.string().min(20).max(200)
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
itemNumber: "01",
|
||||
challengeTitle: "Inefficient Processes",
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export const Schema = z.object({
|
|||
itemNumber: z.string().min(1).max(3),
|
||||
solutionTitle: z.string().min(5).max(40),
|
||||
solutionDescription: z.string().min(20).max(200)
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
itemNumber: "01",
|
||||
solutionTitle: "Process Optimization",
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ export const Schema = z.object({
|
|||
testimonialText: z.string().min(50).max(300),
|
||||
rating: z.number().min(1).max(5),
|
||||
clientPhoto: ImageSchema
|
||||
})).min(2).max(4).default([
|
||||
})).min(2).max(3).default([
|
||||
{
|
||||
clientName: "Sarah Johnson",
|
||||
clientTitle: "Chief Executive Officer",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue