Billets vendus (jour)
312
Outer shell — horizontal layout: Sidebar (247px) + Content (flex). 12px gap, 12px padding around. Min-height 100vh. Sticky sidebar.
patterns/templates/adminshell.htmlCoquille du tableau de bord admin ePassLive : header (marque + topbar + utilisateur), rail de navigation latérale 247 px sticky (sections + badges), contenu principal. FR-CA : « Tableau de bord producteur · Navigation principale · Billets · Événements · Lieux · Équipe ».
Template — Admin family (ADR-035 KEEP-and-EXPORT #1)
Template complet du tableau de bord. Rend son propre header (titre + sous-titre + topbar slot + identité utilisateur), un rail de navigation latérale (247 px, sticky à lg+, gap/padding 12 px) avec sections groupées (Billets / Croissance / Système) et une zone <main> id="main" landmark pour le contenu de la page. Empilé sous lg. Ne compose pas AdminHeader/AdminSidebar — le shell rend sa propre nav (template auto-contenu, cf. AdminLayout pour un frame à slots).
Voici un apercu de l'activite de la journee.
312
14 980,00 $
289
This component supports light and dark mode.
AdminShell rend : header (marque + tagline + topbar slot + identité utilisateur) + rail de navigation latérale 247 px sticky à lg+ (gap et padding 12 px, empilé sous lg) + zone main landmark. Chaque item de navigation peut avoir un badge (FR-CA : « Nouveau », « 12 »). Pour un frame à slots personnalisés (sidebar/header sur mesure, skip link), voir l'organisme AdminLayout.
topbar*React.ReactNodeSlot à droite du header (notifications, recherche, actions).
navItems*AdminNavItem[]Items de navigation principale (id, label, href, active?, badge?).
navSectionsAdminNavSection[]Sections groupées en bas de la nav (heading + items).
children*React.ReactNodeContenu de la page (rendu dans le landmark <main>).
user*{ fullName: string; role: string }Utilisateur courant affiché à droite du header.
locale"fr" | "en"'fr'Locale des chaînes intégrées (tagline, titre de nav).
titlestring"ePassLive — Admin"Titre de marque du header.
subtitlestringtagline de la localeTagline à côté de la marque.
classNamestringClasses additionnelles sur la racine.
topbarReact.ReactNode—Slot rendered at the right end of the header (search, notifications, actions…).
navItemsAdminNavItem[]—Primary navigation links, rendered first in the sidebar. Each item is { id, label, href, active?, badge? }; active items get aria-current="page".
navSections{ heading: string; items: AdminNavItem[] }[]—Optional secondary navigation groups ({ heading, items }) rendered below the primary list; items support badges and aria-current like navItems.
childrenReact.ReactNode—Page content rendered inside the `main` landmark (id="main", overflow-safe min-w-0 grid child).
user{ fullName: string; role: string }—Current user identity shown at the right end of the header (fullName + muted role).
locale"fr" | "en"'fr'UI locale for the built-in strings (header tagline, sr-only nav heading) via the LABELS map.
titlestring'ePassLive — Admin'Header brand title; defaults to "ePassLive — Admin". Override for white-label admin frames.
subtitlestringlocale taglineHeader tagline next to the brand; defaults to the locale string ("Tableau de bord producteur" / "Producer dashboard").
classNamestring—Extra classes appended to the root element.
<AdminShell />import { AdminShell } from "@epasslive/design-system"<AdminShell topbar={topbarSlot} navItems={navItems} user={user}>{page}</AdminShell>— Do not include business logic in templates
— Avoid hardcoded content in templates