feat(fitness/body-parts): "Same as last" button + larger Copy L→R pill

- New "Same as last" pill below each step's stepper. Clicking fills
  the input(s) with the prior recorded value(s) — for paired steps
  in split mode, both L and R — and advances to the next step.
  Only rendered when a previous measurement exists; the placeholder
  already surfaces the exact number so the button text stays terse.
- Copy L→R button resized to match the same-as-last pill (0.88 rem
  text, 0.55 × 1.1 rem padding) and given top margin. Unicode →
  swapped for a proper ArrowRight icon between L and R.
- i18n: added `same_as_last` and split `copy_l_to_r` into
  `copy_l_to_r_before` / `copy_l_to_r_after` so each language keeps
  its natural wrapping around the arrow (EN "Copy L / R",
  DE "L / R übernehmen").
This commit is contained in:
2026-04-23 13:45:16 +02:00
parent 91e1efda6f
commit 8611275bca
4 changed files with 65 additions and 8 deletions
+3
View File
@@ -292,6 +292,8 @@ const translations: Translations = {
exit: { en: 'Exit', de: 'Schlie\u00dfen' },
same_both_sides: { en: 'Same on both sides', de: 'Auf beiden Seiten gleich' },
copy_l_to_r: { en: 'Copy L \u2192 R', de: 'L \u2192 R \u00fcbernehmen' },
copy_l_to_r_before: { en: 'Copy L', de: 'L' },
copy_l_to_r_after: { en: 'R', de: 'R \u00fcbernehmen' },
kbd_nav: { en: 'nav', de: 'Navigation' },
kbd_next: { en: 'next', de: 'weiter' },
kbd_skip: { en: 'skip', de: 'auslassen' },
@@ -319,6 +321,7 @@ const translations: Translations = {
de: 'Für dieses Datum sind bereits Werte erfasst: {fields}. Überschreiben?'
},
overwrite_confirm: { en: 'Overwrite', de: 'Überschreiben' },
same_as_last: { en: 'Same as last', de: 'Wie zuletzt' },
// SetTable
set_header: { en: 'SET', de: 'SATZ' },