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
+30 -4
View File
@@ -10,15 +10,20 @@
data-align : "start"/"center"/"end"
════════════════════════════════════════════════════════════════ */
/* — Tooltip ——————————————————————————————————— */
/* — Tooltip ———————————————————————————————————
Light : surface dark (neutral-900) + texte blanc → contraste max sur fond clair.
Dark : surface bg-raised + bordure subtile + texte primary → "pop" au-dessus de bg-page.
Bug fixé : avant on utilisait text-primary comme bg + text-inverse comme
texte. En dark, text-primary devient quasi-blanc et text-inverse reste
blanc → blanc sur blanc, invisible. */
.mmg-tooltip {
z-index: var(--mmg-z-tooltip);
padding: var(--mmg-space-2) var(--mmg-space-3);
font-size: var(--mmg-font-size-xs);
font-weight: var(--mmg-font-weight-medium);
line-height: 1.4;
color: var(--mmg-color-text-inverse);
background: var(--mmg-color-text-primary);
color: var(--mmg-color-neutral-0);
background: var(--mmg-color-neutral-900);
border-radius: var(--mmg-radius-sm);
box-shadow: var(--mmg-shadow-2);
user-select: none;
@@ -30,7 +35,28 @@
animation: mmg-tooltip-out 100ms var(--mmg-ease-default);
}
.mmg-tooltip__arrow {
fill: var(--mmg-color-text-primary);
fill: var(--mmg-color-neutral-900);
}
/* Dark — surface élevée + bord subtil pour pop au-dessus de bg-page
(qui est #0B0D14, très proche de neutral-900). */
[data-mmg-theme="dark"] .mmg-tooltip {
background: var(--mmg-color-gray-d-raised);
color: var(--mmg-color-text-primary);
border: 1px solid var(--mmg-color-border);
}
[data-mmg-theme="dark"] .mmg-tooltip__arrow {
fill: var(--mmg-color-gray-d-raised);
}
@media (prefers-color-scheme: dark) {
:root:not([data-mmg-theme="light"]) .mmg-tooltip {
background: var(--mmg-color-gray-d-raised);
color: var(--mmg-color-text-primary);
border: 1px solid var(--mmg-color-border);
}
:root:not([data-mmg-theme="light"]) .mmg-tooltip__arrow {
fill: var(--mmg-color-gray-d-raised);
}
}
@keyframes mmg-tooltip-in {
from { opacity: 0; transform: scale(0.96); }