Le socle · l’interface

Une seule interface,
versionnée, pour toutes les applications.

Toutes nos applications partagent le même cadre d’écran : barre de titre, barre d’activités, barre d’état, palette de commandes, thèmes. Il n’est plus recopié dans chacune : c’est une bibliothèque, dont les applications dépendent et qu’elles montent quand elles le décident.

Pourquoi elle existe

Avant elle, le cadre d’interface était livré en archive et recopié dans le dossier de chaque application. Une mesure de septembre 2026 a montré le résultat : huit copies identiques, trois versions anciennes auxquelles il manquait vingt fichiers, et un même correctif — le zoom sous Firefox — écrit deux fois. Les palettes de couleurs, elles, étaient rigoureusement identiques d’une application à l’autre.

La réponse est la même que pour le code serveur : une seule implémentation, versionnée. lmvi-ui est un paquet, @lmvi/ui, dont les applications dépendent. Chaque version est une étiquette du dépôt ; une application monte quand elle le décide, aucune n’est forcée. Le paquet est livré déjà construit : rien à compiler chez l’application qui l’installe.

Ce qu’elle fournit

Les mises en page

Une mise en page d’atelier, avec barre d’activités et panneau latéral, une mise en page de tableau de bord, une pleine largeur.

Les composants

Barre de titre, barre d’activités, barre latérale, barre d’état, tableau de données, carte d’indicateur, arbre JSON, pastille de santé…

Le thème et 25 palettes

Un fournisseur de thème, une palette flottante pour en changer, et vingt-cinq palettes partagées.

La palette de commandes

Un raccourci clavier ouvre une palette qui donne accès à toutes les commandes de l’application.

Le graphe et le studio de pipeline

Un graphe de forces pour montrer des liens, un studio pour dessiner des pipelines.

Les pièces de tableau de bord

Valeurs vivantes, défilants, courbes horaires, compteurs, une frise à tuiles et un graphe d’étapes.

Chaque famille s’importe séparément : une application qui n’utilise pas le graphe ne l’embarque pas.

Ce qu’elle laisse aux applications

lmvi-ui est volontairement sobre. Elle n’embarque aucune dépendance tierce, pour qu’un navigateur ne charge jamais deux fois la même bibliothèque d’affichage. Elle ne connaît rien du métier. Et elle ne décide pas de la session : c’est l’application qui lui dit qui est connecté.

Ce que reçoit une application neuve

Une application engendrée par notre gabarit avec son interface reçoit d’emblée :

  • le cadre d’atelier : barre de titre, barre d’activités, barre d’état, palette de commandes ;
  • la palette de thèmes flottante, toujours à portée ;
  • un bouton « Se déconnecter » toujours visible, dans la barre de titre et dans la palette de commandes, qui fonctionne même quand la session n’est plus reconnue ;
  • un thème partagé entre les sous-domaines de la plateforme : choisi une fois, il suit l’utilisateur d’une application à l’autre.

Elle déclare la bibliothèque dans ses dépendances, épinglée sur une étiquette, jamais sur une branche. Et la règle vaut ici comme ailleurs : un composant qui sert à plus d’une application se corrige dans la bibliothèque, pas dans l’application.

  • 35
    Interfaces d’applications qui dépendent de lmvi-ui
  • 25
    Palettes de couleurs partagées
  • 11
    Familles de modules importables séparément
  • 1
    Seule implémentation, versionnée

L’éditeur de décisions, en composant web

À côté de lmvi-ui vit un autre composant partagé : lmvi-jdm-editor, un éditeur visuel de tables et de graphes de décision au format JDM, livré comme un composant web autonome. Il s’insère dans n’importe quelle page — gabarit serveur, HTML simple, ou autre cadre d’interface — avec un panneau de code synchronisé. On le règle par des attributs (adresse de l’API, règle à ouvrir, lecture seule, thème clair ou sombre, langue française ou anglaise), et il prévient la page par des événements : chargé, modifié, enregistré, publié, archivé, évalué. Conçu pour la passerelle d’API du Hub, il parle à n’importe quel serveur qui respecte son petit contrat REST.

Les décisions qu’il produit sont celles qu’exécute le moteur JDM du framework : Socle V005 →

Ce qu’elle apporte

Des applications qui se ressemblent

Les mêmes barres, les mêmes raccourcis, les mêmes thèmes : un utilisateur passe d’une application à l’autre sans réapprendre.

Un correctif, toutes les applications

Un défaut d’affichage se corrige une fois dans la bibliothèque, et chaque application le reçoit en montant de version.

Une montée choisie

Chaque application monte quand elle le décide : aucune n’est cassée par la version d’une autre.

Le bouton de déconnexion toujours visible est déjà en place dans Your360.

La suite du socle

L’interface naît avec chaque application, dans la fabrique.

Gérer mes cookies