feat(preparation): promotion circuit UI (promotable, statuts) et dates usager sécurisées
- src/shared/_mock/_circuit.ts — Ajoute la colonne « Promotion » au tableau des circuits préparés.
- src/shared/sections/Preparation/circuit/hooks/usePreparedCircuitPromotion.ts — Lance la validation en production avec clé d’idempotence (sans dry-run).
- src/shared/sections/Preparation/circuit/utils/prepared-circuit-promotion.ts — Centralise l’éligibilité, les libellés/chips de statut et l’état du bouton « Valider en prod ».
- src/shared/sections/Preparation/circuit/views/circuit-dup-list-view.tsx — Pilote l’affichage et le comportement du bouton de mise en production selon le circuit sélectionné.
- src/shared/sections/Preparation/circuit/views/modals/ValidateToProductionModal.tsx — Bloque la confirmation et affiche un message si une promotion est déjà en cours.
- src/shared/sections/Preparation/circuit/views/sections/AiOptimizationCircuitWorkspace.tsx — Retire le doublon du bouton « Valider en prod » dans l’espace IA (géré dans la liste).
- src/shared/sections/Preparation/circuit/views/sections/PreparationCircuitDrawerTable.tsx — Affiche le statut de promotion et le lien vers le circuit prod dans le tiroir latéral.
- src/shared/sections/Preparation/circuit/views/selectors/CircuitSummarySidebar.tsx — Retire le bouton de promotion de la sidebar pour éviter la duplication avec la barre d’outils.
- src/shared/types/circuit-promotion.ts — Étend les types API promotion (promotable, éligibilité) pour l’alignement front/back.
- **src/shared/types/circuit.ts **— Ajoute les champs promotion sur le modèle Circuit (recherche circuits préparés).
- src/utils/format-time.ts — Évite le crash RangeError sur des dates API invalides (ex. année 20002).
- **src/shared/sections/usager/shadcn/components/usager-table-row.tsx **— Affiche « - » si le formatage d’une date échoue.
- src/shared/sections/usager/view/usager-table-row.tsx — Idem pour la vue usager legacy.
- src/shared/sections/usager/utils/form-fields-usager.ts — Ignore les années de naissance hors plage pour le calcul d’âge.