Skip to content

Commit

Permalink
Merge pull request #947 from dnum-mi/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
laruiss authored Sep 15, 2024
2 parents 6777e57 + 4af58b6 commit 38a9512
Show file tree
Hide file tree
Showing 24 changed files with 706 additions and 116 deletions.
174 changes: 110 additions & 64 deletions .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,12 @@ const composants = [
{
text: 'DsfrAccordion',
link: '/composants/DsfrAccordion.md',
},
{
text: 'DsfrAccordionsGroup',
link: '/composants/DsfrAccordionsGroup.md',
items: [
{
text: 'DsfrAccordionsGroup',
link: '/composants/DsfrAccordionsGroup.md',
},
],
},
{
text: 'DsfrAlert',
Expand All @@ -122,10 +124,12 @@ const composants = [
{
text: 'DsfrButton',
link: '/composants/DsfrButton.md',
},
{
text: 'DsfrButtonGroup',
link: '/composants/DsfrButtonGroup.md',
items: [
{
text: 'DsfrButtonGroup',
link: '/composants/DsfrButtonGroup.md',
},
],
},
{
text: 'DsfrCallout',
Expand All @@ -138,10 +142,12 @@ const composants = [
{
text: 'DsfrCheckbox',
link: '/composants/DsfrCheckbox.md',
},
{
text: 'DsfrCheckboxSet',
link: '/composants/DsfrCheckboxSet.md',
items: [
{
text: 'DsfrCheckboxSet',
link: '/composants/DsfrCheckboxSet.md',
},
],
},
{
text: 'DsfrConsent',
Expand Down Expand Up @@ -170,34 +176,38 @@ const composants = [
{
text: 'DsfrFooter',
link: '/composants/DsfrFooter.md',
},
{
text: 'DsfrFooterLinkList',
link: '/composants/DsfrFooterLinkList.md',
},
{
text: 'DsfrFooterLink',
link: '/composants/DsfrFooterLink.md',
},
{
text: 'DsfrFooterPartners',
link: '/composants/DsfrFooterPartners.md',
},
{
text: 'DsfrFranceConnect',
link: '/composants/DsfrFranceConnect.md',
items: [
{
text: 'DsfrFooterLinkList',
link: '/composants/DsfrFooterLinkList.md',
},
{
text: 'DsfrFooterLink',
link: '/composants/DsfrFooterLink.md',
},
{
text: 'DsfrFooterPartners',
link: '/composants/DsfrFooterPartners.md',
},
{
text: 'DsfrFranceConnect',
link: '/composants/DsfrFranceConnect.md',
},
],
},
{
text: 'DsfrHeader',
link: '/composants/DsfrHeader.md',
},
{
text: 'DsfrHeaderMenuLink',
link: '/composants/DsfrHeaderMenuLink.md',
},
{
text: 'DsfrHeaderMenuLinks',
link: '/composants/DsfrHeaderMenuLinks.md',
items: [
{
text: 'DsfrHeaderMenuLink',
link: '/composants/DsfrHeaderMenuLink.md',
},
{
text: 'DsfrHeaderMenuLinks',
link: '/composants/DsfrHeaderMenuLinks.md',
},
],
},
{
text: 'DsfrHighlight',
Expand All @@ -206,10 +216,12 @@ const composants = [
{
text: 'DsfrInput',
link: '/composants/DsfrInput.md',
},
{
text: 'DsfrInputGroup',
link: '/composants/DsfrInputGroup.md',
items: [
{
text: 'DsfrInputGroup',
link: '/composants/DsfrInputGroup.md',
},
],
},
{
text: 'DsfrLanguageSelector',
Expand All @@ -224,12 +236,18 @@ const composants = [
link: '/composants/DsfrNotice.md',
},
{
text: 'DsfrRadioButton',
link: '/composants/DsfrRadioButton.md',
text: 'DsfrPicture',
link: '/composants/DsfrPicture.md',
},
{
text: 'DsfrRadioButtonSet',
link: '/composants/DsfrRadioButtonSet.md',
text: 'DsfrRadioButton',
link: '/composants/DsfrRadioButton.md',
items: [
{
text: 'DsfrRadioButtonSet',
link: '/composants/DsfrRadioButtonSet.md',
},
],
},
{
text: 'DsfrRange',
Expand All @@ -242,10 +260,12 @@ const composants = [
{
text: 'DsfrSegmented',
link: '/composants/DsfrSegmented.md',
},
{
text: 'DsfrSegmentedSet',
link: '/composants/DsfrSegmentedSet.md',
items: [
{
text: 'DsfrSegmentedSet',
link: '/composants/DsfrSegmentedSet.md',
},
],
},
{
text: 'DsfrSelect',
Expand All @@ -254,26 +274,38 @@ const composants = [
{
text: 'DsfrTable',
link: '/composants/DsfrTable.md',
},
{
text: 'DsfrTableHeader',
link: '/composants/DsfrTableHeader.md',
},
{
text: 'DsfrTableHeaders',
link: '/composants/DsfrTableHeaders.md',
},
{
text: 'DsfrTableRow',
link: '/composants/DsfrTableRow.md',
},
{
text: 'DsfrTableCell',
link: '/composants/DsfrTableCell.md',
items: [
{
text: 'DsfrTableHeader',
link: '/composants/DsfrTableHeader.md',
},
{
text: 'DsfrTableHeaders',
link: '/composants/DsfrTableHeaders.md',
},
{
text: 'DsfrTableRow',
link: '/composants/DsfrTableRow.md',
},
{
text: 'DsfrTableCell',
link: '/composants/DsfrTableCell.md',
},
],
},
{
text: 'DsfrTabs',
link: '/composants/DsfrTabs.md',
items: [
{
text: 'DsfrTabItem',
link: '/composants/DsfrTabItem.md',
},
{
text: 'DsfrTabContent',
link: '/composants/DsfrTabContent.md',
},
],
},
{
text: 'DsfrTag',
Expand All @@ -282,6 +314,12 @@ const composants = [
{
text: 'DsfrTile',
link: '/composants/DsfrTile.md',
items: [
{
text: 'DsfrTiles',
link: '/composants/DsfrTiles.md',
},
],
},
{
text: 'DsfrToggleSwitch',
Expand All @@ -291,6 +329,14 @@ const composants = [
text: 'DsfrTooltip',
link: '/composants/DsfrTooltip.md',
},
{
text: 'DsfrTranscription',
link: '/composants/DsfrTranscription.md',
},
{
text: 'DsfrVideo',
link: '/composants/DsfrVideo.md',
},
{
text: 'VIcon',
link: '/composants/VIcon.md',
Expand Down
4 changes: 4 additions & 0 deletions .vitepress/theme/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,10 @@
justify-content: center;
}

.gap-2 {
gap: 0.5rem;
}

.gap-4 {
gap: 1rem;
}
Expand Down
64 changes: 64 additions & 0 deletions src/components/DsfrMedia/DsfrPicture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Image - `DsfrPicture`

Les contenus médias désignent vos contenus photos et vidéos. Lorsqu’ils sont intégrés à une page de contenu, il est recommandé de suivre les règles décrites ci-dessous.

🏅 La documentation sur les contenus médias sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/contenus-medias)

<VIcon name="vi-file-type-storybook" /> La story sur le contenu média image (picture) sur le storybook de [VueDsfr](https://storybook.vue-ds.fr/?path=/docs/composants-dsfrpicture--docs)

## 🌟 Introduction

Le composant `DsfrPicture` permet d'afficher une image de manière responsive, avec une légende optionnelle. Il est conçu pour être flexible, offrant des options pour personnaliser la taille, le ratio, et le contenu de l'image. Ce composant est idéal pour intégrer des images dans une interface utilisateur tout en garantissant leur adaptabilité et accessibilité.

Le `DsfrPicture` utilise une structure HTML sémantique avec `<figure>` et `<figcaption>` pour améliorer l'accessibilité. Il applique des classes CSS conditionnelles pour ajuster la taille et le ratio de l'image en fonction des props fournies. Le slot par défaut permet une personnalisation avancée du contenu de l'image.

## 📐 Structure

- `<DsfrPicture>` : Le composant principal.
- Affiche une image avec un ratio et une taille personnalisés.
- Inclut une légende sous l'image.
- Utilise un slot pour permettre l'insertion d'un contenu personnalisé, comme un SVG.

## 🛠️ Props

| Propriété | Type | Description | Valeur par défaut |
|-----------|-------------------------------------|-----------------------------------------------------------|-------------------|
| `alt` | `string` | Texte alternatif pour l'image, utilisé pour l'accessibilité. | `''` |
| `legend` | `string` | Légende à afficher sous l'image. | `''` |
| `size` | `'small' \| 'medium' \| 'large'` | Taille de l'image (petite, moyenne, ou grande). | `'medium'` |
| `src` | `string` | URL de l'image à afficher. | `obligatoire` |
| `title` | `string` | Titre de l'image, affiché au survol. | `''` |
| `ratio` | `string` | Ratio de l'image (par exemple, '16x9'). | `'16x9'` |

## 📡 Événements

Ce composant ne déclenche pas d'événements spécifiques.

## 🧩 Slots

- `default` : Slot pour insérer un contenu personnalisé (comme une image SVG). Si aucun contenu n'est fourni, l'image spécifiée par `src` est utilisée.

## 📝 Exemples

::: code-group

<Story data-title="Démo" min-h="400px">
<DsfrPictureDemo />
</Story>

<<< docs-demo/DsfrPictureDemo.vue [Code de la démo]

:::

## ⚙️ Code source du composant

::: code-group

<<< DsfrPicture.vue
<<< DsfrMedia.types.ts

:::

<script setup lang="ts">
import DsfrPictureDemo from './docs-demo/DsfrPictureDemo.vue'
</script>
64 changes: 64 additions & 0 deletions src/components/DsfrMedia/DsfrVideo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Video - `DsfrVideo`

Les contenus médias désignent vos contenus photos et vidéos. Lorsqu’ils sont intégrés à une page de contenu, il est recommandé de suivre les règles décrites ci-dessous.

🏅 La documentation sur les contenus médias sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/contenus-medias)

<VIcon name="vi-file-type-storybook" /> La story sur le contenus média video sur le storybook de [VueDsfr](https://storybook.vue-ds.fr/?path=/docs/composants-dsfrvideo--docs)

## 🌟 Introduction

Le composant `DsfrVideo` permet d'intégrer une vidéo responsive avec une légende et une transcription. Il s'agit d'une solution complète pour afficher des vidéos dans une interface utilisateur, tout en fournissant des fonctionnalités d'accessibilité telles que la transcription du contenu vidéo.

Le `DsfrVideo` utilise un élément `<iframe>` pour intégrer la vidéo de manière responsive. Il ajuste automatiquement la taille et le ratio de la vidéo en fonction des props fournies. Le composant inclut également un sous-composant `DsfrTranscription` pour afficher la transcription du contenu vidéo, améliorant ainsi l'accessibilité.

## 📐 Structure

- `<DsfrVideo>` : Le composant principal.
- Affiche une vidéo à partir d'une URL.
- Inclut une légende sous la vidéo.
- Intègre une transcription optionnelle via le composant `DsfrTranscription`.

## 🛠️ Props

| Propriété | Type | Description | Valeur par défaut |
|------------------------|----------|--------------------------------------------------------------------------|-------------------|
| `src` | `string` | URL de la vidéo à afficher. | `obligatoire` |
| `legend` | `string` | Légende à afficher sous la vidéo. | `''` |
| `size` | `'small' \| 'medium' \| 'large'` | Taille de la vidéo (petite, moyenne, ou grande). | `'medium'` |
| `transcriptionTitle` | `string` | Titre de la transcription (si disponible). | `''` |
| `transcriptionContent` | `string` | Contenu de la transcription (si disponible). | `''` |
| `ratio` | `string` | Ratio de la vidéo (par exemple, '16x9'). | `'16x9'` |

## 📡 Événements

Ce composant ne déclenche pas d'événements spécifiques.

## 🧩 Slots

Ce composant n'utilise pas de slots.

## 📝 Exemples

::: code-group

<Story data-title="Démo" min-h="400px">
<DsfrVideoDemo />
</Story>

<<< docs-demo/DsfrVideoDemo.vue [Code de la démo]

:::

## ⚙️ Code source du composant

::: code-group

<<< DsfrVideo.vue
<<< DsfrMedia.types.ts

:::

<script setup lang="ts">
import DsfrVideoDemo from './docs-demo/DsfrVideoDemo.vue'
</script>
Loading

0 comments on commit 38a9512

Please sign in to comment.