Skip to content

Architecture ​

Organisation ​

text
sia-ui/
├── packages/
│   ├── tokens/      # valeurs visuelles, thèmes et vocabulaire de rendu
│   ├── utils/       # helpers transverses importables à la carte
│   ├── api/         # client HTTP typé, sans React ni DOM
│   ├── headless/    # logique de composant sans rendu
│   ├── react/       # fondations React partagées
│   ├── react-web/   # les composants web, source unique
│   ├── registry/    # catalogue et sources copiables
│   └── cli/         # commandes init, list et add
└── docs/            # documentation d'architecture, et le site qui la publie

Graphe des dépendances ​

Une dépendance inverse est interdite. Par exemple, tokens ne peut pas importer React, et headless ne peut pas importer un composant de react-web.

Responsabilités ​

@sia-ui/tokens ​

Contient les couleurs, espacements, rayons, ombres et thèmes sémantiques. Il ne dépend ni du DOM ni de React et peut donc servir à plusieurs moteurs de rendu.

@sia-ui/headless ​

Contient la logique de composant sans son rendu : magasins hors de React (annonces, session), contrat de formulaire, et crochets d'état réutilisables entre le web et un futur moteur natif.

@sia-ui/api ​

Contient le client HTTP typé, ses greffons de transport et ses services de ressource. Il ne dépend ni de React, ni du DOM, ni des tokens, et s'installe seul.

@sia-ui/utils ​

Contient les helpers transverses réutilisés entre produits : classes CSS, formatage de montants, dates, nombres et chaînes de caractères. Il reste indépendant de React pour pouvoir être utilisé aussi bien dans le registre que dans les applications.

@sia-ui/react ​

Contient uniquement les mécanismes React réellement partagés : SiaProvider, portail, état contrôlé/non contrôlé, disclosure et fusion de références.

@sia-ui/react-web ​

Contient les composants web eux-mêmes — source unique de leur code et de leur CSS. C'est ce paquet que le registre sert, fichier pour fichier.

@sia-ui/registry ​

Décrit les composants installables et conserve leurs fichiers sources. Une entrée indique son type, ses fichiers et ses dépendances envers d'autres entrées.

@sia-ui/cli ​

Lit le registre, résout les dépendances transitives et copie les fichiers dans l'application. Elle n'écrase pas un fichier existant.

Frontières ​

SIA UI peut accepter un queryFn ou des données, mais ne doit pas connaître une URL d'API, une entité métier ou une règle d'autorisation propre à un produit.

Publié sous licence MIT.