Composants React pour afficher les données de l'Assemblée et du Sénat
- TypeScript 91.5%
- SCSS 6.8%
- MDX 1.6%
| .forgejo/workflows | ||
| .storybook | ||
| src | ||
| .gitignore | ||
| .npmrc | ||
| CHANGELOG.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| tsconfig.build.json | ||
| tsconfig.json | ||
| vite.lib.config.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||
@tricoteuses/react-components
Bibliothèque de composants React pour la visualisation de données parlementaires françaises.
Stack technique
- Framework : React 18 + TypeScript
- Build : Vite 8
- Tests : Vitest 4
- Documentation : Storybook 10
- Versioning : Changesets
- Package manager : pnpm
Installation
pnpm install
Commandes
| Commande | Description |
|---|---|
pnpm dev |
Lancer Storybook en mode développement (port 6006) |
pnpm test |
Lancer les tests une fois |
pnpm test:watch |
Lancer les tests en mode watch |
pnpm test:coverage |
Lancer les tests avec couverture de code |
pnpm typecheck |
Vérifier les types TypeScript |
pnpm build-storybook |
Construire Storybook pour le déploiement |
Publication
La publication sur le registre npm Forgejo se fait manuellement via le workflow Release dans Forgejo Actions.
Processus de release
- Créer un changeset pour décrire les modifications :
pnpm changeset - Commiter le fichier changeset généré dans
.changeset/ - Pusher sur
master - Déclencher manuellement le workflow Release depuis l'interface Forgejo (Actions > Release > Run workflow)
Le workflow va automatiquement :
- Mettre à jour la version dans
package.json - Publier le package sur le registre npm Forgejo
- Commiter les changements de version
Installer le package dans un autre projet
# Configurer le registre pour le scope @tricoteuses
npm config set @tricoteuses:registry https://git.tricoteuses.fr/api/packages/logiciels/npm/
# Installer le package
pnpm add @tricoteuses/react-components
CI/CD
Deux workflows Forgejo Actions :
-
CI (
.forgejo/workflows/ci.yml) : lancé sur chaque push/PR versmaster- Tests (vitest)
- Déploiement Storybook sur Forgejo Pages (uniquement sur push vers
master)
-
Release (
.forgejo/workflows/release.yml) : déclenchement manuel uniquement- Versioning et publication npm via Changesets
Structure du projet
src/
index.ts # Barrel export de tous les composants
global.d.ts # Déclarations de types CSS/SCSS
components/
styles/theme/ # Tokens de design (variables CSS)
stubs/ # Stubs pour les dépendances externes
tooltip/
hash_scroll/
avatar/
amendment/amendment_box/ # Composant AmendmentBox
bill/bill_box/ # Composant BillBox
debate/intervention_box/ # Composant InterventionBox
icons/ # Icônes SVG
assemblee_hemicycle_graph_icon/
assemblee_hemicycle_icon/
regular_icons/ # 29 icônes individuelles
senat_hemicycle_icon/
parliament_chamber/ # Visualisations d'hémicycles
assemblee_hemicycle/
chamber_label/
senat_hemicycle/
parliament_group/group_label/ # Label de groupe parlementaire
parliament_member/member_box/ # Carte de membre
ui/ # Composants UI génériques
box/
box_with_slider/
expandable_box/
follow_button/
label/
primary_button/
progress/
stat_box/
vote/vote_box/ # Composant VoteBox
Licence
AGPL-3.0