@1024pix/epreuves-components 4.2.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/Button.ce-Dvxeebpx.js +31 -0
  2. package/dist/{ButtonTooltip.ce-BnJlaEqx.js → ButtonTooltip.ce-WwOarMJq.js} +1 -1
  3. package/dist/Cross.ce.vue_vue_type_script_setup_true_lang-DVLRq2sO.js +53 -0
  4. package/dist/Feedback.ce-CnZRBGWf.js +26 -0
  5. package/dist/{FocusManager.ce-DHXwg6WZ.js → FocusManager.ce-Cv3wYF9s.js} +2 -2
  6. package/dist/{LLMMessage.ce-jLEqjxsl.js → LLMMessage.ce-B7EwoHy2.js} +4 -4
  7. package/dist/{Loading.ce-DDtlSLlu.js → Loading.ce-Dv2gEjXm.js} +1 -1
  8. package/dist/{NavigationButton.ce-BnnVUwGr.js → NavigationButton.ce-D8_YC96l.js} +2 -2
  9. package/dist/{PixMailMessage.ce-oCccQFGV.js → PixMailMessage.ce-TnjyOfiH.js} +141 -137
  10. package/dist/{Popin.ce-Co12R3C8.js → Popin.ce-BPnBZykQ.js} +3 -3
  11. package/dist/{Retry-C7C78Wpj.js → Retry-C3g7zhz8.js} +1 -1
  12. package/dist/{Stepper.ce-Dttf3Dsf.js → Stepper.ce-DEMN02yr.js} +1 -1
  13. package/dist/{_plugin-vue_export-helper-B-lVMTio.js → _plugin-vue_export-helper-Dz58mCLm.js} +4 -4
  14. package/dist/components/analyse-mails-phishing.ce.js.js +9 -8
  15. package/dist/components/button.ce.js.js +4 -0
  16. package/dist/components/calcul-impact.ce.js.js +8 -8
  17. package/dist/components/capacity-calculation.ce.js.js +124 -137
  18. package/dist/components/clickable-image.ce.js.js +1 -1
  19. package/dist/components/complete-phrase.ce.js.js +12 -12
  20. package/dist/components/feedback.ce.js.js +4 -0
  21. package/dist/components/flip-cards.ce.js.js +7 -7
  22. package/dist/components/image-quiz.ce.js.js +3 -3
  23. package/dist/components/image-quizzes.ce.js.js +3 -3
  24. package/dist/components/llm-compare-messages.ce.js.js +3 -3
  25. package/dist/components/llm-messages.ce.js.js +3 -3
  26. package/dist/components/llm-prompt-select.ce.js.js +6 -6
  27. package/dist/components/mdp-classement.ce.js.js +20 -19
  28. package/dist/components/message-conversation.ce.js.js +10 -10
  29. package/dist/components/mobile-shell.ce.js.js +1 -1
  30. package/dist/components/notification-antivirus.ce.js.js +343 -0
  31. package/dist/components/phishing-message.ce.js.js +60 -61
  32. package/dist/components/phishing-notification.ce.js.js +4 -4
  33. package/dist/components/pix-anonymisation.ce.js.js +63 -64
  34. package/dist/components/pix-article.ce.js.js +2 -2
  35. package/dist/components/pix-carousel.ce.js.js +4 -4
  36. package/dist/components/pix-combinaisons.ce.js.js +96 -96
  37. package/dist/components/pix-cursor.ce.js.js +10 -10
  38. package/dist/components/pix-mail-message.ce.js.js +3 -3
  39. package/dist/components/proteger-mail-spam.ce.js.js +15 -14
  40. package/dist/components/qcm-deepfake.ce.js.js +41 -41
  41. package/dist/components/quiz-stepper.ce.js.js +30 -29
  42. package/dist/components/select-conversation.ce.js.js +6 -6
  43. package/dist/components/template-mail.ce.js.js +3 -3
  44. package/dist/components/test-top-mdp.ce.js.js +11 -12
  45. package/dist/components/trouver-mdp-rs.ce.js.js +97 -96
  46. package/dist/components/usages-donnees.ce.js.js +183 -0
  47. package/dist/{i18n-CsT7k7zW.js → i18n-H4HokXDX.js} +1 -1
  48. package/dist/{i18n-lite-BIJ2LVs6.js → i18n-lite-CzqISEWm.js} +1 -1
  49. package/dist/{image-quiz.ce-B4NDetit.js → image-quiz.ce-C-iI27gD.js} +2 -2
  50. package/dist/{index-BaI3Qosp.js → index-BUPiE5WR.js} +1 -1
  51. package/dist/index.js +3 -1
  52. package/dist/metadata.js +32 -24
  53. package/dist/props.examples.js +95 -90
  54. package/dist/schema.js +49 -38
  55. package/dist/{shadow-dom-Bouq869n.js → shadow-dom-D54WF-WZ.js} +1 -1
  56. package/package.json +1 -1
  57. package/dist/Button.ce-DZ8jDtW5.js +0 -27
  58. package/dist/Cross.ce.vue_vue_type_script_setup_true_lang-l4hAa4eW.js +0 -75
