Composants React pour afficher les données de l'Assemblée et du Sénat
  • TypeScript 91.5%
  • SCSS 6.8%
  • MDX 1.6%
Find a file
Henry Boisgibault 7df8fcff98
All checks were successful
Release / Publish package (push) Successful in 30s
CI / validate (push) Successful in 1m24s
v0.1.5
2026-04-10 12:06:55 +02:00
.forgejo/workflows v0.1.5 2026-04-10 12:06:55 +02:00
.storybook common upd 2026-04-09 15:51:31 +02:00
src Update docs, add theme to package 2026-04-09 15:51:15 +02:00
.gitignore Deep cleaning and update workflow 2026-04-09 11:09:10 +02:00
.npmrc Deep cleaning and update workflow 2026-04-09 11:09:10 +02:00
CHANGELOG.md chore: release package versions 2026-04-09 14:06:52 +00:00
package.json chore(deps): remove Changeset CLI dependency and related scripts for direct npm publishing 2026-04-10 12:03:38 +02:00
pnpm-lock.yaml Updaate pnpm lock 2026-04-10 12:04:07 +02:00
README.md Deep cleaning and update workflow 2026-04-09 11:09:10 +02:00
tsconfig.build.json Upd workflow and add build phase and docs 2026-04-09 14:41:06 +02:00
tsconfig.json clean slate and start over 2026-04-08 15:27:52 +02:00
vite.lib.config.ts feat(deps): update dependencies to latest stable versions for security and compatibility improvements 2026-04-10 10:33:00 +02:00
vitest.config.ts clean slate and start over 2026-04-08 15:27:52 +02:00
vitest.setup.ts clean slate and start over 2026-04-08 15:27:52 +02:00

@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

  1. Créer un changeset pour décrire les modifications :
    pnpm changeset
    
  2. Commiter le fichier changeset généré dans .changeset/
  3. Pusher sur master
  4. 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 vers master

    • 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