docs(icons): add duplicate detection guide and remove duplicate icon definitions

- add duplicate detection section in README.md with bash commands to identify duplicates
- remove `Cancel01Icon` duplicate definition from `index.js`
- remove `Delete02Icon` duplicate definition from `index.js`
This commit is contained in:
2026-04-26 09:57:09 -04:00
parent 615385b6b3
commit 0b73ff1d04
2 changed files with 20 additions and 25 deletions
+20
View File
@@ -33,6 +33,26 @@ Add01Icon.keywords = ['add', 'plus', 'create', 'new', 'insert', 'ajouter', 'nouv
- Mots au sens large : inclure les synonymes et usages contextuels
- Pas de doublons inutiles entre variantes du même icône (ex. `Add01Icon` et `Add02Icon` partagent les mêmes keywords)
## Détecter les doublons
Un doublon est une icône définie directement dans `index.js` **et** dans un fichier catégorie.
**Étape 1 — lister les icônes définies dans `index.js` :**
```bash
grep "^export const" src/shared/icons/index.js
```
**Étape 2 — vérifier si un nom apparaît dans un autre fichier :**
```bash
grep "export const NomDeLIcone" src/shared/icons/*.js
```
Si la commande retourne deux lignes (une dans `index.js`, une dans un autre fichier), c'est un doublon — supprimer la définition dans `index.js` et garder celle du fichier catégorie.
---
## Commandes utiles
### Lister toutes les icônes d'un fichier
-25
View File
@@ -227,12 +227,6 @@ export const Tick02Icon = (props) => (
</svg>
);
export const Cancel01Icon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={24} height={24} color={"currentColor"} fill={"none"} {...props}>
<path d="M17.293 5.29295C17.6835 4.90243 18.3165 4.90243 18.707 5.29295C19.0976 5.68348 19.0976 6.31649 18.707 6.70702L13.4131 12L18.7061 17.293L18.7754 17.3691C19.0954 17.7619 19.0721 18.341 18.7061 18.707C18.3399 19.0731 17.7609 19.0958 17.3682 18.7754L17.292 18.707L11.999 13.414L6.70802 18.706C6.3175 19.0966 5.68449 19.0965 5.29396 18.706C4.90344 18.3155 4.90344 17.6825 5.29396 17.292L10.585 12L5.29298 6.70799L5.22462 6.63182C4.90423 6.23907 4.92691 5.66007 5.29298 5.29393C5.65897 4.92794 6.23811 4.9046 6.63087 5.22459L6.70705 5.29393L11.999 10.5859L17.293 5.29295Z" fill="currentColor"></path>
</svg>
);
export const Alert01Icon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={24} height={24} color={"currentColor"} fill={"none"} {...props}>
<path d="M13.998 21.75C16.253 21.75 18.0331 21.75 19.3515 21.5537C20.6903 21.3543 21.7763 20.9217 22.3759 19.8633L22.4795 19.6641C22.9508 18.6611 22.7579 17.5714 22.2763 16.3945C21.8927 15.4569 21.277 14.3483 20.499 13.0195L19.6689 11.6162L17.7441 8.37109L17.6982 8.29297C16.5955 6.4338 15.7229 4.96328 14.9111 3.96484C14.0828 2.94615 13.1844 2.25 12 2.25C10.8155 2.25004 9.91711 2.94615 9.08883 3.96484C8.47155 4.72408 7.81868 5.7561 7.0566 7.02441L6.25582 8.37109L4.33102 11.6162L4.28317 11.6963C3.13452 13.6328 2.22816 15.1614 1.7236 16.3945C1.21 17.6498 1.02504 18.8058 1.62399 19.8633L1.74215 20.0547C2.36044 20.9749 3.39339 21.3668 4.6484 21.5537C5.96685 21.75 7.74695 21.75 10.0019 21.75L13.998 21.75ZM12 9.99805C11.4477 9.99798 11 9.55029 11 8.99805V8.98828C11 8.43604 11.4477 7.98835 12 7.98828C12.5522 7.98828 13 8.436 13 8.98828V8.99805C13 9.55033 12.5522 9.99805 12 9.99805ZM12 18C11.4477 17.9999 11 17.5522 11 17L11 12.5C11 11.9478 11.4477 11.5001 12 11.5C12.5522 11.5 13 11.9477 13 12.5L13 17C13 17.5523 12.5522 18 12 18Z" fill="currentColor"></path>
@@ -245,13 +239,6 @@ export const InformationCircleIcon = (props) => (
</svg>
);
export const Delete02Icon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={24} height={24} color={"currentColor"} fill={"none"} {...props}>
<path fillRule="evenodd" clipRule="evenodd" d="M19.5825 15.6564C19.5058 16.9096 19.4449 17.9041 19.3202 18.6984C19.1922 19.5131 18.9874 20.1915 18.5777 20.7849C18.2029 21.3278 17.7204 21.786 17.1608 22.1303C16.5491 22.5067 15.8661 22.6713 15.0531 22.75L8.92739 22.7499C8.1135 22.671 7.42972 22.5061 6.8176 22.129C6.25763 21.7841 5.77494 21.3251 5.40028 20.7813C4.99073 20.1869 4.78656 19.5075 4.65957 18.6917C4.53574 17.8962 4.47623 16.9003 4.40122 15.6453L3.75 4.75H20.25L19.5825 15.6564ZM9.5 17.9609C9.08579 17.9609 8.75 17.6252 8.75 17.2109L8.75 11.2109C8.75 10.7967 9.08579 10.4609 9.5 10.4609C9.91421 10.4609 10.25 10.7967 10.25 11.2109L10.25 17.2109C10.25 17.6252 9.91421 17.9609 9.5 17.9609ZM15.25 11.2109C15.25 10.7967 14.9142 10.4609 14.5 10.4609C14.0858 10.4609 13.75 10.7967 13.75 11.2109V17.2109C13.75 17.6252 14.0858 17.9609 14.5 17.9609C14.9142 17.9609 15.25 17.6252 15.25 17.2109V11.2109Z" fill="currentColor" />
<path fillRule="evenodd" clipRule="evenodd" d="M13.3473 1.28277C13.9124 1.33331 14.4435 1.50576 14.8996 1.84591C15.2369 2.09748 15.4712 2.40542 15.6714 2.73893C15.8569 3.04798 16.0437 3.4333 16.2555 3.8704L16.6823 4.7507H21C21.5523 4.7507 22 5.19842 22 5.7507C22 6.30299 21.5523 6.7507 21 6.7507C14.9998 6.7507 9.00019 6.7507 3 6.7507C2.44772 6.7507 2 6.30299 2 5.7507C2 5.19842 2.44772 4.7507 3 4.7507H7.40976L7.76556 3.97016C7.97212 3.51696 8.15403 3.11782 8.33676 2.79754C8.53387 2.45207 8.76721 2.13237 9.10861 1.87046C9.57032 1.51626 10.1121 1.33669 10.6899 1.28409C11.1249 1.24449 11.5634 1.24994 12 1.25064C12.5108 1.25146 12.97 1.24902 13.3473 1.28277ZM9.60776 4.7507H14.4597C14.233 4.28331 14.088 3.98707 13.9566 3.7682C13.7643 3.44787 13.5339 3.30745 13.1691 3.27482C12.9098 3.25163 12.5719 3.2507 12.0345 3.2507C11.4837 3.2507 11.137 3.25166 10.8712 3.27585C10.4971 3.30991 10.2639 3.45568 10.0739 3.78866C9.94941 4.00687 9.81387 4.29897 9.60776 4.7507Z" fill="currentColor" />
</svg>
);
export const PlusSignCircleIcon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={24} height={24} color={"currentColor"} fill={"none"} {...props}>
<path fillRule="evenodd" clipRule="evenodd" d="M12 1.25C6.06294 1.25 1.25 6.06294 1.25 12C1.25 17.9371 6.06294 22.75 12 22.75C17.9371 22.75 22.75 17.9371 22.75 12C22.75 6.06294 17.9371 1.25 12 1.25ZM13 8C13 7.44772 12.5523 7 12 7C11.4477 7 11 7.44772 11 8V11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H11V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V13H16C16.5523 13 17 12.5523 17 12C17 11.4477 16.5523 11 16 11H13V8Z" fill="currentColor"></path>
@@ -290,12 +277,6 @@ export const TorriGateIcon = (props) => (
</svg>
);
export const CancelCircleIcon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={24} height={24} color={"currentColor"} fill={"none"} {...props}>
<path d="M12 1.25C17.9371 1.25 22.75 6.06294 22.75 12C22.75 17.9371 17.9371 22.75 12 22.75C6.06294 22.75 1.25 17.9371 1.25 12C1.25 6.06294 6.06294 1.25 12 1.25ZM9.63086 8.22461C9.2381 7.90427 8.65909 7.92689 8.29297 8.29297C7.92698 8.65909 7.90429 9.23813 8.22461 9.63086L8.29297 9.70703L10.5859 12L8.29395 14.293C7.90357 14.6835 7.90344 15.3166 8.29395 15.707C8.68447 16.0972 9.31758 16.0974 9.70801 15.707L12 13.4141L14.292 15.707L14.3682 15.7754C14.7608 16.0957 15.3399 16.0729 15.7061 15.707C16.0721 15.3411 16.0954 14.7619 15.7754 14.3691L15.7061 14.293L13.4131 12L15.707 9.70703L15.7754 9.63086C16.0957 9.23812 16.073 8.65909 15.707 8.29297C15.3409 7.92689 14.7619 7.90427 14.3691 8.22461L14.293 8.29297L12 10.5859L9.70703 8.29297L9.63086 8.22461Z" fill="currentColor"></path>
</svg>
);
export const UserGroupIcon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={24} height={24} color={"currentColor"} fill={"none"} {...props}>
<path d="M8.2499 10.5C8.2499 8.42893 9.92884 6.75 11.9999 6.75C14.071 6.75 15.7499 8.42893 15.7499 10.5C15.7499 12.0256 14.8388 13.3385 13.5311 13.9242C16.2049 14.5465 18.25 16.7615 18.25 19.499C18.25 19.9133 17.9142 20.249 17.5 20.249H6.5C6.08579 20.249 5.75 19.9133 5.75 19.499C5.75 16.7615 7.79507 14.5466 10.4688 13.9242C9.16099 13.3385 8.2499 12.0257 8.2499 10.5Z" fill="currentColor" />
@@ -538,12 +519,6 @@ export const DragDropVerticalIcon = (props) => (
</svg>
);
export const Add01Icon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={64} height={64} color={"currentColor"} fill={"none"} {...props}>
<path d="M11.001 19.002V13.002H5C4.44772 13.002 4 12.5543 4 12.002C4 11.4498 4.44772 11.002 5 11.002H11.001V5.00009C11.001 4.44781 11.4487 4.00009 12.001 4.00009C12.5533 4.0001 13.001 4.44781 13.001 5.00009V11.002H19.002L19.1045 11.0069C19.6086 11.0583 20.002 11.4844 20.002 12.002C20.002 12.5197 19.6086 12.9458 19.1045 12.9972L19.002 13.002H13.001V19.002C13.001 19.5543 12.5533 20.002 12.001 20.002C11.4487 20.002 11.001 19.5543 11.001 19.002Z" fill="currentColor" />
</svg>
);
export const TextColorIcon = (props) => (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width={64} height={64} color={"currentColor"} fill={"none"} {...props}>
<path fillRule="evenodd" clipRule="evenodd" d="M2 21C2 20.4477 2.44772 20 3 20H21C21.5523 20 22 20.4477 22 21C22 21.5523 21.5523 22 21 22H3C2.44772 22 2 21.5523 2 21Z" fill="currentColor"></path>