{# # ============================================================================ # PAGE: CASTIA — STUDIO PODCAST # ============================================================================ # # Layout : header sticky · galerie · drawer droit. # # ============================================================================ # COMPOSITION # ============================================================================ # # - _atoms/icon/icon.html.twig # - _atoms/button/button.html.twig # - _atoms/spinner/spinner.html.twig # - _molecules/mini-stat/mini-stat.html.twig # - _molecules/pagination/pagination.html.twig # - castia/_podcast_card.html.twig # # ============================================================================ # DONNÉES REQUISES (CastiaController::index) # ============================================================================ # # | Variable | Type | Description | # |-------------------|--------|------------------------------------| # | tokenStats | array | {remaining, energyConsumptionWh} | # | voices | array | Liste des voix disponibles | # | favoriteVoices | array | Clés des voix favorites | # | defaultVoice | string | Clé de la voix par défaut | # | recommendedVoices | array | Clés des voix recommandées | # | medianTokenCost | int | Coût médian | # | podcasts | array | Collection de CastiaPodcast | # | totalItems | int | Nombre total de podcasts | # | pagination | array | {current, total, totalItems, perPage} | # # ============================================================================ #} {% extends 'base.html.twig' %} {% block title %}Castia — Studio Podcast{% endblock %} {% block main_class %}p-0 bg-[#F5F5F5]{% endblock %} {% block body %} {% set ctColor = tool_color_details['castia'] %} {% set defaultVoiceData = voices[defaultVoice] ?? voices|first %} {% set currentPlanSlug = app.user.company ? 'b2b' : (app.user.plan ? app.user.plan.slug : 'freemium') %} {% set createTooltipHtml %}{% include '_molecules/upgrade-tooltip/upgrade-tooltip.html.twig' with { minTokens: castiaMinTokens, currentPlanSlug: currentPlanSlug, upgradeUrl: path('app_upgrade') } only %}{% endset %}
Transformez un texte ou un script en podcast audio professionnel avec Castia.
{#- Plus d'infobulle « Passer en Pro » ici : ce bouton n'ouvre que le panneau, il ne génère rien. La barrière de tokens vit sur le bouton « Générer », au pied du panneau — c'est là qu'elle s'applique vraiment, et là qu'elle se comprend. -#} {% include '_atoms/button/button.html.twig' with { label: 'Créer mon premier audio', size: 'lg', icon: 'plus', gradientFrom: ctColor.primary, gradientTo: ctColor.secondary, attr: { 'data-action': 'click->castia--generator#openDrawer', 'data-tour-step': 'castia-ouvrir' } } only %}sera supprimé définitivement.
{% endblock %} {% endembed %} {# ══════════════════════════════════════════ MODAL — RENOMMER L'AUDIO ══════════════════════════════════════════ #} {% embed '_organisms/rename-modal/rename-modal.html.twig' with { title: "Renommer l'audio", subtitle: 'Donnez un titre plus parlant à votre audio.', placeholder: "Titre de l'audio...", color: ctColor, modalAttr: {'data-castia--generator-target': 'renameModal'}, inputAttr: { 'data-castia--generator-target': 'renameInput', 'data-action': 'keydown->castia--generator#renameKeydown', 'maxlength': '255' }, cancelAttr: {'data-action': 'click->castia--generator#closeRenameModal'}, confirmAttr: {'data-action': 'click->castia--generator#saveRename'} } only %} {% block hiddenInputs %} {% endblock %} {% endembed %}