diff --git a/src/assets/staff/arielyasmin.jpg b/src/assets/staff/arielyasmin.jpg new file mode 100644 index 0000000..ae8f725 Binary files /dev/null and b/src/assets/staff/arielyasmin.jpg differ diff --git a/src/assets/staff/djbiel.jpg b/src/assets/staff/djbiel.jpg new file mode 100644 index 0000000..b47607e Binary files /dev/null and b/src/assets/staff/djbiel.jpg differ diff --git a/src/assets/staff/djklebynho.jpg b/src/assets/staff/djklebynho.jpg new file mode 100644 index 0000000..c359f95 Binary files /dev/null and b/src/assets/staff/djklebynho.jpg differ diff --git a/src/assets/staff/djwinx.jpg b/src/assets/staff/djwinx.jpg new file mode 100644 index 0000000..a8ad666 Binary files /dev/null and b/src/assets/staff/djwinx.jpg differ diff --git a/src/assets/staff/hilaleo.jpg b/src/assets/staff/hilaleo.jpg new file mode 100644 index 0000000..a270734 Binary files /dev/null and b/src/assets/staff/hilaleo.jpg differ diff --git a/src/assets/staff/matheuslydia.jpg b/src/assets/staff/matheuslydia.jpg new file mode 100644 index 0000000..3a30d99 Binary files /dev/null and b/src/assets/staff/matheuslydia.jpg differ diff --git a/src/assets/staff/omeradva.jpg b/src/assets/staff/omeradva.jpg new file mode 100644 index 0000000..081d46b Binary files /dev/null and b/src/assets/staff/omeradva.jpg differ diff --git a/src/assets/staff/pablolena.jpg b/src/assets/staff/pablolena.jpg new file mode 100644 index 0000000..6297c81 Binary files /dev/null and b/src/assets/staff/pablolena.jpg differ diff --git a/src/components/OrgSection.tsx b/src/components/OrgSection.tsx index 7e8409b..54070e7 100644 --- a/src/components/OrgSection.tsx +++ b/src/components/OrgSection.tsx @@ -4,7 +4,7 @@ import communityImg from "@/assets/community.jpg"; import { Instagram, Facebook, Youtube } from "lucide-react"; const OrgSection = () => ( -
+
{/* Texto */} @@ -70,7 +70,7 @@ const OrgSection = () => ( Comunidad ZoukLambadaBCN
diff --git a/src/components/ProfesoresSection.tsx b/src/components/ProfesoresSection.tsx index ecd7e90..a7888f0 100644 --- a/src/components/ProfesoresSection.tsx +++ b/src/components/ProfesoresSection.tsx @@ -1,67 +1,8 @@ -import { motion } from "framer-motion"; -import { User } from "lucide-react"; -import { - Carousel, - CarouselContent, - CarouselItem, - CarouselPrevious, - CarouselNext, -} from "@/components/ui/carousel"; -import { PROFESORES } from "@/data/event-data"; +/** + * ProfesoresSection has been removed intentionally. + * Exporting a no-op component to avoid breaking imports. + */ -const ProfesoresSection = () => ( -
-
- -

- Profesores -

-

- Los mejores profesores internacionales de Lambada te esperan en este festival. -

-
- -
- - - {PROFESORES.map((prof, i) => ( - -
-
- {prof.image ? ( - {prof.name} - ) : ( - - )} -
-
-

- {prof.name} -

- {prof.origin && ( -

{prof.origin}

- )} -
-
-
- ))} -
- - -
-
-
-
-); +const ProfesoresSection = () => null; export default ProfesoresSection; diff --git a/src/components/StaffSection.tsx b/src/components/StaffSection.tsx index f727582..29acc34 100644 --- a/src/components/StaffSection.tsx +++ b/src/components/StaffSection.tsx @@ -1,6 +1,6 @@ import { motion } from "framer-motion"; import { STAFF } from "@/data/event-data"; -import { Instagram, User } from "lucide-react"; +import { Instagram, User, ChevronLeft, ChevronRight } from "lucide-react"; /** Colores de badge por rol */ const roleBadgeClass: Record = { @@ -9,81 +9,148 @@ const roleBadgeClass: Record = { Organizador: "bg-accent text-accent-foreground", }; -const StaffSection = () => ( -
-
- -

- Staff del Evento -

-

- Conoce a los artistas e instructores que harán de este festival una experiencia inolvidable. -

-
+const StaffSection = () => { + // simple ref + helpers for horizontal scroll + const onPrev = () => { + const scroller = document.getElementById("staff-scroller"); + if (!scroller) return; + const card = scroller.querySelector("[data-staff-card]") as HTMLElement | null; + const delta = card ? card.offsetWidth + 24 : 320; // 24 ~ gap-x-6 + scroller.scrollBy({ left: -delta, behavior: "smooth" }); + }; + const onNext = () => { + const scroller = document.getElementById("staff-scroller"); + if (!scroller) return; + const card = scroller.querySelector("[data-staff-card]") as HTMLElement | null; + const delta = card ? card.offsetWidth + 24 : 320; + scroller.scrollBy({ left: delta, behavior: "smooth" }); + }; -
- {STAFF.map((member, i) => ( - +
+ +
+

+ Staff del Evento +

+

+ Conoce a los artistas e instructores que harán de este festival una experiencia inolvidable. +

+
+ + {/* Arrows (desktop) */} +
+ + +
+
+ + {/* Carousel scroller */} +
+ {/* gradient edges */} +
+
+ +
- {/* Foto */} -
- {member.image ? ( - {member.name} - ) : ( - - )} -
- -
- {/* Badge de rol */} - ( + - {member.role} - + {/* Foto */} +
+ {member.image ? ( + {member.name} + ) : ( + + )} +
-

- {member.name} -

-

- {member.description} -

+
+ {/* Badge de rol */} + + {member.role} + - {/* Redes sociales */} - {member.socials?.instagram && ( - - - Instagram - - )} -
- - ))} +

+ {member.name} +

+

+ {member.description} +

+ + {/* Redes sociales */} + {member.socials?.instagram && ( + + + Instagram + + )} +
+ + ))} +
+ + {/* Arrows (mobile overlay) */} +
+ + +
+
-
-
-); +
+ ); +}; export default StaffSection; diff --git a/src/data/event-data.ts b/src/data/event-data.ts index f8fa9a2..8b267b0 100644 --- a/src/data/event-data.ts +++ b/src/data/event-data.ts @@ -9,6 +9,16 @@ * * NOTA: Las imágenes deben colocarse en src/assets/ e importarse. */ +import arielyasmin from "@/assets/staff/arielyasmin.jpg"; +import hilaleo from "@/assets/staff/hilaleo.jpg"; +import matheuslydia from "@/assets/staff/matheuslydia.jpg"; +import omeradva from "@/assets/staff/omeradva.jpg"; +import pablolena from "@/assets/staff/pablolena.jpg"; +import djbiel from "@/assets/staff/djbiel.jpg"; +import djwinx from "@/assets/staff/djwinx.jpg"; +import djklebynho from "@/assets/staff/djklebynho.jpg"; + + // ---- INFORMACIÓN GENERAL DEL EVENTO ---- export const EVENT_INFO = { @@ -49,8 +59,7 @@ export const WEBHOOK_URL = "https://n8n.hacecalor.net/webhook/event-reservation" // ---- SOBRE EL EVENTO ---- export const ABOUT_EVENT = { title: "Sobre el Evento", - description: `[Descripción del evento. Explica qué hace especial esta edición, - qué pueden esperar los asistentes, y por qué no se lo pueden perder.]`, + description: `El ZoukLambadaBCN Beach Festival es uno de los eventos más destacados del panorama internacional de baile, dedicado exclusivamente a las disciplinas del Zouk y la Lambazouk. Se celebra en la encantadora localidad de Santa Susana, en la costa del Maresme, aprovechando su entorno mediterráneo, sus amplias playas y su espíritu acogedor para crear una experiencia única que atrae a bailarines de todos los rincones del mundo. `, lambadaInfo: `La Lambada es un baile brasileño nacido en los años 80, conocido por su sensualidad, conexión y ritmo envolvente. Mezcla influencias de forró, merengue y carimbó, @@ -85,41 +94,93 @@ export const ABOUT_ORG = { export const STAFF = [ { id: "1", - name: "[Nombre Instructor 1]", + name: "[Pablo & Lena]", role: "Instructor" as const, description: "[Breve biografía del instructor]", /** Reemplazar con ruta a foto real */ - image: "", + image: pablolena, socials: { instagram: "", }, }, { id: "2", - name: "[Nombre Instructor 2]", + name: "[Ariel & Yasmin]", role: "Instructor" as const, description: "[Breve biografía del instructor]", - image: "", + image: arielyasmin, socials: { instagram: "", }, }, { id: "3", - name: "[Nombre DJ]", + name: "[Hila & Leo]", + role: "Instructor" as const, + description: "[Breve biografía del instructor]", + image: hilaleo, + socials: { + instagram: "", + }, + }, + { + id: "4", + name: "[Matheus & Lydia]", + role: "Instructor" as const, + description: "[Breve biografía del instructor]", + image: matheuslydia, + socials: { + instagram: "", + }, + }, + { + id: "5", + name: "[Omer & Adva]", + role: "Instructor" as const, + description: "[Breve biografía del instructor]", + image: omeradva, + socials: { + instagram: "", + }, + }, + { + id: "6", + name: "[DJ Biel]", role: "DJ" as const, description: "[Breve biografía del DJ]", - image: "", + image: djbiel, socials: { instagram: "", soundcloud: "", }, }, { - id: "4", - name: "[Nombre Organizador]", - role: "Organizador" as const, - description: "[Breve biografía del organizador]", + id: "7", + name: "[DJ WinX]", + role: "DJ" as const, + description: "[Breve biografía del DJ]", + image: djwinx, + socials: { + instagram: "", + soundcloud: "", + }, + }, + { + id: "8", + name: "[DJ Klebynho]", + role: "DJ" as const, + description: "[Breve biografía del DJ]", + image: djklebynho, + socials: { + instagram: "", + soundcloud: "", + }, + }, + { + id: "9", + name: "[Nombre Special Guest]", + role: "Special Guest" as const, + description: "[Breve biografía del invitado especial]", image: "", socials: { instagram: "", @@ -205,20 +266,6 @@ export const PRACTICAL_INFO = { ], }; -// ---- PROFESORES ---- -/** - * Para añadir un profesor, agrega un objeto al array. - * Importa la imagen desde src/assets/ si es local. - */ -export const PROFESORES = [ - { name: "[Profesor 1]", image: "", origin: "[País]" }, - { name: "[Profesor 2]", image: "", origin: "[País]" }, - { name: "[Profesor 3]", image: "", origin: "[País]" }, - { name: "[Profesor 4]", image: "", origin: "[País]" }, - { name: "[Profesor 5]", image: "", origin: "[País]" }, - { name: "[Profesor 6]", image: "", origin: "[País]" }, -]; - // ---- GALERÍA ---- /** * Añade URLs o importaciones de imágenes. diff --git a/tailwind.config.ts b/tailwind.config.ts index c6a1dda..fb89914 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -24,7 +24,7 @@ export default { background: "hsl(var(--background))", foreground: "hsl(var(--foreground))", primary: { - DEFAULT: "hsl(230.5, 57.6%, 74.1%);", + DEFAULT: "hsl(230.5, 57.6%, 74.1%)", foreground: "hsl(var(--primary-foreground))", }, secondary: {