@@ -1,19 +1,19 @@
1
- const s = [{ subject: "Votre nouvel avis d’imposition est disponible", from: { name: "Impost.g0uv", address: "no-reply@impost.g0uv.fr" }, body: [{ type: "paragraph", content: ["Bonjour,"] }, { type: "paragraph", content: ["Votre avis d’imposition est désormais en ligne.", "Pour consulter rapidement,", "merci de vous connecter à votre espace particulier via le lien ci-dessous."] }, { type: "button", name: "Accéder à mon espace particulier" }, { type: "paragraph", content: ["Cordialement,"] }, { type: "paragraph", content: ["Service des impôts"] }], answers: ["from.name", "from.address"], correctFeedback: "Le nom de l’expéditeur est orthographié ‘impost.g0uv’ au lieu de ‘impots.gouv’. Les erreurs dans les noms ou dans les adresses mail sont de bons indicateurs d’arnaques.", incorrectFeedback: "Observez bien l’orthographe du nom et de l’adresse d’expéditeur. Retentez votre chance !" }, { subject: "Notification de facture impayée — EDF", from: { name: "EDF Service Client", address: "support.edf-client@yxztbnc85de.ru" }, body: [{ type: "paragraph", content: ["Bonjour,"] }, { type: "paragraph", content: ["Nous n’avons pas reçu le règlement de votre dernière facture.", "Veuillez consulter le détail et effectuer le paiement sécurisé", "dans les 48h pour éviter la suspension de votre abonnement."] }, { type: "button", name: "Voir ma facture" }, { type: "paragraph", content: ["Merci,"] }, { type: "paragraph", content: ["EDF — Service Client"] }], answers: ["from.address"], correctFeedback: "La partie après l’arobase de l’adresse mail ‘yxztbnc85de.ru’ n’a aucun lien avec EDF ou la demande, et n’est même pas compréhensible. C’est un indicateur de hameçonnage.", incorrectFeedback: "Concentrez-vous sur l’adresse mail de l’expediteur. Retentez votre chance !" }, { subject: "Amende impayée - Service des infractions", from: { name: "Service des infractions", address: "infractions@amendes-en-retard.com" }, body: [{ type: "paragraph", content: ["Bonjour,"] }, { type: "paragraph", content: ["Nous vous informons que vous avez un retard de paiement d’une amende de 85€ auprès de l’Agence de Traitement Automatisé des Infractions (ANTAI).", "Référence de dossier : ML854YD9.", "Veuillez noter que si vous ne payez pas cette amende dans les prochaines 24 h,", "vous devrez payer une majoration à hauteur de 250€.", "Veuillez régulariser votre situation dans les plus brefs délais."] }, { type: "button", name: "Payr mon amende" }, { type: "paragraph", content: ["Cordialement,"] }, { type: "paragraph", content: ["Service des infractions de l’ANTAI"] }], answers: ["from.address"], correctFeedback: "L’adresse de l’expéditeur ne correspond à aucun organisme officiel. Les incohérences dans les noms et les adresses mails sont de bons indicateurs d’arnaques.", incorrectFeedback: "Observez bien le nom et l’adresse de l’expéditeur. Retentez votre chance ! " }], n = {
2
- mails: s
1
+ const t = [{ subject: "Votre nouvel avis d’imposition est disponible", from: { name: "Impost.g0uv", address: "no-reply@impost.g0uv.fr" }, body: [{ type: "paragraph", content: ["Bonjour,"] }, { type: "paragraph", content: ["Votre avis d’imposition est désormais en ligne.", "Pour consulter rapidement,", "merci de vous connecter à votre espace particulier via le lien ci-dessous."] }, { type: "button", name: "Accéder à mon espace particulier" }, { type: "paragraph", content: ["Cordialement,"] }, { type: "paragraph", content: ["Service des impôts"] }], answers: ["from.name", "from.address"], correctFeedback: "Le nom de l’expéditeur est orthographié ‘impost.g0uv’ au lieu de ‘impots.gouv’. Les erreurs dans les noms ou dans les adresses mail sont de bons indicateurs d’arnaques.", incorrectFeedback: "Observez bien l’orthographe du nom et de l’adresse d’expéditeur. Retentez votre chance !" }, { subject: "Notification de facture impayée — EDF", from: { name: "EDF Service Client", address: "support.edf-client@yxztbnc85de.ru" }, body: [{ type: "paragraph", content: ["Bonjour,"] }, { type: "paragraph", content: ["Nous n’avons pas reçu le règlement de votre dernière facture.", "Veuillez consulter le détail et effectuer le paiement sécurisé", "dans les 48h pour éviter la suspension de votre abonnement."] }, { type: "button", name: "Voir ma facture" }, { type: "paragraph", content: ["Merci,"] }, { type: "paragraph", content: ["EDF — Service Client"] }], answers: ["from.address"], correctFeedback: "La partie après l’arobase de l’adresse mail ‘yxztbnc85de.ru’ n’a aucun lien avec EDF ou la demande, et n’est même pas compréhensible. C’est un indicateur de hameçonnage.", incorrectFeedback: "Concentrez-vous sur l’adresse mail de l’expediteur. Retentez votre chance !" }, { subject: "Amende impayée - Service des infractions", from: { name: "Service des infractions", address: "infractions@amendes-en-retard.com" }, body: [{ type: "paragraph", content: ["Bonjour,"] }, { type: "paragraph", content: ["Nous vous informons que vous avez un retard de paiement d’une amende de 85€ auprès de l’Agence de Traitement Automatisé des Infractions (ANTAI).", "Référence de dossier : ML854YD9.", "Veuillez noter que si vous ne payez pas cette amende dans les prochaines 24 h,", "vous devrez payer une majoration à hauteur de 250€.", "Veuillez régulariser votre situation dans les plus brefs délais."] }, { type: "button", name: "Payr mon amende" }, { type: "paragraph", content: ["Cordialement,"] }, { type: "paragraph", content: ["Service des infractions de l’ANTAI"] }], answers: ["from.address"], correctFeedback: "L’adresse de l’expéditeur ne correspond à aucun organisme officiel. Les incohérences dans les noms et les adresses mails sont de bons indicateurs d’arnaques.", incorrectFeedback: "Observez bien le nom et l’adresse de l’expéditeur. Retentez votre chance ! " }], n = {
2
+ mails: t
3
3
  }, o = 2, i = {
4
4
  titleLevel: o
5
- }, r = 2, a = "https://assets.pix.org/modules/capacity-calculation/capacity-initial.svg", c = {
6
- titleLevel: r,
7
- capacityImage: a
8
- }, u = { src: "https://assets.pix.org/modules/salon-connecte.webp", alt: "Salon connecté", width: 1536, height: 1024 }, p = [{ coords: { x1: 390, y1: 120, x2: 842, y2: 400 }, info: "Pixvidéo : Vous avez aimé « Les chroniques de Flundertown », vous aimerez sûrement « Autant en emporte les fleurs »." }, { coords: { x1: 510, y1: 588, x2: 702, y2: 635 }, info: "Jeu vidéo : Kart Party, le jeu s’adapte en fonction du niveau du joueur" }, { coords: { x1: 248, y1: 398, x2: 325, y2: 492 }, info: "Enceinte connectée : Paramètre activé « Reconnaissance vocale »" }, { coords: { x1: 828, y1: 560, x2: 1042, y2: 725 }, info: "ChatPix : « Que puis-je faire pour toi aujourd’hui ? »", tooltipPosition: "bottom" }, { coords: { x1: 122, y1: 796, x2: 318, y2: 916 }, info: "Robot aspirateur : Paramètre activé « Détection automatique des obstacles et adaptation du parcours »" }, { coords: { x1: 986, y1: 148, x2: 1100, y2: 230 }, info: "Thermostat mural : Paramètre activé « Température idéale et économie d’énergie »", tooltipPosition: "bottom" }], l = {
5
+ }, a = 2, r = "https://assets.pix.org/modules/capacity-calculation/capacity-initial.svg", c = {
6
+ titleLevel: a,
7
+ capacityImage: r
8
+ }, u = { src: "https://assets.pix.org/modules/salon-connecte.webp", alt: "Salon connecté", width: 1536, height: 1024 }, l = [{ coords: { x1: 390, y1: 120, x2: 842, y2: 400 }, info: "Pixvidéo : Vous avez aimé « Les chroniques de Flundertown », vous aimerez sûrement « Autant en emporte les fleurs »." }, { coords: { x1: 510, y1: 588, x2: 702, y2: 635 }, info: "Jeu vidéo : Kart Party, le jeu s’adapte en fonction du niveau du joueur" }, { coords: { x1: 248, y1: 398, x2: 325, y2: 492 }, info: "Enceinte connectée : Paramètre activé « Reconnaissance vocale »" }, { coords: { x1: 828, y1: 560, x2: 1042, y2: 725 }, info: "ChatPix : « Que puis-je faire pour toi aujourd’hui ? »", tooltipPosition: "bottom" }, { coords: { x1: 122, y1: 796, x2: 318, y2: 916 }, info: "Robot aspirateur : Paramètre activé « Détection automatique des obstacles et adaptation du parcours »" }, { coords: { x1: 986, y1: 148, x2: 1100, y2: 230 }, info: "Thermostat mural : Paramètre activé « Température idéale et économie d’énergie »", tooltipPosition: "bottom" }], p = {
9
9
  image: u,
10
- areas: p
10
+ areas: l
11
11
  }, m = { src: "https://assets.pix.org/modules/salon-connecte.webp", alt: "Salon connecté", width: 1536, height: 1024 }, d = [{ coords: { x1: 390, y1: 120, x2: 842, y2: 400 }, spot: { y: 130 }, info: "Pixvidéo : Vous avez aimé « Les chroniques de Flundertown », vous aimerez sûrement « Autant en emporte les fleurs »." }, { coords: { x1: 510, y1: 588, x2: 702, y2: 635 }, info: "Jeu vidéo : Kart Party, le jeu s’adapte en fonction du niveau du joueur" }, { coords: { x1: 248, y1: 398, x2: 325, y2: 492 }, spot: { x: 34 }, info: "Enceinte connectée : Paramètre activé « Reconnaissance vocale »" }, { coords: { x1: 828, y1: 560, x2: 1042, y2: 725 }, info: "ChatPix : « Que puis-je faire pour toi aujourd’hui ? »", tooltipPosition: "bottom" }, { coords: { x1: 122, y1: 796, x2: 318, y2: 916 }, spot: { x: 34, y: -24 }, info: "Robot aspirateur : Paramètre activé « Détection automatique des obstacles et adaptation du parcours »" }, { coords: { x1: 986, y1: 148, x2: 1100, y2: 230 }, spot: { x: 34, y: -24 }, info: "Thermostat mural : Paramètre activé « Température idéale et économie d’énergie »", tooltipPosition: "bottom" }], v = {
12
12
  image: m,
13
13
  areas: d
14
- }, g = 2, b = [[{ name: "chocolat", percent: 100 }, { name: "beurre", percent: 80 }, { name: "sucre", percent: 80 }, { name: "sirop", percent: 60 }, { name: "caramel", percent: 43 }, { name: "miel", percent: 25 }, { name: "fromage", percent: 20 }], [{ name: "et", percent: 100 }, { name: "avec", percent: 80 }, { name: "fondu", percent: 80 }, { name: "avec", percent: 60 }, { name: "dedans", percent: 43 }], [{ name: "du", percent: 100 }, { name: "puis", percent: 80 }], [{ name: "sucre", percent: 100 }, { name: "miel", percent: 80 }, { name: "caramel", percent: 60 }, { name: "chocolat", percent: 20 }]], f = "Avec quoi peut-on tartiner une crêpe pour qu’elle soit bonne ?", h = "On peut mettre du ", x = ["beurre", "et", "du "], _ = {
15
- titleLevel: g,
16
- listOfProbabilityBarsLists: b,
14
+ }, b = 2, g = [[{ name: "chocolat", percent: 100 }, { name: "beurre", percent: 80 }, { name: "sucre", percent: 80 }, { name: "sirop", percent: 60 }, { name: "caramel", percent: 43 }, { name: "miel", percent: 25 }, { name: "fromage", percent: 20 }], [{ name: "et", percent: 100 }, { name: "avec", percent: 80 }, { name: "fondu", percent: 80 }, { name: "avec", percent: 60 }, { name: "dedans", percent: 43 }], [{ name: "du", percent: 100 }, { name: "puis", percent: 80 }], [{ name: "sucre", percent: 100 }, { name: "miel", percent: 80 }, { name: "caramel", percent: 60 }, { name: "chocolat", percent: 20 }]], f = "Avec quoi peut-on tartiner une crêpe pour qu’elle soit bonne ?", h = "On peut mettre du ", x = ["beurre", "et", "du "], _ = {
15
+ titleLevel: b,
16
+ listOfProbabilityBarsLists: g,
17
17
  userMessage: f,
18
18
  llmMessage: h,
19
19
  wordsToAdd: x
@@ -31,29 +31,31 @@ const s = [{ subject: "Votre nouvel avis d’imposition est disponible", from: {
31
31
  quizzes: k
32
32
  }, M = ["r7&Kp9!qZ4#tV2", "MonCh@t!23", "Bonjour1", "1234567"], I = {
33
33
  passwords: M
34
- }, E = "Conversation entre Emma et Gustave à propos d’un prompt", D = 20, V = [{ userName: "Gustave", direction: "incoming", type: "Texte", content: "Je ne comprends pas... Toi, t’arrives à faire plein de choses avec l’IA, avec moi ça ne marche pas !😒" }, { userName: "Emma", direction: "outgoing", type: "Texte", content: "Ah bon ? 🤖" }, { userName: "Emma", direction: "outgoing", type: "Texte + Image", content: "Quel prompt as-tu utilisé ?", image: { src: "https://epreuves.pix.fr/images/onu4.jpg", alt: "Martin pêcheur en fait" } }, { userName: "Gustave", direction: "incoming", type: "Texte", content: 'Je veux informer les joueurs donc mon prompt c’était "Invite tous les joueurs aux tournois".' }, { userName: "Emma", direction: "outgoing", type: "Texte", content: `C’est normal, ton prompt est trop flou ! L’IA ne peut pas deviner ce que tu veux. 😉
35
- Il y a des techniques pour améliorer les résultats. 💡` }], B = {
34
+ }, E = "Conversation entre Emma et Gustave à propos d’un prompt", V = 20, D = [{ userName: "Gustave", direction: "incoming", type: "Texte", content: "Je ne comprends pas... Toi, t’arrives à faire plein de choses avec l’IA, avec moi ça ne marche pas !😒" }, { userName: "Emma", direction: "outgoing", type: "Texte", content: "Ah bon ? 🤖" }, { userName: "Emma", direction: "outgoing", type: "Texte + Image", content: "Quel prompt as-tu utilisé ?", image: { src: "https://epreuves.pix.fr/images/onu4.jpg", alt: "Martin pêcheur en fait" } }, { userName: "Gustave", direction: "incoming", type: "Texte", content: 'Je veux informer les joueurs donc mon prompt c’était "Invite tous les joueurs aux tournois".' }, { userName: "Emma", direction: "outgoing", type: "Texte", content: `C’est normal, ton prompt est trop flou ! L’IA ne peut pas deviner ce que tu veux. 😉
35
+ Il y a des techniques pour améliorer les résultats. 💡` }], R = {
36
36
  conversationTitle: E,
37
- animationSpeed: D,
38
- messages: V
39
- }, O = 2, R = {
40
- titleLevel: O
41
- }, w = [{ name: "Célébrité", icon: "celebrity" }, { name: "Commerce", icon: "business" }, { name: "Particulier", icon: "person" }, { name: "Service public", icon: "publicService" }, { name: "Entreprise", icon: "company" }], $ = [{ icon: "bubble", sender: "IMPOTS-GOUV", content: "Remboursement fiscal de 500e", category: "Service public", time: { minutes: -3 } }, { icon: "letter", sender: "service@enegie.com", content: "Non paiement !!", category: "Entreprise", time: { minutes: -9 } }, { icon: "arobase", sender: "Squizee", content: "Viens à ma soirée d'influenceur", category: "Célébrité", time: { minutes: -34 } }, { icon: "bubble", sender: "ANTAI", content: "Amende plus chère", category: "Service public", time: { minutes: -42 } }, { icon: "letter", sender: "service@fnac.com", content: "Trop chère", category: "Entreprise", time: { minutes: -128 } }], F = "Souvent, les escrocs envoient de faux messages qui semblent venir d’un proche, d’une célébrité ou d’un service connu pour gagner votre confiance.", U = {
42
- categories: w,
43
- notifications: $,
44
- informationMessage: F
45
- }, G = 2, J = [{ fullSentence: [{ content: "J'habite au 12 rue des Lilas, Joliville,", isAnonymizable: !0 }, { content: "je m'appelle Cédric Fostabley,", isAnonymizable: !0 }, { content: "je suis maçon" }, { content: "mon numéro est le 06 12 34 56 78.", isAnonymizable: !0 }, { content: "Peux-tu me faire une carte de visite professionnelle et originale?" }], rephrase: "Je suis maçon et j’aimerai une idée de carte de visite professionnelle et originale. Peux tu me proposer un modèle que je pourrais compléter avec mes informations ?", feedback: "On reformule ici afin d’éviter de donner des informations perso à une IA, c’est pas bieng faut pas le faire" }, { fullSentence: [{ content: "Peux-tu écrire une lettre" }, { content: "pour le docteur Vanderbrooke", isAnonymizable: !0 }, { content: "lui demandant de soigner" }, { content: "Madame Sarfati", isAnonymizable: !0 }, { content: "suivie pour son diabète" }, { content: "depuis 5 ans ?" }], rephrase: "Peux-tu écrire une lettre pour un collègue médecin lui demandant de prendre en charge une patiente que je suis pour son diabète depuis 5 ans déjà ?", feedback: "On reformule ici afin d’éviter de donner des informations perso à une IA, c’est pas bieng faut pas le faire" }, { fullSentence: [{ content: "Peux-tu rédiger un mail pour mon équipe" }, { content: "afin de lui rappeler que le mot de passe du wifi est AzErTy2024!", isAnonymizable: !0 }, { content: "et qu’ils doivent suivre le mode d’emploi suivant :" }, { content: " http://intranet.example.invalid/procedure-connexion", isAnonymizable: !0 }, { content: "pour s’y connecter ?" }], rephrase: "Peux-tu me proposer un exemple de mail expliquant à une équipe comment se connecter au WiFi d’une organisation ?Je compléterai moi-même ensuite les informations sensibles (mot de passe, lien interne, instructions).", feedback: "On reformule ici afin d’éviter de donner des informations perso à une IA, c’est pas bieng faut pas le faire" }], Q = {
46
- titleLevel: G,
47
- steps: J
48
- }, H = 2, W = "🔴 Une vidéo de la maire de la capitale crée la polémique", Y = "Rédaction Locale", K = "14 mai 2025", Z = ["Une vidéo diffusée ce matin montre la maire de la capitale, Claire Durand, déclarant : « Il faut faire de la place aux jeunes. À partir de l’an prochain, les personnes âgées n’auront plus accès aux parcs municipaux ».", "Relayée massivement sur les réseaux, la séquence suscite de vives réactions, dénonçant des propos « discriminatoires ». Certains demandent la démission immédiate de la maire. Mais l’après-midi même, la mairie réagit : {{highlightedSentence}}, affirme le service communication. La vidéo a été retirée des réseaux sociaux, à la demande de la mairie. Une plainte a été déposée."], X = "« Il s’agit d’un deepfake »", ee = "#bb0101", te = {
49
- titleLevel: H,
50
- articleTitle: W,
51
- author: Y,
52
- date: K,
53
- paragraphs: Z,
54
- highlightedSentence: X,
55
- colorOfHighlightSentence: ee
56
- }, se = 2, ne = "image", oe = !1, ie = [{ title: "Situation A", description: "Super description!", image: { src: "https://epreuves.pix.fr/_astro/connaitre_va1_profil2.DsTLuIpH.jpg", alt: 'une alternative A avec des "double quotes"' } }, { title: "Situation B", description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at imperdiet libero, eget suscipit enim. Proin in nibh id ligula tempus suscipit eu at dolor. Fusce tincidunt gravida turpis, a sagittis ex bibendum nec. Morbi hendrerit lectus sed libero tristique, non luctus diam ultricies. Cras in quam consectetur, tempor quam id, euismod turpis. Duis faucibus erat lectus, blandit mattis lectus euismod quis. Duis imperdiet volutpat metus at varius. Nunc vitae mattis leo, ac vehicula urna. Mauris euismod eleifend lorem quis porta. Quisque ac diam sollicitudin nisl convallis ullamcorper. Donec ut suscipit arcu.", image: { src: "https://epreuves.pix.fr/_astro/connaitre_va1_profil2.DsTLuIpH.jpg", alt: "une alternative B" } }, { title: "Liste non ordonnée", description: `
37
+ animationSpeed: V,
38
+ messages: D
39
+ }, B = 2, O = {
40
+ titleLevel: B
41
+ }, w = 2, $ = {
42
+ titleLevel: w
43
+ }, F = [{ name: "Célébrité", icon: "celebrity" }, { name: "Commerce", icon: "business" }, { name: "Particulier", icon: "person" }, { name: "Service public", icon: "publicService" }, { name: "Entreprise", icon: "company" }], U = [{ icon: "bubble", sender: "IMPOTS-GOUV", content: "Remboursement fiscal de 500e", category: "Service public", time: { minutes: -3 } }, { icon: "letter", sender: "service@enegie.com", content: "Non paiement !!", category: "Entreprise", time: { minutes: -9 } }, { icon: "arobase", sender: "Squizee", content: "Viens à ma soirée d'influenceur", category: "Célébrité", time: { minutes: -34 } }, { icon: "bubble", sender: "ANTAI", content: "Amende plus chère", category: "Service public", time: { minutes: -42 } }, { icon: "letter", sender: "service@fnac.com", content: "Trop chère", category: "Entreprise", time: { minutes: -128 } }], G = "Souvent, les escrocs envoient de faux messages qui semblent venir d’un proche, d’une célébrité ou d’un service connu pour gagner votre confiance.", J = {
44
+ categories: F,
45
+ notifications: U,
46
+ informationMessage: G
47
+ }, Q = 2, H = [{ fullSentence: [{ content: "J'habite au 12 rue des Lilas, Joliville,", isAnonymizable: !0 }, { content: "je m'appelle Cédric Fostabley,", isAnonymizable: !0 }, { content: "je suis maçon" }, { content: "mon numéro est le 06 12 34 56 78.", isAnonymizable: !0 }, { content: "Peux-tu me faire une carte de visite professionnelle et originale?" }], rephrase: "Je suis maçon et j’aimerai une idée de carte de visite professionnelle et originale. Peux tu me proposer un modèle que je pourrais compléter avec mes informations ?", feedback: "On reformule ici afin d’éviter de donner des informations perso à une IA, c’est pas bieng faut pas le faire" }, { fullSentence: [{ content: "Peux-tu écrire une lettre" }, { content: "pour le docteur Vanderbrooke", isAnonymizable: !0 }, { content: "lui demandant de soigner" }, { content: "Madame Sarfati", isAnonymizable: !0 }, { content: "suivie pour son diabète" }, { content: "depuis 5 ans ?" }], rephrase: "Peux-tu écrire une lettre pour un collègue médecin lui demandant de prendre en charge une patiente que je suis pour son diabète depuis 5 ans déjà ?", feedback: "On reformule ici afin d’éviter de donner des informations perso à une IA, c’est pas bieng faut pas le faire" }, { fullSentence: [{ content: "Peux-tu rédiger un mail pour mon équipe" }, { content: "afin de lui rappeler que le mot de passe du wifi est AzErTy2024!", isAnonymizable: !0 }, { content: "et qu’ils doivent suivre le mode d’emploi suivant :" }, { content: " http://intranet.example.invalid/procedure-connexion", isAnonymizable: !0 }, { content: "pour s’y connecter ?" }], rephrase: "Peux-tu me proposer un exemple de mail expliquant à une équipe comment se connecter au WiFi d’une organisation ?Je compléterai moi-même ensuite les informations sensibles (mot de passe, lien interne, instructions).", feedback: "On reformule ici afin d’éviter de donner des informations perso à une IA, c’est pas bieng faut pas le faire" }], W = {
48
+ titleLevel: Q,
49
+ steps: H
50
+ }, Y = 2, K = "🔴 Une vidéo de la maire de la capitale crée la polémique", Z = "Rédaction Locale", X = "14 mai 2025", ee = ["Une vidéo diffusée ce matin montre la maire de la capitale, Claire Durand, déclarant : « Il faut faire de la place aux jeunes. À partir de l’an prochain, les personnes âgées n’auront plus accès aux parcs municipaux ».", "Relayée massivement sur les réseaux, la séquence suscite de vives réactions, dénonçant des propos « discriminatoires ». Certains demandent la démission immédiate de la maire. Mais l’après-midi même, la mairie réagit : {{highlightedSentence}}, affirme le service communication. La vidéo a été retirée des réseaux sociaux, à la demande de la mairie. Une plainte a été déposée."], se = "« Il s’agit d’un deepfake »", te = "#bb0101", ne = {
51
+ titleLevel: Y,
52
+ articleTitle: K,
53
+ author: Z,
54
+ date: X,
55
+ paragraphs: ee,
56
+ highlightedSentence: se,
57
+ colorOfHighlightSentence: te
58
+ }, oe = 2, ie = "image", ae = !1, re = [{ title: "Situation A", description: "Super description!", image: { src: "https://epreuves.pix.fr/_astro/connaitre_va1_profil2.DsTLuIpH.jpg", alt: 'une alternative A avec des "double quotes"' } }, { title: "Situation B", description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc at imperdiet libero, eget suscipit enim. Proin in nibh id ligula tempus suscipit eu at dolor. Fusce tincidunt gravida turpis, a sagittis ex bibendum nec. Morbi hendrerit lectus sed libero tristique, non luctus diam ultricies. Cras in quam consectetur, tempor quam id, euismod turpis. Duis faucibus erat lectus, blandit mattis lectus euismod quis. Duis imperdiet volutpat metus at varius. Nunc vitae mattis leo, ac vehicula urna. Mauris euismod eleifend lorem quis porta. Quisque ac diam sollicitudin nisl convallis ullamcorper. Donec ut suscipit arcu.", image: { src: "https://epreuves.pix.fr/_astro/connaitre_va1_profil2.DsTLuIpH.jpg", alt: "une alternative B" } }, { title: "Liste non ordonnée", description: `
57
59
  <ul>
58
60
  <li>Ruben</li>
59
61
  <li>Chase</li>
@@ -66,65 +68,68 @@ Il y a des techniques pour améliorer les résultats. 💡` }], B = {
66
68
  <li>Zuma</li>
67
69
  <li>Stella</li>
68
70
  </ol>
69
- `, image: { src: "https://epreuves.pix.fr/_astro/connaitre_va1_profil2.DsTLuIpH.jpg", alt: "" } }], re = {
70
- titleLevel: se,
71
- type: ne,
72
- disableAnimation: oe,
73
- slides: ie
74
- }, ae = 2, ce = {
75
- titleLevel: ae
76
- }, ue = [{ label: "Bon", feedback: { type: "good", text: "OUI, ÇA SENT LA PATATE ! 🎉" } }, { label: "Presque", feedback: { type: "close", text: "PATATE 🥔" } }, { label: "Neutre", feedback: { type: "neutral", text: "POUET 💨" } }, { label: "Incorrect", feedback: { type: "bad", text: "❌ C'EST NON! Et voici pourquoi : <br>Quis elit cupidatat commodo adipisicing aliqua qui commodo proident ipsum dolore culpa in. Mollit eiusmod elit sint in aute nulla enim. Sit sint in sunt esse excepteur cupidatat et adipisicing nulla excepteur consectetur reprehenderit est ipsum. Cupidatat proident est pariatur minim labore excepteur culpa aliqua consectetur laboris voluptate consectetur enim nulla laboris. Aliquip occaecat irure sunt. Laboris eiusmod eu dolor veniam minim proident. Elit consequat est occaecat." } }], pe = {
77
- options: ue
78
- }, le = { title: "Titre 1", llmName: "Nono" }, me = { title: "Autre Titre de ouf la dinguerie c'est long", llmName: "Jaja" }, de = "Bob", ve = [{ direction: "outbound", content: "<p>Comment aller facilement de Rennes à Brest en train demain ?</p>" }, [{ direction: "inbound", content: "<p>Voici les itinéraires de demain :<br>Train OUIGO, durée 2h15 08h22 --> 10h37<br>TGV INOUI, durée 2h13 09h33 --> 11h46</p>" }, { direction: "inbound", content: "<p>Pour aller facilement de Rennes à Brest en train demain, plusieurs options directes sont disponibles :<br>08h22 - 10h37 : OUIGO, direct, environ 2h15 ;<br>09h33 - 11h46 : TGV INOUI, direct, environ 2h13.</p>" }], { direction: "outbound", content: "<p>Et qu'est-ce que je peux visiter à Brest ?</p>" }, [{ direction: "inbound", content: "<p>Je ne peux pas vous aider désolé. Votre demande ne correspond pas aux services que je propose. Est-ce que vous voulez de l’aide pour réserver un billet de train ?</p>" }, { direction: "inbound", content: "<p>Voici 3 endroits incontournables à Brest :<br>Océanopolis : grand aquarium dédié aux écosystèmes marins.<br>Château de Brest : forteresse avec musée maritime.<br>Ateliers des Capucins : espace culturel moderne accessible en téléphérique.</p>" }]], ge = {
79
- conversation1: le,
80
- conversation2: me,
81
- userName: de,
82
- messages: ve
83
- }, be = [{ direction: "outbound", content: "Bonjour" }, { direction: "inbound", content: "<strong>Bonjour,</strong> je m’appelle ChatPix !<br>Comment puis-je vous aider aujourd’hui ?<br>Avez-vous besoin d’une recette de cookie géant ?" }, { direction: "outbound", content: "Pourquoi pas..." }, { direction: "inbound", content: "Pour faire un cookie géant, prenez une recette de cookie, et multipliez toutes les doses par 10.<br>Ensuite au lieu de faire des petits tas de pate, faites un gros tas de pate sur votre plaque de cuisson.<br><strong>Et voilà !</strong>" }, { direction: "outbound", content: "Elle est bizarre ta recette." }, { direction: "inbound", content: "Désolé si ma recette ne vous plaît pas, souhaitez-vous une recette différente ?" }, { direction: "outbound", content: "Non." }], fe = {
84
- messages: be
85
- }, he = [{ direction: "inbound", content: "<strong>Bonjour,</strong> je m’appelle ChatPix !<br>Comment puis-je vous aider aujourd’hui ?" }], xe = [{ prompt: "Traduis le mot racoon en français.", response: 'Le mot "racoon" se traduit par "raton laveur" en français.' }, { prompt: "Écris un modèle de mail de remerciement.", response: "Objet : Merci<br><br>Bonjour [Prénom],<br>Merci pour [votre aide / notre échange / votre temps].<br>Bien à vous,<br>[Votre prénom]" }, { prompt: "Liste-moi 10 noms de chiens.", response: "1. Tokyo<br>2. Nala<br>3. Milou<br>4. Sushi<br>5. Luna<br>6. Apéro<br>7. Simba<br>8. Paco<br>9. Bart<br>10. Cookie" }], _e = {
86
- messages: he,
87
- prompts: xe
88
- }, ye = { reply: "disabled", menuActions: { markAsUnread: "disabled", blockSender: "hidden" } }, qe = { subject: "Votre facture #A‑91382", time: { days: -2, minutes: -5 }, body: "salut [monsieur/madame]<br> ceci est un lien <a href='http://www.test.com'>link Fake</a><br> cho'", sender: { name: "Micr0sofot", address: "billing@micros0ft.com", avatarColor: "#f24645" }, previousMail: { time: { days: -5, minutes: -10 }, body: "[Madame, / Monsieur,]<br><br>Nous vous remercions sincèrement pour votre message et l’intérêt que vous portez à [Nom de votre entreprise] ainsi qu’à nos services.Nous répondrons à votre message dans les plus brefs délais et restons à votre disposition pour toute demande supplémentaire, y compris une rencontre personnelle si vous le souhaitez. D’ici là, vous pouvez obtenir des informations complémentaires sur nos [Produits/Services] en consultant, par exemple, nos réseaux sociaux sur [Lien vers les réseaux sociaux, par exemple, YouTube] ou en téléchargeant notre [Lien de téléchargement, tel qu’une présentation d’entreprise ou un document technique].<br>Chaleureusement,<br>L’équipe de [Nom de votre entreprise]", sender: { name: "Alex" } } }, je = {
89
- actions: ye,
90
- mail: qe
91
- }, Ce = 2, Le = [{ title: "Première situation : Se protéger", description: "Utilisez l’interface pour ne plus recevoir de message en provenance de cette adresse mail.", actions: { return: "disabled", menuActions: { markAsUnread: "hidden", reportSpam: "hidden" } }, goodAction: "blockSender", mail: { subject: "[URGENT] Votre accès sera suspendu", sender: { name: "Bnq secure", address: "alert@bnq-secure.link", avatarColor: "#2f80ed" }, body: "Bonjour, <br><br>Nous avons détecté une activité suspecte sur votre compte.Par mesure de sécurité, l’accès sera suspendu dans les 2 heures si vous ne confirmez pas vos informations.<br><br>Confirmez votre compte ici : <a href='fake'>http://securite-compte-verification.com</a><br><br>Sans confirmation, vos services seront définitivement bloqués. Support Client MaBanque", time: { minutes: -5 } } }, { title: "Deuxième situation : Protéger les autres", description: "Le mail suivant est aussi frauduleux. Utilisez l’interface pour signaler le message et aider à renforcer les filtres anti‑spam.", actions: { return: "disabled", menuActions: { markAsUnread: "hidden" } }, goodAction: "reportSpam", mail: { subject: "Mise à jour de vos données Microsoft", sender: { name: " Service Données Utilisateurs", address: "donnees-gestion-utilisateurs@service-microsoft.com", avatarColor: "#2f80ed" }, body: "Bonjour,<br><br>Dans le cadre de l’évolution de notre politique de traitement des données personnelles, une validation de vos informations est désormais obligatoire. Veuillez mettre à jour vos informations dans les 3 jours.<br><br>Merci de vérifier et compléter vos informations via le portail sécurisé : <a href='fake'>http://portail-donnees-utilisateur-microsoft.com</a><br><br>Cordialement, Service Données & Conformité Microsoft", time: { minutes: -10 } } }], ze = {
92
- titleLevel: Ce,
93
- steps: Le
94
- }, Se = 2, Ae = "https://epreuves.pix.fr/images/camtasia.png", Pe = "https://epreuves.pix.fr/images/icones/actu.jpg", Te = "https://epreuves.pix.fr/images/icones/avg.png", ke = "https://epreuves.pix.fr/images/icones/avira.svg", Ne = {
95
- titleLevel: Se,
96
- successImage: Ae,
97
- failImage: Pe,
98
- infoImage: Te,
99
- searchImage: ke
100
- }, Me = 2, Ie = [{ question: "Quelle version de ce message vous inciterait le plus à réagir ?", feedback: { success: "Effectivement, même si les deux messages transmettent la même idée, le second message crée un sentiment d’urgence et de menace. C’est un biais de cadrage : la manière dont l’information est présentée influence notre réaction.", failed: "Ici, même si les deux messages transmettent la même idée, le second message crée un sentiment d’urgence et de menace. C’est un biais de cadrage : la manière dont l’information est présentée influence notre réaction." }, choice1: { title: "Message 1", content: `Bonjour,
101
- une facture est arrivée à échéance. Merci de la régler dans les plus brefs délais.` }, choice2: { title: "Message 2", content: "⚠ URGENT : Si vous ne réglez pas cette facture sous 24h, votre compte sera suspendu et des pénalités financières s’appliqueront.", isGoodAnswer: !0 } }, { question: "Quelle belle deuxième question que voila ?", feedback: { success: "Bravo !", failed: "Dommage :(" }, choice1: { content: "CONTENT: Réponse 1 sans titre!" }, choice2: { content: "CONTENT: Réponse 2 sans titre!", isGoodAnswer: !0 } }, { question: "Quelle belle troisième non-question !", feedback: { success: "Bravo2 !", failed: "Dommage2 :(" }, choice1: { title: "TITLE : Bonne réponse", isGoodAnswer: !0 }, choice2: { title: "TITLE: Mauvaise réponse" } }], Ee = {
102
- titleLevel: Me,
103
- steps: Ie
104
- }, De = { username: "Yvette", content: "Ok, mais en cas de doute, je fais quoi ? La banque ça peut être urgent !", time: { minutes: -5 } }, Ve = "Xavier", Be = [{ content: "Répond STOP au SMS, ça va le bloquer.", goodIdea: !1, feedback: "Répondre STOP à un SMS d’arnaque ne permet pas de vérifier sa véracité ni de bloquer l’expéditeur.<br>Dans le doute vérifiez l’information en contactant la personne ou le service qui aurait écrit le message par un autre moyen. Par exemple ici, contacter sa banque au numéro de téléphone habituel après avoir reçu un sms suspect d’un conseiller bancaire." }, { content: "Contacte ta banque au numéro habituel ou via ton application bancaire.", goodIdea: !0, feedback: "Dans le doute vérifiez l’information en contactant la personne ou le service qui aurait écrit le message par un autre moyen. Par exemple ici, contacter sa banque au numéro de téléphone habituel après avoir reçu un sms suspect d’un conseiller bancaire." }, { content: "Rappelle directement le numéro qui t’a envoyé le message.", goodIdea: !1, feedback: "Rappeler le numéro, c’est prendre le risque de tomber sur un escroc qui vous manipulera.<br>Dans le doute vérifiez l’information en contactant la personne ou le service qui aurait écrit le message par un autre moyen. Par exemple ici, contacter sa banque au numéro de téléphone habituel après avoir reçu un sms suspect d’un conseiller bancaire." }], Oe = {
105
- incomingMessage: De,
106
- username: Ve,
107
- responseChoices: Be
108
- }, Re = "Votre facture #A‑91382", we = "billing@micros0ft.com", $e = "#f24645", Fe = "Micr0sofot", Ue = { days: -2, minutes: -5 }, Ge = "salut [monsieur/madame]<br> ceci est un lien <a href='http://www.test.com'>link Fake</a><br> cho'", Je = { time: { days: -5, minutes: -10 }, content: "[Madame, / Monsieur,]<br><br>Nous vous remercions sincèrement pour votre message et l’intérêt que vous portez à [Nom de votre entreprise] ainsi qu’à nos services.Nous répondrons à votre message dans les plus brefs délais et restons à votre disposition pour toute demande supplémentaire, y compris une rencontre personnelle si vous le souhaitez. D’ici là, vous pouvez obtenir des informations complémentaires sur nos [Produits/Services] en consultant, par exemple, nos réseaux sociaux sur [Lien vers les réseaux sociaux, par exemple, YouTube] ou en téléchargeant notre [Lien de téléchargement, tel qu’une présentation d’entreprise ou un document technique].<br>Chaleureusement,<br>L’équipe de [Nom de votre entreprise]", name: "Alex" }, Qe = {
109
- subject: Re,
110
- mailAddress: we,
111
- avatarColor: $e,
112
- expeditor: Fe,
113
- time: Ue,
114
- content: Ge,
115
- previousMail: Je
116
- }, He = ["123456", "123456789", "azerty", "1234561", "qwerty", "marseille", "000000", "1234567891", "doudou", "12345"], We = "marseille", Ye = { success: { title: "Vous avez trouvé le mot de passe <b>d’Ulysse</b>", content: "Les <i>pirates</i> ont des listes contenant les mots de passe les plus fréquents, tous les mots du dictionnaire, des prénoms.<br>Ils utilisent des programmes informatiques qui permettent de tester des millions de mots en quelques secondes : on appelle ça une attaque par dictionnaire." }, failed: { title: "Eh non !", content: "Mot de passe incorrect. Réessayez avec un autre mot de passe." } }, Ke = {
117
- passwords: He,
118
- expectedPassword: We,
119
- feedback: Ye
120
- }, Ze = { password: "Timeo2014", user: "emma_vtr" }, Xe = { success: { title: "Connexion réussie", content: "Quelqu’un qui vous connaît ou un <b>pirate informatique</b> qui cherche des informations personnelles à votre sujet peut facilement deviner ce type de mot de passe." }, failed: { title: "Mauvaise réponse", content: "Astuce : Comme Emma l’a dit à <i>Jennifer</i>, son mot de passe est composé du prénom de son fils et l’année de naissance de son chat. Réessayer en saisissant le bon mot de passe à l’aide de ces informations en complétant le champ adéquat." } }, et = { userName: "Emma_VTR", tag: "@emma_vtr", bio: "Bio : Fan de chats 🐱 · Voyage à Lisbonne 2023 🇵🇹 · Maman de Timéo 💕", location: "Paris, FR", publications: [{ date: "2024-12-09", content: "Déjà 10 ans que j'ai sauvé Misty ! 🐾💖 De petit chaton abandonné, il s'est transformé en panthère d'appartement !" }, { date: "2024-12-08", content: "Lisbonne, souvenirs d’été" }] }, tt = {
121
- validations: Ze,
122
- feedback: Xe,
123
- userProfile: et
124
- }, st = /* @__PURE__ */ Object.assign({ "./analyse-mails-phishing/analyse-mails-phishing.example.props.json": n, "./calcul-impact/calcul-impact.example.props.json": i, "./capacity-calculation/capacity-calculation.example.props.json": c, "./clickable-image/clickable-image-without-spot.example.props.json": l, "./clickable-image/clickable-image.example.props.json": v, "./complete-phrase/complete-phrase.example.props.json": _, "./flip-cards/flip-cards.example.props.json": j, "./image-quiz/image-quiz.example.props.json": T, "./image-quiz/image-quizzes.example.props.json": N, "./mdp-classement/mdp-classement.example.props.json": I, "./message-conversation/message-conversation.example.props.json": B, "./phishing-message/phishing-message.example.props.json": R, "./phishing-notification/phishing-notification.example.props.json": U, "./pix-anonymisation/pix-anonymisation.example.props.json": Q, "./pix-article/pix-article.example.props.json": te, "./pix-carousel/pix-carousel.example.props.json": re, "./pix-combinaisons/pix-combinaisons.example.props.json": ce, "./pix-cursor/pix-cursor.example.props.json": pe, "./pix-llm/llm-compare-messages.example.props.json": ge, "./pix-llm/llm-messages.example.props.json": fe, "./pix-llm/llm-prompt-select.example.props.json": _e, "./pix-mail-message/pix-mail-message.example.props.json": je, "./proteger-mail-spam/proteger-mail-spam.example.props.json": ze, "./qcm-deepfake/qcm-deepfake.example.props.json": Ne, "./quiz-stepper/quiz-stepper.example.props.json": Ee, "./select-conversation/select-conversation.example.props.json": Oe, "./template-mail/template-mail.example.props.json": Qe, "./test-top-mdp/test-top-mdp.example.props.json": Ke, "./trouver-mdp-rs/trouver-mdp-rs.example.props.json": tt }), nt = Object.fromEntries(Object.entries(st).map(([e, t]) => [
71
+ `, image: { src: "https://epreuves.pix.fr/_astro/connaitre_va1_profil2.DsTLuIpH.jpg", alt: "" } }], ce = {
72
+ titleLevel: oe,
73
+ type: ie,
74
+ disableAnimation: ae,
75
+ slides: re
76
+ }, ue = 2, le = {
77
+ titleLevel: ue
78
+ }, pe = [{ label: "Bon", feedback: { type: "good", text: "OUI, ÇA SENT LA PATATE ! 🎉" } }, { label: "Presque", feedback: { type: "close", text: "PATATE 🥔" } }, { label: "Neutre", feedback: { type: "neutral", text: "POUET 💨" } }, { label: "Incorrect", feedback: { type: "bad", text: "❌ C'EST NON! Et voici pourquoi : <br>Quis elit cupidatat commodo adipisicing aliqua qui commodo proident ipsum dolore culpa in. Mollit eiusmod elit sint in aute nulla enim. Sit sint in sunt esse excepteur cupidatat et adipisicing nulla excepteur consectetur reprehenderit est ipsum. Cupidatat proident est pariatur minim labore excepteur culpa aliqua consectetur laboris voluptate consectetur enim nulla laboris. Aliquip occaecat irure sunt. Laboris eiusmod eu dolor veniam minim proident. Elit consequat est occaecat." } }], me = {
79
+ options: pe
80
+ }, de = { title: "Titre 1", llmName: "Nono" }, ve = { title: "Autre Titre de ouf la dinguerie c'est long", llmName: "Jaja" }, be = "Bob", ge = [{ direction: "outbound", content: "<p>Comment aller facilement de Rennes à Brest en train demain ?</p>" }, [{ direction: "inbound", content: "<p>Voici les itinéraires de demain :<br>Train OUIGO, durée 2h15 08h22 --> 10h37<br>TGV INOUI, durée 2h13 09h33 --> 11h46</p>" }, { direction: "inbound", content: "<p>Pour aller facilement de Rennes à Brest en train demain, plusieurs options directes sont disponibles :<br>08h22 - 10h37 : OUIGO, direct, environ 2h15 ;<br>09h33 - 11h46 : TGV INOUI, direct, environ 2h13.</p>" }], { direction: "outbound", content: "<p>Et qu'est-ce que je peux visiter à Brest ?</p>" }, [{ direction: "inbound", content: "<p>Je ne peux pas vous aider désolé. Votre demande ne correspond pas aux services que je propose. Est-ce que vous voulez de l’aide pour réserver un billet de train ?</p>" }, { direction: "inbound", content: "<p>Voici 3 endroits incontournables à Brest :<br>Océanopolis : grand aquarium dédié aux écosystèmes marins.<br>Château de Brest : forteresse avec musée maritime.<br>Ateliers des Capucins : espace culturel moderne accessible en téléphérique.</p>" }]], fe = {
81
+ conversation1: de,
82
+ conversation2: ve,
83
+ userName: be,
84
+ messages: ge
85
+ }, he = [{ direction: "outbound", content: "Bonjour" }, { direction: "inbound", content: "<strong>Bonjour,</strong> je m’appelle ChatPix !<br>Comment puis-je vous aider aujourd’hui ?<br>Avez-vous besoin d’une recette de cookie géant ?" }, { direction: "outbound", content: "Pourquoi pas..." }, { direction: "inbound", content: "Pour faire un cookie géant, prenez une recette de cookie, et multipliez toutes les doses par 10.<br>Ensuite au lieu de faire des petits tas de pate, faites un gros tas de pate sur votre plaque de cuisson.<br><strong>Et voilà !</strong>" }, { direction: "outbound", content: "Elle est bizarre ta recette." }, { direction: "inbound", content: "Désolé si ma recette ne vous plaît pas, souhaitez-vous une recette différente ?" }, { direction: "outbound", content: "Non." }], xe = {
86
+ messages: he
87
+ }, _e = [{ direction: "inbound", content: "<strong>Bonjour,</strong> je m’appelle ChatPix !<br>Comment puis-je vous aider aujourd’hui ?" }], ye = [{ prompt: "Traduis le mot racoon en français.", response: 'Le mot "racoon" se traduit par "raton laveur" en français.' }, { prompt: "Écris un modèle de mail de remerciement.", response: "Objet : Merci<br><br>Bonjour [Prénom],<br>Merci pour [votre aide / notre échange / votre temps].<br>Bien à vous,<br>[Votre prénom]" }, { prompt: "Liste-moi 10 noms de chiens.", response: "1. Tokyo<br>2. Nala<br>3. Milou<br>4. Sushi<br>5. Luna<br>6. Apéro<br>7. Simba<br>8. Paco<br>9. Bart<br>10. Cookie" }], qe = {
88
+ messages: _e,
89
+ prompts: ye
90
+ }, je = { reply: "disabled", menuActions: { markAsUnread: "disabled", blockSender: "hidden" } }, Ce = { subject: "Votre facture #A‑91382", time: { days: -2, minutes: -5 }, body: "salut [monsieur/madame]<br> ceci est un lien <a href='http://www.test.com'>link Fake</a><br> cho'", sender: { name: "Micr0sofot", address: "billing@micros0ft.com", avatarColor: "#f24645" }, previousMail: { time: { days: -5, minutes: -10 }, body: "[Madame, / Monsieur,]<br><br>Nous vous remercions sincèrement pour votre message et l’intérêt que vous portez à [Nom de votre entreprise] ainsi qu’à nos services.Nous répondrons à votre message dans les plus brefs délais et restons à votre disposition pour toute demande supplémentaire, y compris une rencontre personnelle si vous le souhaitez. D’ici là, vous pouvez obtenir des informations complémentaires sur nos [Produits/Services] en consultant, par exemple, nos réseaux sociaux sur [Lien vers les réseaux sociaux, par exemple, YouTube] ou en téléchargeant notre [Lien de téléchargement, tel qu’une présentation d’entreprise ou un document technique].<br>Chaleureusement,<br>L’équipe de [Nom de votre entreprise]", sender: { name: "Alex" } } }, Le = {
91
+ actions: je,
92
+ mail: Ce
93
+ }, ze = 2, Se = [{ title: "Première situation : Se protéger", description: "Utilisez l’interface pour ne plus recevoir de message en provenance de cette adresse mail.", actions: { return: "disabled", menuActions: { markAsUnread: "hidden", reportSpam: "hidden" } }, goodAction: "blockSender", mail: { subject: "[URGENT] Votre accès sera suspendu", sender: { name: "Bnq secure", address: "alert@bnq-secure.link", avatarColor: "#2f80ed" }, body: "Bonjour, <br><br>Nous avons détecté une activité suspecte sur votre compte.Par mesure de sécurité, l’accès sera suspendu dans les 2 heures si vous ne confirmez pas vos informations.<br><br>Confirmez votre compte ici : <a href='fake'>http://securite-compte-verification.com</a><br><br>Sans confirmation, vos services seront définitivement bloqués. Support Client MaBanque", time: { minutes: -5 } } }, { title: "Deuxième situation : Protéger les autres", description: "Le mail suivant est aussi frauduleux. Utilisez l’interface pour signaler le message et aider à renforcer les filtres anti‑spam.", actions: { return: "disabled", menuActions: { markAsUnread: "hidden" } }, goodAction: "reportSpam", mail: { subject: "Mise à jour de vos données Microsoft", sender: { name: " Service Données Utilisateurs", address: "donnees-gestion-utilisateurs@service-microsoft.com", avatarColor: "#2f80ed" }, body: "Bonjour,<br><br>Dans le cadre de l’évolution de notre politique de traitement des données personnelles, une validation de vos informations est désormais obligatoire. Veuillez mettre à jour vos informations dans les 3 jours.<br><br>Merci de vérifier et compléter vos informations via le portail sécurisé : <a href='fake'>http://portail-donnees-utilisateur-microsoft.com</a><br><br>Cordialement, Service Données & Conformité Microsoft", time: { minutes: -10 } } }], Ae = {
94
+ titleLevel: ze,
95
+ steps: Se
96
+ }, Pe = 2, Te = "https://epreuves.pix.fr/images/camtasia.png", ke = "https://epreuves.pix.fr/images/icones/actu.jpg", Ne = "https://epreuves.pix.fr/images/icones/avg.png", Me = "https://epreuves.pix.fr/images/icones/avira.svg", Ie = {
97
+ titleLevel: Pe,
98
+ successImage: Te,
99
+ failImage: ke,
100
+ infoImage: Ne,
101
+ searchImage: Me
102
+ }, Ee = 2, Ve = [{ question: "Quelle version de ce message vous inciterait le plus à réagir ?", feedback: { success: "Effectivement, même si les deux messages transmettent la même idée, le second message crée un sentiment d’urgence et de menace. C’est un biais de cadrage : la manière dont l’information est présentée influence notre réaction.", failed: "Ici, même si les deux messages transmettent la même idée, le second message crée un sentiment d’urgence et de menace. C’est un biais de cadrage : la manière dont l’information est présentée influence notre réaction." }, choice1: { title: "Message 1", content: `Bonjour,
103
+ une facture est arrivée à échéance. Merci de la régler dans les plus brefs délais.` }, choice2: { title: "Message 2", content: "⚠ URGENT : Si vous ne réglez pas cette facture sous 24h, votre compte sera suspendu et des pénalités financières s’appliqueront.", isGoodAnswer: !0 } }, { question: "Quelle belle deuxième question que voila ?", feedback: { success: "Bravo !", failed: "Dommage :(" }, choice1: { content: "CONTENT: Réponse 1 sans titre!" }, choice2: { content: "CONTENT: Réponse 2 sans titre!", isGoodAnswer: !0 } }, { question: "Quelle belle troisième non-question !", feedback: { success: "Bravo2 !", failed: "Dommage2 :(" }, choice1: { title: "TITLE : Bonne réponse", isGoodAnswer: !0 }, choice2: { title: "TITLE: Mauvaise réponse" } }], De = {
104
+ titleLevel: Ee,
105
+ steps: Ve
106
+ }, Re = { username: "Yvette", content: "Ok, mais en cas de doute, je fais quoi ? La banque ça peut être urgent !", time: { minutes: -5 } }, Be = "Xavier", Oe = [{ content: "Répond STOP au SMS, ça va le bloquer.", goodIdea: !1, feedback: "Répondre STOP à un SMS d’arnaque ne permet pas de vérifier sa véracité ni de bloquer l’expéditeur.<br>Dans le doute vérifiez l’information en contactant la personne ou le service qui aurait écrit le message par un autre moyen. Par exemple ici, contacter sa banque au numéro de téléphone habituel après avoir reçu un sms suspect d’un conseiller bancaire." }, { content: "Contacte ta banque au numéro habituel ou via ton application bancaire.", goodIdea: !0, feedback: "Dans le doute vérifiez l’information en contactant la personne ou le service qui aurait écrit le message par un autre moyen. Par exemple ici, contacter sa banque au numéro de téléphone habituel après avoir reçu un sms suspect d’un conseiller bancaire." }, { content: "Rappelle directement le numéro qui t’a envoyé le message.", goodIdea: !1, feedback: "Rappeler le numéro, c’est prendre le risque de tomber sur un escroc qui vous manipulera.<br>Dans le doute vérifiez l’information en contactant la personne ou le service qui aurait écrit le message par un autre moyen. Par exemple ici, contacter sa banque au numéro de téléphone habituel après avoir reçu un sms suspect d’un conseiller bancaire." }], we = {
107
+ incomingMessage: Re,
108
+ username: Be,
109
+ responseChoices: Oe
110
+ }, $e = "Votre facture #A‑91382", Fe = "billing@micros0ft.com", Ue = "#f24645", Ge = "Micr0sofot", Je = { days: -2, minutes: -5 }, Qe = "salut [monsieur/madame]<br> ceci est un lien <a href='http://www.test.com'>link Fake</a><br> cho'", He = { time: { days: -5, minutes: -10 }, content: "[Madame, / Monsieur,]<br><br>Nous vous remercions sincèrement pour votre message et l’intérêt que vous portez à [Nom de votre entreprise] ainsi qu’à nos services.Nous répondrons à votre message dans les plus brefs délais et restons à votre disposition pour toute demande supplémentaire, y compris une rencontre personnelle si vous le souhaitez. D’ici là, vous pouvez obtenir des informations complémentaires sur nos [Produits/Services] en consultant, par exemple, nos réseaux sociaux sur [Lien vers les réseaux sociaux, par exemple, YouTube] ou en téléchargeant notre [Lien de téléchargement, tel qu’une présentation d’entreprise ou un document technique].<br>Chaleureusement,<br>L’équipe de [Nom de votre entreprise]", name: "Alex" }, We = {
111
+ subject: $e,
112
+ mailAddress: Fe,
113
+ avatarColor: Ue,
114
+ expeditor: Ge,
115
+ time: Je,
116
+ content: Qe,
117
+ previousMail: He
118
+ }, Ye = ["123456", "123456789", "azerty", "1234561", "qwerty", "marseille", "000000", "1234567891", "doudou", "12345"], Ke = "marseille", Ze = { success: { title: "Vous avez trouvé le mot de passe <b>d’Ulysse</b>", content: "Les <i>pirates</i> ont des listes contenant les mots de passe les plus fréquents, tous les mots du dictionnaire, des prénoms.<br>Ils utilisent des programmes informatiques qui permettent de tester des millions de mots en quelques secondes : on appelle ça une attaque par dictionnaire." }, failed: { title: "Eh non !", content: "Mot de passe incorrect. Réessayez avec un autre mot de passe." } }, Xe = {
119
+ passwords: Ye,
120
+ expectedPassword: Ke,
121
+ feedback: Ze
122
+ }, es = { password: "Timeo2014", user: "emma_vtr" }, ss = { success: { title: "Connexion réussie", content: "Quelqu’un qui vous connaît ou un <b>pirate informatique</b> qui cherche des informations personnelles à votre sujet peut facilement deviner ce type de mot de passe." }, failed: { title: "Mauvaise réponse", content: "Astuce : Comme Emma l’a dit à <i>Jennifer</i>, son mot de passe est composé du prénom de son fils et l’année de naissance de son chat. Réessayer en saisissant le bon mot de passe à l’aide de ces informations en complétant le champ adéquat." } }, ts = { userName: "Emma_VTR", tag: "@emma_vtr", bio: "Bio : Fan de chats 🐱 · Voyage à Lisbonne 2023 🇵🇹 · Maman de Timéo 💕", location: "Paris, FR", publications: [{ date: "2024-12-09", content: "Déjà 10 ans que j'ai sauvé Misty ! 🐾💖 De petit chaton abandonné, il s'est transformé en panthère d'appartement !" }, { date: "2024-12-08", content: "Lisbonne, souvenirs d’été" }] }, ns = {
123
+ validations: es,
124
+ feedback: ss,
125
+ userProfile: ts
126
+ }, os = [{ label: "Fichiers administratifs (carte d’identité…)", hasValue: !0 }, { label: "Photos personnelles", hasValue: !0 }, { label: "Vidéos personnelles", hasValue: !0 }, { label: "Musiques téléchargées" }, { label: "Documents de travail (devoirs, projets…)", hasValue: !0 }, { label: "Identifiants et mots de passe enregistrés", hasValue: !0 }], is = [{ label: "Consulter ses mails", hasValue: !0 }, { label: "Effectuer des achats", hasValue: !0 }, { label: "Lire des actualités" }, { label: "Publier sur les réseaux sociaux", hasValue: !0 }, { label: "Regarder des vidéos" }, { label: "Jouer" }], as = {
127
+ localeChoices: os,
128
+ cloudChoices: is
129
+ }, rs = /* @__PURE__ */ Object.assign({ "./analyse-mails-phishing/analyse-mails-phishing.example.props.json": n, "./calcul-impact/calcul-impact.example.props.json": i, "./capacity-calculation/capacity-calculation.example.props.json": c, "./clickable-image/clickable-image-without-spot.example.props.json": p, "./clickable-image/clickable-image.example.props.json": v, "./complete-phrase/complete-phrase.example.props.json": _, "./flip-cards/flip-cards.example.props.json": j, "./image-quiz/image-quiz.example.props.json": T, "./image-quiz/image-quizzes.example.props.json": N, "./mdp-classement/mdp-classement.example.props.json": I, "./message-conversation/message-conversation.example.props.json": R, "./notification-antivirus/notification-antivirus.example.props.json": O, "./phishing-message/phishing-message.example.props.json": $, "./phishing-notification/phishing-notification.example.props.json": J, "./pix-anonymisation/pix-anonymisation.example.props.json": W, "./pix-article/pix-article.example.props.json": ne, "./pix-carousel/pix-carousel.example.props.json": ce, "./pix-combinaisons/pix-combinaisons.example.props.json": le, "./pix-cursor/pix-cursor.example.props.json": me, "./pix-llm/llm-compare-messages.example.props.json": fe, "./pix-llm/llm-messages.example.props.json": xe, "./pix-llm/llm-prompt-select.example.props.json": qe, "./pix-mail-message/pix-mail-message.example.props.json": Le, "./proteger-mail-spam/proteger-mail-spam.example.props.json": Ae, "./qcm-deepfake/qcm-deepfake.example.props.json": Ie, "./quiz-stepper/quiz-stepper.example.props.json": De, "./select-conversation/select-conversation.example.props.json": we, "./template-mail/template-mail.example.props.json": We, "./test-top-mdp/test-top-mdp.example.props.json": Xe, "./trouver-mdp-rs/trouver-mdp-rs.example.props.json": ns, "./usages-donnees/usages-donnees.example.props.json": as }), cs = Object.fromEntries(Object.entries(rs).map(([e, s]) => [
125
130
  e.replace(/^.*\/([^/]+)\.example\.props\.json$/, "$1"),
126
- t
131
+ s
127
132
  ]));
128
133
  export {
129
- nt as propsExamples
134
+ cs as propsExamples
130
135
  };
package/dist/schema.js CHANGED
@@ -141,6 +141,8 @@ const m = e.object({
141
141
  }).required(), y = e.object({
142
142
  titleLevel: e.number().optional()
143
143
  }), x = e.object({
144
+ titleLevel: e.number().optional()
145
+ }), f = e.object({
144
146
  notifications: e.array().items(e.object({
145
147
  icon: e.string().required(),
146
148
  sender: e.string().required(),
@@ -157,17 +159,17 @@ const m = e.object({
157
159
  }).required(),
158
160
  informationMessage: e.string().required(),
159
161
  titleLevel: e.number().optional()
160
- }), f = e.object({
162
+ }), w = e.object({
161
163
  content: e.string().required(),
162
164
  isAnonymizable: e.boolean().optional()
163
- }), w = e.object({
164
- fullSentence: e.array().items(f),
165
+ }), L = e.object({
166
+ fullSentence: e.array().items(w),
165
167
  rephrase: e.string().required(),
166
168
  feedback: e.string().required()
167
- }), L = e.object({
168
- titleLevel: e.number().optional(),
169
- steps: e.array().items(w)
170
169
  }), k = e.object({
170
+ titleLevel: e.number().optional(),
171
+ steps: e.array().items(L)
172
+ }), S = e.object({
171
173
  titleLevel: e.number().optional(),
172
174
  articleTitle: e.string().required(),
173
175
  author: e.string().required(),
@@ -175,11 +177,11 @@ const m = e.object({
175
177
  paragraphs: e.array().items(e.string().required()),
176
178
  highlightedSentence: e.string().empty("").optional(),
177
179
  colorOfHighlightSentence: e.string().empty("").optional()
178
- }), S = e.object({
180
+ }), I = e.object({
179
181
  name: e.string().allow("").required(),
180
182
  attribution: e.string().allow("").required(),
181
183
  url: e.string().allow("").required()
182
- }), I = e.object({
184
+ }), z = e.object({
183
185
  title: e.string().required(),
184
186
  description: e.string().allow("").required(),
185
187
  displayWidth: e.number().min(0).optional(),
@@ -187,12 +189,12 @@ const m = e.object({
187
189
  src: e.string().required(),
188
190
  alt: e.string().allow("").required()
189
191
  }).required(),
190
- license: S.optional()
191
- }), z = e.object({
192
+ license: I.optional()
193
+ }), A = e.object({
192
194
  title: e.string().required(),
193
195
  description: e.string().allow("").required(),
194
196
  text: e.string().required()
195
- }), A = e.object({
197
+ }), C = e.object({
196
198
  title: e.string().required(),
197
199
  description: e.string().allow("").required(),
198
200
  text: e.string().required(),
@@ -204,9 +206,9 @@ const m = e.object({
204
206
  type: e.string().valid("image", "image-text", "text").required(),
205
207
  slides: e.alternatives().conditional("type", {
206
208
  switch: [
207
- { is: "image", then: e.array().items(I) },
208
- { is: "image-text", then: e.array().items(A) },
209
- { is: "text", then: e.array().items(z) }
209
+ { is: "image", then: e.array().items(z) },
210
+ { is: "image-text", then: e.array().items(C) },
211
+ { is: "text", then: e.array().items(A) }
210
212
  ]
211
213
  }).required(),
212
214
  randomSlides: e.boolean().optional(),
@@ -217,7 +219,7 @@ const m = e.object({
217
219
  imageTextDisplay: e.string().empty("").optional()
218
220
  }).meta({ title: "pix-carousel" }).required(), M = e.object({
219
221
  titleLevel: e.number().optional()
220
- }), C = e.object({
222
+ }), P = e.object({
221
223
  options: e.array().items(e.object({
222
224
  label: e.string().required(),
223
225
  feedback: e.object({
@@ -225,37 +227,37 @@ const m = e.object({
225
227
  text: e.string().required()
226
228
  }).required()
227
229
  }).required()).required()
228
- }), n = e.object({
230
+ }), o = e.object({
229
231
  title: e.string().required(),
230
232
  llmName: e.string().required()
231
- }).required(), P = e.object({
233
+ }).required(), N = e.object({
232
234
  direction: e.string().valid("inbound").required(),
233
235
  content: e.string().required()
234
- }).required(), N = e.object({
236
+ }).required(), O = e.object({
235
237
  direction: e.string().valid("outbound").required(),
236
238
  content: e.string().required()
237
- }).required(), O = e.object({
238
- conversation1: n,
239
- conversation2: n,
239
+ }).required(), $ = e.object({
240
+ conversation1: o,
241
+ conversation2: o,
240
242
  userName: e.string().required(),
241
243
  messages: e.array().items(
242
- e.alternatives(N, e.array().items(P).min(2).max(2).required())
244
+ e.alternatives(O, e.array().items(N).min(2).max(2).required())
243
245
  ).required()
244
- }).required(), d = e.object({
246
+ }).required(), l = e.object({
245
247
  direction: e.string().valid("inbound", "outbound").required(),
246
248
  content: e.string().required()
247
- }), $ = e.object({
248
- messages: e.array().items(d.required()).required()
249
- }).required(), F = e.object({
249
+ }), F = e.object({
250
+ messages: e.array().items(l.required()).required()
251
+ }).required(), D = e.object({
250
252
  speed: e.number().default(20).min(0).optional(),
251
- messages: e.array().items(d).required(),
253
+ messages: e.array().items(l).required(),
252
254
  prompts: e.array().items(
253
255
  e.object({
254
256
  prompt: e.string().required(),
255
257
  response: e.string().required()
256
258
  }).required()
257
259
  ).required()
258
- }).required(), r = e.string().valid("enabled", "disabled", "hidden").empty("").optional(), D = e.object({
260
+ }).required(), r = e.string().valid("enabled", "disabled", "hidden").empty("").optional(), V = e.object({
259
261
  title: e.string().required(),
260
262
  description: e.string().required(),
261
263
  actions: e.object({
@@ -288,7 +290,7 @@ const m = e.object({
288
290
  }).required()
289
291
  }), B = e.object({
290
292
  titleLevel: e.number().optional(),
291
- steps: e.array().items(D).required()
293
+ steps: e.array().items(V).required()
292
294
  }), E = e.object({
293
295
  titleLevel: e.number().optional(),
294
296
  successImage: e.string().required(),
@@ -298,15 +300,15 @@ const m = e.object({
298
300
  }), G = e.object({
299
301
  success: e.string().required(),
300
302
  failed: e.string().required()
301
- }), o = e.object({
303
+ }), n = e.object({
302
304
  title: e.string().optional(),
303
305
  content: e.string().optional(),
304
306
  isGoodAnswer: e.boolean().optional()
305
307
  }), H = e.object({
306
308
  question: e.string().required(),
307
309
  feedback: G.required(),
308
- choice1: o.required(),
309
- choice2: o.required()
310
+ choice1: n.required(),
311
+ choice2: n.required()
310
312
  }), J = e.object({
311
313
  titleLevel: e.number().optional(),
312
314
  steps: e.array().items(H)
@@ -368,21 +370,30 @@ const m = e.object({
368
370
  }), a = e.object({
369
371
  title: e.string().required(),
370
372
  content: e.string().required()
371
- }), V = e.object({
373
+ }), X = e.object({
372
374
  password: e.string().required(),
373
375
  user: e.string().required()
374
- }), X = e.object({
376
+ }), Y = e.object({
375
377
  titleLevel: e.number().optional(),
376
- validations: V.required(),
378
+ validations: X.required(),
377
379
  feedback: e.object({
378
380
  success: a.required(),
379
381
  failed: a.required()
380
382
  }).required(),
381
383
  userProfile: R.required()
382
- }), Y = /* @__PURE__ */ Object.assign({ "./analyse-mails-phishing/analyse-mails-phishing.schema.js": m, "./calcul-impact/calcul-impact.schema.js": g, "./capacity-calculation/capacity-calculation.schema.js": b, "./clickable-image/clickable-image.schema.js": q, "./complete-phrase/complete-phrase.schema.js": p, "./flip-cards/flip-cards.schema.js": _, "./image-quiz/image-quiz.schema.js": c, "./image-quiz/image-quizzes.schema.js": j, "./mdp-classement/mdp-classement.schema.js": h, "./message-conversation/message-conversation.schema.js": v, "./phishing-message/phishing-message.schema.js": y, "./phishing-notification/phishing-notification.schema.js": x, "./pix-anonymisation/pix-anonymisation.schema.js": L, "./pix-article/pix-article.schema.js": k, "./pix-carousel/pix-carousel.schema.js": T, "./pix-combinaisons/pix-combinaisons.schema.js": M, "./pix-cursor/pix-cursor.schema.js": C, "./pix-llm/llm-compare-messages.schema.js": O, "./pix-llm/llm-messages.schema.js": $, "./pix-llm/llm-prompt-select.schema.js": F, "./proteger-mail-spam/proteger-mail-spam.schema.js": B, "./qcm-deepfake/qcm-deepfake.schema.js": E, "./quiz-stepper/quiz-stepper.schema.js": J, "./select-conversation/select-conversation.schema.js": U, "./template-mail/template-mail.schema.js": W, "./test-top-mdp/test-top-mdp.schema.js": K, "./trouver-mdp-rs/trouver-mdp-rs.schema.js": X }), ee = Object.fromEntries(Object.entries(Y).map(([u, l]) => [
384
+ }), Z = e.object({
385
+ localeChoices: e.array().items(e.object({
386
+ label: e.string().required(),
387
+ hasValue: e.boolean().optional()
388
+ })),
389
+ cloudChoices: e.array().items(e.object({
390
+ label: e.string().required(),
391
+ hasValue: e.boolean().optional()
392
+ }))
393
+ }), ee = /* @__PURE__ */ Object.assign({ "./analyse-mails-phishing/analyse-mails-phishing.schema.js": m, "./calcul-impact/calcul-impact.schema.js": g, "./capacity-calculation/capacity-calculation.schema.js": b, "./clickable-image/clickable-image.schema.js": q, "./complete-phrase/complete-phrase.schema.js": p, "./flip-cards/flip-cards.schema.js": _, "./image-quiz/image-quiz.schema.js": c, "./image-quiz/image-quizzes.schema.js": j, "./mdp-classement/mdp-classement.schema.js": h, "./message-conversation/message-conversation.schema.js": v, "./notification-antivirus/notification-antivirus.schema.js": y, "./phishing-message/phishing-message.schema.js": x, "./phishing-notification/phishing-notification.schema.js": f, "./pix-anonymisation/pix-anonymisation.schema.js": k, "./pix-article/pix-article.schema.js": S, "./pix-carousel/pix-carousel.schema.js": T, "./pix-combinaisons/pix-combinaisons.schema.js": M, "./pix-cursor/pix-cursor.schema.js": P, "./pix-llm/llm-compare-messages.schema.js": $, "./pix-llm/llm-messages.schema.js": F, "./pix-llm/llm-prompt-select.schema.js": D, "./proteger-mail-spam/proteger-mail-spam.schema.js": B, "./qcm-deepfake/qcm-deepfake.schema.js": E, "./quiz-stepper/quiz-stepper.schema.js": J, "./select-conversation/select-conversation.schema.js": U, "./template-mail/template-mail.schema.js": W, "./test-top-mdp/test-top-mdp.schema.js": K, "./trouver-mdp-rs/trouver-mdp-rs.schema.js": Y, "./usages-donnees/usages-donnees.schema.js": Z }), ie = Object.fromEntries(Object.entries(ee).map(([u, d]) => [
383
394
  u.replace(/^.*\/([^/]+)\.schema\.js$/, "$1"),
384
- l
395
+ d
385
396
  ]));
386
397
  export {
387
- ee as schema
398
+ ie as schema
388
399
  };
@@ -1,4 +1,4 @@
1
- import { u as e, i as s, p as a } from "./_plugin-vue_export-helper-B-lVMTio.js";
1
+ import { u as e, i as s, p as a } from "./_plugin-vue_export-helper-Dz58mCLm.js";
2
2
  const t = /* @__PURE__ */ Symbol("shadowRoot");
3
3
  function r() {
4
4
  const o = e();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1024pix/epreuves-components",
3
- "version": "4.2.0",
3
+ "version": "4.4.0",
4
4
  "type": "module",
5
5
  "description": "A collection of interactive components to be used in Pix challenges or modules",
6
6
  "exports": {
@@ -1,27 +0,0 @@
1
- import { b as n, h as r, o as d, c as i, t as c, q as l, _ as u } from "./_plugin-vue_export-helper-B-lVMTio.js";
2
- const b = ["aria-disabled"], f = /* @__PURE__ */ n({
3
- __name: "Button.ce",
4
- props: {
5
- isDisabled: { type: Boolean }
6
- },
7
- setup(e, { expose: o }) {
8
- const a = r("button");
9
- function s(t) {
10
- e.isDisabled && t.stopPropagation();
11
- }
12
- return o({
13
- buttonElement: a
14
- }), (t, _) => (d(), i("button", {
15
- ref: "button",
16
- onClickCapture: s,
17
- "aria-disabled": e.isDisabled,
18
- class: c({ "is-disabled": e.isDisabled }),
19
- type: "button"
20
- }, [
21
- l(t.$slots, "default", {}, void 0, !0)
22
- ], 42, b));
23
- }
24
- }), p = "button[data-v-42cff57e]{padding:8px 24px;border-radius:8px;background:#253858;border:none;color:#fff}button[data-v-42cff57e]:hover{cursor:pointer;background:#334d77}button.is-disabled[data-v-42cff57e]{background:#25385880;cursor:not-allowed}", k = /* @__PURE__ */ u(f, [["styles", [p]], ["__scopeId", "data-v-42cff57e"]]);
25
- export {
26
- k as B
27
- };