{# # PAGE: SLIDIA — ÉTAPE 1 : CHOIX DE LA MÉTHODE DE CRÉATION # # Rend l'organisme partagé `_organisms/choice-page` (premier consommateur en production) avec # trois cartes : importer un document, générer avec l'IA, rédiger manuellement. Les deux # premières mènent à l'écran de source dédié (`app_slidia_source`), puis aux paramètres ; la # troisième au choix du titre et du masque (`app_slidia_manual`), puis à l'éditeur, sans # jamais consommer de tokens. Même geste que `moodia/new.html.twig` et `scormia/new.html.twig`. # # DONNÉES REQUISES (SlidiaController::newPage()) : canCreate. `slidiaMinTokens` est aussi # transmis mais n'est pas lu ici : les pages de choix de Moodia et Scormia le reçoivent # de la même façon sans l'afficher. # # AUCUN JAVASCRIPT : les trois cartes ne sont que des liens (`href`), jamais une `action` # Stimulus — il n'y a rien à câbler ni à vérifier côté client. #} {% extends 'base.html.twig' %} {% block title %}Nouvelle présentation — Slidia{% endblock %} {% block meta_description %}Choisissez comment créer votre présentation Slidia : import de document, génération IA ou rédaction manuelle.{% endblock %} {% block og_title %}Nouvelle présentation — Slidia{% endblock %} {% block og_description %}Trois façons de créer votre présentation PowerPoint avec Slidia.{% endblock %} {% block twitter_title %}Nouvelle présentation — Slidia{% endblock %} {% block twitter_description %}Trois façons de créer votre présentation PowerPoint avec Slidia.{% endblock %} {% block body %} {% set sdColor = tool_color_details['slidia'] %} {% set sdRgb = sdColor.primary|hex_to_rgb %} {# Repli sur `false` et non sur `true` : c'est un verrou de tokens. Si un jour le contrôleur cesse de transmettre la variable, la page doit verrouiller, pas ouvrir en grand. #} {% set canCreate = canCreate ?? false %} {# Recoloration en ambre : `choice-page`/`choice-card` sont écrits sur les variables de thème, jamais sur une couleur en dur — on les surcharge donc sur CE conteneur racine. Motif repris de templates/slidia/index.html.twig et templates/slidia/configure.html.twig. Seule la carte « Importer un document » (color: 'primary') lit `--color-primary` : les deux autres (« Générer avec l'IA » en violet, « Rédiger manuellement » en vert) portent leur couleur sémantique propre, comme sur les pages équivalentes de Moodia et Scormia — cette surcharge ne doit donc jamais s'étendre à `--color-success`, sous peine de reteindre la carte « Rédiger manuellement » en ambre. #}
{% include '_organisms/choice-page/choice-page.html.twig' with { icon: 'bubul-slidia', color: sdColor, title: 'Comment voulez-vous commencer ?', subtitle: 'Trois façons de créer votre présentation. Vous pourrez tout modifier ensuite dans l\'éditeur.', class: 'max-w-7xl mx-auto px-4 sm:px-6 lg:px-8', choices: [ { title: 'Importer un document', description: 'Déposez votre PDF : Slidia en analyse le contenu et en tire automatiquement la structure de la présentation.', icon: 'document', color: 'primary', features: [ { text: 'Structure automatique des slides' }, { text: 'Reprise fidèle du contenu du document' }, { text: 'Choix du masque et du profil de génération' }, ], href: canCreate ? path('app_slidia_source', { method: 'pdf' }) : null, disabled: not canCreate, badge: canCreate ? null : 'Passer en Pro', badgeIcon: canCreate ? null : 'crown', badgeVariant: 'pro', badgeHref: canCreate ? null : path('app_upgrade'), }, { title: 'Générer avec l\'IA', description: 'Décrivez votre sujet en quelques mots et Slidia compose l\'intégralité de la présentation pour vous.', icon: 'magic-stick', color: 'violet', features: [ { text: 'Plan et contenu générés de zéro' }, { text: 'Idéal pour un nouveau sujet' }, { text: 'Choix du masque et du profil de génération' }, ], href: canCreate ? path('app_slidia_source', { method: 'prompt' }) : null, disabled: not canCreate, badge: canCreate ? null : 'Passer en Pro', badgeIcon: canCreate ? null : 'crown', badgeVariant: 'pro', badgeHref: canCreate ? null : path('app_upgrade'), }, { title: 'Rédiger manuellement', description: 'Construisez votre présentation vous-même, slide par slide, sans assistance IA.', icon: 'edit', color: 'success', features: [ { text: 'Contrôle total du contenu' }, { text: 'Structure entièrement personnalisée' }, { text: 'Sans consommation de tokens' }, ], href: path('app_slidia_manual'), }, ], backLabel: 'Retour à mes présentations', backHref: path('app_slidia'), } only %}
{% endblock %}