content: page copy refinements + accessory rich data extensions
Some checks are pending
CI/CD / test-and-build (push) Waiting to run
CI/CD / deploy (push) Blocked by required conditions

- about, brands, contact, industries, bu-sunaidah page copy polish
- BuSunaidahSection content updates
- accessories.ts: rich-content interfaces (highlights, featureSections,
  specGroups, paramsImage, footnotes, safetyNotice) + full Dex2-5,
  Dex3-1, Dex1-1, Dex5-1, Z1, D1-T, L2 data sourced from vendor pages

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Najjar\NajjarV02 2026-05-21 17:17:05 +04:00
parent fb41977b18
commit de25d774af
7 changed files with 133 additions and 169 deletions

View File

@ -19,8 +19,8 @@ export default function AboutPage() {
<> <>
<Navbar /> <Navbar />
<main style={{ paddingTop: 'clamp(6rem, 10vw, 8rem)', paddingBottom: 'clamp(4rem, 8vw, 6rem)' }}> <main style={{ paddingTop: 'clamp(5rem, 9vw, 7rem)', paddingBottom: 'clamp(3rem, 6vw, 5rem)' }}>
<div className="container-wide" style={{ display: 'flex', flexDirection: 'column', gap: 'clamp(3rem, 6vw, 5rem)' }}> <div className="container-wide" style={{ display: 'flex', flexDirection: 'column', gap: 'clamp(2.5rem, 5vw, 4.25rem)' }}>
<div style={{ display: 'flex', flexDirection: 'column', gap: '1.25rem', maxWidth: 820 }}> <div style={{ display: 'flex', flexDirection: 'column', gap: '1.25rem', maxWidth: 820 }}>
<span className="eyebrow">About · YS Lootah Robotics</span> <span className="eyebrow">About · YS Lootah Robotics</span>
<h1 style={{ margin: 0, fontSize: 'clamp(2rem, 5vw, 3.4rem)', fontWeight: 300, lineHeight: 1.05, letterSpacing: '-0.03em' }}> <h1 style={{ margin: 0, fontSize: 'clamp(2rem, 5vw, 3.4rem)', fontWeight: 300, lineHeight: 1.05, letterSpacing: '-0.03em' }}>

View File

@ -19,8 +19,8 @@ export default function BrandsPage() {
<> <>
<Navbar /> <Navbar />
<main style={{ paddingTop: 'clamp(6rem, 10vw, 8rem)', paddingBottom: 'clamp(4rem, 8vw, 6rem)' }}> <main style={{ paddingTop: 'clamp(5rem, 9vw, 7rem)', paddingBottom: 'clamp(3rem, 6vw, 5rem)' }}>
<div className="container-wide" style={{ display: 'flex', flexDirection: 'column', gap: 'clamp(3rem, 5vw, 5rem)' }}> <div className="container-wide" style={{ display: 'flex', flexDirection: 'column', gap: 'clamp(2.5rem, 5vw, 4.25rem)' }}>
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem', maxWidth: 760 }}> <div style={{ display: 'flex', flexDirection: 'column', gap: '1rem', maxWidth: 760 }}>
<span className="eyebrow">UAE Access · Dubai</span> <span className="eyebrow">UAE Access · Dubai</span>
<h1 style={{ margin: 0, fontSize: 'clamp(2rem, 5vw, 3.4rem)', fontWeight: 300, lineHeight: 1.05, letterSpacing: '-0.03em' }}> <h1 style={{ margin: 0, fontSize: 'clamp(2rem, 5vw, 3.4rem)', fontWeight: 300, lineHeight: 1.05, letterSpacing: '-0.03em' }}>

View File

@ -370,7 +370,7 @@ export default async function BuSunaidahPage() {
<style>{` <style>{`
.bs-main { .bs-main {
padding-top: clamp(5rem, 9vw, 7rem); padding-top: clamp(5rem, 9vw, 7rem);
padding-bottom: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(3rem, 6vw, 5rem);
} }
.bs-stack { .bs-stack {
display: flex; display: flex;

View File

@ -14,7 +14,7 @@ export default function ContactPage() {
<> <>
<Navbar /> <Navbar />
<main style={{ paddingTop: 'clamp(6rem, 10vw, 8rem)', paddingBottom: 'clamp(4rem, 8vw, 6rem)' }}> <main style={{ paddingTop: 'clamp(5rem, 9vw, 7rem)', paddingBottom: 'clamp(3rem, 6vw, 5rem)' }}>
<div className="container-wide" style={{ display: 'grid', gap: 'clamp(2rem, 5vw, 3rem)', gridTemplateColumns: 'repeat(auto-fit, minmax(min(320px, 100%), 1fr))', alignItems: 'flex-start' }}> <div className="container-wide" style={{ display: 'grid', gap: 'clamp(2rem, 5vw, 3rem)', gridTemplateColumns: 'repeat(auto-fit, minmax(min(320px, 100%), 1fr))', alignItems: 'flex-start' }}>
<div style={{ display: 'flex', flexDirection: 'column', gap: '1.25rem' }}> <div style={{ display: 'flex', flexDirection: 'column', gap: '1.25rem' }}>
<span className="eyebrow">Contact · Dubai · UAE</span> <span className="eyebrow">Contact · Dubai · UAE</span>

View File

@ -148,7 +148,7 @@ export default function IndustriesPage() {
<style>{` <style>{`
.ind-main { .ind-main {
padding-top: clamp(5rem, 9vw, 7rem); padding-top: clamp(5rem, 9vw, 7rem);
padding-bottom: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(3rem, 6vw, 5rem);
} }
.ind-stack { .ind-stack {
display: flex; display: flex;

View File

@ -100,144 +100,154 @@ export function BuSunaidahSection() {
pointerEvents: 'none', pointerEvents: 'none',
}} }}
/> />
<Link {(() => {
href="/bu-sunaidah/" const cardStyle = {
aria-label="Open the Bu Sunaidah page" position: 'relative' as const,
style={{ display: 'block' as const,
position: 'relative',
display: 'block',
width: '100%', width: '100%',
height: '100%', height: '100%',
borderRadius: '1.75rem', borderRadius: '1.75rem',
overflow: 'hidden', overflow: 'hidden' as const,
border: '1px solid rgba(39, 63, 148,0.35)', border: '1px solid rgba(39, 63, 148,0.35)',
background: background:
'radial-gradient(ellipse 70% 60% at 50% 55%, rgba(222, 224, 240,0.18), transparent 60%), linear-gradient(180deg, rgba(28, 27, 33,0.85), rgba(5,5,5,0.95))', 'radial-gradient(ellipse 70% 60% at 50% 55%, rgba(222, 224, 240,0.18), transparent 60%), linear-gradient(180deg, rgba(28, 27, 33,0.85), rgba(5,5,5,0.95))',
boxShadow: '0 30px 100px rgba(0,0,0,0.7)', boxShadow: '0 30px 100px rgba(0,0,0,0.7)',
textDecoration: 'none', textDecoration: 'none' as const,
color: 'inherit', color: 'inherit' as const,
}} };
>
{BU_SUNAIDAH_PORTRAIT ? ( const chips = (
<Image <div
src={BU_SUNAIDAH_PORTRAIT.src} style={{
alt={BU_SUNAIDAH_PORTRAIT.alt} position: 'absolute',
fill bottom: '1rem',
sizes="(max-width: 768px) 90vw, 460px" left: '1rem',
style={{ objectFit: 'cover', objectPosition: 'center' }} right: '1rem',
/> display: 'flex',
) : ( alignItems: 'center',
justifyContent: 'space-between',
gap: '0.75rem',
pointerEvents: 'none',
}}
>
<span
style={{
padding: '0.4rem 0.75rem',
borderRadius: 999,
background: 'rgba(14, 13, 18,0.7)',
border: '1px solid rgba(39, 63, 148,0.35)',
color: '#DEE0F0',
fontSize: '0.66rem',
letterSpacing: '0.22em',
textTransform: 'uppercase',
fontWeight: 600,
backdropFilter: 'blur(8px)',
}}
>
Emirati-inspired persona
</span>
<span
style={{
padding: '0.35rem 0.65rem',
borderRadius: 999,
background: 'rgba(222, 224, 240,0.18)',
border: '1px solid rgba(222, 224, 240,0.4)',
color: '#FBFBFD',
fontSize: '0.7rem',
letterSpacing: '0.16em',
textTransform: 'uppercase',
fontWeight: 700,
}}
>
Bu Sunaidah
</span>
</div>
);
if (BU_SUNAIDAH_PORTRAIT) {
return (
<Link href="/bu-sunaidah/" aria-label="Open the Bu Sunaidah page" style={cardStyle}>
<Image
src={BU_SUNAIDAH_PORTRAIT.src}
alt={BU_SUNAIDAH_PORTRAIT.alt}
fill
sizes="(max-width: 768px) 90vw, 460px"
style={{ objectFit: 'cover', objectPosition: 'center' }}
/>
{chips}
</Link>
);
}
return (
<a <a
href={BU_SUNAIDAH_URL} href={BU_SUNAIDAH_URL}
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
onClick={(e) => e.stopPropagation()}
aria-label="Open @bu.sunaidah on Instagram in a new tab" aria-label="Open @bu.sunaidah on Instagram in a new tab"
style={{ style={cardStyle}
position: 'absolute',
inset: 0,
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
gap: '1.1rem',
textDecoration: 'none',
color: '#FBFBFD',
textAlign: 'center',
padding: 'clamp(1.25rem, 4vw, 2rem)',
background:
'radial-gradient(ellipse 60% 60% at 50% 35%, rgba(58, 85, 196, 0.25), transparent 65%)',
}}
> >
<span <span
aria-hidden
style={{ style={{
display: 'inline-flex', position: 'absolute',
inset: 0,
display: 'flex',
flexDirection: 'column',
alignItems: 'center', alignItems: 'center',
justifyContent: 'center', justifyContent: 'center',
width: 78, gap: '1.1rem',
height: 78, textAlign: 'center',
borderRadius: 22, padding: 'clamp(1.25rem, 4vw, 2rem)',
color: '#FFFFFF',
border: '1px solid rgba(222, 224, 240, 0.28)',
background: background:
'radial-gradient(ellipse 60% 60% at 30% 30%, rgba(255, 84, 165, 0.55), transparent 60%), radial-gradient(ellipse 60% 60% at 70% 70%, rgba(255, 165, 84, 0.45), transparent 60%), linear-gradient(135deg, rgba(58, 85, 196, 0.65), rgba(20, 20, 28, 0.85))', 'radial-gradient(ellipse 60% 60% at 50% 35%, rgba(58, 85, 196, 0.25), transparent 65%)',
boxShadow: '0 18px 40px rgba(0,0,0,0.55)',
}} }}
> >
<InstagramGlyph size={34} /> <span
</span> aria-hidden
<span style={{
style={{ display: 'inline-flex',
fontSize: '0.66rem', alignItems: 'center',
letterSpacing: '0.28em', justifyContent: 'center',
textTransform: 'uppercase', width: 78,
fontWeight: 700, height: 78,
color: '#8891C7', borderRadius: 22,
}} color: '#FFFFFF',
> border: '1px solid rgba(222, 224, 240, 0.28)',
Portrait coming soon background:
</span> 'radial-gradient(ellipse 60% 60% at 30% 30%, rgba(255, 84, 165, 0.55), transparent 60%), radial-gradient(ellipse 60% 60% at 70% 70%, rgba(255, 165, 84, 0.45), transparent 60%), linear-gradient(135deg, rgba(58, 85, 196, 0.65), rgba(20, 20, 28, 0.85))',
<span boxShadow: '0 18px 40px rgba(0,0,0,0.55)',
style={{ }}
fontSize: '1.05rem', >
fontWeight: 500, <InstagramGlyph size={34} />
letterSpacing: '-0.005em', </span>
lineHeight: 1.4, <span
maxWidth: 280, style={{
}} fontSize: '0.66rem',
> letterSpacing: '0.28em',
View Bu Sunaidah&apos;s latest moments on Instagram textTransform: 'uppercase',
fontWeight: 700,
color: '#8891C7',
}}
>
Portrait coming soon
</span>
<span
style={{
fontSize: '1.05rem',
fontWeight: 500,
letterSpacing: '-0.005em',
lineHeight: 1.4,
maxWidth: 280,
color: '#FBFBFD',
}}
>
View Bu Sunaidah&apos;s latest moments on Instagram
</span>
</span> </span>
{chips}
</a> </a>
)} );
})()}
<div
style={{
position: 'absolute',
bottom: '1rem',
left: '1rem',
right: '1rem',
display: 'flex',
alignItems: 'center',
justifyContent: 'space-between',
gap: '0.75rem',
pointerEvents: 'none',
}}
>
<span
style={{
padding: '0.4rem 0.75rem',
borderRadius: 999,
background: 'rgba(14, 13, 18,0.7)',
border: '1px solid rgba(39, 63, 148,0.35)',
color: '#DEE0F0',
fontSize: '0.66rem',
letterSpacing: '0.22em',
textTransform: 'uppercase',
fontWeight: 600,
backdropFilter: 'blur(8px)',
}}
>
Emirati-inspired persona
</span>
<span
style={{
padding: '0.35rem 0.65rem',
borderRadius: 999,
background: 'rgba(222, 224, 240,0.18)',
border: '1px solid rgba(222, 224, 240,0.4)',
color: '#FBFBFD',
fontSize: '0.7rem',
letterSpacing: '0.16em',
textTransform: 'uppercase',
fontWeight: 700,
}}
>
Bu Sunaidah
</span>
</div>
</Link>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1031,52 +1031,6 @@ export const ACCESSORIES: Accessory[] = [
officialUrl: 'https://www.pudurobotics.com/en/accessory', officialUrl: 'https://www.pudurobotics.com/en/accessory',
compatibility: ['PUDU T300'], compatibility: ['PUDU T300'],
}, },
{
id: 'pudu-towing-device',
slug: 'pudu-towing-device',
brand: 'pudu',
brandLabel: 'Pudu',
name: 'T300 Towing Device',
tagline: 'Towing attachment converting T300 to a tow tractor.',
group: 'attachment',
description:
'T300 towing attachment for hauling trailers, carts, and totes. Modular hitch with safe coupling, ideal for warehouse train operations and back-of-house logistics.',
features: [
'Modular hitch',
'Trailer / cart towing',
'Safe coupling sensors',
'Warehouse train ops',
'Tool-less install',
'IoT route planning',
],
image: '/images/robots/pudu-d7.png',
accent: GOLD_BRONZE,
officialUrl: 'https://www.pudurobotics.com/en/accessory',
compatibility: ['PUDU T300'],
},
{
id: 'pudu-lifting-rack',
slug: 'pudu-lifting-rack',
brand: 'pudu',
brandLabel: 'Pudu',
name: 'T300 Lifting Rack',
tagline: 'Lifting platform attachment for shelf pick-and-place.',
group: 'attachment',
description:
'T300 lifting-platform attachment for shelf pick-and-place operations. Modular adjustable rack heights for parts kitting, restocking, and just-in-time material flows.',
features: [
'Powered lift platform',
'Adjustable rack heights',
'Shelf pick-and-place',
'Just-in-time material flow',
'Safe motion sensors',
'Tool-less install',
],
image: '/images/robots/pudu-d9.png',
accent: GOLD_BRAND,
officialUrl: 'https://www.pudurobotics.com/en/accessory',
compatibility: ['PUDU T300'],
},
{ {
id: 'pudu-carpet-vacuuming-assembly', id: 'pudu-carpet-vacuuming-assembly',
slug: 'pudu-carpet-vacuuming-assembly', slug: 'pudu-carpet-vacuuming-assembly',