feat(marketing): refonte stratégique 'Comment ça marche' — 4 catégories × 12 sous-modes
Audit complet des fonctionnalités réelles DictIA (manuel utilisateur + composants production) puis restructuration de l'animation phone container en 4 catégories logiques regroupant 12 sous-modes (6 historiques + 6 nouveaux). CATÉGORIES (bottom tab bar 4 boutons + sub-mode dots indicator) : - Capture (b2 cyan) : Transcription, Recording live, Recherche IA - Transformation IA (b1) : Diarisation, 99+ langues, Résumé+actions, Chat IA - Distribution (b3 fuchsia) : Exports, Intégrations Hub, Partage, Users - Gouvernance (b1 blue) : Audit trail, Conformité Loi 25 + 9 ordres pros NOUVEAUX MODES IMPLÉMENTÉS : - Mode 7 Recording live : minuteur 99s + waveform 24 bars random + 3 boutons sources (mic/système/combiné) selon manuel utilisation v1.0 - Mode 8 Recherche sémantique : query typed + 3 résultats highlight RAG - Mode 9 Résumé + actions : décisions/actions stagger + extraction ICS - Mode 10 Intégrations : hub central DictIA + 8 logos en orbite (Word, Outlook, Teams, Notion, Obsidian, Zapier, Make, n8n) + lignes connexion SVG - Mode 11 Audit trail : 6 events horodatés (INFO/AUTH/PROC/READ/EXP/SHARE) + badge consentement tracé immutable (Loi 25 art. 8) - Mode 12 Conformité Loi 25 : 6 badges (Loi 25/96/EFVP CAI/MCN/AGPL/0 Cloud Act US) + 9 ordres pros (Barreau, CNQ, CPA, ChAD, OACIQ, CMQ, OIIQ, OPQ, OEQ) REFACTOR Alpine dictiaDashboard() : - FEATURES étendu de 7 à 13 entrées (idx 0-12) - CATEGORIES array avec submodes[], iconPath, color, subtitle - activeCategory + handleCategorySelect(ci) en plus de handleManualSelect(i) - Auto-cycle 1100ms entre sous-modes ; switch catégorie quand fin atteinte - Right grid 3×6 → 2×2 categories cards (preview sub-modes dots) - Bottom tab bar 6 modes → 4 catégories (icons larger 18px) + sub-mode dots - Mobile pills par catégorie (au lieu de par mode) Préservé : palette brand-b1/b2/b3 stricte, phone shell statique 280×580, WCAG AA, prefers-reduced-motion, eyebrow text-brand-navy, IA Mistral card, section integrations, architecture, conformité-resume. Tests : 9/9 passent dans test_fonctionnalites_*. Assertions ajoutées pour les 4 catégories + 6 nouveaux modes + handleCategorySelect + 1100ms cycle. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -190,8 +190,32 @@ def test_fonctionnalites_how_it_works_reactor_section():
|
||||
# Auto-cycle + manual select logic
|
||||
assert 'startAutoCycle' in body, "Missing auto-cycle function"
|
||||
assert 'handleManualSelect' in body, "Missing manual select handler"
|
||||
assert '900' in body, "Missing 900ms cycle interval"
|
||||
assert '1100' in body, "Missing 1100ms sub-mode cycle interval (refonte 2026-04-29)"
|
||||
assert '4500' in body, "Missing 4500ms manual reset timer"
|
||||
# Refonte 2026-04-29 : 4 catégories × 12 sous-modes
|
||||
assert 'CATEGORIES' in body, "Missing CATEGORIES array (refonte 4 catégories)"
|
||||
assert 'activeCategory' in body, "Missing activeCategory state"
|
||||
assert 'handleCategorySelect' in body, "Missing category click handler"
|
||||
for cat_title in ['Capture', 'Transformation IA', 'Distribution', 'Gouvernance']:
|
||||
assert cat_title in body, f"Missing category : {cat_title}"
|
||||
# Nouveaux modes 7-12
|
||||
assert 'recModeData' in body, "Missing Mode 7 (Recording live)"
|
||||
assert 'searchModeData' in body, "Missing Mode 8 (Recherche sémantique)"
|
||||
assert 'summaryModeData' in body, "Missing Mode 9 (Résumé + actions)"
|
||||
assert 'integModeData' in body, "Missing Mode 10 (Intégrations Hub)"
|
||||
assert 'auditModeData' in body, "Missing Mode 11 (Audit trail)"
|
||||
assert 'loi25ModeData' in body, "Missing Mode 12 (Conformité Loi 25)"
|
||||
# Mode panels content keywords
|
||||
assert 'ENREGISTREMENT LIVE' in body, "Missing recording header"
|
||||
assert 'RECHERCHE IA SÉMANTIQUE' in body, "Missing semantic search header"
|
||||
assert 'RÉSUMÉ EXÉCUTIF' in body, "Missing summary header"
|
||||
assert 'INTÉGRATIONS HUB' in body, "Missing integrations hub header"
|
||||
assert 'AUDIT TRAIL' in body, "Missing audit trail header"
|
||||
assert 'CONFORMITÉ QUÉBEC' in body, "Missing conformity header"
|
||||
assert 'ÉVÉNEMENT DÉTECTÉ' in body, "Missing ICS event detection"
|
||||
assert '9 ordres professionnels' in body, "Missing 9 ordres listing"
|
||||
for ordre in ['Barreau', 'CNQ', 'CPA', 'OIIQ']:
|
||||
assert ordre in body, f"Missing ordre pro: {ordre}"
|
||||
# Auto / Manual status text
|
||||
assert 'Auto' in body, "Missing Auto status indicator"
|
||||
assert 'Auto reprend bientôt' in body, "Missing manual mode hint"
|
||||
@@ -249,8 +273,9 @@ def test_fonctionnalites_how_it_works_reactor_section():
|
||||
assert 'dictia-bg-orbs' in body, "Missing floating orbs"
|
||||
assert 'dictia-connecting-line' in body, "Missing connecting line phone↔IA"
|
||||
|
||||
# Stats row in section header
|
||||
# Stats row in section header (refonte 2026-04-29 : 4 catégories · 6 modules)
|
||||
assert 'modules' in body, "Missing stats row 'modules'"
|
||||
assert 'catégories' in body, "Missing stats row 'catégories' (refonte)"
|
||||
assert 'cloud' in body, "Missing stats row 'cloud'"
|
||||
assert 'Voir une démo' in body, "Missing demo CTA link"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user