+
+
+
+
+ setRest(event.target.value)}
+ {...(hint ? { 'aria-describedby': `${generated}-hint` } : {})}
+ className="h-9 min-w-0 flex-1 rounded-2 border border-line-2 bg-surface px-3 text-sm text-ink-1 outline-none placeholder:text-ink-3 focus-visible:border-focus"
+ />
+
+ {hint ? (
+
+ {hint}
+
+ ) : null}
+
+ );
+}
diff --git a/src/domain/hr/geo.ts b/src/domain/hr/geo.ts
new file mode 100644
index 0000000..7fbb028
--- /dev/null
+++ b/src/domain/hr/geo.ts
@@ -0,0 +1,183 @@
+/**
+ * Référentiels géographiques du dossier salarié.
+ *
+ * Les pays sont stockés par leur **code ISO 3166-1 alpha-2**, pas par leur nom.
+ * Un nom dépend de la langue de l'interface et se retouche au fil des versions
+ * d'ICU ; un code ne bouge pas. Les libellés sont produits à l'affichage par
+ * `Intl.DisplayNames`, ce qui évite d'entretenir à la main deux cent cinquante
+ * traductions et d'en rater les mises à jour.
+ *
+ * Les valeurs déjà en base d'avant ce référentiel — du texte libre, « France »
+ * le plus souvent — sont rendues telles quelles : elles restent lisibles, et
+ * rien ne se perd en attendant qu'un passage sur la fiche les normalise.
+ */
+
+/** ISO 3166-1 alpha-2, ordre alphabétique du code. */
+export const COUNTRY_CODES = [
+ 'AD','AE','AF','AG','AI','AL','AM','AO','AQ','AR','AS','AT','AU','AW','AX','AZ',
+ 'BA','BB','BD','BE','BF','BG','BH','BI','BJ','BL','BM','BN','BO','BQ','BR','BS',
+ 'BT','BV','BW','BY','BZ','CA','CC','CD','CF','CG','CH','CI','CK','CL','CM','CN',
+ 'CO','CR','CU','CV','CW','CX','CY','CZ','DE','DJ','DK','DM','DO','DZ','EC','EE',
+ 'EG','EH','ER','ES','ET','FI','FJ','FK','FM','FO','FR','GA','GB','GD','GE','GF',
+ 'GG','GH','GI','GL','GM','GN','GP','GQ','GR','GS','GT','GU','GW','GY','HK','HM',
+ 'HN','HR','HT','HU','ID','IE','IL','IM','IN','IO','IQ','IR','IS','IT','JE','JM',
+ 'JO','JP','KE','KG','KH','KI','KM','KN','KP','KR','KW','KY','KZ','LA','LB','LC',
+ 'LI','LK','LR','LS','LT','LU','LV','LY','MA','MC','MD','ME','MF','MG','MH','MK',
+ 'ML','MM','MN','MO','MP','MQ','MR','MS','MT','MU','MV','MW','MX','MY','MZ','NA',
+ 'NC','NE','NF','NG','NI','NL','NO','NP','NR','NU','NZ','OM','PA','PE','PF','PG',
+ 'PH','PK','PL','PM','PN','PR','PS','PT','PW','PY','QA','RE','RO','RS','RU','RW',
+ 'SA','SB','SC','SD','SE','SG','SH','SI','SJ','SK','SL','SM','SN','SO','SR','SS',
+ 'ST','SV','SX','SY','SZ','TC','TD','TF','TG','TH','TJ','TK','TL','TM','TN','TO',
+ 'TR','TT','TV','TW','TZ','UA','UG','UM','US','UY','UZ','VA','VC','VE','VG','VI',
+ 'VN','VU','WF','WS','YE','YT','ZA','ZM','ZW',
+] as const;
+
+/**
+ * Indicatifs téléphoniques.
+ *
+ * Volontairement partiels : ceux des pays d'où l'on embauche couramment en
+ * France. Le champ accepte de toute façon un numéro international saisi en
+ * entier — proposer deux cent cinquante indicatifs allongerait la liste sans
+ * rendre la saisie plus sûre.
+ */
+export const DIAL_CODES: Record