document.addEventListener('DOMContentLoaded', function() { const constellations = [ { name: "Présence", description: "L'alliance se construit dans les 3 premières minutes par des signaux non-verbaux", cards: [ { title: "Grand-Père Étoile", description: "Le Silence Habité - Tenir 7 secondes de silence après une émotion forte" }, { title: "Grand-Mère Étoile", description: "La Synchronisation - Observer et ralentir progressivement sa respiration visible" }, { title: "Père Étoile", description: "Le Triangle d'Or - Corps à 45°, buste légèrement penché, mains visibles" }, { title: "Mère Étoile", description: "Le Regard Ancré - Regarder 3 secondes dans les yeux, puis détourner naturellement" }, { title: "Fils Étoile", description: "L'Ancrage Sensoriel - Nommer ce qui se passe dans le corps" }, { title: "Fille Étoile", description: "La Distance Juste - 60-120 cm en consultation, ajuster selon confort" } ], color: "bg-indigo-500" }, { name: "Validation", description: "La validation émotionnelle précoce prédit 30% de l'amélioration du patient", cards: [ { title: "Grand-Père Étoile", description: "Le Miroir Empathique - Nommer l'émotion observée" }, { title: "Grand-Mère Étoile", description: "La Permission - Désactiver la culpabilité de ressentir" }, { title: "Père Étoile", description: "L'Écho Signifiant - Répéter les mots clés du patient" }, { title: "Mère Étoile", description: "La Normalisation - Relier l'expérience à l'universel" }, { title: "Fils Étoile", description: "Le Paradoxe Accueilli - Valider les contradictions avec 'ET'" }, { title: "Fille Étoile", description: "Le Bouclier Anti-Jugement - 'Il n'y a pas de bonne ou mauvaise réponse ici'" } ], color: "bg-blue-500" }, { name: "Collaboration", description: "L'alliance collaborative multiplie par 2,3 l'efficacité thérapeutique", cards: [ { title: "Grand-Père Étoile", description: "Le Pouvoir Partagé - 'Vous êtes l'expert de vous-même'" }, { title: "Grand-Mère Étoile", description: "La Question Miracle - 'Si demain le problème a disparu...'" }, { title: "Père Étoile", description: "L'Ajustement Flexible - 'Ça vous convient comme ça ou on ajuste ?'" }, { title: "Mère Étoile", description: "Le Petit Pas Co-Décidé - 'Quelle serait la plus petite chose...'" }, { title: "Fils Étoile", description: "La Méta-Communication - Parler explicitement de la relation" }, { title: "Fille Étoile", description: "L'Acceptation du Désaccord - 'On n'est pas obligés d'être d'accord'" } ], color: "bg-green-500" }, { name: "Curiosité", description: "Les questions ouvertes augmentent de 38% l'engagement du patient", cards: [ { title: "Grand-Père Étoile", description: "L'Exception Repérée - 'Y a-t-il eu des moments où...'" }, { title: "Grand-Mère Étoile", description: "L'Échelle Vivante - 'Entre 0 et 10, vous êtes où ?'" }, { title: "Père Étoile", description: "Le Concret du Flou - 'Ça ressemblerait à quoi dans votre vie ?'" }, { title: "Mère Étoile", description: "La Question Circulaire - 'Qu'est-ce que votre femme dirait ?'" }, { title: "Fils Étoile", description: "L'Hypothèse Libératrice - 'Et si vous pouviez...'" }, { title: "Fille Étoile", description: "Le Minimalisme Puissant - 'Et ?' + silence" } ], color: "bg-yellow-500" }, { name: "Réparation", description: "Les ruptures d'alliance réparées conduisent à de meilleurs résultats", cards: [ { title: "Grand-Père Étoile", description: "Le Détecteur de Faille - Repérer micro-signaux de tension" }, { title: "Grand-Mère Étoile", description: "L'Aveu Non-Défensif - 'Vous avez raison, j'ai peut-être été trop vite'" }, { title: "Père Étoile", description: "L'Exploration de la Rupture - 'Qu'est-ce qui ne va pas exactement ?'" }, { title: "Mère Étoile", description: "La Renégociation - 'Comment je pourrais être plus utile ?'" }, { title: "Fils Étoile", description: "La Validation de la Critique - 'Je comprends votre frustration'" }, { title: "Fille Étoile", description: "Le Lâcher-Prise Stratégique - 'Ok, on laisse tomber cette piste...'" } ], color: "bg-red-500" }, { name: "Présence Émotionnelle", description: "La tolérance aux émotions fortes corrèle à 0,52 avec l'amélioration", cards: [ { title: "Grand-Père Étoile", description: "Le Conteneur - Silence + présence corporelle stable" }, { title: "Grand-Mère Étoile", description: "La Nommeuse d'Invisible - 'Ces larmes disent quelque chose...'" }, { title: "Père Étoile", description: "Le Contre-Rythme - Ralentir face à la tempête émotionnelle" }, { title: "Mère Étoile", description: "L'Ancrage Corporel - 'Où vous sentez cette colère ?'" }, { title: "Fils Étoile", description: "Le Validateur de Colère - 'C'est légitime d'être en colère'" }, { title: "Fille Étoile", description: "La Questionneuseuse Sous l'Émotion - 'Qu'est-ce qui est important ?'" } ], color: "bg-purple-500" }, { name: "Ancrage", description: "La clarté des objectifs partagés prédit 41% de la rétention du patient", cards: [ { title: "Grand-Père Étoile", description: "Le Tisserand de Fils - Relier les éléments de la séance" }, { title: "Grand-Mère Étoile", description: "L'Appropriatrice - 'Qu'est-ce que VOUS retenez ?'" }, { title: "Père Étoile", description: "Le Petit Pas Observable - 'Qu'est-ce que vous pourriez observer ?'" }, { title: "Mère Étoile", description: "La Refléteuse de Ressources - 'Je remarque que vous avez réussi...'" }, { title: "Fils Étoile", description: "L'Ouvreur de Porte - 'Si ça devient trop difficile...'" }, { title: "Fille Étoile", description: "La Ponctueuse - 'On se revoit [date précise]...'" } ], color: "bg-pink-500" } ]; const container = document.querySelector('main section:nth-of-type(2)'); // Render constellation cards constellations.forEach(constellation => { const card = document.createElement('div'); card.className = `card relative h-64 w-48 mx-auto cursor-pointer ${constellation.color} rounded-xl shadow-xl overflow-hidden`; card.innerHTML = `

${constellation.name}

${constellation.description}

${constellation.cards.length} cartes

Voir les cartes

`; card.addEventListener('click', () => { const cardDetail = document.querySelector('card-detail'); const cardData = { title: constellation.name, family: `Famille ${constellation.name}`, technique: constellation.description, quote: getRandomQuote(constellation.name), research: getResearchMessage(constellation.name), reference: getReference(constellation.name), color: getComputedStyle(card).backgroundColor }; cardDetail.showCard(cardData); }); function getRandomQuote(family) { const quotes = { "Présence": [ "Le silence n'est pas un vide, c'est un espace où la parole peut naître", "Quand nos respirations s'accordent, nos mondes se rejoignent", "La posture parle avant les mots" ], "Validation": [ "Voir l'autre, c'est déjà le soigner", "Toute émotion a sa place ici", "Répéter, c'est dire : 'ton mot a du poids'" ], "Collaboration": [ "Ensemble, on sait plus qu'à deux séparés", "Le thérapeute ne sait pas où aller, c'est le patient qui porte la boussole", "Un petit pas accepté vaut mieux qu'un grand pas subi" ], "Curiosité": [ "Ce qui a marché une fois peut remarcher", "Un chiffre peut raconter une histoire", "Parfois, le meilleur mot est un point d'interrogation" ], "Réparation": [ "La rupture commence par un silence de trop", "On guérit ce qu'on ose regarder ensemble", "Réparer, c'est rebâtir sur des fondations honnêtes" ], "Présence Émotionnelle": [ "Je peux porter votre tristesse avec vous", "Pleurer n'est pas être faible, c'est être vivant", "Face à l'orage, je suis le roc" ], "Ancrage": [ "Trois fils tissés valent mieux que dix éparpillés", "Ce que vous trouvez vous-même vous appartient vraiment", "Observer change déjà ce qu'on observe" ] }; const familyQuotes = quotes[family] || []; return familyQuotes[Math.floor(Math.random() * familyQuotes.length)] || "Citation inspirante"; } function getResearchMessage(family) { const messages = { "Présence": "L'alliance se construit dans les 3 premières minutes par des signaux non-verbaux de sécurité avant même le contenu verbal.", "Validation": "La validation émotionnelle précoce prédit 30% de l'amélioration du patient, indépendamment de la technique utilisée.", "Collaboration": "L'alliance collaborative (vs directive) multiplie par 2,3 l'efficacité thérapeutique et réduit de 47% les abandons précoces.", "Curiosité": "Les questions ouvertes augmentent de 38% l'engagement du patient et favorisent l'insight thérapeutique vs questions fermées.", "Réparation": "Les ruptures d'alliance réparées conduisent à de meilleurs résultats que les alliances sans rupture. La réparation renforce le lien.", "Présence Émotionnelle": "La tolérance du thérapeute aux émotions fortes du patient corrèle à 0,52 avec l'amélioration symptomatique (effet fort).", "Ancrage": "La clarté des objectifs partagés en début et en fin de séance prédit 41% de la rétention du patient et l'observance entre les séances." }; return messages[family] || "Recherche scientifique pertinente"; } function getReference(family) { const references = { "Présence": "Safran & Muran (2000) Negotiating the Therapeutic Alliance", "Validation": "Linehan (2018) DBT Skills Training Manual + Elliott et al. (2011)", "Collaboration": "Tryon & Winograd (2011) Goal consensus and collaboration", "Curiosité": "Heritage & Maynard (2006) Communication in Medical Care", "Réparation": "Safran et al. (2011) Alliance ruptures and repairs", "Présence Émotionnelle": "Pos et al. (2009) Emotion-focused therapy", "Ancrage": "Bordin (1979) The generalizability of the psychoanalytic concept" }; return references[family] || "Référence scientifique"; } container.appendChild(card); }); // Download button functionality document.getElementById('downloadBtn').addEventListener('click', () => { // Create a PDF with all cards const pdfContent = { content: [ { text: 'Jeu des 7 Constellations', style: 'header' }, { text: '42 cartes de l\'Alliance Thérapeutique', style: 'subheader' }, { text: '\n\n' }, ...constellations.flatMap(constellation => [ { text: `Famille ${constellation.name}`, style: 'familyTitle', pageBreak: 'before' }, { text: constellation.description, style: 'familyDesc' }, { text: '\n' }, { ul: constellation.cards.map(card => `${card.title}: ${card.description}`) }, { text: '\n\n' } ]) ], styles: { header: { fontSize: 24, bold: true, alignment: 'center', margin: [0, 0, 0, 20] }, subheader: { fontSize: 18, bold: true, alignment: 'center', margin: [0, 0, 0, 20] }, familyTitle: { fontSize: 20, bold: true, color: '#4f46e5', margin: [0, 0, 0, 10] }, familyDesc: { fontSize: 14, italics: true, margin: [0, 0, 0, 10] } } }; // In a real app, this would generate and download the PDF // For now we'll show a preview alert alert('PDF généré avec les 42 cartes!\n\nEn production, cela téléchargerait un PDF prêt à imprimer.'); console.log('PDF content:', pdfContent); }); // Initialize feather icons feather.replace(); });