Autosave: 20260501-141129

This commit is contained in:
Flatlogic Bot 2026-05-01 14:11:27 +00:00
parent f9af0ce921
commit e46cec7f80
10 changed files with 49 additions and 50 deletions

View File

@ -92,7 +92,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
</div> </div>
<h1 className="text-3xl font-black tracking-tight text-white">Guía boricua para salir a chinchorrear</h1> <h1 className="text-3xl font-black tracking-tight text-white">Guía boricua para salir a chinchorrear</h1>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Rutas, chinchorros, lugares y favoritos para montar el próximo road trip con sazón. Rutas, chinchorros, lugares y favoritos para montar la próxima ruta con sazón.
</p> </p>
<div className="mt-5 grid grid-cols-2 gap-3 text-sm"> <div className="mt-5 grid grid-cols-2 gap-3 text-sm">
<div className="rounded-2xl border border-white/10 bg-white/5 p-3"> <div className="rounded-2xl border border-white/10 bg-white/5 p-3">
@ -135,7 +135,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
<span className="mr-2">{item.emoji}</span> <span className="mr-2">{item.emoji}</span>
{item.label} {item.label}
</div> </div>
<div className="text-xs text-slate-400">Explora esta sección</div> <div className="text-xs text-slate-400">Dale una vuelta</div>
</div> </div>
</Link> </Link>
); );
@ -149,7 +149,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
className="flex flex-1 items-center justify-center gap-2 rounded-2xl border border-white/10 bg-white/5 px-3 py-3 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10" className="flex flex-1 items-center justify-center gap-2 rounded-2xl border border-white/10 bg-white/5 px-3 py-3 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10"
> >
<BaseIcon path={mdiLogin} size={18} /> <BaseIcon path={mdiLogin} size={18} />
Entrar al admin Área privada
</Link> </Link>
<button <button
type="button" type="button"
@ -177,7 +177,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
className="hidden items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10 sm:inline-flex" className="hidden items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10 sm:inline-flex"
> >
<BaseIcon path={mdiLogin} size={16} /> <BaseIcon path={mdiLogin} size={16} />
Admin Área privada
</Link> </Link>
<button <button
type="button" type="button"

View File

