From 5eec194152047831221ef2bab69352fa5f5533f9 Mon Sep 17 00:00:00 2001 From: Suraj Jha Date: Tue, 9 Sep 2025 03:55:55 +0545 Subject: [PATCH] update: general template --- .../general/BasicInfoSlideLayout.tsx | 28 ++++-- .../general/BulletIconsOnlySlideLayout.tsx | 56 +++++++----- .../general/BulletWithIconsSlideLayout.tsx | 56 +++++++----- .../general/ChartWithBulletsSlideLayout.tsx | 91 +++++++++++-------- .../general/IntroSlideLayout.tsx | 41 +++++---- .../general/MetricsSlideLayout.tsx | 35 ++++--- .../general/MetricsWithImageSlideLayout.tsx | 29 +++--- .../general/NumberedBulletsSlideLayout.tsx | 39 ++++---- .../general/QuoteSlideLayout.tsx | 43 +++++---- .../general/TableInfoSlideLayout.tsx | 45 ++++++--- .../general/TableOfContentsSlideLayout.tsx | 41 +++++---- .../general/TeamSlideLayout.tsx | 39 ++++---- 12 files changed, 333 insertions(+), 210 deletions(-) diff --git a/servers/nextjs/presentation-templates/general/BasicInfoSlideLayout.tsx b/servers/nextjs/presentation-templates/general/BasicInfoSlideLayout.tsx index 3f5c4e33..e97ba984 100644 --- a/servers/nextjs/presentation-templates/general/BasicInfoSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/BasicInfoSlideLayout.tsx @@ -35,17 +35,25 @@ const BasicInfoSlideLayout: React.FC = ({ data: slide return ( <> {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Main Content */} @@ -64,21 +72,25 @@ const BasicInfoSlideLayout: React.FC = ({ data: slide {/* Right Section - Content */}
{/* Title */} -

+

{slideData?.title || 'Product Overview'}

{/* Purple accent line */} -
+
{/* Description */} -

+

{slideData?.description || 'Our product offers customizable dashboards for real-time reporting and data-driven decisions. It integrates with third-party tools to enhance operations and scales with business growth for improved efficiency.'}

+ + +
+ ) diff --git a/servers/nextjs/presentation-templates/general/BulletIconsOnlySlideLayout.tsx b/servers/nextjs/presentation-templates/general/BulletIconsOnlySlideLayout.tsx index e3a1e9c2..32746732 100644 --- a/servers/nextjs/presentation-templates/general/BulletIconsOnlySlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/BulletIconsOnlySlideLayout.tsx @@ -1,10 +1,11 @@ import React from 'react' import * as z from "zod"; import { ImageSchema, IconSchema } from '@/presentation-templates/defaultSchemes'; +import { RemoteSvgIcon } from '@/app/hooks/useRemoteSvgIcon'; export const layoutId = 'bullet-icons-only-slide' export const layoutName = 'Bullet Icons Only' -export const layoutDescription = 'A slide layout with title, grid of bullet points with icons (no descriptions), and a supporting image.' +export const layoutDescription = 'A slide layout with title, grid of bullet points (title and description) with icons, and a supporting image.' const bulletIconsOnlySlideSchema = z.object({ title: z.string().min(3).max(40).default('Solutions').meta({ @@ -29,7 +30,7 @@ const bulletIconsOnlySlideSchema = z.object({ title: 'Custom Software', subtitle: 'We create tailored software to optimize processes and boost efficiency.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/code-bold.svg', __icon_query__: 'code software development' } }, @@ -37,7 +38,7 @@ const bulletIconsOnlySlideSchema = z.object({ title: 'Digital Consulting', subtitle: 'Our consultants guide organizations in leveraging the latest technologies.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/users-four-bold.svg', __icon_query__: 'users consulting team' } }, @@ -45,7 +46,7 @@ const bulletIconsOnlySlideSchema = z.object({ title: 'Support Services', subtitle: 'We provide ongoing support to help businesses adapt and maintain performance.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/headphones-bold.svg', __icon_query__: 'headphones support service' } }, @@ -53,7 +54,7 @@ const bulletIconsOnlySlideSchema = z.object({ title: 'Scalable Marketing', subtitle: 'Our data-driven strategies help businesses expand their reach and engagement.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/code-bold.svg', __icon_query__: 'trending up marketing growth' } } @@ -87,17 +88,26 @@ const BulletIconsOnlySlideLayout: React.FC = ({ return ( <> {/* Import Google Fonts */} - + +
+ {/* {(slideData as any)?.__companyName__ && ( */} +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ {/* )} */} {/* Decorative Wave Patterns */}
@@ -113,11 +123,11 @@ const BulletIconsOnlySlideLayout: React.FC = ({
{/* Main Content */} -
+
{/* Left Section - Title and Bullet Points */}
{/* Title */} -

+

{slideData?.title || 'Solutions'}

@@ -126,24 +136,26 @@ const BulletIconsOnlySlideLayout: React.FC = ({ {bulletPoints.map((bullet, index) => (
{/* Icon */} -
- {bullet.icon.__icon_query__} +
{/* Content */}
-

+

{bullet.title}

{bullet.subtitle && ( -

+

{bullet.subtitle}

)} @@ -156,14 +168,14 @@ const BulletIconsOnlySlideLayout: React.FC = ({ {/* Right Section - Image */}
{/* Decorative Elements */} -
+
- + = ({ return ( <> - {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Main Content */} -
+
{/* Title Section - Full Width */}
-

+

{slideData?.title || 'Problem'}

@@ -94,7 +102,7 @@ const BulletWithIconsSlideLayout: React.FC = ({ - + @@ -113,7 +121,7 @@ const BulletWithIconsSlideLayout: React.FC = ({
{/* Decorative Sparkle */} -
+
@@ -123,7 +131,7 @@ const BulletWithIconsSlideLayout: React.FC = ({ {/* Right Section - Content */}
{/* Description */} -

+

{slideData?.description || 'Businesses face challenges with outdated technology and rising costs, limiting efficiency and growth in competitive markets.'}

@@ -132,21 +140,23 @@ const BulletWithIconsSlideLayout: React.FC = ({ {bulletPoints.map((bullet, index) => (
{/* Icon */} -
- {bullet.icon.__icon_query__} +
{/* Content */}
-

+

{bullet.title}

-
-

+

+

{bullet.description}

diff --git a/servers/nextjs/presentation-templates/general/ChartWithBulletsSlideLayout.tsx b/servers/nextjs/presentation-templates/general/ChartWithBulletsSlideLayout.tsx index f77e554c..564af2c3 100644 --- a/servers/nextjs/presentation-templates/general/ChartWithBulletsSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/ChartWithBulletsSlideLayout.tsx @@ -1,6 +1,7 @@ import React from 'react' import * as z from "zod"; import { IconSchema } from '@/presentation-templates/defaultSchemes'; +import { RemoteSvgIcon } from '@/app/hooks/useRemoteSvgIcon'; import { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent } from "@/components/ui/chart"; import { BarChart, Bar, LineChart, Line, PieChart, Pie, AreaChart, Area, ScatterChart, Scatter, XAxis, YAxis, CartesianGrid, Cell, ResponsiveContainer } from "recharts"; @@ -64,7 +65,7 @@ const chartWithBulletsSlideSchema = z.object({ title: 'Total Addressable Market', description: 'Companies can use TAM to plan future expansion and investment.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/chart-line-up-bold.svg', __icon_query__: 'target market scope' } }, @@ -72,7 +73,7 @@ const chartWithBulletsSlideSchema = z.object({ title: 'Serviceable Available Market', description: 'Indicates more measurable market segments for sales efforts.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/chart-line-up-bold.svg', __icon_query__: 'pie chart analysis' } }, @@ -80,7 +81,7 @@ const chartWithBulletsSlideSchema = z.object({ title: 'Serviceable Obtainable Market', description: 'Help companies plan development strategies according to the market.', icon: { - __icon_url__: '/static/icons/placeholder.png', + __icon_url__: 'https://presenton-public.s3.ap-southeast-1.amazonaws.com/static/icons/bold/chart-line-up-bold.svg', __icon_query__: 'trending up growth' } } @@ -120,7 +121,7 @@ const BULLET_COLORS = [ const ChartWithBulletsSlideLayout: React.FC = ({ data: slideData }) => { const chartData = slideData?.chartData?.data || []; const chartType = slideData?.chartData?.type; - const color = slideData?.color || '#3b82f6'; + const color = slideData?.color || 'var(--primary-accent-color,#9333ea)'; const xAxis = chartType === 'scatter' ? 'x' : 'name'; const yAxis = chartType === 'scatter' ? 'y' : 'value'; const showLegend = slideData?.showLegend || false; @@ -128,6 +129,14 @@ const ChartWithBulletsSlideLayout: React.FC = const bulletPoints = slideData?.bulletPoints || [] const renderChart = () => { + const renderPieLabel = (props: any) => { + const { name, percent, x, y, textAnchor } = props; + return ( + + {`${name} ${(percent * 100).toFixed(0)}%`} + + ); + }; const commonProps = { data: chartData, margin: { top: 20, right: 30, left: 40, bottom: 60 }, @@ -137,9 +146,9 @@ const ChartWithBulletsSlideLayout: React.FC = case 'bar': return ( - - - + + + {showTooltip && } />} {showLegend && } />} @@ -149,9 +158,9 @@ const ChartWithBulletsSlideLayout: React.FC = case 'line': return ( - - - + + + {showTooltip && } />} {showLegend && } />} = case 'area': return ( - - - + + + {showTooltip && } />} {showLegend && } />} = outerRadius={70} fill={color} dataKey={yAxis} - label={({ name, percent }) => `${name} ${(percent * 100).toFixed(0)}%`} + label={renderPieLabel} > - {chartData.map((entry, index) => ( - + {chartData.map((_, index) => ( + ))} @@ -206,9 +215,9 @@ const ChartWithBulletsSlideLayout: React.FC = case 'scatter': return ( - - - + + + {showTooltip && } />} {showLegend && } />} @@ -222,34 +231,42 @@ const ChartWithBulletsSlideLayout: React.FC = return ( <> - {/* Import Google Fonts */} - + +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Main Content */}
{/* Left Section - Title, Description, Chart */}
{/* Title */} -

+

{slideData?.title || 'Market Size'}

{/* Description */} -

+

{slideData?.description || 'Businesses face challenges with outdated technology and rising costs, limiting efficiency and growth in competitive markets.'}

{/* Chart Container */} -
+
{renderChart()} @@ -263,25 +280,27 @@ const ChartWithBulletsSlideLayout: React.FC = key={index} className="rounded-2xl p-6 text-white" style={{ - backgroundColor: BULLET_COLORS[index % BULLET_COLORS.length] + backgroundColor: 'var(--primary-accent-color,#9333ea)' }} > {/* Icon and Title */}
-
- {bullet.icon.__icon_query__} +
-

+

{bullet.title}

{/* Description */} -

+

{bullet.description}

diff --git a/servers/nextjs/presentation-templates/general/IntroSlideLayout.tsx b/servers/nextjs/presentation-templates/general/IntroSlideLayout.tsx index 53f1a9ee..816ac529 100644 --- a/servers/nextjs/presentation-templates/general/IntroSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/IntroSlideLayout.tsx @@ -16,8 +16,8 @@ const introSlideSchema = z.object({ presenterName: z.string().min(2).max(50).default('John Doe').meta({ description: "Name of the presenter", }), - presentationDate: z.string().min(2).max(50).default('December 2024').meta({ - description: "Date of the presentation", + presentationDate: z.string().min(2).max(50).default('December 2025').meta({ + description: "Date of the presentation must be the latest date like today's date", }), image: ImageSchema.default({ __image_url__: 'https://images.unsplash.com/photo-1552664730-d307ca884978?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1000&q=80', @@ -44,22 +44,29 @@ const IntroSlideLayout: React.FC = ({ data: slideData }) const presenterInitials = getInitials(slideData?.presenterName || 'John Doe'); return ( <> - {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Main Content */} -
+
{/* Left Section - Image */}
@@ -74,34 +81,34 @@ const IntroSlideLayout: React.FC = ({ data: slideData }) {/* Right Section - Content */}
{/* Title */} -

+

{slideData?.title || 'Product Overview'}

{/* Purple accent line */} -
+
{/* Description */} -

+

{slideData?.description || 'Our product offers customizable dashboards for real-time reporting and data-driven decisions. It integrates with third-party tools to enhance operations and scales with business growth for improved efficiency.'}

{/* Presenter Section */} -
+
{/* Custom Initials Icon */} -
- +
+ {presenterInitials}
{/* Presenter Info */}
- + {slideData?.presenterName || 'John Doe'} - + {slideData?.presentationDate || 'December 2024'}
diff --git a/servers/nextjs/presentation-templates/general/MetricsSlideLayout.tsx b/servers/nextjs/presentation-templates/general/MetricsSlideLayout.tsx index 266d0fc2..3585a430 100644 --- a/servers/nextjs/presentation-templates/general/MetricsSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/MetricsSlideLayout.tsx @@ -10,7 +10,7 @@ const metricsSlideSchema = z.object({ description: "Main title of the slide", }), metrics: z.array(z.object({ - label: z.string().min(2).max(100).meta({ + label: z.string().min(2).max(50).meta({ description: "Metric label/title" }), value: z.string().min(1).max(10).meta({ @@ -77,17 +77,25 @@ const MetricsSlideLayout: React.FC = ({ data: slideData return ( <> {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Decorative Wave Patterns */}
@@ -108,11 +116,11 @@ const MetricsSlideLayout: React.FC = ({ data: slideData {/* Main Content */} -
+
{/* Title */}
-

+

{slideData?.title || 'Company Traction'}

@@ -124,23 +132,22 @@ const MetricsSlideLayout: React.FC = ({ data: slideData {metrics.map((metric, index) => (
{/* Label */} -
+
{metric.label}
{/* Large Metric Value */} -
+
{metric.value}
{/* Description Box */}
-

+

{metric.description}

diff --git a/servers/nextjs/presentation-templates/general/MetricsWithImageSlideLayout.tsx b/servers/nextjs/presentation-templates/general/MetricsWithImageSlideLayout.tsx index f30b3f34..af7d1c70 100644 --- a/servers/nextjs/presentation-templates/general/MetricsWithImageSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/MetricsWithImageSlideLayout.tsx @@ -54,18 +54,25 @@ const MetricsWithImageSlideLayout: React.FC = return ( <> - {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Decorative Wave Patterns */}
@@ -81,7 +88,7 @@ const MetricsWithImageSlideLayout: React.FC =
{/* Main Content */} -
+
{/* Left Section - Image */}
@@ -96,12 +103,12 @@ const MetricsWithImageSlideLayout: React.FC = {/* Right Section - Content and Metrics */}
{/* Title */} -

+

{slideData?.title || 'Competitive Advantage'}

{/* Description */} -

+

{slideData?.description || 'Ginyard International Co. stands out by offering custom digital solutions tailored to client needs, alongside long-term support to ensure lasting relationships and continuous adaptation.'}

@@ -109,10 +116,10 @@ const MetricsWithImageSlideLayout: React.FC =
{metrics.map((metric, index) => (
-
+
{metric.label}
-
+
{metric.value}
diff --git a/servers/nextjs/presentation-templates/general/NumberedBulletsSlideLayout.tsx b/servers/nextjs/presentation-templates/general/NumberedBulletsSlideLayout.tsx index 3b299513..e260769c 100644 --- a/servers/nextjs/presentation-templates/general/NumberedBulletsSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/NumberedBulletsSlideLayout.tsx @@ -58,30 +58,37 @@ const NumberedBulletsSlideLayout: React.FC = ({ return ( <> - {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Main Content Container */} -
+
{/* Top Section - Title and Image */}
{/* Title Section */}
-

+

{slideData?.title || 'Market Validation'}

{/* Purple accent line */} -
+
{/* Image Section */} @@ -89,7 +96,7 @@ const NumberedBulletsSlideLayout: React.FC = ({ {slideData?.image?.__image_prompt__
@@ -100,17 +107,17 @@ const NumberedBulletsSlideLayout: React.FC = ({
{/* Number */}
-
+
{String(index + 1).padStart(2, '0')}
{/* Content */}
-

+

{bullet.title}

-

+

{bullet.description}

@@ -132,9 +139,9 @@ const NumberedBulletsSlideLayout: React.FC = ({ /> - - - + + + diff --git a/servers/nextjs/presentation-templates/general/QuoteSlideLayout.tsx b/servers/nextjs/presentation-templates/general/QuoteSlideLayout.tsx index d6b6e234..84ee087b 100644 --- a/servers/nextjs/presentation-templates/general/QuoteSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/QuoteSlideLayout.tsx @@ -36,17 +36,25 @@ const QuoteSlideLayout: React.FC = ({ data: slideData }) return ( <> {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Background Image */}
= ({ data: slideData }) }} /> - {/* Background Overlay */} -
+ {/* Background Overlay - low opacity primary accent */} +
{/* Decorative Elements */}
@@ -64,16 +75,16 @@ const QuoteSlideLayout: React.FC = ({ data: slideData })
{/* Main Content */} -
+
{/* Heading */}
-

+

{slideData?.heading || 'Words of Wisdom'}

{/* Purple accent line */} -
+
{/* Quote Section */} @@ -81,7 +92,7 @@ const QuoteSlideLayout: React.FC = ({ data: slideData }) {/* Quote Icon */}
@@ -90,24 +101,24 @@ const QuoteSlideLayout: React.FC = ({ data: slideData })
{/* Quote Text */} -
+
"{slideData?.quote || 'Success is not final, failure is not fatal: it is the courage to continue that counts. The future belongs to those who believe in the beauty of their dreams.'}"
{/* Author */}
-
+
{slideData?.author || 'Winston Churchill'} -
+
- {/* Bottom Decorative Border */} -
+ {/* Bottom Decorative Border uses heading color */} +
) diff --git a/servers/nextjs/presentation-templates/general/TableInfoSlideLayout.tsx b/servers/nextjs/presentation-templates/general/TableInfoSlideLayout.tsx index 693ae100..46da6655 100644 --- a/servers/nextjs/presentation-templates/general/TableInfoSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/TableInfoSlideLayout.tsx @@ -52,17 +52,25 @@ const TableInfoSlideLayout: React.FC = ({ data: slide return ( <> {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Decorative Wave Patterns */}
@@ -81,26 +89,26 @@ const TableInfoSlideLayout: React.FC = ({ data: slide
{/* Main Content */} -
+
{/* Title Section */}
-

+

{slideData?.title || 'Market Comparison'}

{/* Purple accent line */} -
+
{/* Table Section */}
-
+
{/* Table Header */} -
+
{tableHeaders.map((header, index) => ( -
+
{header}
))} @@ -112,11 +120,20 @@ const TableInfoSlideLayout: React.FC = ({ data: slide {tableRows.map((row, rowIndex) => (
{row.slice(0, tableHeaders.length).map((cell, cellIndex) => ( -
+
{cell}
))} @@ -131,7 +148,7 @@ const TableInfoSlideLayout: React.FC = ({ data: slide {/* Description Section */}
-

+

{slideData?.description || 'This comparison shows our competitive position in the market. While we currently have a smaller market share, our growth rate significantly exceeds competitors, indicating strong potential for future expansion.'}

diff --git a/servers/nextjs/presentation-templates/general/TableOfContentsSlideLayout.tsx b/servers/nextjs/presentation-templates/general/TableOfContentsSlideLayout.tsx index 408bb6d0..244153ed 100644 --- a/servers/nextjs/presentation-templates/general/TableOfContentsSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/TableOfContentsSlideLayout.tsx @@ -48,27 +48,34 @@ const TableOfContentsSlideLayout: React.FC = ({ return ( <> - {/* Import Google Fonts */} - +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Title Section */} -
-

+
+

Table of Contents

{/* Decorative Wave */}
- + = ({
{/* Number Box */} -
+
{section.number}
{/* Title */} - + {section.title}
{/* Page Number */}
- + {section.pageNumber} {/* Dotted line effect */} -
+
.....
@@ -115,21 +122,21 @@ const TableOfContentsSlideLayout: React.FC = ({
{/* Number Box */} -
+
{section.number}
{/* Title */} - + {section.title}
{/* Page Number */}
- + {section.pageNumber} {/* Dotted line effect */} -
+
.....
diff --git a/servers/nextjs/presentation-templates/general/TeamSlideLayout.tsx b/servers/nextjs/presentation-templates/general/TeamSlideLayout.tsx index 0e87ff1c..5ae1c08d 100644 --- a/servers/nextjs/presentation-templates/general/TeamSlideLayout.tsx +++ b/servers/nextjs/presentation-templates/general/TeamSlideLayout.tsx @@ -32,7 +32,7 @@ const teamSlideSchema = z.object({ position: 'CEO', description: 'Strategic leader with 15+ years experience in digital transformation and business growth.', image: { - __image_url__: 'https://images.unsplash.com/photo-1494790108755-2616b612994a?ixlib=rb-4.0.3&auto=format&fit=crop&w=400&q=80', + __image_url__: 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-4.0.3&auto=format&fit=crop&w=400&q=80', __image_prompt__: 'Professional businesswoman CEO headshot' } }, @@ -92,18 +92,25 @@ const TeamSlideLayout: React.FC = ({ data: slideData }) => return ( <> - {/* Import Google Fonts */} - - + +
+ {(slideData as any)?.__companyName__ && ( +
+
+ + {(slideData as any)?.__companyName__ || 'Company Name'} + +
+
+
+ )} {/* Decorative Wave Pattern */}
@@ -113,19 +120,19 @@ const TeamSlideLayout: React.FC = ({ data: slideData }) =>
{/* Main Content */} -
+
{/* Left Section - Title and Company Description */}
{/* Title */} -

+

{slideData?.title || 'Our Team Members'}

{/* Purple accent line */} -
+
{/* Company Description */} -

+

{slideData?.companyDescription || '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.'}

@@ -136,7 +143,7 @@ const TeamSlideLayout: React.FC = ({ data: slideData }) => {teamMembers.map((member, index) => (
{/* Member Photo */} -
+
{member.image.__image_prompt__ = ({ data: slideData }) => {/* Member Info */}
-

+

{member.name}

-

+

{member.position}

-

+

{member.description}