Aller au contenu

Composants

Composants génériques sans logique métier. Prefix Base.

ComposantRôle
BaseButtonBouton avec variantes (primary, secondary, ghost, danger)
BaseCardCarte conteneur avec élévation
BaseModalModale accessible (focus trap, Escape)
BaseToastNotification temporaire
BaseBadgeBadge/tag coloré
BaseSliderCurseur pour valeurs numériques
BaseToggleInterrupteur on/off
BaseSpinnerIndicateur de chargement
BaseEmptyStateÉtat vide avec icône et message
BaseTimerChronomètre format MM:SS
BaseIconIcône SVG inline
BaseProgressBarBarre de progression
BaseAccordionPanneau dépliable
BasePWAInstallBandeau d’installation PWA

Shell de l’application, navigation.

ComposantRôle
AppShellConteneur principal (header + content + nav)
TopBarBarre supérieure (titre, statut connexion)
BottomNavNavigation par onglets (4 vues)
ConnectionIndicatorIndicateur de connexion WebSocket

Composants métier organisés par domaine fonctionnel.

components/vitals/ — Affichage constantes vitales :

ComposantRôle
VitalDisplayAffichage d’un paramètre vital (valeur + label + unité)
VitalGridGrille de tous les paramètres vitaux
AlarmBannerBandeau d’alarme clignotant
RhythmIndicatorIndicateur du rythme cardiaque courant

components/scenario/ — Panneau de simulation :

ComposantRôle
ScenarioCardCarte de scénario (nom, catégorie, difficulté)
ScenarioListListe filtrable des scénarios
CategoryFilterFiltre par catégorie médicale
TrainerPanelPanneau de contrôle formateur
VitalOverrideModification d’un paramètre vital à la volée
StateSelectorSélection d’état dans le scénario
EventTriggerDéclenchement d’événement manuel
SessionTimelineTimeline chronologique des événements
SessionExportExport de session (JSON, CSV)
DeviceListListe des dispositifs connectés
DeviceCardCarte d’un dispositif (type, statut, batterie)
QuickActionBouton d’action rapide (médicament, note)

components/help/ — Aide et onboarding :

ComposantRôle
OnboardingTourVisite guidée interactive
HelpTooltipInfobulle d’aide contextuelle
WhatsNewChangelog des nouveautés
ShortcutSheetFeuille des raccourcis
  • <script setup lang="ts"> dans chaque composant
  • Props typées via defineProps<T>()
  • Emits typés via defineEmits<T>()
  • Touch target 44px minimum
  • Design tokens : var(--color-*), jamais de couleurs Tailwind en dur
  • Pas de v-html (risque XSS)