diff --git a/apps/main/src/components/TopBar.tsx b/apps/main/src/components/TopBar.tsx
index d7fa8a5..b644f08 100644
--- a/apps/main/src/components/TopBar.tsx
+++ b/apps/main/src/components/TopBar.tsx
@@ -354,6 +354,17 @@ export function TopBar() {
/>
+ {/* Header */}
+
+
+ {t("planning:events", "Événements")}
+
+
+
+
+ {/* Search + filter */}
+
+
+
+
setEventsSearchQuery(e.target.value)}
+ className="w-full pl-12 pr-4 py-3 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-transparent text-gray-700 dark:text-gray-200"
+ />
+
+
+
+
+ {/* Event cards grid */}
+ {tabloEventsLoading ? (
+
+

+
+ ) : filtered.length === 0 ? (
+
+
Aucun événement trouvé
+
+ {eventsSearchQuery ? "Essayez un autre terme" : "Créez votre premier événement"}
+
+
+ ) : (
+
+ {filtered.map((event) => {
+ const date = event.start_date ? new Date(event.start_date + "T00:00:00") : null;
+ const monthLabel = date ? months[date.getMonth()] : "";
+ const dayLabel = date ? String(date.getDate()).padStart(2, "0") : "";
+ const timeLabel = event.start_time
+ ? `${event.start_time.slice(0, 5)}${event.end_time ? ` – ${event.end_time.slice(0, 5)}` : ""}`
+ : null;
+
+ return (
+
navigate(`/planning/${event.event_id}?tablo_id=${event.tablo_id}`)}
+ >
+
+
+
+ {/* Date badge */}
+
+
+
+ {monthLabel}
+
+
+ {dayLabel}
+
+
+
+
+ {/* Title + description */}
+
+
+ {event.title}
+
+ {event.description && (
+
+ {event.description}
+
+ )}
+
+
+
+ {/* Meta */}
+
+ {timeLabel && (
+
+
+ {timeLabel}
+
+ )}
+ {event.tablo_name && (
+
+
+ {event.tablo_name}
+
+ )}
+
+
+ );
+ })}
+
+ )}
+
+ );
+ };
+
+ if (currentTab === "events") {
+ return (
+