@edugouvfr/ngx-dsfr
Version:
NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).
821 lines (661 loc) • 73.8 kB
Markdown
# @edugouvfr/ngx-dsfr - Changelog
## 1.19.1 (2026-06-11)
- fix(doc): descriptions absentes des tableaux API Storybook (régression 1.19.0)
- fix(sidemenu): en mode `noAccordion` les catégories doivent être des liens et non des boutons
- fix(tabs): l'identifiant de l'onglet n'est pas généré en cas de chaine vide (régression 1.19.0)
- fix(table): l'identifiant de la table n'est pas généré en cas de chaine vide (régression 1.19.0)
- fix(table): correctif accessibilité, la description du composant ne prévient pas de l'absence de résultat
- fix(table): l'icône flêche indiquant l'état plié/déplié du groupe ne se met plus à jour après changement de page
## 1.19.0 (2026-06-02)
- break(chore): version minimale requise angular 20 (>= 20.3)
- chore: passage en `strictPropertyInitialization`
- chore(sidemenu): passage en stratégie `OnPush`
- feat(backtotop): ajout d'un `modeButton` pour utiliser un bouton à la place du lien
- feat(backtotop): possibilité de modifier l'identifiant cible `targetId`
- feat(card/title): nouvelle propriété `descriptionMarkup` permettant de placer la description dans une `<div>`
- feat(footer): ajout du slot `presentationTemplate` et de `presentationMarkup` pour personnaliser la présentation
- feat(footer): `partnerMainHeadingLevel` permet de configurer le niveau du titre de "Nos partenaires"
- feat(pagination): ajout de l'attribut `displayedNumbers` pour afficher la sélection de page sur 5 ou 7 numéros
- feat(pagination): ajout des attributs `showPrevAndNextButton` et `showPrevAndNextLabelLg`
- feat(sidemenu): ajout de `canDisplay` pour gérer dynamiquement l'affichage des items
- feat(sidemenu): ajout de `isVisible` sur `DsfrMenuItem`
- feat(sidemenu): possibilité d'utiliser le sidemenu sans éléments d'accordéon avec `noAccordion`
- feat(skiplinks): possibilité de spécifier l'identifiant du container `skipLinksId`
- feat(table): ajout de `selectionScope` sur `tableOptions` pour limiter la sélection globale à la page active
- fix(display): valeur par défaut positionnée sur `system` au lieu de `light`
- fix(header): le menu burger mobile est affiché même lorsque le menu est vide
- fix(link): correctif accessibilité, l'information `nouvelle fenêtre` est ajoutée en `sr-only`
- fix(notice): l'attribut `icon` ne fonctionne pas quand utilisé en même temps que `heading`
- fix(range): correctif accessibilité sur le mode double
- fix(select): le placeholder ne s'affiche pas sans au moins une option
- fix(table): correctif chevauchement colonnes en position fixe en mode `Grid`
- fix(table): suppression du rôle `gridcell` ajouté à tort sur les cellules en mode `Grid`
- fix(table): le message `emptyResultsMessage` ne prend pas toute la largeur en cas de lignes sélectionnables
- fix(table): `emptyResultsMessage` est affiché même en cas de loading
## 1.18.1 (2026-03-26)
- fix(button): attribut `aria-hidden` manquant
- fix(button): mauvais typage de l'attribut `tabIndex`
- fix(header): suppression de l'attribut non pertinent `aria-describedyby` sur le menu en-tête connecté
- fix(header): support manquant du type `DsfrLink` sur les liens de catégories du méga menu
- fix(input): support manquant de l'attribut `labelSrOnly` du bouton combo
- fix(table): style cliquable manquant sur les lignes dépliables de groupe (régression 1.18.0)
## 1.18.0 (2026-03-13)
- feat(chore): montée de version DSFR 1.14.4
- feat(footer): possibilité de rédéfinir le niveau de titre des catégories de la liste de liens de rebond
- feat(footer): ajout d'un slot `licenseTemplate` pour personnaliser la mention de licence
- feat(header): ajout des slots `serviceTitle` et `serviceTagline`
- feat(input): ajout de la propriété `ariaDescribedBy` pour permettre une description supplémentaire
- feat(pagination): permettre l'affichage du nombre de lignes par page et le total d'éléments comme le footer de la table
- feat(sidemenu): ajout d'un slot `labelItemTemplate` pour personnaliser l'affichage du label d'un item de menu
- feat(searchbar): ajout d’un input `delay` pour définir un délai avant l’émission de la recherche
- feat(searchbar): ajout des inputs `pattern` et `maxLength` pour renseigner les attributs HTML correspondants
- fix(chore): `artworkDirPath` est dorénavant optionnel dans la configuration
- fix(chore): mise à jour des bordures colorées des messages sévérité
- fix(password): correctif accessibilité sur les messages de validation/erreur
- fix(summary): erreur en cas de contenu dynamique du titre
- fix(table): utilisation incorrecte de aria-sort sur les boutons du heading
- fix(table): le passage en mode `selectable` n'est pas dynamique
- fix(table): l'attribut `aria-expanded` des lignes pliables des groupes est déplacé au niveau de la première cellule
- fix(tile): fallback sur la config globale pour artworkDirPath si non renseignée dans le composant
## 1.17.3 (2026-02-12)
- fix(select): le placeholder par défaut n'est jamais visible en cas de groupes d'options
- fix(table): navigation avec tabulation impossible sur les éléments repliables après pliage/dépliage
## 1.17.2 (2026-02-03)
- fix(download-group): `assessFile` n'est pas pris en compte
- fix(download-group): l'évènement `downloadSelect` n'est pas propagé
- fix(download-link/link): assainissement des URLs fournies par l’utilisateur
- fix(download-link/link): le lien désactivé envoie à tort l'évènement `linkSelect`
- fix(download-link): l'évènement `downloadSelect` n'est pas émis en mode `link` ou `routerLink`
- fix(select): la mise à jour avec l'input `value` n'est pas prise en compte
- fix(tooltip): conflit entre la directive et le composant `tooltip` utilisés au sein d’un même composant
## 1.17.1 (2026-01-21)
- doc(stepper): le nombre totale d'étapes doit être compris entre 2 et 8
- feat(stepper): possibilité de spécifier un niveau `p` pour le titre du `stepper`
- fix(table): style cliquable appliqué à tort sur les lignes de groupes non dépliables
- fix(select): le placeholder n'est pas sélectionné en reactive form lorsque la valeur est `undefined`
## 1.17.0 (2026-01-14)
- break(chore): version minimale requise angular 19 (>= 19.2)
- feat(card): ajout de la propriété `horizontalProportion`
- feat(consent/display): le niveau de titre peut être surchargé par `headingLevel`
- feat(content): ajout d'un slot `contentMediaTemplate`
- feat(header): ajout des événements `menuDisclose/menuConceal` notifiant l'ouverture/fermeture du menu en affichage mobile
- feat(header): ajout d'un slot `searchBarTemplate` permettrant de remplacer le composant barre de recherche par défaut
- feat(i18n): possibilité de surcharger les traductions par configuration
- feat(link): ajout des propriétés `ariaLabelledBy` et `ariaDescribedBy`
- feat(table): gestion de la navigation en role `grid` ou `treegrid`
- feat(table): possibilité de grouper des lignes et de les plier/déplier
- feat(table): ajout de la propriété `tableHeaderSticky`
- feat(table): ajout de `headerSelectedRowCountTemplate` pour personnaliser l'affichage du nombre de lignes sélectionnées
- feat(table): gestion de l'état indéterminé de la case à cocher de l'en-tête
- fix(card): correctif accessibilité, un `tag` ou un `badge` unique n'est plus dans une liste
- fix(card): prise en charge de la propriété `imageRatio` pour les SVG
- fix(consent/display/modal): correctif accessibilité, le niveau de titre par défaut est désormais `H2` au lieu de `H1`
- fix(content/modal): dépréciation de `size` au profit de `contentSize` et `modalSize`
- fix(fieldset): suppression de l'attribut `role='group'` (implicite sur l'élément fieldset)
- fix(range): dépréciation de l'attribut `error` au profit de `message` et `messageSeverity`
- fix(phone): formatage non appliqué lors d’une mise à jour programmatique de la valeur
- fix(phone): correction d’une erreur grammaticale dans le message de validation du format
- fix(select): ouverture de la liste d’options non annoncée sous NVDA+Firefox (placeholder désormais toujours visible)
- fix(searchbar): ajout d'un label par défaut `Rechercher` pour les lecteurs d'écrans
- fix(skiplinks): utilisation systématique de `ul/li` dans le cas d'un lien unique
- fix(table): surcharge possible du label du champ de recherche via searchLabel
- fix(table): nombre de lignes initial incorrect en cas de surcharge de `rowsPerPageOptions`
## 1.16.5 (2025-12-15)
- fix(form): les composants autre que `form-input` ne mettent pas à jour l'état `touched` au `blur`
## 1.15.5 (2025-12-15)
- fix(form): les composants autre que `form-input` ne mettent pas à jour l'état `touched` au `blur`
## 1.16.4 (2025-12-01)
- fix(header): correctif accessibilité, la balise `<nav>`ne doit pas être présente si aucun menu n'est défini
- fix(table): mauvais nombre de lignes sélectionnées en mode serveur après pagination
## 1.16.3 (2025-11-20)
- fix(button): l'attribut `aria-pressed` n'autorise pas la valeur `false`
- fix(link): `fr-link` ne peut pas être passé en tant que `customClass`
- fix(form-select): correctif accessibilité, suppression de `aria-hidden` sur l'option `disabled`
- fix(form-tel): mauvaise réinitialisation de l'erreur interne en cas de changement de valeur programmatique
- fix(searchbar): en cas de `triggerSearchOnEnter`, `searchSelect` ne doit être émis que lors du submit
- fix(searchbar): en cas de `triggerSearchOnEnter`, `searchChange` ne doit pas être émis lors de l’appui sur Entrée
- fix(usermenu): le `tools-menu` ne prend pas en compte la taille du footer et du header pour la taille des items
- fix(table): permet `thSticky` sans renseigner `fixedHeight`
## 1.16.2 (2025-10-27)
- fix(link): l'évènement `linkSelect` est émis en double (régression 1.16.0)
## 1.16.1 (2025-10-13)
- fix(address): incompatibilité entre `addressDetails` et le reste de l'adresse traditionnelle (code postal et commune)
- fix(email,tel): l'erreur interne de validation ne disparait pas au vidage de l'input, même en mode `required = false`
- fix(footer): `DsfrAccessibility` n'est plus exporté
- fix(footer): l'output `displayChange` du composant display n'est pas exposé
- fix(header): l'output `displayChange` et l'input `triggerSearchOnEnter` des composants internes ne sont pas exposés
- fix(header): la propriété `logo.tooltipMessage` n'est pas exploitée lorsque `logo.navigation` est valorisée
## 1.16.0 (2025-10-03)
- feat(chore): montée de version DSFR 1.14.2 (rétrogradage des versions minimales de node requises)
- feat(footer): ajout nouvelle propriété `DsfrLogo#customClass` permettant notamment de modifier la largeur du logo opérateur
- feat(form): il est possible de passer plusieurs messages de description avec l'input `hint`
- feat(form-password): support de l'attribut `aria-invalid`
- feat(header): dépréciation des inputs `logoLink`, `logoLabel`, `logoTooltipMessage`, `operatorImageAlt`,
- feat(input/fieldset): possibilité d'afficher plusieurs messages de même sévérité pour un même `input`/`fieldset`
- feat(search-bar): possibilité de soumettre la recherche à l'appui sur la touche Entrée
- feat(table): `displayedRows` et `selectedRows` permettent de récupérer les données affichées de la table
- feat(table): ajout de la méthode `forceRenderFixedColums` pour forcer un calcul des positions des colonnes fixées
- feat(tabnav): ajout du composant de navigation tertiaire `Tabnav`
- fix(footer): mise à jour du lien `service-public.fr` en `service-public.gouv.fr`(DSFR 1.14.2)
- fix(form-tel/form-email/date): l'erreur interne prend toujours la priorité sur tout autre message
- fix(input): attributs aria manquants sur l'input `textarea`
- fix(input/select/upload): suppression de la marge supérieure de l'élément de formulaire en cas de `labelSrOnly`
- fix(range): ajout de `aria-label` et possibilité de `aria-labelledBy` pour le curseur double
- fix(table): `fixedHeight` accepte une valeur en `string` avec une unité autre que px
- fix(table): le calcul des positions des en-têtes de colonnes fixées s'effectue désormais après le rendu des cellules
- fix(tag): amélioration des labels des tags supprimables et sélectionnables pour l'accessibilité
- fix(toggle): `labelPosition` est déprécié, pour l'accessibilité le label doit toujours être positionné à droite
- chore(storybook): généralisation de l'onglet "Code panel" sur les stories
## 1.15.4 (2025-09-30)
- fix(header): les évènements `linkSelect` ne sont pas propagés (régression 1.15.0)
- fix(header): en mobile les évènements de `DsfrToolLinkMenu` et `DsfrUserMenu` ne sont pas dupliqués
## 1.15.3 (2025-09-10)
- fix(header): les icônes des `toolsLinks` doivent être positionnées par défaut à gauche
- fix(header): la `customClass` n'est pas prise en compte sur les slots des `toolsLinks`
- fix(link): l'évènement `linkSelect` est désormais émis même en cas de `routerLink`
- fix(sidemenu): le menu n'est pas automatiquement déplié vers le lien actif au rechargement de la page
- fix(sidemenu): en mode mobile le menu ne se ferme pas lors d'une navigation en `routerLink`
## 1.15.2 (2025-08-28)
- fix(alert): traduction manquante du libellé par défaut pour le title du bouton de fermeture
- fix(name): dissociation des propriétés `addFirstName` et `nsoFirstName`
- fix(table): décalage d'affichage de la ligne de sélection et cellule fixe en cas de `thSticky`
- fix(table): l'évènement `paginationChange` n'est pas émis en cas de changement de taille de page
- fix(table): décalage d'un pixel dans certains cas sur l'affichage des colonnes fixées
- fix(usermenu): le menu ne se ferme pas au clic sur le texte du lien
- chore(storybook): ajout d'un sélecteur de langue dans la toolbar pour toutes les stories
## 1.15.1 (2025-07-29)
- fix(alert): prise en compte du niveau d'alerte `valid`
- fix(footer): `linkTarget` et `tooltipMessage` manquants sur le modèle `DsfrPartner`
- fix(input): l'évènement `blur` n'est pas propagé correctement
- fix(input): correctif accessibilité, `role` est déprécié au profit de `inputRole`
- fix(logo): l'interface `DsfrLogo` n'est pas exportée
- fix(password): ajout de `message`, `messageSeverity` et `required` pour harmonisation avec les autres champs
- fix(password): padding incorrect sur la checkbox "Afficher"
- fix(segmented-control): l'interface `DsfrSegmentedControl` n'est pas exportée
- fix(sidemenu): la `customClass` des links n'est pas appliquée
- fix(sidemenu): affichage incorrect entre un lien actif et son icône
- fix(tabs): `tabSelect` non émis en cas de sélection au clavier (flèches)
- fix(usermenu): mauvais alignement dans le header lors de l'absence d'autres liens d'accès rapides
## 1.15.0 (2025-07-16)
- break(chore): version minimale requise angular 18 (>= 18.2)
- feat(chore): montée de version DSFR 1.14.0 (version minimale de node >=22.14)
- feat(button): ajout de l'input `buttonRole` pour permettre l'ajout d'un rôle sur le bouton natif
- feat(button): ajout de l'input `labelSrOnly` pour disposer d'un libellé accessible en cas de bouton avec icone seule
- feat(button): ajout des inputs manquants d'accessibilité `aria-*` possibles sur un bouton
- feat(date): possibilité d'ajouter plusieurs messages de même sévérité au pattern `date`
- feat(fieldset): possibilité d'ajouter plusieurs messages de même sévérité à un `fieldset`
- feat(header): ajout du composant en-tête connecté (`DsfrUserMenu`) disponible jusqu'a présent côté extensions
- feat(header): ajout du composant `DsfrToolLinkMenu` disponible jusqu'a présent côté extensions
- feat(header): dépréciation du slot `headerTools` et `headerToolsMobile` au profit de `toolsLinksTemplate`
- feat(table): ajout des différents inputs de la `searchbar`
- feat(toggles-group): ajout d'un slot `legend` correspondant à la legend du `fieldset`
- feat(toggles-group): ajout des inputs `message` et `messageSeverity`
- fix(checkbox, select): ̀l'attribut `aria-describedby` est absent lors de l'affichage de message d'erreur ou validation
- fix(chore): dépréciation et remplacement des attributs `size` pour éviter les problèmes d'accessibilité
- fix(date): les attributs `message` et `messageSeverity` sont manquants
- fix(fieldset): application du style `regular` erronée dans certaines conditions
- fix(header): la propriété `searchInputInitialValue` est dépréciée au profit de `searchInputValue`
- fix(login): l'output `signSelect` n'est jamais émis
- fix(login): le label du champ `password` n'est pas affiché
- fix(modal): les boutons d'actions du template footer sont invisibles mais restent cliquables
- fix(search-bar): la propriété `initialValue` est dépréciée au profit de `value`
- fix(table): incompatibilité entre la sélection des lignes et `thSticky`
- fix(table): le select défini par `rowsPerPageOptions` ne peut pas être supprimé
- chore: disponibilité des composants en standalone
- chore: migration storybook 9
## 1.14.3 (2025-06-17)
- fix(buttons-group): l'état disabled n'empêche pas entièrement le clic sur le bouton correspondant
- fix(header): l'espacement des boutons outils est impacté en cas de présence d'un `buttons-group` dans la page
- fix(link): l'id n'est pas répercuté sur le lien en mode `button`
- fix(link): l'évènement `linkSelect` doit être émis dans tous les cas en mode `button`
- fix(link): suppression de l'espace inséré au début de `tooltipMessage` dans le cas d'un lien externe
- fix(link): la taille du lien n'est pas appliquée en mode `button`
- fix(modal): les inputs `icon`, `top` et `markup` proposés par le DSFR n'existent pas sur le composant
## 1.14.2 (2025-05-19)
- fix(date): calcul incorrect de la timezone actuelle
- fix(date): impossibilité de donner une date avec une année sur seulement un ou deux digits
- fix(date): la validation ne se rejoue pas sur la modification programmatique de la valeur
- fix(header): les `toolsLinks` en mobile ne sont pas mis à jour dynamiquement
- fix(header): désynchronisation des dropdown de menu suite à modification dynamique du menu
- fix(footer): les liens institutionnels devraient être restitués avec les attributs `target` et `rel`
- fix(form-email/form-tel): pouvoir passer le label en tant que slot
## 1.14.1 (2025-04-25)
- fix(date): le composant s'initialise en état d'erreur si l'input `error` est valorisé avec chaîne vide
- fix(table): incompatibilité entre `thSticky` et colonnes en `fixed`
## 1.14.0 (2025-04-18)
- feat: montée de version DSFR 1.13.1
- feat(callout): nouvelle propriété `descriptionMarkup` permettant de placer la description dans une `<div>`
- feat(date): ajout de l'input `legendRegular`
- feat(form): gestion unifiée des messages et sévérité de message sur les composants formulaires
- feat(links-group): création du composant groupe de liens `dsfr-links-group`
- feat(follow/share): ajout de l'icône Bluesky
- feat(form): ajout de l'attribut codePaneloptionnel `aria-invalid` pour la gestion des erreurs sur les champs de formulaire
- feat(modal): retour automatique au dernier élément focus à la fermeture de la modale
- feat(password): amélioration de l'accessibilité des messages de validation lors de la création de mot de passe
- feat(response): ajout de `imagePath` et `imageAlt`
- feat(table): ajout des fonctions `goToPage` et `sortTable` sur le service
- feat(table): amélioration de l'accessibilité du `label` des boutons de tri
- feat(table): possibilité d'avoir plusieurs colonnes consécutives en `fixed`, à droite ou à gauche (`fixedPosition`)
- feat(table): ajout de `fixedHeight` et de `thSticky`
- fix(button): suppression de la classe CSS `.fr-btn--icon` inutilisée
- fix(button): propriété `id` dépréciée au profit de `buttonId`
- fix(date): mauvaise gestion de l'offset dû à une mauvaise conversion d'horaire hiver/été
- fix(fieldset): propriété `id` dépréciée au profit de `fieldsetId`
- fix(header): placement du slot custom `headerTools` dans la balise `tools-links` du header
- fix(header): ajout de l'input searchLabel permettant de personnaliser le libellé accessible de la barre de recherche
- fix(modal): amélioration accessibilité lors de l'ouverture (attribut `controlMode` déprécié)
- fix(table): en mode template utiliser uniquement la colonne en paramètre de `[dsfrColumn]` et non celle de l'input `[columns]`
- fix(table): la propriété `labelSrOnly` n'est pas appliquée sur les labels de colonne
- fix(toggle-group): propriété `id` dépréciée au profit de `fieldsetId`
- fix(select): remplacement de l'attribut `hidden` par `display:none` sur la 1ère option désactivée (bug navigation clavier iOS/macOS)
- fix(share-link): propriété `id` dépréciée au profit de `linkId`
- doc: intégration JsDoc types et interfaces
## 1.13.6 (2025-04-09)
- fix(display): correctif accessibilité, les options ne sont pas navigables au clavier
- fix(side-menu): application des liens actifs avec `aria-current` incorrecte
## 1.13.5 (2025-04-04)
- fix(modal): outputs `disclose/conceal` émis à tort si un composant enfant émet les même types d'événements (dsfr)
## 1.13.4 (2025-03-19)
- fix(accordeon): `expandedChange` peut être émis de manière inappropriée
- fix(accordeon): fermeture inattendue d'un accordéon lors d'un usage conjoint avec des systèmes d'onglets
- fix(modal): positionnement du `z-index` (99999) désaligné avec le DSFR (1750)
- fix(modal): valeur par défaut des boutons d'actions initialisée à `submit` au lieu de `button`
- fix(select): suppression de l'attribut redondant `aria-selected` sur les options
- fix(table): le nombre d'éléments affichés est restreint à 10 maximum en l'absence de pagination (régression 1.13.3)
## 1.13.3 (2025-03-06)
- fix(accordeon): `expandedChange` est parfois désynchronisé des événements `conceal` et `disclose` du script DSFR
- fix(input): suppression du pattern ajouté en cas de type `number`
- fix(notice): suppression de styles impactant les balises de titre
- fix(table): le nombre total d'éléments n'est pas recalculé dynamiquement en l'absence de `pagination` ou `serverSide`
## 1.13.2 (2025-02-13)
- fix(chore): suppression dépendance obsolète `uuidv4`
- fix(breadcrumb): espaces indésirables sur le dernier élément (page courante)
- fix(date): la propriété `disabled` n'est pas transmise au fieldset
- fix(header): application de `active` sur l'item parent de menu déroulant en l'absence de `routerLink`
## 1.13.1 (2025-01-31)
- fix(badge): mauvaise prise en compte de `size` et `noIcon` en l'absence de `severity`
- fix(checkbox): visuel incohérent dans le cas d'une checkbox `disabled` à l'état `indeterminate`
- fix(date): ajout d'une précision sur le champ concerné pour l'erreur de valeur non numérique
- fix(date): support de l'attribut natif `readonly`
- fix(sidemenu): régression le menu ne s'ouvre plus en mode mobile
## 1.13.0 (2025-01-22)
- break(chore): version minimale requise angular 17
- feat(chore): montée de version DSFR 1.13.0
- feat(chore/translate): ajout du pipe `DsfrI18n` pour améliorer la gestion de la traduction
- feat(button): les buttons sont du type `button` par défaut
- feat(buttons-group): ajout de la propriété `groupMarkup` permettant de remplacer le conteneur `<ul>` par une `<div>`
- feat(card/tile): possibilité de transformer le markup du lien de download en `button`
- feat(checkbox/toggle): ajout de la propriété `labelSrOnly`
- feat(header/table): possibilité de donner une valeur initiale à l'input de recherche
- feat(header/table): exposition du `placeholder` de l'input de recherche, et du `title` du bouton associé
- feat(input/select): ajout du support de la sévérité `warning` pour les messages liés aux inputs
- feat(modal): ajout de l'input `concealingBackdrop` permettant de désactiver la fermeture au click sur le fond
- feat(modal): ajout du slot `modalFooterTemplate` permettant de fournir les boutons d'action via un template
- feat(radio-rich): les pictogrammes sont optionnels
- feat(table): ajout de `formatFunction` dans la définition des colonnes
- fix(alert): suppression de la balise `<p>` résiduelle si le titre n'est pas présent en version `small`
- fix(button): correction de la redondance de la restitution du button avec une liseuse d'écran et de sa documentation
- fix(consent): exposition de l'identifiant de la modale `modalId`
- fix(consent-banner): correction du style du lien
- fix(consent-manager): mise à jour d'une finalité selon l'état de ses sous-finalités
- fix(footer): permettre d'utiliser `DsfrNavigation` pour le lien du logo
- fix(header): suppression de l'attribut `aria-current` sur le lien du logo avec `routerLink`
- fix(pagination): retire `<button>` sur les points de suspension
- fix(select): gestion dynamique de l'existence de groupes
- fix(table): correction de l'attribut `aria-sort` sur le tri des colonnes
## 1.12.9 (2025-01-03)
- fix(download-group): attribut `assessFile` manquant sur l'interface `DsfrDownload`
- fix(sidemenu): le titre de rubrique est placé dans une balise `<p>` à la place de `<div>`
- fix(sidemenu): ajout de `aria-labelledby` pour référencer le titre depuis le menu si il est renseigné (accessibilité)
- fix(table): possibilité d'aligner les boutons d'actions du header à droite
- fix(table): mauvaise gestion de l'affichage de la valeur 'N/A' dans la table
## 1.12.8 (2024-12-13)
- fix(date pattern): prise en compte des dates avec une timezone négative
- fix(header): régression 1.12.7 pas de fermeture du méga-menu au clic sur les liens
- fix(header): correction du markup des liens sur les menus déroulants
- fix(tile): ajout des breakpoints MD/LG au mode horizontal des tuiles
- fix(tile): pouvoir customiser le pictogramme en mode téléchargement
## 1.12.7 (2024-12-10)
- fix(header): régression 1.12.6, désactiver la navigation sur les entrées de menu en cas de `routerLink`
- fix(header): correction du titre en bleu
- fix(form-input): l'attribut natif `readonly` n'est pas répercuté depuis le composant `form-input`
- fix(card/tag/tile): correction sur l'utilisation du composant lien en interne (propriété `label` dynamique)
- fix(sidemenu): correction de `routerLink` pour les entrées de menu actives
- fix(table): en mode serveur, la page courante reste à 0 après plusieurs requêtes si l'une ne donne pas de résultats
## 1.12.6 (2024-11-22)
- fix(follow): correction de l'accessibilité des liens `follow-link`
- fix(header): correction de `routerLink` pour les entrées de menu actives
- fix(tag-groups/toggle-group/button-group): l'insertion des li n'est pas gérée dynamiquement
- fix(tile): en version SM, correction des pictogrammes qui étaient tronqués
- fix(tile): éléments `<p>` résiduels si les éléments optionnels ne sont pas renseignés
## 1.12.5 (2024-11-08)
- fix(tile): régression sur la zone cliquable
## 1.12.4 (2024-10-30)
- fix(card): la propriété `routePath` n'est pas prise en compte pour le lien
- fix(card): élément `<div>` vide résiduel si tableau de tags|badges non null mais vide
- fix(download): réhabilitation du composant `download` pour représenter le lien de téléchargement
- fix(fieldset): correction de l'`aria-labelledby`
- fix(input): ne pas activer l'attribut spellCheck par défaut
- fix(modal): événement `conceal` inattendu au chargement du composant (même fermé)
- fix(select/radio): correction accessibilité, l'attribut required ne prend pas de valeur
- fix(table): correction de l'application de la sélection au changement de page en mode serveur
- fix(table): ajout d'une méthode `setSelectedRows` pour permettre la sélection programmatique des lignes après initialisation
- fix(table): désactiver les éléments de pagination à l'affichage d'une table sans résultat
## 1.12.3 (2024-10-10)
- fix(form-tel): régression > la validation ne s'exécute plus si un pattern est défini
## 1.12.2 (2024-10-08)
- fix(card/tile): régression de la taille des titres cliquables
- fix(button): possibilité de définir l'attribut aria-pressed (accessibilité)
- fix(buttons-group): effet de bord de la surcharge du CSS pour la modal sur les dsfr-btns-group
- fix(form): affichage du conteneur de messages même vide et conditionnement de aria-describedby (accessibilité)
- fix(translate): correction documentation, le label de la langue ne doit pas contenir le code
- chore(i18n): permettre d'étendre les bundles d'internationalisation (notamment pour les extensions)
## 1.11.9 (2024-10-03)
- fix(buttons-group): effet de bord de la surcharge du CSS pour la modal sur les dsfr-btns-group
## 1.12.1 (2024-09-23)
- fix(card): régression interprétation du HTML sur l'input `heading`
- fix(consent-banner): l'attribut title du lien des "données personnelles et cookies" concatène le label et le target
- fix(consent-banner): les boutons radio 'consent-all' partagent désormais le même name (accessibilité)
- fix(consent-banner): application de la traduction du lien des données personnelles dans la modale
- fix(radio/radio-rich): les boutons radio sont désormais désactivables unitairement
- fix(share): application de la traduction du lien des données personnelles
- fix(stepper): impossible de changer le niveau de titre
- fix(tile): régression projection du slot `heading`
## 1.11.8 (2024-09-23)
- fix(stepper): impossible de changer le niveau de titre
## 1.12.0 (2024-09-13)
- feat: montée de version DSFR 1.12.1
- feat(alert): ajout du slot `message`
- feat(card/tile): gestion de la classe `enlargeButton`
- feat(card): propriété `enlargeLink=true` par défaut
- feat(cursor): ajout de la propriété `step`
- feat(header): permettre d'utiliser un type `DsfrNavigation` sur le lien du logo
- feat(i18n): possibilité d'ajouter un fichier de traduction de la librairie
- feat(input/select/password/upload): ajout de la propriété `labelSrOnly`
- feat(notice): évolutions suivant le DSFR 1.12 avec ajout des variations
- feat(radio): ajout de la propriété `legendSrOnly`
- feat(tab): ajout de la propriété `disabled`
- feat(table): nouveau composant de tableau avec pagination, sélection et tri
- feat(toggle): ajout des messages d'erreur et de validation
- fix(backtotop): l'ancrage fonctionne correctement
- fix(card/tile): `linkTarget` n'est pas utilisé dans le téléchargement
- fix(content): structure html modifiée pour respecter le DSFR
- fix(footer): changement d'ordre des liens institutionnels et ajout de l'attribut `title`
- fix(form): bloc message affiché seulement si il y a un message de renseigné
- fix(range): correctif accessibilité, le labelled-by de l'input ne pointait vers aucun label
- fix(tag): correctif accessibilité, en mode cliquable, le `disabled` est correctement propagé aux enfants du tag
## 1.11.7 (2024-09-11)
- fix(consent-banner): le texte du lien de la bannière de consentement se met bien à jour au changement de langage
- fix(footer): ajout de traductions manquante
- fix(header): slot `headerTools` et `headerToolsMobile` documentation manquante et régression mode mobile
- fix(modal): en mode mobile, les boutons d'actions ne prennent pas toute la largeur
- fix(stepper): ajout de traductions manquantes
## 1.11.6 (2024-08-21)
- fix(header): correction de la fonctionnalité translate du menu en mode mobile
- fix(header): générer un identifiant unique pour la navigation `navigationId` et possibilité de le redéfinir
- fix(footer): coquille dans la traduction de "nos partenaires"
- fix(form-tel): formatage inattendu si le _pattern_ est spécifié
## 1.11.5 (2024-07-25)
- fix(link/card/tile/content/tag): fix accessibilité (navigation clavier), dépréciation de `routerLink` au profit de `routePath`
## 1.11.4 (2024-07-15)
- fix(segmented-control): correction des labels qui n'étaient pas pris en compte
## 1.11.3 (2024-07-08)
- fix(alert): problème d'internationalisation sur l'input `heading`
- fix(alert): la projection de contenu par défaut (titre) ne fonctionne pas
## 1.11.2 (2024-06-14)
- fix(address): correction syntaxe ngModel non compatible Angular 18
- fix(input): régression affichage du label en tant que slot
- fix(name): correction syntaxe ngModel non compatible Angular 18
- fix(tabs): (avec routes) désélection de l'onglet si navigation vers une sous-route dans l'onglet
- fix(tabs): ajout propriété manquante `routerLinkActiveOptions` sur interface `DsfrTabRoute`
## 1.11.1 (2024-06-03)
- fix(radio, radio-rich): navigation clavier non conforme (attribut name non répercuté sur les boutons radios)
## 1.10.4 (2024-06-03)
- fix(radio, radio-rich): navigation clavier non conforme (attribut name non répercuté sur les boutons radios)
## 1.9.9 (2024-06-03)
- fix(radio, radio-rich): navigation clavier non conforme (attribut name non répercuté sur les boutons radios)
## 1.11.0 (2024-05-31)
- break(chore): version minimale requise angular 16
- feat(input): événement `patternValueChange` si un `pattern` est défini et que la valeur change
- feat(input): niveau de message : `info`, `error` ou `valid`
- feat(skiplinks): ajout `DsfrAnchorLink#route` & ajout de l'output `linkSelect`
- feat(tag): possibilité de rédéfinir l'attribut `ariaLabel`
- fix(badge): si `severity` n'est pas renseignée, autoriser de passer une classe sytème avec `customClass`
- fix(checkbox): correctif accessiblité état indéterminé de la checkbox
- fix(footer): changement de l'url gouvernement.fr en info.gouv.fr
- fix(input): `placeHolder` déprécié en faveur de `placeholder`
- fix(input): la valeur `ariaExpanded` à false n'est pas valorisée
- fix(pagination): correctif accesibilité remplacement des `<a>` par des `<button>`
- fix(pagination): correctif accessibilité, ajout de la propriété `ariaLabel` pour contextualiser la pagination
- doc(input): commentaires sur les propriétés d'accessibilité revus
- chore: export des mixins sass
- chore: migration storybook 8
## 1.10.3 (2024-05-07)
- fix(date): report adapté du hotfix 1.9.8 relatif à la mauvaise gestion du required
## 1.9.8 (2024-05-07)
- fix(date): `required` non géré correctement
## 1.10.2 (2024-04-02)
- fix(alert): composant hôte non supprimé du DOM à la fermeture de l'alerte
- fix(alert): absence de notification à la fermeture (ajout output `conceal`)
- fix: intégration des correctifs 1.9.6 et 1.9.7
## 1.9.7 (2024-03-29)
- fix(header): `tooltipMessage` non traité sur les liens en mode 'button' des `headerToolsLinks`
## 1.9.6 (2024-03-28)
- fix(upload): pilotage via ReactiveForm incomplet (`setValue` et `reset` impossibles)
- fix(upload): impossible de ré-initialiser le champ après une sélection (ajout d'une fonction reset)
## 1.10.1 (2024-03-22)
- fix: mauvaise version de la dépendance `@gouvfr/dsfr` dans le package.json (1.11.0 au lieu de 1.11.2)
## 1.10.0 (2024-03-19)
- feat: montée de version DSFR 1.11.2
- feat(accordions-group): ajout de la propriété `ungroup`
- feat(date): accepte une date ISO courte telle que `2024-08-31`
- feat(segmented-control): ajout du composant `dsfr-segmented-control`
- feat(range): ajout du composant `dsfr-range`
- fix(accordions-group): retrait des ul li
- fix(card/tile): la hauteur du contenu du composant est forcée à la hauteur de son conteneur
- fix(date): les erreurs internes n'invalident pas le form parent
- fix(header): traductions manquantes sur boutons 'Fermer'
- fix(header): affichage lien rubrique mega-menu
- fix(select): fix accessibilité, ajout attribut `aria-selected` sur les options
## 1.9.5 (2024-03-15)
- fix(breadcrumb): régression sur la prise en charge de `routerLinkActiveOptions` (depuis 1.9.0)
- fix(radio): il manque les attributs disabled natifs sur les inputs radio lorsque le composant est désactivé
- fix(tabs): en mode 'routes' la navigation clavier n'est pas opérante
## 1.9.4 (2024-02-27)
- fix(tabs): dysfonctionnements du mode 'routes' en contexte dynamique et asynchrone (cf. doc storybook pour les impacts)
## 1.9.3 (2024-02-06)
- fix(modal): ajout des propriétés `disabled`, `type` et `tooltipMessage` sur les boutons d'actions
## 1.9.2 (2024-01-31)
- fix: le contrôle sur le nom des classes CSS RemixIcon empêche l'intégration d'icônes custom. (`DsfrIcon` déprécié, utiliser un `string`)
- fix(card/tile): l'attribut `downloadDirect` positionné à `false` empêche l'affichage du téléchargement
- fix(select): erreur à l'initialisation du select si la liste d'options est `undefined`
- fix(tile): la valeur de l'attribut `downloadDirect` n'est pas valorisée
## 1.8.3 (2024-01-31)
- fix(buttons-group): ne pas déclencher l'évènement click lors du clic légèrement à côté d'un bouton `disabled`
- fix(select): problème de performance lors de l'affichage d'un grand nombre d'options sur Firefox
- fix(select): suppression de la conversion automatique des values en string
## 1.9.1 (2024-01-23)
- feat(follow/share): ajout de la constante `twitter-x` qui remplace la constante `twitter`
- fix(table): nullInjectorError: no provider for KeyValuePipe
## 1.9.0 (2024-01-22)
- feat: permettre de configurer globalement la propriété `artworkDirPath`
- feat(alert): nouvel input `ariaRoleValue` permettant de positionner un rôle `status` plutôt que `alert`
- feat(badge): un libellé trop long de badge est coupé par `...` s'il dépasse la largeur du conteneur
- feat(display): ajout de l'output `displayChange` sur changement de mode
- feat(display): dépréciation de `pictoPath` en faveur de `artworkDirPath`
- feat(footer): dépréciation de `pictoPath` en faveur de `artworkDirPath`
- feat(header): dépréciation de `pictoPath` en faveur de `artworkDirPath`
- feat(header): possibilité de rendre les catégories du mega-menu non-cliquables
- feat(response): dépréciation de `pictoPath` en faveur de `artworkDirPath`
- feat(select): ajout de la propriété `compareWith` pour utiliser des objets comme valeurs des options
- feat(summary): possibilité d'avoir des sous-niveaux
- feat(summary): implémentation de `routerLink`
- feat(table): permettre de conserver l'ordre initial des colonnes
- feat(tabs): possibilité d'utiliser `router-outlet`
- feat(toggles-group): les toggles sont placés dans un fieldset
- feat(upload): ajout de la propriété `accept`, filtre pour les types de fichiers acceptés
- fix(badges-group): la taille d'un groupe de badges doit être définie au niveau du groupe
- fix(buttons-group): ne pas déclencher l'évènement click lors du clic légèrement à côté d'un bouton `disabled`
- fix(consent): i18n libellé erroné
- fix(header): la propriété `customClass` des items d'accès rapide n'est pas prise en compte
- fix(header): mauvais alignement vertical des liens rapides si utilisation de `display=true`
- fix(input): erreur js si usage dans une modale
- fix(select): suppression de la conversion automatique des values en string
- fix(select): problème de performance lors de l'affichage d'un grand nombre d'options sur Firefox
- fix(select): libellé `optgroup` tronqué sur Firefox
- fix(tile): dépréciation de `detail` en faveur de `detailBottom` pour homogénéiser avec la carte
- doc(card/tile): correction documentation detail carte et tuile de téléchargement
- doc(display): fix les modales non visibles dans la doc de Storybook
## 1.8.2 (2023-12-21)
- fix(select): retour arrière sur les modifications effectuées en 1.8.0 (désélection possible si champ non required)
## 1.8.1 (2023-12-18)
- fix(tabs): ExpressionChangedAfterItHasBeenCheckedError
## 1.8.0 (2023-12-12)
- feat(consent-banner): implémentation de `routerLink`
- feat(modal): ajout output `disclose` permettant de se mettre à l'écoute de l'ouverture de la modale
- feat(modal): ajout input `controlMode` afin de pallier l'absence de bouton d'ouverture
- feat(select): si le champ n'est pas requis, le placeholder à nouveau disponible
- fix(accordion): la propriété `expanded` peut se désynchroniser de l'état réel du DOM (intéraction script DSFR)
- fix(consent-banner): `heading` remplace `title` (déprécié)
- fix(consent-banner): `rgpdLink` remplace `rgpdUrl` (déprécié)
- fix(download): utiliser les options régionales pour l'affichage du détail
- fix(header): désynchronisation des tools links du menu mobile lors d'une mise à jour dynamique
- fix(header): erreurs 404 à l'initialisation du composant si le `display` n'est pas utilisé
- fix(header/searchbar): fix accessibilité searchbar (attribut aria-describedby)
- fix(input): suppression de l'attribut `aria-labelledby` redondant avec le label
- fix(modal): suppression du `role="dialog"` sur la balise `dialog`
- fix(tile): gestion de l'attribut `aria-label` sur la tuile cliquable.
- fix(DsfrHeadingLevel): `NONE` est déprécié au profit de `undefined`
- fix(DfsrLink): `target` est déprécié au profit de `linkTarget`
- chore: compatible `"strictNullChecks": true`
- chore: migration Angular 15
- doc: amélioration documentation Storybook, visibilité des propriétés dépréciées
## 1.7.1 (2023-11-13)
- fix(modal): affichage intempestif de la modale lorsqu'elle est embarquée dans un formulaire
## 1.7.0 (2023-11-13)
- feat(content): ajout de l'événement `linkSelect`
- feat(date): ajout de la propriété `resetOnNull` (réinitialise le composant si le modèle est valorisé à `null`)
- feat(date): ajout de la propriété `autocomplete` permettant de conditionner l'usage de l'autocomplétion
- feat(DsfrLink): ajout des propriétés `ariaLabel`, `ariaControls` et `mode`
- feat(DsfrNavigation): ajout de la propriété `routerLinkActiveOptions`
- feat(follow): ajout des propriétés `emailError` et `registered`
- feat(footer): ajout de l'évènement `mandatoryLinkSelect`
- feat(header): possibilité d'utiliser des boutons dans le lien du header
- feat(tabs): ajout de la propriété `fullViewport`, 100% largeur du viewport en mobile si vrai
- feat(tooltip): nouvelle directive
- feat(tooltip-button): nouveau composant
- fix(content): `tooltipMessage` est aussi utilisé pour les images
- fix(date): un message d'erreur est affiché à l'initialisation si le modèle est null
- fix(date): la propriété `id` est dépréciée car elle n'est plus utilisée
- fix(date): la date retournée par le composant ne devrait pas tenir compte du fuseau horaire courant
- fix(header): langue courante de l'interface `translate` non optionnelle
- fix(modal): perte du focus sur le bouton à la fermeture de la modale (dans le header)
- fix(pagination): moins de pages affichée, 1 seule ligne en mode mobile
- fix(pagination): le composant `pagination` remplace `previous-page` (déprécié)
- fix(pagination): l'événement `pageSelect` remplace `pageSelectEvent` (déprécié)
- fix(pagination): l'événement `backSelect` remplace `backEvent` (déprécié)
- fix(tab): ajout de la classe `fr-tabs__panel--selected`
- fix(tabs): la modification dynamique de l'input `selectedTabIndex` est sans effet
- fix(tabs): valeur de `tabindex` inversée
- fix(i18n): traductions manquantes
- doc(checkbox): ajout de la story _'Reactive Form'_
- doc(content): stories images et vidéos dans le même fichier
- chore: la version minimale requise de NodeJS est 18.18.2 (npm 9.8.1)
- chore: suppression du type `ID`, alias du type `string`
- chore(storybook): migration 7.5.1
## 1.6.2 (2023-10-25)
- fix(date): les erreurs de validation internes du composant n'affectent pas le statut du FormControl
- fix(modal): la modale ne peut être fermée manuellement après une ouverture programmatique (régression DSFR 1.10)
## 1.6.1 (2023-10-24)
- fix(card|tile): pas d'événement émis en mode download + route
- fix(download): passe en mode carte si lien non renseigné
- fix(modal): la méthode `open()` ne fonctionne plus si aucun bouton n'est lié à la modale (régression DSFR 1.10)
- fix(modal): `aria-labelledby` référence un identifiant `undefined`
- fix(tag): les changements sur l'input `selected` ne sont pas pris en compte
## 1.6.0 (2023-10-10)
- feat(content): implémentation de `routerLink`
- feat(content): ajout de la propriété `transcriptionHeading`
- feat(content): ajout d'un slot `transcription` pour insérer le composant de transcription
- feat(form-email): par défaut `autocomplete="email"`, `autocorrect="false"`
- feat(form-input): ajout de la propriété `autoCorrect`
- feat(form-password): ajout de la propriété `autocomplete="current-password"` par défaut
- feat(form-radio-rich): ajout du support des pictogrammes
- feat(link): ajout de la propriété `linkId`
- feat(login): nouveau modèle de page
- fix(buttons): type `button` par défaut, sauf exception, pour tous les boutons des composants
- fix(card/tile): permettre la gestion programmatique du download (via input route)
- fix(content): le slot pour les images svg est nommé `svg`, le slot par défaut est déprécié
- fix(content): `linkLabel` remplace `transcriptionLabel` (déprécié)
- fix(content): `transcriptionContent` remplace `transcription` (déprécié)
- fix(display): erreurs 404 au primo-chargement des icônes
- fix(form-checkbox): la `div` messages devrait toujours être présente
- fix(form-password): `aria-describedby` présent même en l'absence de message
- fix(form-password): `undefined` dans les `id`
- fix(form-password): quelques messages non traduits
- fix(franceconnect): pas de traduction 'en'
- fix(transcription): traduction du bouton 'Fermer'
- fix(response): `DsfrPageResponseModule` est déprécié en faveur de `DsfrResponseModule`
- fix(response): `DsfrPageResponseComponent` est déprécié en faveur de `DsfrResponseComponent`
- fix(response): le sélecteur `dsfr-page-response` est déprécié en faveur de `dsfr-response`
- fix(tag): erreur TS2416 si `strictNullChecks` est activé côté client
- fix(tag): l'attribut `id` est présent avec pour valeur 'null' lorsque la propriété n'est pas renseignée
- chore(storybook): migration 7.4.5
## 1.5.0 (2023-10-02)
- feat: montée de version DSFR 1.10.1
- feat(card): ajout de la version carte de téléchargement (DSFR 1.10)
- feat(card): ajout de la propriété `externalLink`
- feat(card): ajout de la propriété `disabled`
- feat(form-checkbox): ajout de `aria-checked`
- feat(form-input): ajout de la propriété `inputWrapMode`
- feat(link): ajout de la propriété `disabled`
- feat(link): `linkTarget` remplace `targetLink` (déprécié)
- feat(modal): ajout de la propriété `headingLevel`
- feat(patterns/name): ajout de l'évènement `deleteFirstNameSelect`.
- feat(tag): implémentation de routerLink (pour un mode `clickable`)
- fix(card): la classe du lien ne doit pas contenir `fr-link`
- feat(tile): ajout de la version tuile de téléchargement (DSFR 1.10)
- feat(tile): nouvelle version de la tuile (DSFR 1.10)
- feat(tile): ajout de la propriété `disabled`
- fix(date): disparition des erreurs affichées (#390)
- fix(download): composant `dsfr-download` déprécié au profit des propriétés `download` de la `dsfr-tile` et de la `dsfr-card`
- fix(form): sur les composants de formulaire, dépréciation de l'input `id` en faveur de `inputId` (évite la collision avec l'attribut natif)
- fix(form-checkbox): valorisation de `aria-controls`
- fix(form-input): focus sur tags et non sur input
- fix(header): ajout de l'évènement linkSelect sur les liens du menu mobile en cas d'utilisation de l'attribut route
- fix(header): affichage d'un lien désactivé dans les menus en l'absence de route, routerLink et link (pas de href)
- fix(patterns/date): préfixe des attributs id, dépréciation de l'attribut name et suppression du label
- fix(tabs): entêtes non réactives aux modifications dynamiques
- fix(tag): ajout de l'attribut tagId et dépréciation de id pour éviter la collision avec l'attribut natif
- fix(tag): la classe du lien (tag cliquable) ne doit pas contenir `fr-link`
- fix(tag): les boutons des modes `deletable` et `selectable` ne doivent pas être de type `submit`
- fix(tile): la classe du lien ne doit pas contenir `fr-link`
- fix(translate): soumission d'un formulaire inattendu
## 1.4.0 (2023-09-06)
- feat(card): implémentation de routerLink
- feat(checkbox): ajout de la propriété `indeterminate`
- feat(checkbox): ajout de stories pour les groupes de checkbox
- feat(password): implémentation de routerLink pour le recovery
- feat(input): nouvelles propriétés pour l'accessibilité
- feat(tag): un événement de type `DsfrTagEvent` est émis lors de la sélection si l'input `id` est renseigné
- fix(upload): le nouveau sélecteur est `dsfr-form-upload`, `dsfr-upload` est déprécié
- fix(card): ajout de la class `fr-card__title` sur la gestion des niveaux de titre
- fix(card): niveau de titre obligatoire, `h3` par défaut
- fix(card): la carte ne doit pas émettre d'événement autre que sur sélection d'un lien (d'une `route`)
- fix(checkbox): ne pas positionner l'attribut aria-describedby s'il n'y a pas de message
- fix(LinkTarget): dépréciation de `DsrfTargetLink` au profit de `DsfrLinkTarget`
- fix(upload): utilisation dans un formulaire
## 1.3.2 (2023-09-04)
- feat(tag): ajout d'un id (optionnel) pour un tag
- fix(form): prise en compte de l'attribut `disabled` lors de l'utilisation des reactive form pour tous les composants concernés
- fix(link/menu): gestion de l'attribut `aria-current` par routerLink lorsque cette directive est utilisée
- fix(tag): mise à jour de la propriété `selected`
## 1.3.1 (2023-08-29)
- fix(header): les icônes des liens rapides ne s'affichent pas
- fix(radio): avec plusieurs groupes de radios, la sélection sur un groupe se répercute sur tous les autres groupes
- fix(radio-rich): avec plusieurs groupes de radios, la sélection sur un groupe se répercute sur tous les autres groupes
- fix(input): ne pas positionner l'attribut aria-describedby s'il n'y a pas de message
## 1.3.0 (2023-06-22)
- feat(button): ajout des propriétés `id`, `customClass`
- feat(email): nouveau composant `dfsr-form-email`
- feat(fieldset): les 2 sélecteurs `dsfr-fieldset` et `dsfr-form-fieldset` peuvent être utilisés
- fea