// Loading — vocabulaire commun des états de chargement. // Trois formes, une seule esthétique : // · VascoSpinner / LoadingBlock → action ponctuelle, durée inconnue // · Skeleton* → contenu dont on connaît déjà la forme // · TypingDots → l'assistant rédige // // Rien n'est branché sur un vrai réseau : les hooks useMockLoad / useTypingLoad // simulent la latence pour que la démo ait le rythme d'une app connectée. // // Tout est préfixé LD_ / exporté sur window : les `const` de haut niveau // deviennent des globales une fois passées par Babel (cf. patients-list.jsx). const LD_VT = window.VT || {}; const LD_INK = LD_VT.ink || '#0a0a0a'; const LD_SUB = LD_VT.sub || '#6b7280'; const LD_SURF = LD_VT.surface || '#ffffff'; const LD_HAIR = LD_VT.hair || 'rgba(10,10,10,0.06)'; const LD_HAIR2 = LD_VT.hair2 || 'rgba(10,10,10,0.10)'; const LD_MED = LD_VT.medBlue || '#3d6b8f'; // Teintes du shimmer — assez basses pour rester crédibles sur le crème. const LD_BASE = 'rgba(10,10,10,0.055)'; const LD_GLOW = 'rgba(10,10,10,0.015)'; // Les keyframes sont injectées une fois, à la charge du fichier : les // composants sont rendus dans une dizaine d'endroits et une balise