// Rôle : affiche une carte Aniimo retournable et les onglets des variantes correspondantes.
import { useId, useLayoutEffect, useRef, useState } from "react";
import { GuideChecklistCheckbox, GuideChecklistMark } from "../GuideChecklistControls.jsx";
import { Icon } from "../../../components/Icon.jsx";
import { Tooltip } from "../../../components/Tooltip.jsx";
import { ANIIMO_STATS, aniimoAsset } from "./utils.js";
function Attributes({ values, t }) {
return {values.map((value) => {t(value)})};
}
function shortForm(label) {
const words = label.split(/[\s’-]+/).filter((word) => !/^(forme|de|des|du|la|le|les|d)$/i.test(word));
// Trois lettres distinguent notamment les plateaux, prairies et prismana.
return (words.length === 1 ? words[0].slice(0, 3) : words.map((word) => word[0]).join("")).toLocaleUpperCase("fr");
}
function CardFaces({ variant, t, content, checklist, statsMax }) {
const completed = checklist.isCompleted(variant.key);
const [flipped, setFlipped] = useState(false);
const frontButton = useRef(null);
const backButton = useRef(null);
const focusAfterFlip = useRef(false);
useLayoutEffect(() => {
if (!focusAfterFlip.current) return;
(flipped ? backButton : frontButton).current?.focus({ preventScroll: true });
focusAfterFlip.current = false;
}, [flipped]);
function flip() {
focusAfterFlip.current = true;
setFlipped((value) => !value);
}
const flipButton = (back, ref) => ;
return (
{t(variant.form)}
{variant.elements.map((element) =>{t(variant.form)}