feat(v1): bloquants release v1 — tests, stories, visual regression, gouvernance, publishing
Release / Release / open changeset PR (push) Has been cancelled
CI / Build, typecheck, test, a11y (push) Has been cancelled

6 chantiers v1 sur 7 livrés (DataTable refonte reportée car nécessite
2-3j en propre — TanStack Table + virtualisation + filter builder).

v1-A — Tests (4 → 22 fichiers) :
- Avatar, AvatarGroup, UserCard, MetricCard, ProfileHeader, Tooltip,
  Sheet, Drawer, Slider, ToggleGroup, Tabs, Pagination, Accordion,
  Switch, Badge, ConfirmDialog, Popover, Menu, Text, PricingCard,
  FeatureCard, Toast — chacun avec render + clavier + axe-core.

v1-B — Storybook (7 → 23 fichiers) :
- Avatar, UserCard, ProfileHeader, MetricCard, PricingCard,
  FeatureCard, Sheet (4 sides), HoverCard, Slider, ToggleGroup,
  Menu+ContextMenu, Toast (avec démo "Empiler 5"), Tabs,
  Pagination, Accordion, Badge.

v1-D — Visual regression Playwright :
- playwright.config.ts (light + dark, threshold strict 0.2)
- e2e/visual.spec.ts (20 stories critiques)
- Step CI + upload report en cas de fail

v1-E — Site doc Starlight rempli :
- 11 pages composants détaillées (Button, Input, Tooltip, Dialog,
  Toast, Avatar, ThemePicker, MetricCard, PricingCard, ToggleGroup,
  Slider) avec API, anatomie, do/don't, A11y.

v1-F — Publishing Verdaccio :
- verdaccio/config.yaml, docker-compose.verdaccio.yml, .npmrc
- README setup local + déploiement prod + backups + sécurité

v1-G — Gouvernance :
- LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md
- CODEOWNERS, PR template, 3 issue templates (bug/feature/rfc)

