yslootahrobotics/src/components/robotics/ExclusiveAccessSection.tsx
Najjar 873026a4a9
Some checks are pending
CI/CD / test-and-build (push) Waiting to run
CI/CD / deploy (push) Blocked by required conditions
feat: monochrome black & white rebrand + new Pudu robots
- Convert site from royal-blue theme to black/white monochrome (desaturate
  all blue-hued colors; keep WhatsApp green and error red)
- Swap blue circular brand logo for mono YS mark; regenerate favicon/PWA icons
- Add 6 Pudu robots (CC1 Pro, MT1 Max, MT1 Vac, T600, T600 Underride, BG1 Pro)
- Fix favicon.ico to RGBA (Next 16 Turbopack decode) and Stripe apiVersion type

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:20:26 +04:00

433 lines
16 KiB
TypeScript

'use client';
import Image from 'next/image';
import Link from 'next/link';
import { PremiumButton } from '@/components/ui/PremiumButton';
export function ExclusiveAccessSection() {
return (
<div
style={{
position: 'relative',
borderRadius: '2rem',
padding: 'clamp(1.75rem, 4vw, 3rem)',
overflow: 'hidden',
background:
'radial-gradient(ellipse 60% 80% at 0% 0%, rgba(231, 231, 231, 0.18), transparent 60%), radial-gradient(ellipse 70% 80% at 100% 100%, rgba(168, 168, 168, 0.22), transparent 60%), linear-gradient(135deg, rgba(30, 30, 30, 0.92), rgba(5,5,5,0.97))',
border: '1px solid rgba(94, 94, 94, 0.32)',
boxShadow: '0 30px 100px rgba(0,0,0,0.7), inset 0 1px 0 rgba(231, 231, 231, 0.06)',
}}
>
<div
aria-hidden
style={{
position: 'absolute',
inset: 0,
background:
'linear-gradient(rgba(94, 94, 94, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(94, 94, 94, 0.05) 1px, transparent 1px)',
backgroundSize: '48px 48px',
maskImage: 'radial-gradient(ellipse 60% 80% at 50% 30%, #000 30%, transparent 80%)',
WebkitMaskImage: 'radial-gradient(ellipse 60% 80% at 50% 30%, #000 30%, transparent 80%)',
pointerEvents: 'none',
}}
/>
<div
className="exa-grid"
style={{ position: 'relative', display: 'grid', gap: 'clamp(1.5rem, 3.5vw, 2.5rem)', alignItems: 'stretch' }}
>
{/* Left copy */}
<div style={{ display: 'flex', flexDirection: 'column', gap: '1.25rem', minWidth: 0 }}>
<span
style={{
alignSelf: 'flex-start',
display: 'inline-flex',
alignItems: 'center',
gap: '0.6rem',
padding: '0.5rem 0.9rem',
borderRadius: 999,
border: '1px solid rgba(94, 94, 94, 0.45)',
background: 'rgba(94, 94, 94, 0.10)',
color: '#e7e7e7',
fontSize: '0.7rem',
letterSpacing: '0.24em',
textTransform: 'uppercase',
fontWeight: 700,
}}
>
<span aria-hidden style={{ width: 6, height: 6, borderRadius: 999, background: '#e7e7e7', boxShadow: '0 0 10px rgba(231, 231, 231, 0.8)' }} />
UAE Robotics Access
</span>
<h2 style={{ margin: 0, fontSize: 'clamp(1.7rem, 4vw, 2.6rem)', lineHeight: 1.1, fontWeight: 300, letterSpacing: '-0.03em' }}>
<span className="text-gradient" style={{ fontWeight: 500 }}>
The UAE&apos;s dedicated destination for Unitree and Pudu Robotics.
</span>
</h2>
<p style={{ margin: 0, color: '#e7e7e7', fontSize: 'clamp(0.92rem, 1.8vw, 1rem)', lineHeight: 1.7, maxWidth: 520 }}>
Selected solutions delivered to UAE businesses, venues, and innovators from inquiry to live deployment, fully supported in Dubai.
</p>
<ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>
{[
'UAE sales territory.',
'Local Dubai sales, demo, and deployment team.',
'Humanoid, quadruped, service, delivery, cleaning robots.',
'End-to-end procurement, training, and ongoing support.',
].map((b) => (
<li key={b} style={{ display: 'flex', alignItems: 'flex-start', gap: '0.65rem', color: '#fcfcfc', fontSize: '0.92rem', lineHeight: 1.5 }}>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#e7e7e7" strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round" style={{ flex: 'none', marginTop: 4 }} aria-hidden="true">
<path d="M20 6 9 17l-5-5" />
</svg>
{b}
</li>
))}
</ul>
<div style={{ display: 'flex', flexWrap: 'wrap', gap: '0.625rem', marginTop: '0.5rem' }}>
<PremiumButton href="/robots/">Explore robots</PremiumButton>
<PremiumButton href="/contact/" variant="ghost">Request UAE quotation</PremiumButton>
</div>
</div>
{/* Right premium showroom grid */}
<div
className="exa-tiles"
style={{
display: 'grid',
gap: '0.875rem',
minWidth: 0,
}}
>
<BrandShowcaseTile
href="/brands/#unitree"
brand="Unitree"
tag="Quadruped · Humanoid"
accent="#e7e7e7"
primary={{ src: '/images/robots/unitree-g1.webp', alt: 'Unitree G1 humanoid robot' }}
secondary={{ src: '/images/robots/unitree-go2.webp', alt: 'Unitree Go2 quadruped robot' }}
/>
<BrandShowcaseTile
href="/brands/#pudu"
brand="Pudu Robotics"
tag="Service · Delivery · Cleaning"
accent="#a8a8a8"
primary={{ src: '/images/robots/pudu-bellabot.webp', alt: 'Pudu BellaBot multi-tray delivery robot' }}
secondary={{ src: '/images/robots/pudu-kettybot.webp', alt: 'Pudu KettyBot Pro service robot with built-in advertising display' }}
/>
<TerritoryTile />
<ShowroomTile />
</div>
</div>
<style jsx>{`
.exa-grid {
grid-template-columns: 1fr;
}
.exa-tiles {
grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 640px) {
.exa-tiles {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 1024px) {
.exa-grid {
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
}
}
`}</style>
</div>
);
}
function BrandShowcaseTile({
href,
brand,
tag,
accent,
primary,
secondary,
}: {
href: string;
brand: string;
tag: string;
accent: string;
primary: { src: string; alt: string };
secondary: { src: string; alt: string };
}) {
return (
<Link
href={href}
style={{
position: 'relative',
display: 'flex',
flexDirection: 'column',
gap: '0.5rem',
padding: '1rem',
borderRadius: 18,
background:
`radial-gradient(ellipse 80% 60% at 30% 0%, ${accent}1F, transparent 60%), linear-gradient(135deg, rgba(30, 30, 30, 0.85), rgba(5,5,5,0.96))`,
border: `1px solid ${accent}44`,
color: '#fcfcfc',
textDecoration: 'none',
overflow: 'hidden',
minHeight: 220,
boxShadow: '0 12px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(231, 231, 231, 0.06)',
}}
>
{/* product visual area */}
<div
style={{
position: 'relative',
flex: 1,
minHeight: 130,
borderRadius: 12,
background:
`radial-gradient(ellipse 60% 50% at 50% 60%, ${accent}1A 0%, transparent 65%), linear-gradient(180deg, rgba(30, 30, 30, 0.7), rgba(11, 11, 11, 0.95))`,
overflow: 'hidden',
border: '1px solid rgba(231, 231, 231, 0.08)',
}}
>
<div
aria-hidden
style={{
position: 'absolute',
inset: 0,
backgroundImage:
'linear-gradient(rgba(215, 215, 215, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(215, 215, 215, 0.06) 1px, transparent 1px)',
backgroundSize: '24px 24px',
maskImage: 'radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 80%)',
WebkitMaskImage: 'radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 80%)',
pointerEvents: 'none',
}}
/>
<div
aria-hidden
style={{
position: 'absolute',
top: '8%',
left: '50%',
transform: 'translateX(-50%)',
width: '70%',
height: '70%',
background:
'radial-gradient(ellipse 60% 70% at 50% 30%, rgba(127, 127, 127, 0.35) 0%, transparent 65%)',
filter: 'blur(8px)',
pointerEvents: 'none',
}}
/>
{/* secondary robot back-left */}
<div
style={{
position: 'absolute',
left: '6%',
bottom: '8%',
width: '46%',
height: '78%',
opacity: 0.7,
filter: 'drop-shadow(0 12px 20px rgba(0,0,0,0.6))',
transform: 'scale(0.88)',
transformOrigin: 'bottom left',
}}
>
<Image
src={secondary.src}
alt={secondary.alt}
fill
sizes="220px"
style={{ objectFit: 'contain', objectPosition: 'center bottom' }}
/>
</div>
{/* primary robot front-right, slightly larger */}
<div
style={{
position: 'absolute',
right: '4%',
bottom: '6%',
width: '62%',
height: '90%',
filter:
'drop-shadow(0 16px 28px rgba(0,0,0,0.75)) drop-shadow(0 0 20px rgba(127, 127, 127, 0.4))',
}}
>
<Image
src={primary.src}
alt={primary.alt}
fill
sizes="280px"
style={{ objectFit: 'contain', objectPosition: 'center bottom' }}
/>
</div>
<span
style={{
position: 'absolute',
top: '0.5rem',
right: '0.5rem',
padding: '0.25rem 0.55rem',
borderRadius: 999,
background: 'rgba(16, 16, 16, 0.7)',
border: `1px solid ${accent}55`,
color: accent,
fontSize: '0.55rem',
fontWeight: 700,
letterSpacing: '0.22em',
textTransform: 'uppercase',
backdropFilter: 'blur(6px)',
}}
>
UAE
</span>
</div>
<div style={{ display: 'flex', flexDirection: 'column', gap: 4, padding: '0.25rem 0.25rem 0' }}>
<span style={{ fontSize: '0.62rem', color: '#a8a8a8', letterSpacing: '0.22em', textTransform: 'uppercase', fontWeight: 700 }}>
{tag}
</span>
<span style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '0.5rem' }}>
<span style={{ fontSize: '1rem', fontWeight: 700, letterSpacing: '-0.01em' }}>{brand}</span>
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke={accent} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
<line x1="5" y1="12" x2="19" y2="12" />
<polyline points="12 5 19 12 12 19" />
</svg>
</span>
</div>
</Link>
);
}
function TerritoryTile() {
return (
<div
style={{
position: 'relative',
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-between',
padding: '1rem',
borderRadius: 18,
background:
'radial-gradient(ellipse 80% 80% at 100% 0%, rgba(127, 127, 127, 0.30), transparent 60%), linear-gradient(135deg, rgba(30, 30, 30, 0.85), rgba(5,5,5,0.96))',
border: '1px solid rgba(127, 127, 127, 0.45)',
color: '#fcfcfc',
overflow: 'hidden',
minHeight: 170,
boxShadow: '0 12px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(231, 231, 231, 0.06)',
}}
>
{/* abstract UAE "territory" graphic ring map style */}
<svg
aria-hidden
viewBox="0 0 220 140"
style={{
position: 'absolute',
inset: 0,
width: '100%',
height: '100%',
opacity: 0.4,
}}
>
<defs>
<radialGradient id="terr-glow" cx="50%" cy="50%" r="60%">
<stop offset="0%" stopColor="#7f7f7f" stopOpacity="0.8" />
<stop offset="100%" stopColor="#7f7f7f" stopOpacity="0" />
</radialGradient>
</defs>
<circle cx="155" cy="55" r="42" fill="url(#terr-glow)" />
<circle cx="155" cy="55" r="32" fill="none" stroke="#e7e7e7" strokeOpacity="0.45" strokeDasharray="2 4" />
<circle cx="155" cy="55" r="22" fill="none" stroke="#e7e7e7" strokeOpacity="0.65" />
<circle cx="155" cy="55" r="3.5" fill="#e7e7e7" />
<text x="160" y="44" fontFamily="Inter, sans-serif" fontSize="8" letterSpacing="3" fill="#e1e1e1" textAnchor="start">DXB</text>
</svg>
<div style={{ position: 'relative', display: 'flex', flexDirection: 'column', gap: 4 }}>
<span style={{ fontSize: '0.62rem', color: '#a8a8a8', letterSpacing: '0.22em', textTransform: 'uppercase', fontWeight: 700 }}>
Sales Territory
</span>
<span className="text-gradient-accent" style={{ fontSize: 'clamp(1.6rem, 2.8vw, 2rem)', fontWeight: 700, letterSpacing: '-0.02em', lineHeight: 1 }}>
UAE
</span>
</div>
<span style={{ position: 'relative', fontSize: '0.72rem', color: '#e7e7e7', lineHeight: 1.4, marginTop: 'auto' }}>
UAE sales rights · Unitree & Pudu solutions.
</span>
</div>
);
}
function ShowroomTile() {
return (
<div
style={{
position: 'relative',
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-between',
padding: '1rem',
borderRadius: 18,
background:
'radial-gradient(ellipse 80% 80% at 0% 100%, rgba(231, 231, 231, 0.18), transparent 60%), linear-gradient(135deg, rgba(30, 30, 30, 0.85), rgba(5,5,5,0.96))',
border: '1px solid rgba(231, 231, 231, 0.22)',
color: '#fcfcfc',
overflow: 'hidden',
minHeight: 170,
boxShadow: '0 12px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(231, 231, 231, 0.06)',
}}
>
<svg
aria-hidden
viewBox="0 0 220 140"
style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', opacity: 0.38 }}
>
<defs>
<linearGradient id="show-floor" x1="0" y1="1" x2="0" y2="0">
<stop offset="0%" stopColor="#7f7f7f" stopOpacity="0.6" />
<stop offset="100%" stopColor="#7f7f7f" stopOpacity="0" />
</linearGradient>
</defs>
{/* perspective floor */}
{[0, 1, 2, 3, 4].map((i) => (
<line
key={i}
x1={20 - i * 5}
x2={200 + i * 5}
y1={70 + i * 14}
y2={70 + i * 14}
stroke="#e7e7e7"
strokeOpacity={0.35 - i * 0.06}
/>
))}
{[0, 1, 2, 3, 4, 5, 6].map((i) => (
<line
key={`v-${i}`}
x1={30 + i * 27}
y1={70}
x2={30 + i * 36 - 30}
y2={140}
stroke="#e7e7e7"
strokeOpacity={0.2}
/>
))}
<rect x="60" y="40" width="100" height="55" fill="url(#show-floor)" />
<rect x="60" y="40" width="100" height="55" fill="none" stroke="#e7e7e7" strokeOpacity="0.4" />
<circle cx="110" cy="68" r="6" fill="#e7e7e7" />
</svg>
<div style={{ position: 'relative', display: 'flex', flexDirection: 'column', gap: 4 }}>
<span style={{ fontSize: '0.62rem', color: '#a8a8a8', letterSpacing: '0.22em', textTransform: 'uppercase', fontWeight: 700 }}>
Showroom & Demo
</span>
<span className="text-gradient-accent" style={{ fontSize: 'clamp(1.4rem, 2.6vw, 1.85rem)', fontWeight: 700, letterSpacing: '-0.02em', lineHeight: 1 }}>
Dubai
</span>
</div>
<span style={{ position: 'relative', fontSize: '0.72rem', color: '#e7e7e7', lineHeight: 1.4, marginTop: 'auto' }}>
Live demos · City Bay Business Center.
</span>
</div>
);
}