diff --git a/.vitepress/config.ts b/.vitepress/config.ts index a316713b..a8a36d1b 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -329,6 +329,10 @@ const composants = [ text: 'DsfrTooltip', link: '/composants/DsfrTooltip.md', }, + { + text: 'DsfrTranscription', + link: '/composants/DsfrTranscription.md', + }, { text: 'DsfrVideo', link: '/composants/DsfrVideo.md', diff --git a/src/components/DsfrTranscription/DsfrTranscription.md b/src/components/DsfrTranscription/DsfrTranscription.md new file mode 100644 index 00000000..d03cdd95 --- /dev/null +++ b/src/components/DsfrTranscription/DsfrTranscription.md @@ -0,0 +1,58 @@ +# Transcription - `DsfrTranscription` + +🏅 La documentation sur la transcription sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/transcription) + + La story sur la transcription sur le storybook de [VueDsfr](https://storybook.vue-ds.fr/?path=/docs/composants-dsfrtranscription--docs) + +## 🌟 Introduction + +Le composant `DsfrTranscription` est conçu pour afficher la transcription du contenu d'une vidéo. Il permet aux utilisateurs d'accéder facilement au texte de la vidéo, offrant ainsi une meilleure accessibilité. Le composant peut afficher la transcription dans une section extensible ou dans une fenêtre modale pour une lecture plus confortable. + +Le `DsfrTranscription` peut afficher la transcription dans une section extensible ou la charger dans une fenêtre modale grâce à l'utilisation du composant `DsfrModal` et du `Teleport` pour un rendu à l'extérieur de la hiérarchie DOM parent. + +## 📐 Structure + +- `` : Le composant principal. + - Contient un bouton pour afficher ou masquer la transcription. + - Affiche la transcription dans une section extensible ou une fenêtre modale. + +## 🛠️ Props + +| Propriété | Type | Description | Valeur par défaut | +|-----------|----------|------------------------------------------------------------|-------------------------------------| +| `id` | `string` | ID unique pour le composant, utilisé pour l'accessibilité. | `getRandomId('transcription')` | +| `title` | `string` | Titre de la transcription. | `'Titre de la vidéo'` | +| `content` | `string` | Contenu de la transcription. | `'Transcription du contenu de la vidéo'` | + +## 📡 Événements + +Ce composant ne déclenche pas d'événements spécifiques. + +## 🧩 Slots + +- `default` : Slot pour insérer du contenu personnalisé à la place de la transcription par défaut. + +## 📝 Exemples + +::: code-group + + + + + +<<< docs-demo/DsfrTranscriptionDemo.vue [Code de la démo] + +::: + +## ⚙️ Code source du composant + +::: code-group + +<<< DsfrTranscription.vue +<<< DsfrTranscription.types.ts + +::: + + diff --git a/src/components/DsfrTranscription/DsfrTranscription.vue b/src/components/DsfrTranscription/DsfrTranscription.vue index 248ce69f..4ef96b19 100644 --- a/src/components/DsfrTranscription/DsfrTranscription.vue +++ b/src/components/DsfrTranscription/DsfrTranscription.vue @@ -4,6 +4,8 @@ import { computed, ref, watch } from 'vue' import { useCollapsable } from '../../composables' import { getRandomId } from '../../utils/random-utils' +import DsfrModal from '../DsfrModal/DsfrModal.vue' + import type { DsfrTranscriptionProps } from './DsfrTranscription.types' export type { DsfrTranscriptionProps } diff --git a/src/components/DsfrTranscription/docs-demo/DsfrTranscriptionDemo.vue b/src/components/DsfrTranscription/docs-demo/DsfrTranscriptionDemo.vue new file mode 100644 index 00000000..1fcb732e --- /dev/null +++ b/src/components/DsfrTranscription/docs-demo/DsfrTranscriptionDemo.vue @@ -0,0 +1,13 @@ + + +