From 24cbf35902c4eceba7af8f31b3760e467def4fc9 Mon Sep 17 00:00:00 2001 From: ordinarthur <@arthurbarre.js@gmail.com> Date: Wed, 6 May 2026 23:05:34 +0200 Subject: [PATCH] =?UTF-8?q?fix(plans/wizard):=20variables=20dans=20le=20su?= =?UTF-8?q?jet=20+=20UX=20mobile=20resserr=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Variables - Le clic sur un chip de variable insère désormais au curseur du dernier champ focus (sujet OU corps), pas seulement dans le corps. On capture la position via onSelect/onClick/onKeyUp/onBlur et on utilise mousedown + preventDefault sur les chips pour que le focus ne quitte pas le champ ciblé avant l'insertion. Le label sous les chips indique en live quel champ est ciblé. - OffsetInput (étape Cadence) : composant string-controlled qui accepte les états intermédiaires "" et "-" pour ne plus avoir le 0 fantôme quand on efface pour ressaisir un offset négatif. Mobile - Bottom nav (Annuler/Continuer) sticky en bas sur mobile, en flux normal sur desktop. Safe-area inset respectée. - Header du wizard : back button compact (icône seule sous sm), compteur d'étape toujours visible, stepper centré. - Card padding adaptatif (p-5 sm:p-7 lg:p-9). - Step 3 — sélecteur d'étape : scroll horizontal sur mobile (au lieu de wrap), évite l'effet escalier avec 5 étapes. - Step 3 — body textarea : min-h adaptatif (180px mobile, 260px sm+). - CadenceTimeline : rail horizontal masqué sous lg ; en mobile, ligne verticale fine entre les nœuds (cohérent identité ◆) ; bouton retirer visible en permanence sur mobile (les hover-only ne marchent pas tactile). Co-Authored-By: Claude Opus 4.7 --- .../plans/wizard/CadenceTimeline.tsx | 49 +++-- apps/web/src/routes/_app/plans_.nouveau.tsx | 195 +++++++++++++++--- 2 files changed, 195 insertions(+), 49 deletions(-) diff --git a/apps/web/src/components/plans/wizard/CadenceTimeline.tsx b/apps/web/src/components/plans/wizard/CadenceTimeline.tsx index e75aea9..8cfe3e3 100644 --- a/apps/web/src/components/plans/wizard/CadenceTimeline.tsx +++ b/apps/web/src/components/plans/wizard/CadenceTimeline.tsx @@ -49,8 +49,8 @@ export function CadenceTimeline({ onSelectStep?: (idx: number) => void; }) { return ( -
-
+
+

Cadence

@@ -60,27 +60,35 @@ export function CadenceTimeline({
- {/* Rail */} + {/* Rail horizontal en desktop uniquement. En mobile, un trait vertical + plus court reliera chaque nœud à son label dans la liste verticale. */} {steps.length > 0 && (