@ -24,7 +24,7 @@ export default function RoutePreview({ route, compact = false }: Props) {
<div className="flex items-start justify-between gap-3"> <div className="flex items-start justify-between gap-3">
<div> <div>
<div className="text-xs font-semibold uppercase tracking-[0.25em] text-white/80"> <div className="text-xs font-semibold uppercase tracking-[0.25em] text-white/80">
Preview de ruta Vista rápida
</div> </div>
<div className="mt-1 text-lg font-black tracking-tight">{route.region}</div> <div className="mt-1 text-lg font-black tracking-tight">{route.region}</div>
</div> </div>

View File

@ -117,7 +117,7 @@ export default function EventsPage() {
<input <input
value={searchValue} value={searchValue}
onChange={(event) => setSearchValue(event.target.value)} onChange={(event) => setSearchValue(event.target.value)}
placeholder="Buscar por festival, pueblo o venue" placeholder="Buscar por festival, pueblo o lugar"
className="w-full rounded-2xl border border-white/10 bg-[#04111f]/50 px-4 py-3 text-white placeholder:text-slate-400 focus:border-[#DAA520] focus:outline-none focus:ring-0" className="w-full rounded-2xl border border-white/10 bg-[#04111f]/50 px-4 py-3 text-white placeholder:text-slate-400 focus:border-[#DAA520] focus:outline-none focus:ring-0"
/> />
</div> </div>
@ -201,7 +201,7 @@ export default function EventsPage() {
<div className="mt-2 font-semibold text-white">{formatEventDate(event.nextDateIso)}</div> <div className="mt-2 font-semibold text-white">{formatEventDate(event.nextDateIso)}</div>
</div> </div>
<div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300"> <div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300">
<div className="text-xs uppercase tracking-[0.2em] text-slate-500">Venue</div> <div className="text-xs uppercase tracking-[0.2em] text-slate-500">Lugar</div>
<div className="mt-2 font-semibold text-white">{event.venue}</div> <div className="mt-2 font-semibold text-white">{event.venue}</div>
</div> </div>
<div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300"> <div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300">
@ -225,7 +225,7 @@ export default function EventsPage() {
].join(' ')} ].join(' ')}
> >
<BaseIcon path={mdiStarOutline} size={16} /> <BaseIcon path={mdiStarOutline} size={16} />
{saved ? 'Guardado' : 'Guardar evento'} {saved ? 'Evento guardado' : 'Guardar evento'}
</button> </button>
<div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm text-slate-200"> <div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm text-slate-200">
<BaseIcon path={mdiCalendarStar} size={16} /> <BaseIcon path={mdiCalendarStar} size={16} />
@ -241,9 +241,9 @@ export default function EventsPage() {
{!filteredEvents.length ? ( {!filteredEvents.length ? (
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<h2 className="text-2xl font-black text-white">No encontramos eventos con ese término</h2> <h2 className="text-2xl font-black text-white">No salió ningún evento con esa búsqueda</h2>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Intenta con otro pueblo, venue o limpia la búsqueda para ver el calendario completo. Prueba con otro pueblo o lugar, o limpia la búsqueda para ver qué viene por ahí.
</p> </p>
</section> </section>
) : null} ) : null}

View File

@ -93,7 +93,7 @@ export default function HomePage() {
<PublicShell <PublicShell
activeSection="inicio" activeSection="inicio"
floatingAction={{ floatingAction={{
label: 'Iniciar Ruta Aleatoria 🎲', label: 'Sorpréndeme con una ruta 🎲',
icon: mdiDice5Outline, icon: mdiDice5Outline,
onClick: handleRandomRoute, onClick: handleRandomRoute,
}} }}
@ -178,7 +178,7 @@ export default function HomePage() {
className="inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/25 hover:bg-white/15" className="inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/25 hover:bg-white/15"
> >
<BaseIcon path={mdiLogin} size={18} /> <BaseIcon path={mdiLogin} size={18} />
Entrar al admin Área privada
</Link> </Link>
</div> </div>
</div> </div>
@ -210,7 +210,7 @@ export default function HomePage() {
<SectionHeader <SectionHeader
eyebrow="Rutas populares" eyebrow="Rutas populares"
title="Desliza y arma tu próximo chinchorreo" title="Desliza y arma tu próximo chinchorreo"
description="Las rutas más queridas combinan paisaje, comida y paradas pensadas para un road trip sabroso." description="Las rutas más queridas combinan paisaje, comida y paradas pensadas para un chinchorreo sabroso."
href="/rutas" href="/rutas"
/> />
<div className="flex snap-x gap-5 overflow-x-auto pb-2"> <div className="flex snap-x gap-5 overflow-x-auto pb-2">

View File

@ -122,9 +122,9 @@ export default function PlacesPage() {
{!filteredPlaces.length ? ( {!filteredPlaces.length ? (
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<h2 className="text-2xl font-black text-white">No encontramos lugares con esos filtros</h2> <h2 className="text-2xl font-black text-white">Con esos filtros no salió ningún lugar</h2>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Prueba buscando por pueblo, cambia la categoría o limpia el término de búsqueda. Prueba otro pueblo, cambia la categoría o borra la búsqueda para seguir explorando.
</p> </p>
</section> </section>
) : null} ) : null}
@ -180,7 +180,7 @@ export default function PlacesPage() {
].join(' ')} ].join(' ')}
> >
<BaseIcon path={mdiStarOutline} size={16} /> <BaseIcon path={mdiStarOutline} size={16} />
{saved ? 'Guardado' : 'Guardar en Favoritos'} {saved ? 'Lugar guardado' : 'Guardar lugar'}
</button> </button>
</div> </div>
<div className="inline-flex items-center gap-2 text-sm text-slate-300"> <div className="inline-flex items-center gap-2 text-sm text-slate-300">

View File

@ -297,7 +297,7 @@ export default function MapPage() {
href={selectedItem.href} href={selectedItem.href}
className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]" className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]"
> >
Ver detalle Ver en la guía
<BaseIcon path={mdiChevronRight} size={16} /> <BaseIcon path={mdiChevronRight} size={16} />
</Link> </Link>
<a <a
@ -330,7 +330,7 @@ export default function MapPage() {
<div className="rounded-[2rem] border border-white/10 bg-white/5 p-6 shadow-xl shadow-black/20"> <div className="rounded-[2rem] border border-white/10 bg-white/5 p-6 shadow-xl shadow-black/20">
<div className="text-xs font-bold uppercase tracking-[0.35em] text-[#FDE68A]">Ruta desde el mapa</div> <div className="text-xs font-bold uppercase tracking-[0.35em] text-[#FDE68A]">Ruta desde el mapa</div>
<h2 className="mt-2 text-2xl font-black text-white">Pins seleccionados</h2> <h2 className="mt-2 text-2xl font-black text-white">Paradas seleccionadas</h2>
{selectedRouteItems.length ? ( {selectedRouteItems.length ? (
<div className="mt-5 space-y-3"> <div className="mt-5 space-y-3">
{selectedRouteItems.map((item, index) => ( {selectedRouteItems.map((item, index) => (
@ -357,7 +357,7 @@ export default function MapPage() {
</div> </div>
) : ( ) : (
<div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-5 text-sm leading-6 text-slate-300"> <div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-5 text-sm leading-6 text-slate-300">
Toca varios pins para armar una mini ruta. Necesitas al menos dos para trazarla. Marca varias paradas para armar una mini ruta. Con dos o más ya puedes abrirla.
</div> </div>
)} )}
@ -369,7 +369,7 @@ export default function MapPage() {
className="mt-5 inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]" className="mt-5 inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]"
> >
<BaseIcon path={mdiMapSearchOutline} size={16} /> <BaseIcon path={mdiMapSearchOutline} size={16} />
Trazar Ruta Abrir ruta
</a> </a>
) : null} ) : null}
</div> </div>
@ -378,9 +378,9 @@ export default function MapPage() {
{!visibleItems.length ? ( {!visibleItems.length ? (
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<h2 className="text-2xl font-black text-white">No hay pins visibles con esos filtros</h2> <h2 className="text-2xl font-black text-white">Con esos filtros no se ve ninguna parada en el mapa</h2>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Activa chinchorros o lugares nuevamente, o limpia la búsqueda para reconstruir el mapa. Vuelve a activar chinchorros o lugares, o limpia la búsqueda para verlo completo otra vez.
</p> </p>
</section> </section>
) : null} ) : null}

View File

@ -91,7 +91,7 @@ export default function FavoritesPage() {
const handleRemoveFavorite = (category: FavoriteCategory, itemSlug: string) => { const handleRemoveFavorite = (category: FavoriteCategory, itemSlug: string) => {
removeFavorite(category, itemSlug, activeListId); removeFavorite(category, itemSlug, activeListId);
setFeedback('Favorito removido de la lista activa.'); setFeedback('Se quitó de la lista activa.');
}; };
const handleRemoveList = () => { const handleRemoveList = () => {
@ -122,7 +122,7 @@ export default function FavoritesPage() {
Crea listas y guarda tus próximos jangueos Crea listas y guarda tus próximos jangueos
</h1> </h1>
<p className="mt-3 text-base leading-7 text-slate-300"> <p className="mt-3 text-base leading-7 text-slate-300">
En esta primera iteración, tus favoritos viven en el navegador: puedes crear listas, Tus favoritos se guardan en este dispositivo: puedes crear listas,
elegir una lista activa y compartirla por WhatsApp. elegir una lista activa y compartirla por WhatsApp.
</p> </p>
@ -212,7 +212,7 @@ export default function FavoritesPage() {
onClick={handleClearList} onClick={handleClearList}
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-4 py-2 text-sm font-semibold text-slate-200 transition hover:border-white/20 hover:bg-white/5" className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-4 py-2 text-sm font-semibold text-slate-200 transition hover:border-white/20 hover:bg-white/5"
> >
Vaciar lista activa Vaciar esta lista
</button> </button>
{activeListId !== DEFAULT_PUBLIC_LIST_ID ? ( {activeListId !== DEFAULT_PUBLIC_LIST_ID ? (
<button <button
@ -242,7 +242,7 @@ export default function FavoritesPage() {
].join(' ')} ].join(' ')}
> >
<div className="text-xs uppercase tracking-[0.25em] text-slate-400"> <div className="text-xs uppercase tracking-[0.25em] text-slate-400">
{isActive ? 'Lista activa' : 'Toca para activar'} {isActive ? 'Lista activa' : 'Usar esta lista'}
</div> </div>
<h3 className="mt-2 text-2xl font-black text-white">{list.name}</h3> <h3 className="mt-2 text-2xl font-black text-white">{list.name}</h3>
<p className="mt-2 text-sm leading-6 text-slate-300">{list.description}</p> <p className="mt-2 text-sm leading-6 text-slate-300">{list.description}</p>
@ -296,7 +296,7 @@ export default function FavoritesPage() {
href={item.itemHref} href={item.itemHref}
className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]" className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]"
> >
Ver detalle Ver en la guía
<BaseIcon path={mdiChevronRight} size={16} /> <BaseIcon path={mdiChevronRight} size={16} />
</Link> </Link>
<button <button
@ -313,7 +313,7 @@ export default function FavoritesPage() {
</div> </div>
) : ( ) : (
<div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-6 text-sm leading-6 text-slate-300"> <div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-6 text-sm leading-6 text-slate-300">
Todavía no tienes {categoryLabels[category].toLowerCase()} guardados en esta lista. Aquí todavía no has guardado {categoryLabels[category].toLowerCase()} en esta lista.
</div> </div>
)} )}
</article> </article>
@ -324,9 +324,9 @@ export default function FavoritesPage() {
{!activeFavorites.length ? ( {!activeFavorites.length ? (
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<BaseIcon path={mdiStarOutline} size={42} className="mx-auto text-[#FDE68A]" /> <BaseIcon path={mdiStarOutline} size={42} className="mx-auto text-[#FDE68A]" />
<h2 className="mt-4 text-3xl font-black text-white">Tu lista activa todavía está vacía</h2> <h2 className="mt-4 text-3xl font-black text-white">Esta lista está vacía por ahora</h2>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Empieza guardando una ruta, un chinchorro o un lugar desde el resto de la guía pública. Guarda una ruta, un chinchorro o un lugar desde la guía y aquí se te irá armando el plan.
</p> </p>
<div className="mt-5 flex flex-wrap items-center justify-center gap-3"> <div className="mt-5 flex flex-wrap items-center justify-center gap-3">
<Link <Link

View File

@ -127,7 +127,7 @@ export default function RestaurantsPage() {
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/10" className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/10"
> >
<BaseIcon path={mdiShareVariantOutline} size={16} /> <BaseIcon path={mdiShareVariantOutline} size={16} />
Compartir esta página Compartir selección
</button> </button>
</div> </div>
@ -373,7 +373,7 @@ export default function RestaurantsPage() {
].join(' ')} ].join(' ')}
> >
<BaseIcon path={mdiStarOutline} size={16} /> <BaseIcon path={mdiStarOutline} size={16} />
{saved ? 'Guardado' : 'Guardar en Favoritos'} {saved ? 'Chinchorro guardado' : 'Guardar chinchorro'}
</button> </button>
{chinchorro.routeSlug ? ( {chinchorro.routeSlug ? (
<Link <Link
@ -393,9 +393,9 @@ export default function RestaurantsPage() {
{!filteredChinchorros.length ? ( {!filteredChinchorros.length ? (
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<h2 className="text-2xl font-black text-white">No encontramos chinchorros con esos filtros</h2> <h2 className="text-2xl font-black text-white">Con esos filtros no salió ningún chinchorro</h2>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Cambia la región, quita el filtro de abierto ahora o busca por pueblo para ver más opciones. Prueba otro pueblo, quita Abierto ahora o cambia la región para ver más opciones.
</p> </p>
</section> </section>
) : null} ) : null}

View File

@ -49,13 +49,13 @@ export default function RouteDetailPage() {
return ( return (
<> <>
<Head> <Head>
<title>Chinchorreo PR | Ruta no encontrada</title> <title>Chinchorreo PR | Esa ruta no aparece por aquí</title>
</Head> </Head>
<PublicShell activeSection="rutas"> <PublicShell activeSection="rutas">
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<h1 className="text-3xl font-black text-white">Ruta no encontrada</h1> <h1 className="text-3xl font-black text-white">Esa ruta no aparece por aquí</h1>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Parece que esta ruta todavía no está publicada en la primera iteración de la guía. Puede que el enlace haya cambiado o que todavía no la tengamos publicada en la guía.
</p> </p>
<Link <Link
href="/rutas" href="/rutas"
@ -143,7 +143,7 @@ export default function RouteDetailPage() {
className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f] transition hover:bg-slate-100" className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f] transition hover:bg-slate-100"
> >
<BaseIcon path={mdiCompassOutline} size={16} /> <BaseIcon path={mdiCompassOutline} size={16} />
Iniciar Navegación Abrir navegación
</a> </a>
<button <button
type="button" type="button"
@ -156,7 +156,7 @@ export default function RouteDetailPage() {
].join(' ')} ].join(' ')}
> >
<BaseIcon path={mdiStarOutline} size={16} /> <BaseIcon path={mdiStarOutline} size={16} />
{saved ? 'Ruta guardada' : 'Agregar a Favoritos ⭐'} {saved ? 'Ruta guardada' : 'Guardar ruta'}
</button> </button>
<button <button
type="button" type="button"
@ -164,7 +164,7 @@ export default function RouteDetailPage() {
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/15" className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/15"
> >
<BaseIcon path={mdiShareVariantOutline} size={16} /> <BaseIcon path={mdiShareVariantOutline} size={16} />
Compartir por WhatsApp Compartir ruta
</button> </button>
</div> </div>
</div> </div>
@ -272,7 +272,7 @@ export default function RouteDetailPage() {
href="/mis-favoritos" href="/mis-favoritos"
className="mt-5 inline-flex items-center gap-2 text-sm font-semibold text-[#FDE68A]" className="mt-5 inline-flex items-center gap-2 text-sm font-semibold text-[#FDE68A]"
> >
Ver mis favoritos Abrir favoritos
<BaseIcon path={mdiChevronRight} size={16} /> <BaseIcon path={mdiChevronRight} size={16} />
</Link> </Link>
</div> </div>

View File

@ -113,7 +113,7 @@ export default function RoutesPage() {
Explora la isla parada por parada Explora la isla parada por parada
</h1> </h1>
<p className="mt-3 text-base leading-7 text-slate-300"> <p className="mt-3 text-base leading-7 text-slate-300">
Esta primera iteración te deja descubrir rutas populares, ver sus paradas en orden, Aquí puedes descubrir rutas populares, ver sus paradas en orden,
iniciar navegación y guardarlas en una lista personalizada. iniciar navegación y guardarlas en una lista personalizada.
</p> </p>
</div> </div>
@ -121,7 +121,7 @@ export default function RoutesPage() {
<div className="font-semibold text-white">Lista activa</div> <div className="font-semibold text-white">Lista activa</div>
<div className="mt-1 text-[#FDE68A]">{activeList?.name || 'Mi chinchorreo'}</div> <div className="mt-1 text-[#FDE68A]">{activeList?.name || 'Mi chinchorreo'}</div>
<Link href="/mis-favoritos" className="mt-3 inline-flex items-center gap-2 text-sm font-semibold text-[#A7F3D0]"> <Link href="/mis-favoritos" className="mt-3 inline-flex items-center gap-2 text-sm font-semibold text-[#A7F3D0]">
Ver favoritos Abrir favoritos
<BaseIcon path={mdiChevronRight} size={16} /> <BaseIcon path={mdiChevronRight} size={16} />
</Link> </Link>
</div> </div>
@ -180,7 +180,7 @@ export default function RoutesPage() {
<div className="mt-4 flex flex-wrap items-center gap-3 text-sm text-slate-300"> <div className="mt-4 flex flex-wrap items-center gap-3 text-sm text-slate-300">
<div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2"> <div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2">
<BaseIcon path={mdiFilterVariant} size={16} /> <BaseIcon path={mdiFilterVariant} size={16} />
{filteredRoutes.length} rutas que matchean tu vibe {filteredRoutes.length} rutas que van con tu plan
</div> </div>
{feedback ? ( {feedback ? (
<div className="inline-flex items-center gap-2 rounded-full border border-[#228B22]/30 bg-[#228B22]/10 px-3 py-2 text-[#A7F3D0]"> <div className="inline-flex items-center gap-2 rounded-full border border-[#228B22]/30 bg-[#228B22]/10 px-3 py-2 text-[#A7F3D0]">
@ -251,7 +251,7 @@ export default function RoutesPage() {
href={`/rutas/${route.slug}`} href={`/rutas/${route.slug}`}
className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f] transition hover:bg-slate-100" className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f] transition hover:bg-slate-100"
> >
Ver detalle Ver ruta
<BaseIcon path={mdiChevronRight} size={16} /> <BaseIcon path={mdiChevronRight} size={16} />
</Link> </Link>
<a <a
@ -274,7 +274,7 @@ export default function RoutesPage() {
].join(' ')} ].join(' ')}
> >
<BaseIcon path={mdiStarOutline} size={16} /> <BaseIcon path={mdiStarOutline} size={16} />
{saved ? 'Guardada' : 'Agregar a Favoritos'} {saved ? 'Ruta guardada' : 'Guardar ruta'}
</button> </button>
<button <button
type="button" type="button"
@ -283,7 +283,7 @@ export default function RoutesPage() {
} }
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-5 py-3 text-sm font-bold text-slate-200 transition hover:border-white/20 hover:bg-white/5" className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-5 py-3 text-sm font-bold text-slate-200 transition hover:border-white/20 hover:bg-white/5"
> >
Compartir por WhatsApp Compartir ruta
</button> </button>
</div> </div>
</div> </div>
@ -294,10 +294,9 @@ export default function RoutesPage() {
{!filteredRoutes.length ? ( {!filteredRoutes.length ? (
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20"> <section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
<h2 className="text-2xl font-black text-white">No encontramos una ruta con esos filtros</h2> <h2 className="text-2xl font-black text-white">Con esos filtros no salió ninguna ruta</h2>
<p className="mt-3 text-sm leading-6 text-slate-300"> <p className="mt-3 text-sm leading-6 text-slate-300">
Prueba quitando una etiqueta, cambia la dificultad o usa el botón Sorpréndeme para Quita una etiqueta, cambia la dificultad o dale a Sorpréndeme para que aparezca otra opción.
descubrir una ruta nueva.
</p> </p>
<div className="mt-5 flex flex-wrap items-center justify-center gap-3"> <div className="mt-5 flex flex-wrap items-center justify-center gap-3">
<button <button