Bug fix bonus : tooltip dark mode (text-primary comme bg + text-inverse
comme texte → blanc-sur-blanc invisible). Remplacé par neutral-900/0
en light + bg-raised/text-primary en dark.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dinawo
2026-05-04 22:29:35 +02:00
parent 62317f2ad7
commit 133feff75d
69 changed files with 3433 additions and 7 deletions
+47
View File
@@ -0,0 +1,47 @@
---
name: 🐛 Bug
about: Signaler un bug du DSMMG
labels: bug
---
## Résumé
<!-- 1-2 phrases. -->
## Reproduction
Un repro CodeSandbox ou StackBlitz est idéal. Sinon, étapes :
1. Aller sur …
2. Faire …
3. Observer …
## Comportement attendu
<!-- Ce qui devrait se passer. -->
## Comportement observé
<!-- Ce qui se passe vraiment. Joindre captures / vidéos / logs console. -->
## Environnement
- Version DSMMG : <!-- ex. 0.2.0 -->
- Browser + version : <!-- ex. Chrome 130, Firefox 132, Safari 18 -->
- OS : <!-- ex. Windows 11, macOS 14, iOS 17 -->
- Mode : light / dark / system
- Accent : synapse / blue / … / custom
- Densité : comfortable / cozy / compact
- Reduced motion activé : oui / non
## Composant(s) concerné(s)
<!-- Button, DataTable, Tooltip, etc. -->
## A11y
- [ ] Reproductible au clavier ?
- [ ] Reproductible avec lecteur d'écran ?
- [ ] Régression de contraste ?
## Idée de cause / fix (optionnel)
+34
View File
@@ -0,0 +1,34 @@
---
name: ✨ Feature
about: Proposer une nouvelle fonctionnalité ou un nouveau composant
labels: feature
---
## Problème à résoudre
<!-- Quel besoin produit ? Quelle douleur actuelle ? -->
## Solution proposée
<!-- Décrire l'API, les variants, les cas d'usage. -->
## Composants existants couvrant partiellement
<!-- Y a-t-il un composant existant proche ? -->
## Références (autres DS)
<!-- Comment Radix / shadcn / Linear / Vercel / Stripe / Atlassian DS / IBM Carbon le font ? -->
## Accessibilité
<!-- Considérations a11y : ARIA roles, keyboard nav, contraste, RTL. -->
## Alternatives écartées
## Effort estimé
- [ ] S (≤ 1j)
- [ ] M (1 sem)
- [ ] L (2-3 sem — RFC requise)
- [ ] XL (1 mois+ — RFC + roadmap)
+69
View File
@@ -0,0 +1,69 @@
---
name: 📜 RFC
about: Proposition formelle pour un changement majeur
labels: rfc
---
> Une RFC est requise pour : nouveau composant non-trivial,
> breaking change sur l'API publique, refonte de tokens, nouvelle
> dépendance externe, changement architectural.
## Titre
RFC #XXXX — <!-- titre court -->
## Statut
- [ ] Draft
- [ ] In review
- [ ] Accepted
- [ ] Rejected
- [ ] Superseded by #...
## Auteur(s)
@…
## Date
YYYY-MM-DD
## Contexte
<!-- Pourquoi cette RFC ? Quel problème résout-elle ? Données utilisateur,
contraintes business, contraintes techniques. -->
## Proposition
<!-- La solution proposée. Code, schémas, exemples. -->
## API publique (si applicable)
```tsx
// avant
<OldComponent prop="x" />
// après
<NewComponent variant="x" />
```
## Alternatives écartées
<!-- Ce qu'on a considéré et pourquoi on l'a écarté. -->
## Coût migration
- Codemod possible : oui / non
- Effort consommateur estimé :
- Période de deprecation prévue :
## Risques
- A11y :
- Performance :
- DX :
- Lock-in / dépendances :
## Décision
<!-- À remplir après discussion. Date + résumé des arguments. -->
+45
View File
@@ -0,0 +1,45 @@
## Résumé
<!-- 1-2 phrases. Le "pourquoi" plus que le "quoi" — le diff montre déjà le quoi. -->
## Changements
- [ ] Ajout — nouveau composant / token / variant
- [ ] Fix — bugfix
- [ ] Refacto — pas de surface publique modifiée
- [ ] Doc — uniquement docs / stories / commentaires
- [ ] Breaking — change l'API publique (préciser ci-dessous)
### Détail des breaking changes (si applicable)
<!-- Lister précisément ce qui change, avec exemples avant/après. -->
## Tests
- [ ] Tests unitaires ajoutés / mis à jour
- [ ] Stories Storybook ajoutées / mises à jour
- [ ] Test axe-core (pas de violation a11y)
- [ ] Test clavier (Tab, Esc, flèches, Enter, Espace)
- [ ] Testé en dark mode
- [ ] Testé sur les 9 presets accent (au moins synapse + un autre)
- [ ] Testé en zoom 200 % / reflow 320px
- [ ] Testé avec `prefers-reduced-motion: reduce`
- [ ] Lint contraste WCAG passe (`pnpm lint:contrast`)
## Documentation
- [ ] Page MDX du composant dans `docs/` (anatomie, props, do/don't, a11y)
- [ ] Story Storybook avec autodocs
- [ ] CHANGELOG via Changesets (`pnpm changeset`)
## Captures / preuves visuelles
<!-- Avant / après si modification visuelle. -->
## Checklist finale
- [ ] J'ai lu [CONTRIBUTING.md](../CONTRIBUTING.md)
- [ ] Mon code suit les conventions de naming (`mmg-*`, `--mmg-color-*`)
- [ ] Aucun hex en dur — uniquement des tokens
- [ ] Aucun `--mmg-color-synapse-*` direct dans un composant
- [ ] CI verte
+16
View File
@@ -59,6 +59,22 @@ jobs:
- name: Build Storybook
run: pnpm --filter storybook build
- name: Install Playwright Chromium
run: pnpm exec playwright install --with-deps chromium
- name: Visual regression (Playwright)
run: pnpm test:visual
env:
CI: true
- name: Upload Playwright report on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report
retention-days: 14
- name: Bundle size budget
run: pnpm size